ceedling 1.1.10 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1145) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +3 -0
  3. data/.simplecov +73 -0
  4. data/GIT_COMMIT_SHA +1 -1
  5. data/Gemfile +84 -8
  6. data/Gemfile.lock +38 -8
  7. data/README.md +64 -45
  8. data/Rakefile +769 -16
  9. data/assets/{project.yml → features/project.yml} +4 -1
  10. data/assets/fixtures/bullseye_branch_coverage/src/branchy.c +24 -0
  11. data/assets/fixtures/bullseye_branch_coverage/src/branchy.h +14 -0
  12. data/assets/fixtures/bullseye_branch_coverage/test/test_branchy.c +18 -0
  13. data/assets/fixtures/cppcheck_findings/findings.c +23 -0
  14. data/assets/fixtures/cppcheck_findings/findings.h +13 -0
  15. data/assets/fixtures/header_include_path_validation/alt_drivers/foo.h +6 -0
  16. data/assets/fixtures/header_include_path_validation/bar.h +6 -0
  17. data/assets/fixtures/header_include_path_validation/drivers/foo.h +6 -0
  18. data/assets/fixtures/header_include_path_validation/dup.h +6 -0
  19. data/assets/fixtures/header_include_path_validation/other_inc/dup.h +6 -0
  20. data/assets/fixtures/header_include_path_validation/test_ambiguous_mock.c +15 -0
  21. data/assets/fixtures/header_include_path_validation/test_bare_mock.c +11 -0
  22. data/assets/fixtures/header_include_path_validation/test_bogus_mock_path.c +11 -0
  23. data/assets/fixtures/header_include_path_validation/test_bogus_vanilla_path.c +10 -0
  24. data/assets/fixtures/header_include_path_validation/test_include_outranks_test_include_path.c +16 -0
  25. data/assets/fixtures/header_include_path_validation/test_pathed_mock.c +11 -0
  26. data/assets/fixtures/header_include_path_validation/test_pathed_mock_ambiguous.c +14 -0
  27. data/assets/fixtures/header_include_path_validation/test_test_include_path_outranks_include.c +17 -0
  28. data/assets/fixtures/implicit_source_header_correspondence/alpha/dup.c +6 -0
  29. data/assets/fixtures/implicit_source_header_correspondence/alpha/dup.h +6 -0
  30. data/assets/fixtures/implicit_source_header_correspondence/beta/dup.c +6 -0
  31. data/assets/fixtures/implicit_source_header_correspondence/beta/dup.h +6 -0
  32. data/assets/fixtures/implicit_source_header_correspondence/gamma/dup_gamma.c +6 -0
  33. data/assets/fixtures/implicit_source_header_correspondence/test_dup_alpha.c +10 -0
  34. data/assets/fixtures/implicit_source_header_correspondence/test_dup_bare.c +10 -0
  35. data/assets/fixtures/implicit_source_header_correspondence/test_dup_beta.c +10 -0
  36. data/assets/fixtures/implicit_source_header_correspondence/test_dup_override.c +19 -0
  37. data/assets/fixtures/implicit_source_header_correspondence/test_dup_subtractive.c +19 -0
  38. data/assets/fixtures/implicit_source_header_correspondence/test_dup_subtractive_noop.c +16 -0
  39. data/assets/fixtures/parent_directory_references/alpha/extra.c +4 -0
  40. data/assets/fixtures/parent_directory_references/common/helper.c +6 -0
  41. data/assets/fixtures/parent_directory_references/common/helper.h +6 -0
  42. data/assets/fixtures/parent_directory_references/unit/test_dotdot_include.c +10 -0
  43. data/assets/fixtures/parent_directory_references/unit/test_dotdot_source.c +16 -0
  44. data/assets/fixtures/plain_inline_module.h +9 -0
  45. data/assets/fixtures/same_named_modules/include/drivers/spi/config.h +6 -0
  46. data/assets/fixtures/same_named_modules/include/drivers/uart/config.h +6 -0
  47. data/assets/fixtures/same_named_modules/src/drivers/spi/config.c +8 -0
  48. data/assets/fixtures/same_named_modules/src/drivers/uart/config.c +10 -0
  49. data/assets/fixtures/same_named_modules/test/test_both_configs.c +26 -0
  50. data/assets/fixtures/same_named_modules/test/test_both_configs_mocked.c +20 -0
  51. data/assets/fixtures/same_named_modules/test/test_both_configs_mocked_traditional.c +19 -0
  52. data/assets/fixtures/same_named_modules/test/test_both_modules.c +19 -0
  53. data/assets/fixtures/same_named_modules/test/test_uart_config_bare.c +19 -0
  54. data/assets/fixtures/same_named_modules/test/test_uart_config_partial_only.c +20 -0
  55. data/assets/fixtures/sources_with_duplicate_basenames/baz/bar.c +6 -0
  56. data/assets/fixtures/sources_with_duplicate_basenames/baz/bar.h +6 -0
  57. data/assets/fixtures/sources_with_duplicate_basenames/foo/bar.c +6 -0
  58. data/assets/fixtures/sources_with_duplicate_basenames/foo/bar.h +6 -0
  59. data/assets/fixtures/sources_with_duplicate_basenames/main.c +11 -0
  60. data/assets/fixtures/sources_with_duplicate_basenames/test_baz_bar.c +10 -0
  61. data/assets/fixtures/sources_with_duplicate_basenames/test_both_bars.c +12 -0
  62. data/assets/fixtures/sources_with_duplicate_basenames/test_foo_bar.c +10 -0
  63. data/assets/{test_example_file_boom.c → fixtures/test_nosanitize_boom.c} +9 -0
  64. data/assets/{test_example_file_crash_assert.c → fixtures/test_nosanitize_crash_assert.c} +8 -0
  65. data/assets/{test_example_file_crash_sigsegv.c → fixtures/test_nosanitize_crash_sigsegv.c} +8 -0
  66. data/assets/{test_example_file_crash_sigsegv_with_param.c → fixtures/test_nosanitize_crash_sigsegv_with_param.c} +8 -0
  67. data/assets/fixtures/test_nosanitize_heap_buffer_overflow.c +31 -0
  68. data/assets/fixtures/test_nosanitize_leak.c +34 -0
  69. data/assets/fixtures/test_nosanitize_two_findings.c +36 -0
  70. data/assets/{test_example_file_ub_shift_overflow.c → fixtures/test_nosanitize_ub_shift_overflow.c} +9 -0
  71. data/assets/fixtures/test_plain_inline_module.c +15 -0
  72. data/assets/fixtures/test_source_file_duplicate_basenames/alpha/calc.c +4 -0
  73. data/assets/fixtures/test_source_file_duplicate_basenames/beta/calc.c +4 -0
  74. data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_alpha.c +15 -0
  75. data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_ambiguous.c +15 -0
  76. data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_beta.c +15 -0
  77. data/assets/fixtures/tests_with_conditional_includes/src/feature_extra2.h +13 -0
  78. data/assets/fixtures/tests_with_conditional_includes/src/macro_target_extra.h +13 -0
  79. data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget.c +19 -3
  80. data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget.h +1 -0
  81. data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget_feature.c +17 -1
  82. data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/test/test_widget.c +12 -4
  83. data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/test/test_widget_feature.c +8 -5
  84. data/assets/fixtures/tests_with_conditional_mocks/src/Case_01.c +7 -0
  85. data/assets/fixtures/tests_with_conditional_mocks/src/Case_01.h +6 -0
  86. data/assets/fixtures/tests_with_conditional_mocks/src/Case_02.c +16 -0
  87. data/assets/fixtures/tests_with_conditional_mocks/src/Case_02.h +6 -0
  88. data/assets/fixtures/tests_with_conditional_mocks/src/FeatureConfig.h +6 -0
  89. data/assets/fixtures/tests_with_conditional_mocks/src/Gpt.h +6 -0
  90. data/assets/fixtures/tests_with_conditional_mocks/src/MyModuleConfig.h +17 -0
  91. data/assets/fixtures/tests_with_conditional_mocks/src/MyModulePart1.h +6 -0
  92. data/assets/fixtures/tests_with_conditional_mocks/src/MyModulePart2.h +6 -0
  93. data/assets/fixtures/tests_with_conditional_mocks/src/drivers/widget.h +6 -0
  94. data/assets/fixtures/tests_with_conditional_mocks/src/reader.c +7 -0
  95. data/assets/fixtures/tests_with_conditional_mocks/src/reader.h +6 -0
  96. data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_01.c +21 -0
  97. data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_01_legacy.c +16 -0
  98. data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_02.c +31 -0
  99. data/assets/fixtures/tests_with_conditional_mocks/test/test_FeatureConfig.c +15 -0
  100. data/assets/fixtures/tests_with_conditional_mocks/test/test_reader.c +13 -0
  101. data/assets/fixtures/tests_with_duplicate_test_names/integration/test_foo.c +21 -0
  102. data/assets/fixtures/tests_with_duplicate_test_names/unit/test_foo.c +21 -0
  103. data/assets/fixtures/tests_with_fallback_conditionals/src/conditional_module.c +28 -0
  104. data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/test/test_conditionals.c +8 -1
  105. data/assets/fixtures/tests_with_multiple_assembly_extensions/src/asm_helper_lower.s +2 -0
  106. data/assets/fixtures/tests_with_multiple_assembly_extensions/src/asm_helper_upper.S +13 -0
  107. data/assets/fixtures/tests_with_multiple_assembly_extensions/src/counter_module.c +13 -0
  108. data/assets/fixtures/tests_with_multiple_assembly_extensions/src/counter_module.h +13 -0
  109. data/assets/fixtures/tests_with_multiple_assembly_extensions/test/test_counter_module.c +27 -0
  110. data/assets/fixtures/tests_with_subdir_includes/src/module/app/config.h +13 -0
  111. data/assets/fixtures/tests_with_subdir_includes/src/module/drivers/config.h +13 -0
  112. data/assets/fixtures/tests_with_subdir_includes/src/module/sensor.c +30 -0
  113. data/assets/fixtures/tests_with_subdir_includes/src/module/sensor.h +13 -0
  114. data/assets/fixtures/tests_with_subdir_includes/src/shared/config.h +13 -0
  115. data/assets/fixtures/tests_with_subdir_includes/test/test_sensor.c +32 -0
  116. data/bin/actionator.rb +234 -0
  117. data/bin/app_cfg.rb +28 -0
  118. data/bin/cli.rb +78 -47
  119. data/bin/cli_handler.rb +96 -58
  120. data/bin/cli_helper.rb +95 -49
  121. data/bin/cli_options_transform.rb +22 -0
  122. data/bin/{configinator.rb → composinator.rb} +39 -32
  123. data/bin/mixin_resolvinator.rb +124 -0
  124. data/bin/mixin_standardizer.rb +31 -61
  125. data/bin/mixinator.rb +27 -29
  126. data/bin/mixins.rb +0 -5
  127. data/bin/objects.yml +20 -7
  128. data/bin/path_validator.rb +6 -5
  129. data/bin/projectinator.rb +51 -142
  130. data/bin/rake_patches.rb +36 -2
  131. data/bin/recursive_merger.rb +7 -1
  132. data/bin/versionator.rb +2 -3
  133. data/ceedling.gemspec +83 -12
  134. data/docs/BreakingChanges.md +46 -2
  135. data/docs/CONTRIBUTING.md +45 -29
  136. data/docs/CeedlingPullRequestChecklist.md +10 -9
  137. data/docs/Changelog.md +337 -37
  138. data/docs/KnownIssues.md +30 -4
  139. data/docs/ReleaseNotes.md +288 -12
  140. data/docs/SECURITY.md +46 -2
  141. data/docs/ThrowTheSwitchCodingStandard.md +21 -3
  142. data/docs/overrides/main.html +35 -0
  143. data/examples/temp_sensor/mixin/add_bullseye.yml +19 -0
  144. data/examples/wondrous_forest/README.md +3 -0
  145. data/examples/wondrous_forest/src/sensors/light/Calibration.c +21 -0
  146. data/examples/wondrous_forest/src/sensors/light/Calibration.h +14 -0
  147. data/examples/wondrous_forest/src/sensors/soil/Calibration.c +23 -0
  148. data/examples/wondrous_forest/src/sensors/soil/Calibration.h +14 -0
  149. data/examples/wondrous_forest/test/TestCalibration.c +39 -0
  150. data/lib/ceedling/batchinator.rb +81 -22
  151. data/lib/ceedling/c_extractor/README.md +61 -0
  152. data/lib/ceedling/c_extractor/c_extractor.rb +33 -2
  153. data/lib/ceedling/c_extractor/c_extractor_code_text.rb +18 -10
  154. data/lib/ceedling/c_extractor/c_extractor_constants.rb +10 -10
  155. data/lib/ceedling/c_extractor/c_extractor_declarations.rb +14 -14
  156. data/lib/ceedling/c_extractor/c_extractor_functions.rb +10 -13
  157. data/lib/ceedling/c_extractor/c_extractor_preprocessing.rb +77 -0
  158. data/lib/ceedling/c_extractor/c_extractor_types.rb +8 -5
  159. data/lib/ceedling/ceedling.h +33 -0
  160. data/lib/ceedling/config/config_matchinator.rb +36 -13
  161. data/lib/ceedling/config/configurator.rb +370 -531
  162. data/lib/ceedling/config/configurator_builder.rb +253 -365
  163. data/lib/ceedling/config/configurator_plugins.rb +68 -102
  164. data/lib/ceedling/config/configurator_setup.rb +360 -616
  165. data/lib/ceedling/config/configurator_validator.rb +114 -142
  166. data/lib/ceedling/config/line_marker_suppressors.rb +67 -0
  167. data/lib/ceedling/constants.rb +60 -6
  168. data/lib/ceedling/defaults.rb +28 -14
  169. data/lib/ceedling/defineinator.rb +9 -4
  170. data/lib/ceedling/dependencies/README.md +69 -0
  171. data/lib/ceedling/dependencies/dependency_cache_store.rb +160 -0
  172. data/lib/ceedling/dependencies/dependency_debug_tree.rb +129 -0
  173. data/lib/ceedling/dependencies/dependency_differ.rb +127 -0
  174. data/lib/ceedling/dependencies/dependency_hasher.rb +94 -0
  175. data/lib/ceedling/dependencies/dependency_path_normalizer.rb +80 -0
  176. data/lib/ceedling/dependencies/dependency_tracker.rb +405 -0
  177. data/lib/ceedling/dependencies/dependinator.rb +65 -0
  178. data/lib/ceedling/dependencies/gcc_dependency_parser.rb +86 -0
  179. data/lib/ceedling/encodinator.rb +23 -11
  180. data/lib/ceedling/file_finder.rb +373 -89
  181. data/lib/ceedling/file_finder_helper.rb +44 -33
  182. data/lib/ceedling/file_path_collection_utils.rb +17 -4
  183. data/lib/ceedling/file_path_utils.rb +310 -52
  184. data/lib/ceedling/file_wrapper.rb +275 -8
  185. data/lib/ceedling/filename_extension.rb +91 -0
  186. data/lib/ceedling/flaginator.rb +6 -2
  187. data/lib/ceedling/generators/generator.rb +192 -70
  188. data/lib/ceedling/generators/generator_helper.rb +116 -69
  189. data/lib/ceedling/generators/generator_mocks.rb +13 -8
  190. data/lib/ceedling/generators/generator_partials.rb +47 -15
  191. data/lib/ceedling/generators/generator_test_results.rb +29 -17
  192. data/lib/ceedling/generators/generator_test_results_backtrace.rb +199 -107
  193. data/lib/ceedling/generators/generator_test_results_sanity_checker.rb +1 -1
  194. data/lib/ceedling/includes/include_factory.rb +21 -6
  195. data/lib/ceedling/includes/include_pathinator.rb +40 -4
  196. data/lib/ceedling/includes/includes.rb +215 -61
  197. data/lib/ceedling/loginator.rb +13 -4
  198. data/lib/ceedling/objects.yml +216 -33
  199. data/lib/ceedling/parsing_parcels.rb +39 -13
  200. data/lib/ceedling/partials/README.md +53 -0
  201. data/lib/ceedling/partials/partializer.rb +118 -26
  202. data/lib/ceedling/partials/partializer_config.rb +141 -8
  203. data/lib/ceedling/partials/partializer_helper.rb +88 -2
  204. data/lib/ceedling/partials/partializer_utils.rb +1 -1
  205. data/lib/ceedling/partials/partials.rb +4 -4
  206. data/lib/ceedling/path_matcher.rb +163 -0
  207. data/lib/ceedling/path_mirror.rb +73 -0
  208. data/lib/ceedling/plugins/plugin.rb +1 -1
  209. data/lib/ceedling/plugins/plugin_manager.rb +31 -15
  210. data/lib/ceedling/plugins/plugin_manager_helper.rb +5 -1
  211. data/lib/ceedling/plugins/plugin_reportinator.rb +36 -7
  212. data/lib/ceedling/plugins/plugin_reportinator_helper.rb +3 -3
  213. data/lib/ceedling/plugins/report_log_writer_plugin.rb +66 -0
  214. data/lib/ceedling/plugins/report_tests_stdout_plugin.rb +18 -5
  215. data/lib/ceedling/preprocess/README.md +135 -120
  216. data/lib/ceedling/preprocess/c_comment_scanner.rb +9 -7
  217. data/lib/ceedling/preprocess/c_preprocessor_conditionals.rb +27 -10
  218. data/lib/ceedling/preprocess/preprocessinator.rb +253 -217
  219. data/lib/ceedling/preprocess/preprocessinator_bare_includes_extractor.rb +7 -10
  220. data/lib/ceedling/preprocess/preprocessinator_code_finder.rb +8 -6
  221. data/lib/ceedling/preprocess/preprocessinator_comment_stripper.rb +5 -3
  222. data/lib/ceedling/preprocess/preprocessinator_file_assembler.rb +86 -82
  223. data/lib/ceedling/preprocess/preprocessinator_includes_handler.rb +182 -163
  224. data/lib/ceedling/preprocess/preprocessinator_line_marker_includes_extractor.rb +174 -8
  225. data/lib/ceedling/preprocess/preprocessinator_reconstructor.rb +41 -20
  226. data/lib/ceedling/quote_include_isolator.rb +129 -0
  227. data/lib/ceedling/rake_app/rake_task_registry.rb +9 -9
  228. data/lib/ceedling/rake_app/rake_wrapper.rb +0 -13
  229. data/lib/ceedling/rake_app/rakefile_component_resolver.rb +24 -12
  230. data/lib/ceedling/rake_app/test_task_name.rb +29 -0
  231. data/lib/ceedling/rakefile.rb +3 -1
  232. data/lib/ceedling/{tasks_base.rake → rakefiles/base/tasks_base.rake} +1 -1
  233. data/lib/ceedling/{tasks_filesystem.rake → rakefiles/base/tasks_filesystem.rake} +3 -0
  234. data/lib/ceedling/rakefiles/release/rules_release.rake +52 -0
  235. data/lib/ceedling/{erb_wrapper.rb → rakefiles/release/tasks_release.rake} +5 -8
  236. data/lib/ceedling/{rules_tests.rake → rakefiles/tests/rules_tests.rake} +4 -18
  237. data/lib/ceedling/rakefiles/tests/rules_tests_generate.rake +54 -0
  238. data/lib/ceedling/{tasks_tests.rake → rakefiles/tests/tasks_tests.rake} +11 -20
  239. data/lib/ceedling/rakefiles/tests/tasks_tests_generate.rake +55 -0
  240. data/lib/ceedling/release_invoker/README.md +35 -0
  241. data/lib/ceedling/release_invoker/release_build_executor.rb +263 -0
  242. data/lib/ceedling/release_invoker/release_build_planner.rb +80 -0
  243. data/lib/ceedling/release_invoker/release_invoker.rb +78 -0
  244. data/lib/ceedling/release_invoker/release_invoker_types.rb +40 -0
  245. data/lib/ceedling/reportinator.rb +18 -2
  246. data/lib/ceedling/ruby_expandinator.rb +40 -1
  247. data/lib/ceedling/setupinator.rb +13 -3
  248. data/lib/ceedling/system_wrapper.rb +17 -0
  249. data/lib/ceedling/templateinator.rb +146 -0
  250. data/lib/ceedling/test_context_extractor.rb +59 -28
  251. data/lib/ceedling/test_invoker/HEADER_COLLISIONS.md +41 -0
  252. data/lib/ceedling/test_invoker/PIPELINE.md +142 -0
  253. data/lib/ceedling/test_invoker/README.md +6 -0
  254. data/lib/ceedling/test_invoker/mock_locator.rb +49 -0
  255. data/lib/ceedling/test_invoker/partials_manager.rb +426 -0
  256. data/lib/ceedling/test_invoker/standin_headerinator.rb +136 -0
  257. data/lib/ceedling/test_invoker/test_bare_includes_extractinator.rb +117 -0
  258. data/lib/ceedling/test_invoker/test_build_executor.rb +800 -429
  259. data/lib/ceedling/test_invoker/test_build_planner.rb +175 -70
  260. data/lib/ceedling/test_invoker/test_build_setup.rb +132 -241
  261. data/lib/ceedling/test_invoker/test_build_validations.rb +102 -0
  262. data/lib/ceedling/test_invoker/test_file_preprocessinator.rb +148 -0
  263. data/lib/ceedling/test_invoker/test_includes_extractinator.rb +34 -0
  264. data/lib/ceedling/test_invoker/test_includes_preprocessinator.rb +118 -0
  265. data/lib/ceedling/test_invoker/test_includes_reconcilinator.rb +149 -0
  266. data/lib/ceedling/test_invoker/test_invoker.rb +16 -183
  267. data/lib/ceedling/test_invoker/test_invoker_types.rb +85 -16
  268. data/lib/ceedling/test_invoker/test_pipeline_helpers.rb +121 -0
  269. data/lib/ceedling/test_invoker/test_pipeline_manager.rb +303 -0
  270. data/lib/ceedling/test_invoker/test_runner_generatinator.rb +105 -0
  271. data/lib/ceedling/test_invoker/test_search_paths.rb +73 -0
  272. data/lib/ceedling/test_invoker/test_source_file_directive_resolver.rb +78 -0
  273. data/lib/ceedling/tool_executor.rb +42 -13
  274. data/lib/ceedling/tool_executor_helper.rb +1 -1
  275. data/lib/ceedling/tool_validator.rb +124 -123
  276. data/lib/ceedling/yaml_wrapper.rb +5 -3
  277. data/lib/version.rb +19 -2
  278. data/mkdocs.prerelease.yml +42 -0
  279. data/mkdocs.yml +10 -2
  280. data/plugins/bullseye/bullseye.rake +71 -111
  281. data/plugins/bullseye/config/defaults.yml +12 -54
  282. data/plugins/bullseye/config/defaults_bullseye.rb +182 -0
  283. data/plugins/bullseye/lib/bullseye.rb +511 -120
  284. data/plugins/bullseye/lib/bullseye_constants.rb +100 -0
  285. data/plugins/command_hooks/lib/command_hooks.rb +117 -199
  286. data/plugins/compile_commands_json_db/lib/compile_commands_json_db.rb +72 -27
  287. data/plugins/cppcheck/config/defaults.yml +6 -1
  288. data/plugins/cppcheck/config/defaults_cppcheck.rb +5 -1
  289. data/plugins/cppcheck/cppcheck.rake +7 -1
  290. data/plugins/cppcheck/lib/cppcheck.rb +175 -26
  291. data/plugins/cppcheck/lib/cppcheck_constants.rb +12 -0
  292. data/plugins/cppcheck/lib/cppcheck_reports.rb +5 -1
  293. data/plugins/dependencies/Rakefile +14 -2
  294. data/plugins/dependencies/config/defaults.yml +9 -6
  295. data/plugins/dependencies/dependencies.rake +46 -76
  296. data/plugins/dependencies/example/boss/project.yml +1 -1
  297. data/plugins/dependencies/example/supervisor/project.yml +1 -1
  298. data/plugins/dependencies/example/version.tar.gzip +0 -0
  299. data/plugins/dependencies/lib/dependencies.rb +232 -427
  300. data/plugins/dependencies/lib/dependency_commands.rb +72 -0
  301. data/plugins/dependencies/lib/dependency_environment.rb +57 -0
  302. data/plugins/dependencies/lib/dependency_spec.rb +145 -0
  303. data/plugins/fff/.rspec +1 -0
  304. data/plugins/fff/Rakefile +14 -2
  305. data/plugins/fff/examples/fff_example/project.yml +1 -1
  306. data/plugins/fff/lib/fff.rb +30 -9
  307. data/plugins/fff/lib/fff_mock_generator.rb +142 -128
  308. data/plugins/fff/spec/fff_mock_header_generator_spec.rb +15 -0
  309. data/plugins/fff/spec/fff_mock_source_generator_spec.rb +14 -0
  310. data/plugins/fff/spec/spec_helper.rb +45 -0
  311. data/plugins/fff/src/fff_unity_helper.h +5 -0
  312. data/plugins/fff/vendor/fff/fakegen.rb +5 -4
  313. data/plugins/fff/vendor/fff/fff.h +4 -4
  314. data/plugins/gcov/config/defaults.yml +5 -0
  315. data/plugins/gcov/gcov.rake +16 -15
  316. data/plugins/gcov/lib/console_reportinator.rb +140 -20
  317. data/plugins/gcov/lib/gcov.rb +155 -60
  318. data/plugins/gcov/lib/gcov_constants.rb +4 -7
  319. data/plugins/gcov/lib/gcov_reportinator.rb +90 -0
  320. data/plugins/gcov/lib/gcov_types.rb +62 -1
  321. data/plugins/gcov/lib/gcovr_reportinator.rb +255 -213
  322. data/plugins/gcov/lib/reportgenerator_reportinator.rb +122 -44
  323. data/plugins/module_generator/Rakefile +4 -4
  324. data/plugins/module_generator/config/module_generator.yml +0 -1
  325. data/plugins/module_generator/example/project.yml +1 -1
  326. data/plugins/module_generator/lib/module_generator.rb +117 -87
  327. data/plugins/module_generator/lib/module_generator_options.rb +150 -0
  328. data/plugins/module_generator/lib/module_generator_project.rb +45 -0
  329. data/plugins/module_generator/lib/module_generator_request.rb +83 -0
  330. data/plugins/module_generator/lib/module_generator_test_file.rb +68 -0
  331. data/plugins/module_generator/lib/module_generator_unity.rb +24 -0
  332. data/plugins/module_generator/module_generator.rake +24 -46
  333. data/plugins/report_build_warnings_log/config/defaults.yml +4 -1
  334. data/plugins/report_build_warnings_log/lib/report_build_warnings_log.rb +47 -55
  335. data/plugins/report_build_warnings_log/lib/warning_collector.rb +140 -0
  336. data/plugins/report_build_warnings_log/lib/warning_reports.rb +135 -0
  337. data/plugins/report_tests_gtestlike_stdout/assets/test_results.template +3 -0
  338. data/{spec/units/configurator_builder_spec.rb → plugins/report_tests_gtestlike_stdout/config/defaults.yml} +6 -10
  339. data/plugins/report_tests_gtestlike_stdout/lib/gtestlike_report.rb +168 -0
  340. data/plugins/report_tests_gtestlike_stdout/lib/report_tests_gtestlike_stdout.rb +25 -1
  341. data/plugins/report_tests_ide_stdout/assets/test_results.template +50 -0
  342. data/plugins/report_tests_ide_stdout/config/defaults.yml +13 -0
  343. data/plugins/report_tests_ide_stdout/lib/ide_report_lines.rb +103 -0
  344. data/plugins/report_tests_ide_stdout/lib/report_tests_ide_stdout.rb +12 -4
  345. data/plugins/report_tests_log_factory/lib/cppunit_tests_reporter.rb +33 -51
  346. data/plugins/report_tests_log_factory/lib/html_tests_reporter.rb +286 -295
  347. data/plugins/report_tests_log_factory/lib/json_tests_reporter.rb +22 -35
  348. data/plugins/report_tests_log_factory/lib/junit_tests_reporter.rb +91 -133
  349. data/plugins/report_tests_log_factory/lib/report_tests_log_factory.rb +72 -86
  350. data/plugins/report_tests_log_factory/lib/tests_reporter.rb +31 -12
  351. data/plugins/report_tests_pretty_stdout/assets/{template.erb → test_results.template} +8 -8
  352. data/plugins/report_tests_raw_output_log/lib/report_tests_raw_output_log.rb +18 -48
  353. data/plugins/report_tests_teamcity_stdout/lib/report_tests_teamcity_stdout.rb +13 -2
  354. data/plugins/sanitize/config/defaults.yml +44 -0
  355. data/plugins/sanitize/config/defaults_sanitize.rb +20 -0
  356. data/plugins/sanitize/lib/sanitize.rb +174 -0
  357. data/plugins/sanitize/lib/sanitize_config.rb +110 -0
  358. data/plugins/sanitize/lib/sanitize_constants.rb +13 -0
  359. data/plugins/sanitize/lib/sanitize_findings.rb +85 -0
  360. data/plugins/sanitize/lib/sanitize_records.rb +115 -0
  361. data/plugins/sanitize/lib/sanitize_reports.rb +135 -0
  362. data/plugins/sanitize/sanitize.rake +108 -0
  363. data/plugins/valgrind/config/defaults.yml +7 -1
  364. data/plugins/valgrind/config/defaults_valgrind.rb +6 -1
  365. data/plugins/valgrind/lib/valgrind.rb +202 -39
  366. data/plugins/valgrind/lib/valgrind_constants.rb +4 -0
  367. data/plugins/valgrind/lib/valgrind_report.rb +52 -0
  368. data/plugins/valgrind/valgrind.rake +37 -15
  369. data/site-local/404.html +239 -19
  370. data/site-local/assets/javascripts/{bundle.d7400e89.min.js → bundle.c21346df.min.js} +3 -3
  371. data/site-local/assets/javascripts/{bundle.d7400e89.min.js.map → bundle.c21346df.min.js.map} +2 -2
  372. data/site-local/assets/javascripts/workers/{search.2c215733.min.js → search.a7633da7.min.js} +2 -2
  373. data/site-local/assets/javascripts/workers/{search.2c215733.min.js.map → search.a7633da7.min.js.map} +1 -1
  374. data/site-local/assets/stylesheets/main.57a0d79d.min.css +6 -0
  375. data/site-local/assets/stylesheets/main.57a0d79d.min.css.map +1 -0
  376. data/site-local/assets/stylesheets/palette.fb2fffe2.min.css +4 -0
  377. data/site-local/assets/stylesheets/palette.fb2fffe2.min.css.map +1 -0
  378. data/site-local/configuration/environment-vars.html +239 -19
  379. data/site-local/configuration/global-collections.html +239 -24
  380. data/site-local/configuration/index.html +240 -20
  381. data/site-local/configuration/loading.html +251 -27
  382. data/site-local/configuration/mixins.html +247 -26
  383. data/site-local/configuration/parallel-builds.html +239 -19
  384. data/site-local/configuration/project-file.html +268 -37
  385. data/site-local/configuration/reference/cexception.html +246 -25
  386. data/site-local/configuration/reference/cmock.html +272 -19
  387. data/site-local/configuration/reference/defines.html +263 -34
  388. data/site-local/configuration/reference/environment.html +246 -26
  389. data/site-local/configuration/reference/extension.html +352 -21
  390. data/site-local/configuration/reference/files.html +258 -24
  391. data/site-local/configuration/reference/flags.html +268 -31
  392. data/site-local/configuration/reference/index.html +239 -19
  393. data/site-local/configuration/reference/libraries.html +239 -19
  394. data/site-local/configuration/reference/mixins.html +239 -19
  395. data/site-local/configuration/reference/partials.html +240 -24
  396. data/site-local/configuration/reference/paths.html +269 -23
  397. data/site-local/configuration/reference/plugins.html +239 -19
  398. data/site-local/configuration/reference/project.html +292 -29
  399. data/site-local/configuration/reference/release-build.html +247 -19
  400. data/site-local/configuration/reference/test-build.html +281 -29
  401. data/site-local/configuration/reference/test-runner.html +279 -22
  402. data/site-local/configuration/reference/tools.html +257 -31
  403. data/site-local/configuration/reference/unity.html +271 -20
  404. data/site-local/configuration/which-ceedling.html +239 -19
  405. data/site-local/development/index.html +245 -19
  406. data/site-local/development/plugins/configuration.html +260 -22
  407. data/site-local/development/plugins/index.html +258 -20
  408. data/site-local/development/plugins/plugin-subclass.html +912 -174
  409. data/site-local/development/plugins/rake-tasks.html +269 -21
  410. data/site-local/development/releases.html +4759 -0
  411. data/site-local/development/workflow.html +1023 -58
  412. data/site-local/getting-started/builds.html +4593 -0
  413. data/site-local/getting-started/command-line.html +409 -39
  414. data/site-local/getting-started/example-projects/cipher-quest.html +239 -19
  415. data/site-local/getting-started/example-projects/index.html +240 -20
  416. data/site-local/getting-started/example-projects/temp-sensor.html +239 -19
  417. data/site-local/getting-started/example-projects/wondrous-forest.html +239 -19
  418. data/site-local/getting-started/index.html +246 -19
  419. data/site-local/getting-started/installation.html +249 -27
  420. data/site-local/getting-started/quick-start.html +242 -20
  421. data/site-local/help.html +246 -19
  422. data/site-local/index.html +284 -27
  423. data/site-local/overview/build-system.html +240 -20
  424. data/site-local/overview/index.html +239 -19
  425. data/site-local/overview/test-environments.html +248 -19
  426. data/site-local/overview/tools-and-frameworks.html +239 -19
  427. data/site-local/plugins/beep.html +242 -19
  428. data/site-local/plugins/bullseye/index.html +5068 -0
  429. data/site-local/plugins/bullseye/licensing.html +4826 -0
  430. data/site-local/plugins/command-hooks.html +258 -34
  431. data/site-local/plugins/compile-commands-json-db.html +247 -22
  432. data/site-local/plugins/cppcheck.html +1073 -268
  433. data/site-local/plugins/dependencies.html +927 -249
  434. data/site-local/plugins/fff.html +288 -21
  435. data/site-local/plugins/gcov/examples.html +243 -20
  436. data/site-local/plugins/gcov/gcovr.html +559 -71
  437. data/site-local/plugins/gcov/index.html +242 -19
  438. data/site-local/plugins/gcov/overview.html +253 -23
  439. data/site-local/plugins/gcov/reportgenerator.html +380 -46
  440. data/site-local/plugins/gcov/reporting.html +339 -105
  441. data/site-local/plugins/gcov/setup.html +244 -20
  442. data/site-local/plugins/gcov/tool-versions.html +292 -24
  443. data/site-local/plugins/gcov/troubleshooting.html +265 -42
  444. data/site-local/plugins/index.html +285 -41
  445. data/site-local/plugins/module-generator.html +770 -200
  446. data/site-local/plugins/report-build-warnings-log.html +569 -38
  447. data/site-local/plugins/report-tests-gtestlike-stdout.html +458 -89
  448. data/site-local/plugins/report-tests-ide-stdout.html +645 -56
  449. data/site-local/plugins/report-tests-log-factory.html +364 -111
  450. data/site-local/plugins/report-tests-pretty-stdout.html +243 -20
  451. data/site-local/plugins/report-tests-raw-output-log.html +242 -19
  452. data/site-local/plugins/report-tests-teamcity-stdout.html +252 -29
  453. data/site-local/plugins/sanitize.html +5322 -0
  454. data/site-local/plugins/valgrind.html +414 -34
  455. data/site-local/{plugins/bullseye.html → project/index.html} +288 -222
  456. data/site-local/project/release-history.html +242 -22
  457. data/site-local/project/sbom.html +4712 -0
  458. data/site-local/project/upgrade.html +241 -21
  459. data/site-local/reference/build-directives.html +248 -19
  460. data/site-local/reference/command-line.html +364 -21
  461. data/site-local/reference/environment-vars.html +239 -19
  462. data/site-local/reference/gcov-plugin.html +483 -23
  463. data/site-local/reference/global-collections.html +240 -20
  464. data/site-local/reference/index.html +239 -19
  465. data/site-local/reference/partials-macros.html +249 -19
  466. data/site-local/reference/project-configuration.html +239 -19
  467. data/site-local/sitemap.xml.gz +0 -0
  468. data/{docs/mkdocs/snapshot/assets → site-local/snapshot/assets/features}/project.yml +4 -1
  469. data/site-local/snapshot/examples/cipher_quest/index.html +249 -29
  470. data/site-local/snapshot/examples/temp_sensor/index.html +241 -21
  471. data/site-local/snapshot/examples/wondrous_forest/index.html +256 -30
  472. data/site-local/snapshot/plugins/bullseye/config/defaults.yml +24 -0
  473. data/site-local/snapshot/plugins/bullseye/config/defaults_bullseye.rb +182 -0
  474. data/site-local/snapshot/plugins/gcov/config/defaults.yml +5 -0
  475. data/site-local/testing-guide/build-directives.html +331 -35
  476. data/site-local/testing-guide/conventions.html +671 -160
  477. data/site-local/testing-guide/frameworks.html +244 -24
  478. data/site-local/testing-guide/index.html +239 -26
  479. data/site-local/testing-guide/partials/configuration.html +241 -21
  480. data/site-local/testing-guide/partials/conventions.html +308 -23
  481. data/site-local/testing-guide/partials/directives.html +452 -58
  482. data/site-local/testing-guide/partials/example.html +247 -27
  483. data/site-local/testing-guide/partials/index.html +246 -19
  484. data/site-local/testing-guide/partials/overview.html +239 -19
  485. data/site-local/testing-guide/partials/variables.html +244 -24
  486. data/site-local/testing-guide/test-cases.html +246 -26
  487. data/site-local/testing-guide/test-sample.html +245 -25
  488. data/site-local/testing-guide/test-suite-anatomy.html +239 -19
  489. data/spec/integration/actionator_file_operations_spec.rb +287 -0
  490. data/spec/integration/analysis_tool_output_spec.rb +204 -0
  491. data/spec/{units/c_extractor/c_extractor_integration_spec.rb → integration/c_extractor_composition_spec.rb} +196 -17
  492. data/spec/integration/command_hooks_plugin_spec.rb +152 -0
  493. data/spec/integration/compile_commands_json_db_spec.rb +76 -0
  494. data/spec/integration/configurator_pipeline_spec.rb +190 -0
  495. data/spec/integration/configurator_plugins_spec.rb +122 -0
  496. data/spec/integration/configurator_validation_spec.rb +98 -0
  497. data/spec/integration/dependencies/dependency_tracker_cache_hardening_spec.rb +396 -0
  498. data/spec/integration/dependencies/dependency_tracker_core_spec.rb +284 -0
  499. data/spec/integration/dependencies/dependency_tracker_diagnose_spec.rb +224 -0
  500. data/spec/integration/dependencies/dependency_tracker_filename_handling_spec.rb +118 -0
  501. data/spec/integration/dependencies/dependency_tracker_gcc_deps_spec.rb +199 -0
  502. data/spec/integration/dependencies/dependency_tracker_pruning_spec.rb +167 -0
  503. data/spec/integration/dependencies_plugin_spec.rb +473 -0
  504. data/spec/integration/erb_dependency_removed_spec.rb +167 -0
  505. data/spec/integration/includes_extraction_spec.rb +612 -0
  506. data/spec/integration/mixin_loading_spec.rb +414 -0
  507. data/spec/integration/module_generator_spec.rb +436 -0
  508. data/spec/integration/partials_fallback_preprocessing_spec.rb +316 -0
  509. data/spec/integration/partials_header_composition_spec.rb +889 -0
  510. data/spec/integration/partials_module_resolution_spec.rb +372 -0
  511. data/spec/integration/partials_symbol_linkage_spec.rb +371 -0
  512. data/spec/integration/preprocessing_transient_io_retry_spec.rb +135 -0
  513. data/spec/integration/quote_include_isolator_spec.rb +167 -0
  514. data/spec/integration/rake_task_registry_plugins_spec.rb +95 -0
  515. data/spec/integration/report_build_warnings_log_spec.rb +170 -0
  516. data/spec/integration/report_tests_log_factory_spec.rb +100 -0
  517. data/spec/integration/sanitizer_exclusions_spec.rb +126 -0
  518. data/spec/integration/system_harness_sanitizers_spec.rb +104 -0
  519. data/spec/integration/test_build_parallel_barrier_spec.rb +89 -0
  520. data/spec/integration/test_executable_manifest_spec.rb +118 -0
  521. data/spec/integration/test_includes_extractinator_spec.rb +293 -0
  522. data/spec/integration/tool_executor_spec.rb +224 -0
  523. data/spec/integration/tool_validator_spec.rb +133 -0
  524. data/spec/integration/vendor_copy_transient_io_retry_spec.rb +178 -0
  525. data/spec/manual/stress_test.rb +1 -1
  526. data/spec/support/config_yaml_helper.rb +17 -0
  527. data/spec/support/fixtures/sanitizer_reports/clang_asan_heap.txt +45 -0
  528. data/spec/support/fixtures/sanitizer_reports/clang_ubsan_shift.txt +5 -0
  529. data/spec/support/fixtures/sanitizer_reports/gcc_heap.txt +47 -0
  530. data/spec/support/fixtures/sanitizer_reports/gcc_leak.txt +10 -0
  531. data/spec/support/fixtures/sanitizer_reports/gcc_segv.txt +6 -0
  532. data/spec/support/fixtures/sanitizer_reports/gcc_ubsan_shift.txt +6 -0
  533. data/spec/support/fixtures/templates/bullseye__all_pass.txt +6 -0
  534. data/spec/support/fixtures/templates/bullseye__coverage_branches_only.txt +6 -0
  535. data/spec/support/fixtures/templates/bullseye__coverage_functions_only.txt +6 -0
  536. data/spec/support/fixtures/templates/bullseye__coverage_none.txt +6 -0
  537. data/spec/support/fixtures/templates/bullseye__empty.txt +6 -0
  538. data/spec/support/fixtures/templates/bullseye__gcov_context.txt +6 -0
  539. data/spec/support/fixtures/templates/bullseye__mixed_all.txt +6 -0
  540. data/spec/support/fixtures/templates/bullseye__one_failure_matching.txt +6 -0
  541. data/spec/support/fixtures/templates/bullseye__one_failure_multiline.txt +6 -0
  542. data/spec/support/fixtures/templates/bullseye__one_failure_no_message.txt +6 -0
  543. data/spec/support/fixtures/templates/bullseye__one_failure_nonmatching.txt +6 -0
  544. data/spec/support/fixtures/templates/bullseye__one_ignore_no_message.txt +6 -0
  545. data/spec/support/fixtures/templates/bullseye__one_ignore_with_message.txt +6 -0
  546. data/spec/support/fixtures/templates/bullseye__stdout_only.txt +6 -0
  547. data/spec/support/fixtures/templates/ide__all_pass.txt +10 -0
  548. data/spec/support/fixtures/templates/ide__coverage_branches_only.txt +10 -0
  549. data/spec/support/fixtures/templates/ide__coverage_functions_only.txt +10 -0
  550. data/spec/support/fixtures/templates/ide__coverage_none.txt +10 -0
  551. data/spec/support/fixtures/templates/ide__empty.txt +8 -0
  552. data/spec/support/fixtures/templates/ide__gcov_context.txt +28 -0
  553. data/spec/support/fixtures/templates/ide__mixed_all.txt +29 -0
  554. data/spec/support/fixtures/templates/ide__one_failure_matching.txt +15 -0
  555. data/spec/support/fixtures/templates/ide__one_failure_multiline.txt +17 -0
  556. data/spec/support/fixtures/templates/ide__one_failure_no_message.txt +15 -0
  557. data/spec/support/fixtures/templates/ide__one_failure_nonmatching.txt +15 -0
  558. data/spec/support/fixtures/templates/ide__one_ignore_no_message.txt +15 -0
  559. data/spec/support/fixtures/templates/ide__one_ignore_with_message.txt +15 -0
  560. data/spec/support/fixtures/templates/ide__stdout_only.txt +16 -0
  561. data/spec/support/fixtures/templates/pretty__all_pass.txt +8 -0
  562. data/spec/support/fixtures/templates/pretty__coverage_branches_only.txt +8 -0
  563. data/spec/support/fixtures/templates/pretty__coverage_functions_only.txt +8 -0
  564. data/spec/support/fixtures/templates/pretty__coverage_none.txt +8 -0
  565. data/spec/support/fixtures/templates/pretty__empty.txt +6 -0
  566. data/spec/support/fixtures/templates/pretty__gcov_context.txt +31 -0
  567. data/spec/support/fixtures/templates/pretty__mixed_all.txt +35 -0
  568. data/spec/support/fixtures/templates/pretty__one_failure_matching.txt +15 -0
  569. data/spec/support/fixtures/templates/pretty__one_failure_multiline.txt +17 -0
  570. data/spec/support/fixtures/templates/pretty__one_failure_no_message.txt +15 -0
  571. data/spec/support/fixtures/templates/pretty__one_failure_nonmatching.txt +15 -0
  572. data/spec/support/fixtures/templates/pretty__one_ignore_no_message.txt +15 -0
  573. data/spec/support/fixtures/templates/pretty__one_ignore_with_message.txt +15 -0
  574. data/spec/support/fixtures/templates/pretty__stdout_only.txt +15 -0
  575. data/spec/support/fixtures/valgrind_reports/sigsegv.log +51 -0
  576. data/spec/support/fixtures/valgrind_reports/sigsegv.xml +182 -0
  577. data/spec/support/include_guard_helper.rb +20 -0
  578. data/spec/support/integration/configurator_integration_helper.rb +162 -0
  579. data/spec/support/integration/dependency_tracker_integration_helper.rb +136 -0
  580. data/spec/support/integration/partials_generation_integration_helper.rb +726 -0
  581. data/spec/support/integration/spec_integration_helper.rb +285 -0
  582. data/spec/support/integration/test_includes_harness.rb +259 -0
  583. data/spec/support/integration/tool_executor_integration_helper.rb +55 -0
  584. data/spec/support/spec_helper.rb +41 -0
  585. data/spec/support/system/sanitizers/asan_ubsan.yml +82 -0
  586. data/spec/support/system/sanitizers/asan_ubsan_leaks.yml +57 -0
  587. data/spec/support/system/simplecov_boot.rb +66 -0
  588. data/spec/support/system/spec_system_helper.rb +376 -16
  589. data/spec/support/system/system_context.rb +181 -59
  590. data/spec/support/template_render_cases.rb +166 -0
  591. data/spec/system/bracket_path_handling_spec.rb +175 -0
  592. data/spec/system/build_output_mirroring_spec.rb +89 -0
  593. data/spec/system/build_recovery_spec.rb +382 -0
  594. data/spec/system/bullseye_deployment_spec.rb +102 -0
  595. data/spec/system/cli_surface_spec.rb +245 -0
  596. data/spec/system/command_hooks_spec.rb +117 -0
  597. data/spec/system/conditional_include_macro_visibility_spec.rb +32 -124
  598. data/spec/system/conditional_mock_includes_spec.rb +181 -0
  599. data/spec/system/cppcheck_deployment_spec.rb +26 -8
  600. data/spec/system/delta_builds_spec.rb +751 -0
  601. data/spec/system/deployment_as_gem_spec.rb +7 -0
  602. data/spec/system/deployment_as_vendor_spec.rb +29 -145
  603. data/spec/system/dumpconfig_spec.rb +137 -0
  604. data/spec/system/encoding_stress_spec.rb +7 -4
  605. data/spec/system/example_cipher_quest_spec.rb +25 -100
  606. data/spec/system/example_temp_sensor_spec.rb +30 -172
  607. data/spec/system/example_wondrous_forest_spec.rb +25 -62
  608. data/spec/system/extension_multiple_values_spec.rb +75 -0
  609. data/spec/system/files_paths_reporting_spec.rb +154 -0
  610. data/spec/system/gcov_deployment_spec.rb +72 -3
  611. data/spec/system/header_include_path_validation_spec.rb +222 -0
  612. data/spec/system/implicit_source_header_correspondence_disambiguation_spec.rb +100 -0
  613. data/spec/system/include_path_reconciliation_spec.rb +64 -0
  614. data/spec/system/mixin_ordering_spec.rb +30 -415
  615. data/spec/system/mocks_partials_configuration_validation_spec.rb +126 -0
  616. data/spec/system/parent_directory_reference_spec.rb +114 -0
  617. data/spec/system/partials_module_disambiguation_spec.rb +143 -0
  618. data/spec/system/pinned_thread_count_spec.rb +102 -0
  619. data/spec/system/plugin_delta_builds_spec.rb +179 -0
  620. data/spec/system/preprocessing_encoding_spec.rb +87 -4
  621. data/spec/system/preprocessing_fallback_conditionals_spec.rb +19 -25
  622. data/spec/system/preprocessing_parameterized_tests_spec.rb +2 -2
  623. data/spec/system/rake_release_task_path_disambiguation_spec.rb +97 -0
  624. data/spec/system/rake_test_task_path_disambiguation_spec.rb +118 -0
  625. data/spec/system/report_and_tooling_plugins_spec.rb +327 -0
  626. data/spec/system/ruby_replacement_spec.rb +1 -1
  627. data/spec/system/same_named_modules_spec.rb +115 -0
  628. data/spec/system/sanitize_deployment_spec.rb +64 -0
  629. data/spec/system/shuffle_tests_spec.rb +139 -0
  630. data/spec/system/sibling_header_collision_spec.rb +620 -0
  631. data/spec/system/subdir_include_preservation_spec.rb +63 -0
  632. data/spec/system/support/bullseye_common_test_cases.rb +369 -0
  633. data/spec/system/support/bullseye_helpers.rb +70 -0
  634. data/spec/system/support/common_test_cases.rb +167 -43
  635. data/spec/system/support/cppcheck_common_test_cases.rb +80 -0
  636. data/spec/system/support/cppcheck_helpers.rb +10 -8
  637. data/spec/system/support/gcov_common_test_cases.rb +173 -37
  638. data/spec/system/support/gcov_helpers.rb +3 -3
  639. data/spec/system/support/gcov_partials_test_cases.rb +48 -2
  640. data/spec/system/support/sanitize_common_test_cases.rb +222 -0
  641. data/spec/system/support/sanitize_helpers.rb +27 -0
  642. data/spec/system/support/valgrind_common_test_cases.rb +116 -16
  643. data/spec/system/support/valgrind_helpers.rb +3 -4
  644. data/spec/system/test_pipeline_stop_points_spec.rb +160 -0
  645. data/spec/system/test_runner_system_include_spec.rb +19 -41
  646. data/spec/system/test_source_file_directive_spec.rb +235 -0
  647. data/spec/system/upgrade_as_vendor_spec.rb +25 -46
  648. data/spec/system/valgrind_deployment_spec.rb +41 -0
  649. data/spec/units/batchinator_spec.rb +314 -0
  650. data/spec/units/bin/actionator_spec.rb +412 -0
  651. data/spec/units/bin/app_cfg_spec.rb +100 -0
  652. data/spec/units/bin/cli_handler_spec.rb +205 -0
  653. data/spec/units/bin/cli_helper_spec.rb +248 -10
  654. data/spec/units/bin/cli_options_transform_spec.rb +49 -0
  655. data/spec/units/bin/composinator_spec.rb +236 -0
  656. data/spec/units/bin/{projectinator_mixin_spec.rb → mixin_resolvinator_spec.rb} +122 -83
  657. data/spec/units/bin/mixin_standardizer_spec.rb +4 -3
  658. data/spec/units/bin/mixinator_spec.rb +58 -22
  659. data/spec/units/bin/path_validator_spec.rb +112 -0
  660. data/spec/units/bin/projectinator_spec.rb +223 -0
  661. data/spec/units/bin/rake_patches_spec.rb +52 -0
  662. data/spec/units/bin/recursive_merger_spec.rb +22 -0
  663. data/spec/units/bin/versionator_spec.rb +104 -0
  664. data/spec/units/c_extractor/c_extractor_code_text_spec.rb +4 -4
  665. data/spec/units/c_extractor/c_extractor_declarations_spec.rb +70 -0
  666. data/spec/units/c_extractor/c_extractor_functions_spec.rb +75 -1
  667. data/spec/units/c_extractor/c_extractor_preprocessing_spec.rb +158 -0
  668. data/spec/units/c_extractor/c_extractor_spec.rb +236 -6
  669. data/spec/units/ceedling/templateinator_golden_spec.rb +84 -0
  670. data/spec/units/ceedling/templateinator_spec.rb +188 -0
  671. data/spec/units/config/configurator_builder_spec.rb +444 -0
  672. data/spec/units/config/configurator_plugins_spec.rb +160 -0
  673. data/spec/units/config/configurator_setup_spec.rb +724 -6
  674. data/spec/units/config/configurator_spec.rb +961 -0
  675. data/spec/units/config/configurator_validator_spec.rb +259 -0
  676. data/spec/units/config/line_marker_suppressors_spec.rb +89 -0
  677. data/spec/units/config_matchinator_spec.rb +103 -0
  678. data/spec/units/defineinator_spec.rb +158 -0
  679. data/spec/units/dependencies/dependency_cache_store_spec.rb +364 -0
  680. data/spec/units/dependencies/dependency_debug_tree_spec.rb +189 -0
  681. data/spec/units/dependencies/dependency_differ_spec.rb +139 -0
  682. data/spec/units/dependencies/dependency_hasher_spec.rb +141 -0
  683. data/spec/units/dependencies/dependency_path_normalizer_spec.rb +111 -0
  684. data/spec/units/dependencies/dependency_tracker_spec.rb +905 -0
  685. data/spec/units/dependencies/dependinator_spec.rb +99 -0
  686. data/spec/units/dependencies/gcc_dependency_parser_spec.rb +152 -0
  687. data/spec/units/encodinator_spec.rb +92 -0
  688. data/spec/units/file_finder_helper_spec.rb +99 -15
  689. data/spec/units/file_finder_spec.rb +495 -0
  690. data/spec/units/file_path_collection_utils_spec.rb +9 -0
  691. data/spec/units/file_path_utils_spec.rb +736 -0
  692. data/spec/units/file_wrapper_spec.rb +486 -0
  693. data/spec/units/filename_extension_spec.rb +120 -0
  694. data/spec/units/flaginator_spec.rb +114 -0
  695. data/spec/units/generators/generator_helper_spec.rb +113 -0
  696. data/spec/units/generators/generator_mocks_spec.rb +131 -0
  697. data/spec/units/generators/generator_partials_spec.rb +336 -160
  698. data/spec/units/generators/generator_spec.rb +317 -0
  699. data/spec/units/generators/generator_test_results_backtrace_spec.rb +169 -9
  700. data/spec/units/generators/generator_test_results_sanity_checker_spec.rb +14 -6
  701. data/spec/units/generators/generator_test_results_spec.rb +65 -8
  702. data/spec/units/generators/generator_test_runner_spec.rb +1 -1
  703. data/spec/units/includes/include_factory_spec.rb +53 -0
  704. data/spec/units/includes/include_pathinator_spec.rb +269 -0
  705. data/spec/units/includes/include_spec.rb +8 -4
  706. data/spec/units/includes/includes_spec.rb +326 -18
  707. data/spec/units/mock_locator_spec.rb +74 -0
  708. data/spec/units/parsing_parcels_spec.rb +65 -0
  709. data/spec/units/partials/partializer_config_spec.rb +284 -18
  710. data/spec/units/partials/partializer_helper_spec.rb +122 -0
  711. data/spec/units/partials/partializer_spec.rb +346 -71
  712. data/spec/units/partials/partializer_utils_spec.rb +4 -4
  713. data/spec/units/partials_manager_spec.rb +539 -0
  714. data/spec/units/path_matcher_spec.rb +193 -0
  715. data/spec/units/path_mirror_spec.rb +103 -0
  716. data/spec/units/plugin_manager_spec.rb +77 -0
  717. data/spec/units/plugin_reportinator_spec.rb +78 -3
  718. data/spec/units/plugins/bullseye_spec.rb +1068 -0
  719. data/spec/units/plugins/command_hooks_spec.rb +157 -0
  720. data/spec/units/plugins/compile_commands_json_db_spec.rb +145 -0
  721. data/spec/units/plugins/console_reportinator_spec.rb +370 -0
  722. data/spec/units/plugins/cppcheck_spec.rb +330 -4
  723. data/spec/units/plugins/cppunit_tests_reporter_spec.rb +118 -0
  724. data/spec/units/plugins/dependencies_spec.rb +295 -0
  725. data/spec/units/plugins/dependency_commands_spec.rb +83 -0
  726. data/spec/units/plugins/dependency_environment_spec.rb +64 -0
  727. data/spec/units/plugins/dependency_spec_spec.rb +170 -0
  728. data/spec/units/plugins/gcov_reportinator_spec.rb +272 -0
  729. data/spec/units/plugins/gcov_spec.rb +521 -0
  730. data/spec/units/plugins/gcovr_reportinator_spec.rb +795 -0
  731. data/spec/units/plugins/gtestlike_report_spec.rb +363 -0
  732. data/spec/units/plugins/html_tests_reporter_spec.rb +158 -0
  733. data/spec/units/plugins/ide_report_lines_spec.rb +229 -0
  734. data/spec/units/plugins/json_tests_reporter_spec.rb +87 -0
  735. data/spec/units/plugins/junit_tests_reporter_spec.rb +237 -0
  736. data/spec/units/plugins/module_generator_options_spec.rb +185 -0
  737. data/spec/units/plugins/module_generator_project_spec.rb +55 -0
  738. data/spec/units/plugins/module_generator_request_spec.rb +107 -0
  739. data/spec/units/plugins/module_generator_spec.rb +214 -0
  740. data/spec/units/plugins/module_generator_test_file_spec.rb +102 -0
  741. data/spec/units/plugins/module_generator_unity_spec.rb +37 -0
  742. data/spec/units/plugins/report_build_warnings_log_spec.rb +199 -0
  743. data/spec/units/plugins/report_log_writer_plugin_spec.rb +94 -0
  744. data/spec/units/plugins/report_tests_gtestlike_stdout_spec.rb +274 -0
  745. data/spec/units/plugins/report_tests_ide_stdout_spec.rb +140 -0
  746. data/spec/units/plugins/report_tests_log_factory_spec.rb +210 -0
  747. data/spec/units/plugins/report_tests_pretty_stdout_spec.rb +83 -0
  748. data/spec/units/plugins/report_tests_raw_output_log_spec.rb +98 -0
  749. data/spec/units/plugins/report_tests_stdout_plugin_spec.rb +145 -0
  750. data/spec/units/plugins/report_tests_teamcity_stdout_spec.rb +121 -0
  751. data/spec/units/plugins/reportgenerator_reportinator_spec.rb +410 -0
  752. data/spec/units/plugins/sanitize_config_spec.rb +119 -0
  753. data/spec/units/plugins/sanitize_findings_spec.rb +69 -0
  754. data/spec/units/plugins/sanitize_records_spec.rb +114 -0
  755. data/spec/units/plugins/sanitize_reports_spec.rb +84 -0
  756. data/spec/units/plugins/sanitize_spec.rb +300 -0
  757. data/spec/units/plugins/tests_reporter_spec.rb +89 -0
  758. data/spec/units/plugins/valgrind_spec.rb +560 -0
  759. data/spec/units/plugins/warning_collector_spec.rb +185 -0
  760. data/spec/units/plugins/warning_reports_spec.rb +150 -0
  761. data/spec/units/preprocess/c_comment_scanner_spec.rb +17 -17
  762. data/spec/units/preprocess/c_preprocessor_conditionals_spec.rb +94 -0
  763. data/spec/units/preprocess/preprocessinator_bare_includes_extractor_spec.rb +73 -0
  764. data/spec/units/preprocess/preprocessinator_code_finder_spec.rb +35 -16
  765. data/spec/units/preprocess/preprocessinator_comment_stripper_spec.rb +129 -48
  766. data/spec/units/preprocess/preprocessinator_file_assembler_spec.rb +292 -9
  767. data/spec/units/preprocess/preprocessinator_includes_handler_spec.rb +294 -16
  768. data/spec/units/preprocess/preprocessinator_line_marker_includes_extractor_spec.rb +356 -6
  769. data/spec/units/preprocess/preprocessinator_reconstructor_spec.rb +58 -4
  770. data/spec/units/preprocess/preprocessinator_spec.rb +693 -5
  771. data/spec/units/quote_include_isolator_spec.rb +176 -0
  772. data/spec/units/rake_app/rake_invocation_tracker_spec.rb +94 -0
  773. data/spec/units/rake_app/rake_task_registry_spec.rb +263 -0
  774. data/spec/units/rake_app/rake_utils_spec.rb +54 -0
  775. data/spec/units/rake_app/rake_wrapper_spec.rb +64 -0
  776. data/spec/units/rake_app/rakefile_component_resolver_spec.rb +182 -0
  777. data/spec/units/rake_app/test_task_name_spec.rb +47 -0
  778. data/spec/units/release_build_executor_spec.rb +404 -0
  779. data/spec/units/release_build_planner_spec.rb +144 -0
  780. data/spec/units/release_invoker_spec.rb +127 -0
  781. data/spec/units/reportinator_spec.rb +35 -0
  782. data/spec/units/ruby_expandinator_spec.rb +36 -0
  783. data/spec/units/standin_headerinator_spec.rb +168 -0
  784. data/spec/units/system_wrapper_spec.rb +16 -0
  785. data/spec/units/test_build_executor_spec.rb +1693 -8
  786. data/spec/units/test_build_planner_spec.rb +878 -0
  787. data/spec/units/test_build_setup_spec.rb +583 -0
  788. data/spec/units/test_context_extractor_spec.rb +51 -3
  789. data/spec/units/test_file_preprocessinator_spec.rb +206 -0
  790. data/spec/units/test_includes_extractinator_spec.rb +764 -0
  791. data/spec/units/test_invoker/objects_wiring_spec.rb +31 -0
  792. data/spec/units/test_invoker_spec.rb +147 -0
  793. data/spec/units/test_invoker_types_spec.rb +182 -0
  794. data/spec/units/test_pipeline_helpers_spec.rb +100 -0
  795. data/spec/units/test_pipeline_manager_spec.rb +415 -0
  796. data/spec/units/test_runner_generatinator_spec.rb +215 -0
  797. data/spec/units/test_runner_manager_spec.rb +70 -0
  798. data/spec/units/test_search_paths_spec.rb +84 -0
  799. data/spec/units/test_source_file_directive_resolver_spec.rb +239 -0
  800. data/spec/units/tool_executor_helper_spec.rb +1 -1
  801. data/spec/units/tool_executor_spec.rb +571 -2
  802. data/spec/units/tool_validator_spec.rb +303 -24
  803. data/spec/units/version_spec.rb +74 -0
  804. data/spec/units/yaml_wrapper_spec.rb +4 -1
  805. data/vendor/cmock/docs/CMock_Summary.md +11 -0
  806. data/vendor/cmock/lib/cmock_config.rb +1 -0
  807. data/vendor/cmock/lib/cmock_generator.rb +5 -1
  808. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +31 -0
  809. data/vendor/cmock/vendor/unity/auto/generate_module.rb +4 -4
  810. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +8 -2
  811. data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +2 -2
  812. data/vendor/cmock/vendor/unity/docs/UnityChangeLog.md +7 -0
  813. data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +4 -0
  814. data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +9 -0
  815. data/vendor/cmock/vendor/unity/src/unity_internals.h +21 -7
  816. data/vendor/cmock/vendor/unity/test/Makefile +9 -2
  817. data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +1 -0
  818. data/vendor/cmock/vendor/unity/test/spec/generate_module_naming_spec.rb +38 -0
  819. data/vendor/cmock/vendor/unity/test/testdata/spi/MockConfig.h +19 -0
  820. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithSameNamedMocks.c +42 -0
  821. data/vendor/cmock/vendor/unity/test/testdata/uart/MockConfig.h +19 -0
  822. data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +78 -0
  823. data/vendor/cmock/vendor/unity/test/tests/test_unity_test_summary.rb +58 -0
  824. data/vendor/diy/lib/diy/factory.rb +5 -4
  825. data/vendor/diy/lib/diy.rb +5 -4
  826. data/vendor/diy/sample_code/car.rb +5 -4
  827. data/vendor/diy/sample_code/chassis.rb +5 -4
  828. data/vendor/diy/sample_code/diy_example.rb +5 -4
  829. data/vendor/diy/sample_code/engine.rb +5 -4
  830. data/vendor/diy/sample_code/objects.yml +5 -4
  831. data/vendor/diy/test/constructor.rb +5 -4
  832. data/vendor/diy/test/diy_test.rb +5 -4
  833. data/vendor/diy/test/factory_test.rb +5 -4
  834. data/vendor/diy/test/files/broken_construction.yml +5 -4
  835. data/vendor/diy/test/files/cat/cat.rb +5 -4
  836. data/vendor/diy/test/files/cat/extra_conflict.yml +5 -4
  837. data/vendor/diy/test/files/cat/heritage.rb +5 -4
  838. data/vendor/diy/test/files/cat/needs_input.yml +5 -4
  839. data/vendor/diy/test/files/cat/the_cat_lineage.rb +5 -4
  840. data/vendor/diy/test/files/dog/dog_model.rb +5 -4
  841. data/vendor/diy/test/files/dog/dog_presenter.rb +5 -4
  842. data/vendor/diy/test/files/dog/dog_view.rb +5 -4
  843. data/vendor/diy/test/files/dog/file_resolver.rb +5 -4
  844. data/vendor/diy/test/files/dog/other_thing.rb +5 -4
  845. data/vendor/diy/test/files/dog/simple.yml +5 -4
  846. data/vendor/diy/test/files/donkey/foo/bar/qux.rb +5 -4
  847. data/vendor/diy/test/files/donkey/foo.rb +5 -4
  848. data/vendor/diy/test/files/factory/beef.rb +5 -4
  849. data/vendor/diy/test/files/factory/dog.rb +5 -4
  850. data/vendor/diy/test/files/factory/factory.yml +5 -4
  851. data/vendor/diy/test/files/factory/farm/llama.rb +5 -4
  852. data/vendor/diy/test/files/factory/farm/pork.rb +5 -4
  853. data/vendor/diy/test/files/factory/kitten.rb +5 -4
  854. data/vendor/diy/test/files/fud/objects.yml +5 -4
  855. data/vendor/diy/test/files/fud/toy.rb +5 -4
  856. data/vendor/diy/test/files/functions/attached_things_builder.rb +5 -4
  857. data/vendor/diy/test/files/functions/invalid_method.yml +5 -4
  858. data/vendor/diy/test/files/functions/method_extractor.rb +5 -4
  859. data/vendor/diy/test/files/functions/nonsingleton_objects.yml +5 -4
  860. data/vendor/diy/test/files/functions/objects.yml +5 -4
  861. data/vendor/diy/test/files/functions/thing.rb +5 -4
  862. data/vendor/diy/test/files/functions/thing_builder.rb +5 -4
  863. data/vendor/diy/test/files/functions/things_builder.rb +5 -4
  864. data/vendor/diy/test/files/gnu/objects.yml +5 -4
  865. data/vendor/diy/test/files/gnu/thinger.rb +5 -4
  866. data/vendor/diy/test/files/goat/base.rb +5 -4
  867. data/vendor/diy/test/files/goat/can.rb +5 -4
  868. data/vendor/diy/test/files/goat/goat.rb +5 -4
  869. data/vendor/diy/test/files/goat/objects.yml +5 -4
  870. data/vendor/diy/test/files/goat/paper.rb +5 -4
  871. data/vendor/diy/test/files/goat/plane.rb +5 -4
  872. data/vendor/diy/test/files/goat/shirt.rb +5 -4
  873. data/vendor/diy/test/files/goat/wings.rb +5 -4
  874. data/vendor/diy/test/files/horse/holder_thing.rb +5 -4
  875. data/vendor/diy/test/files/horse/objects.yml +5 -4
  876. data/vendor/diy/test/files/namespace/animal/bird.rb +5 -4
  877. data/vendor/diy/test/files/namespace/animal/cat.rb +5 -4
  878. data/vendor/diy/test/files/namespace/animal/reptile/hardshell/turtle.rb +5 -4
  879. data/vendor/diy/test/files/namespace/animal/reptile/lizard.rb +5 -4
  880. data/vendor/diy/test/files/namespace/bad_module_specified.yml +5 -4
  881. data/vendor/diy/test/files/namespace/class_name_combine.yml +5 -4
  882. data/vendor/diy/test/files/namespace/no_module_specified.yml +5 -4
  883. data/vendor/diy/test/files/namespace/objects.yml +5 -4
  884. data/vendor/diy/test/files/namespace/road.rb +5 -4
  885. data/vendor/diy/test/files/namespace/sky.rb +5 -4
  886. data/vendor/diy/test/files/namespace/subcontext.yml +5 -4
  887. data/vendor/diy/test/files/non_singleton/air.rb +5 -4
  888. data/vendor/diy/test/files/non_singleton/fat_cat.rb +5 -4
  889. data/vendor/diy/test/files/non_singleton/objects.yml +5 -4
  890. data/vendor/diy/test/files/non_singleton/pig.rb +5 -4
  891. data/vendor/diy/test/files/non_singleton/thread_spinner.rb +5 -4
  892. data/vendor/diy/test/files/non_singleton/tick.rb +5 -4
  893. data/vendor/diy/test/files/non_singleton/yard.rb +5 -4
  894. data/vendor/diy/test/files/yak/core_model.rb +5 -4
  895. data/vendor/diy/test/files/yak/core_presenter.rb +5 -4
  896. data/vendor/diy/test/files/yak/core_view.rb +5 -4
  897. data/vendor/diy/test/files/yak/data_source.rb +5 -4
  898. data/vendor/diy/test/files/yak/fringe_model.rb +5 -4
  899. data/vendor/diy/test/files/yak/fringe_presenter.rb +5 -4
  900. data/vendor/diy/test/files/yak/fringe_view.rb +5 -4
  901. data/vendor/diy/test/files/yak/giant_squid.rb +5 -4
  902. data/vendor/diy/test/files/yak/krill.rb +5 -4
  903. data/vendor/diy/test/files/yak/my_objects.yml +5 -4
  904. data/vendor/diy/test/files/yak/sub_sub_context_test.yml +5 -4
  905. data/vendor/diy/test/test_helper.rb +5 -4
  906. data/vendor/unity/auto/generate_module.rb +4 -4
  907. data/vendor/unity/auto/generate_test_runner.rb +5 -1
  908. data/vendor/unity/docs/UnityHelperScriptsGuide.md +9 -0
  909. data/vendor/unity/test/spec/generate_module_naming_spec.rb +38 -0
  910. data/vendor/unity/test/testdata/spi/MockConfig.h +19 -0
  911. data/vendor/unity/test/testdata/testRunnerGeneratorWithSameNamedMocks.c +42 -0
  912. data/vendor/unity/test/testdata/uart/MockConfig.h +19 -0
  913. data/vendor/unity/test/tests/test_generate_test_runner.rb +29 -0
  914. metadata +783 -295
  915. data/assets/tests_with_fallback_conditionals/src/conditional_module.c +0 -18
  916. data/bin/actions_wrapper.rb +0 -51
  917. data/docs/mkdocs/assets/images/ceedling-logo-circle.png +0 -0
  918. data/docs/mkdocs/assets/images/ceedling.svg +0 -90
  919. data/docs/mkdocs/assets/images/favicon.png +0 -0
  920. data/docs/mkdocs/assets/stylesheets/admonitions.css +0 -152
  921. data/docs/mkdocs/assets/stylesheets/fixes-local.css +0 -15
  922. data/docs/mkdocs/assets/stylesheets/styling.css +0 -102
  923. data/docs/mkdocs/configuration/environment-vars.md +0 -14
  924. data/docs/mkdocs/configuration/global-collections.md +0 -156
  925. data/docs/mkdocs/configuration/index.md +0 -75
  926. data/docs/mkdocs/configuration/loading.md +0 -89
  927. data/docs/mkdocs/configuration/mixins.md +0 -607
  928. data/docs/mkdocs/configuration/parallel-builds.md +0 -97
  929. data/docs/mkdocs/configuration/project-file.md +0 -216
  930. data/docs/mkdocs/configuration/reference/cexception.md +0 -35
  931. data/docs/mkdocs/configuration/reference/cmock.md +0 -106
  932. data/docs/mkdocs/configuration/reference/defines.md +0 -352
  933. data/docs/mkdocs/configuration/reference/environment.md +0 -55
  934. data/docs/mkdocs/configuration/reference/extension.md +0 -63
  935. data/docs/mkdocs/configuration/reference/files.md +0 -154
  936. data/docs/mkdocs/configuration/reference/flags.md +0 -296
  937. data/docs/mkdocs/configuration/reference/index.md +0 -176
  938. data/docs/mkdocs/configuration/reference/libraries.md +0 -82
  939. data/docs/mkdocs/configuration/reference/mixins.md +0 -24
  940. data/docs/mkdocs/configuration/reference/partials.md +0 -38
  941. data/docs/mkdocs/configuration/reference/paths.md +0 -276
  942. data/docs/mkdocs/configuration/reference/plugins.md +0 -60
  943. data/docs/mkdocs/configuration/reference/project.md +0 -333
  944. data/docs/mkdocs/configuration/reference/release-build.md +0 -62
  945. data/docs/mkdocs/configuration/reference/test-build.md +0 -55
  946. data/docs/mkdocs/configuration/reference/test-runner.md +0 -61
  947. data/docs/mkdocs/configuration/reference/tools.md +0 -457
  948. data/docs/mkdocs/configuration/reference/unity.md +0 -49
  949. data/docs/mkdocs/configuration/which-ceedling.md +0 -77
  950. data/docs/mkdocs/development/index.md +0 -61
  951. data/docs/mkdocs/development/plugins/configuration.md +0 -164
  952. data/docs/mkdocs/development/plugins/index.md +0 -84
  953. data/docs/mkdocs/development/plugins/plugin-subclass.md +0 -513
  954. data/docs/mkdocs/development/plugins/rake-tasks.md +0 -54
  955. data/docs/mkdocs/development/workflow.md +0 -284
  956. data/docs/mkdocs/getting-started/command-line.md +0 -477
  957. data/docs/mkdocs/getting-started/example-projects/cipher-quest.md +0 -65
  958. data/docs/mkdocs/getting-started/example-projects/index.md +0 -49
  959. data/docs/mkdocs/getting-started/example-projects/temp-sensor.md +0 -60
  960. data/docs/mkdocs/getting-started/example-projects/wondrous-forest.md +0 -45
  961. data/docs/mkdocs/getting-started/index.md +0 -41
  962. data/docs/mkdocs/getting-started/installation.md +0 -179
  963. data/docs/mkdocs/getting-started/quick-start.md +0 -86
  964. data/docs/mkdocs/help.md +0 -49
  965. data/docs/mkdocs/index.md +0 -222
  966. data/docs/mkdocs/overview/build-system.md +0 -115
  967. data/docs/mkdocs/overview/index.md +0 -29
  968. data/docs/mkdocs/overview/test-environments.md +0 -33
  969. data/docs/mkdocs/overview/tools-and-frameworks.md +0 -115
  970. data/docs/mkdocs/plugins/beep.md +0 -134
  971. data/docs/mkdocs/plugins/bullseye.md +0 -83
  972. data/docs/mkdocs/plugins/command-hooks.md +0 -268
  973. data/docs/mkdocs/plugins/compile-commands-json-db.md +0 -42
  974. data/docs/mkdocs/plugins/cppcheck.md +0 -377
  975. data/docs/mkdocs/plugins/dependencies.md +0 -310
  976. data/docs/mkdocs/plugins/fff.md +0 -247
  977. data/docs/mkdocs/plugins/gcov/examples.md +0 -92
  978. data/docs/mkdocs/plugins/gcov/gcovr.md +0 -526
  979. data/docs/mkdocs/plugins/gcov/index.md +0 -74
  980. data/docs/mkdocs/plugins/gcov/overview.md +0 -145
  981. data/docs/mkdocs/plugins/gcov/reportgenerator.md +0 -246
  982. data/docs/mkdocs/plugins/gcov/reporting.md +0 -147
  983. data/docs/mkdocs/plugins/gcov/setup.md +0 -232
  984. data/docs/mkdocs/plugins/gcov/tool-versions.md +0 -60
  985. data/docs/mkdocs/plugins/gcov/troubleshooting.md +0 -78
  986. data/docs/mkdocs/plugins/index.md +0 -261
  987. data/docs/mkdocs/plugins/module-generator.md +0 -267
  988. data/docs/mkdocs/plugins/report-build-warnings-log.md +0 -42
  989. data/docs/mkdocs/plugins/report-tests-gtestlike-stdout.md +0 -98
  990. data/docs/mkdocs/plugins/report-tests-ide-stdout.md +0 -63
  991. data/docs/mkdocs/plugins/report-tests-log-factory.md +0 -454
  992. data/docs/mkdocs/plugins/report-tests-pretty-stdout.md +0 -56
  993. data/docs/mkdocs/plugins/report-tests-raw-output-log.md +0 -52
  994. data/docs/mkdocs/plugins/report-tests-teamcity-stdout.md +0 -96
  995. data/docs/mkdocs/plugins/sample_html_report.png +0 -0
  996. data/docs/mkdocs/plugins/valgrind.md +0 -198
  997. data/docs/mkdocs/project/release-history.md +0 -61
  998. data/docs/mkdocs/project/upgrade.md +0 -85
  999. data/docs/mkdocs/reference/build-directives.md +0 -37
  1000. data/docs/mkdocs/reference/command-line.md +0 -323
  1001. data/docs/mkdocs/reference/environment-vars.md +0 -60
  1002. data/docs/mkdocs/reference/gcov-plugin.md +0 -600
  1003. data/docs/mkdocs/reference/global-collections.md +0 -160
  1004. data/docs/mkdocs/reference/index.md +0 -65
  1005. data/docs/mkdocs/reference/partials-macros.md +0 -79
  1006. data/docs/mkdocs/reference/project-configuration.md +0 -46
  1007. data/docs/mkdocs/snapshot/examples/cipher_quest/README.md +0 -210
  1008. data/docs/mkdocs/snapshot/examples/temp_sensor/README.md +0 -283
  1009. data/docs/mkdocs/snapshot/examples/wondrous_forest/README.md +0 -92
  1010. data/docs/mkdocs/snapshot/plugins/gcov/config/defaults.yml +0 -32
  1011. data/docs/mkdocs/snapshot/plugins/gcov/config/defaults_gcov.rb +0 -136
  1012. data/docs/mkdocs/snapshot.yml +0 -20
  1013. data/docs/mkdocs/testing-guide/build-directives.md +0 -153
  1014. data/docs/mkdocs/testing-guide/conventions.md +0 -616
  1015. data/docs/mkdocs/testing-guide/frameworks.md +0 -192
  1016. data/docs/mkdocs/testing-guide/index.md +0 -80
  1017. data/docs/mkdocs/testing-guide/partials/configuration.md +0 -67
  1018. data/docs/mkdocs/testing-guide/partials/conventions.md +0 -68
  1019. data/docs/mkdocs/testing-guide/partials/directives.md +0 -212
  1020. data/docs/mkdocs/testing-guide/partials/example.md +0 -149
  1021. data/docs/mkdocs/testing-guide/partials/index.md +0 -88
  1022. data/docs/mkdocs/testing-guide/partials/overview.md +0 -81
  1023. data/docs/mkdocs/testing-guide/partials/variables.md +0 -244
  1024. data/docs/mkdocs/testing-guide/test-cases.md +0 -194
  1025. data/docs/mkdocs/testing-guide/test-sample.md +0 -94
  1026. data/docs/mkdocs/testing-guide/test-suite-anatomy.md +0 -58
  1027. data/lib/ceedling/cacheinator.rb +0 -53
  1028. data/lib/ceedling/cacheinator_helper.rb +0 -60
  1029. data/lib/ceedling/dependinator.rb +0 -31
  1030. data/lib/ceedling/makefile.rb +0 -52
  1031. data/lib/ceedling/release_invoker.rb +0 -112
  1032. data/lib/ceedling/rules_release.rake +0 -109
  1033. data/lib/ceedling/tasks_release.rake +0 -36
  1034. data/plugins/fff/vendor/fff/Makefile +0 -10
  1035. data/plugins/fff/vendor/fff/buildandtest +0 -15
  1036. data/plugins/fff/vendor/fff/examples/Makefile +0 -7
  1037. data/plugins/fff/vendor/fff/examples/driver_testing/Makefile +0 -64
  1038. data/plugins/fff/vendor/fff/examples/driver_testing/driver.c +0 -32
  1039. data/plugins/fff/vendor/fff/examples/driver_testing/driver.h +0 -21
  1040. data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.cpp +0 -58
  1041. data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.fff.cpp +0 -70
  1042. data/plugins/fff/vendor/fff/examples/driver_testing/hardware_abstraction.h +0 -25
  1043. data/plugins/fff/vendor/fff/examples/driver_testing/registers.h +0 -23
  1044. data/plugins/fff/vendor/fff/examples/embedded_ui/DISPLAY.h +0 -27
  1045. data/plugins/fff/vendor/fff/examples/embedded_ui/Kata.txt +0 -25
  1046. data/plugins/fff/vendor/fff/examples/embedded_ui/Makefile +0 -67
  1047. data/plugins/fff/vendor/fff/examples/embedded_ui/SYSTEM.h +0 -31
  1048. data/plugins/fff/vendor/fff/examples/embedded_ui/UI.c +0 -56
  1049. data/plugins/fff/vendor/fff/examples/embedded_ui/UI.h +0 -22
  1050. data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_ansic.c +0 -191
  1051. data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_cpp.cpp +0 -144
  1052. data/plugins/fff/vendor/fff/examples/embedded_ui/test_suite_template.c +0 -42
  1053. data/plugins/fff/vendor/fff/gtest/Makefile +0 -22
  1054. data/plugins/fff/vendor/fff/gtest/gtest-all.cc +0 -9118
  1055. data/plugins/fff/vendor/fff/gtest/gtest-main.cc +0 -6
  1056. data/plugins/fff/vendor/fff/gtest/gtest.h +0 -19547
  1057. data/plugins/fff/vendor/fff/test/Makefile +0 -81
  1058. data/plugins/fff/vendor/fff/test/c_test_framework.h +0 -25
  1059. data/plugins/fff/vendor/fff/test/fff_test_c.c +0 -116
  1060. data/plugins/fff/vendor/fff/test/fff_test_cpp.cpp +0 -53
  1061. data/plugins/fff/vendor/fff/test/fff_test_global_c.c +0 -84
  1062. data/plugins/fff/vendor/fff/test/fff_test_global_cpp.cpp +0 -31
  1063. data/plugins/fff/vendor/fff/test/global_fakes.c +0 -21
  1064. data/plugins/fff/vendor/fff/test/global_fakes.h +0 -47
  1065. data/plugins/fff/vendor/fff/test/test_cases.include +0 -276
  1066. data/plugins/report_tests_gtestlike_stdout/assets/template.erb +0 -83
  1067. data/site-local/assets/stylesheets/main.ec1eaa64.min.css +0 -1
  1068. data/site-local/assets/stylesheets/main.ec1eaa64.min.css.map +0 -1
  1069. data/site-local/assets/stylesheets/palette.ab4e12ef.min.css +0 -1
  1070. data/site-local/assets/stylesheets/palette.ab4e12ef.min.css.map +0 -1
  1071. data/site-local/snapshot/assets/project.yml +0 -404
  1072. data/spec/system/partials_types_header_spec.rb +0 -166
  1073. data/spec/units/configurator_spec.rb +0 -232
  1074. /data/assets/{ceedling → features/ceedling} +0 -0
  1075. /data/assets/{ceedling.cmd → features/ceedling.cmd} +0 -0
  1076. /data/assets/{default_gitignore → features/default_gitignore} +0 -0
  1077. /data/assets/{broken_uncovered_file.c → fixtures/broken_uncovered_file.c} +0 -0
  1078. /data/assets/{example_file.c → fixtures/example_file.c} +0 -0
  1079. /data/assets/{example_file.h → fixtures/example_file.h} +0 -0
  1080. /data/assets/{example_file_call.c → fixtures/example_file_call.c} +0 -0
  1081. /data/assets/{example_file_call.h → fixtures/example_file_call.h} +0 -0
  1082. /data/assets/{example_file_with_statics.c → fixtures/example_file_with_statics.c} +0 -0
  1083. /data/assets/{example_file_with_stdio.c → fixtures/example_file_with_stdio.c} +0 -0
  1084. /data/assets/{example_file_with_stdio.h → fixtures/example_file_with_stdio.h} +0 -0
  1085. /data/assets/{fake_crash_test_fixture.rb → fixtures/fake_crash_test_fixture.rb} +0 -0
  1086. /data/assets/{partial_all_module.h → fixtures/partial_all_module.h} +0 -0
  1087. /data/assets/{run_with_ubsan.rb → fixtures/run_with_ubsan.rb} +0 -0
  1088. /data/assets/{same_dir_pairing_module.c → fixtures/same_dir_pairing_module.c} +0 -0
  1089. /data/assets/{same_dir_pairing_module.h → fixtures/same_dir_pairing_module.h} +0 -0
  1090. /data/assets/{same_dir_pairing_module_func.h → fixtures/same_dir_pairing_module_func.h} +0 -0
  1091. /data/assets/{same_dir_pairing_other.c → fixtures/same_dir_pairing_other.c} +0 -0
  1092. /data/assets/{same_dir_pairing_other.h → fixtures/same_dir_pairing_other.h} +0 -0
  1093. /data/assets/{test_example_file.c → fixtures/test_example_file.c} +0 -0
  1094. /data/assets/{test_example_file_2.c → fixtures/test_example_file_2.c} +0 -0
  1095. /data/assets/{test_example_file_source_include.c → fixtures/test_example_file_source_include.c} +0 -0
  1096. /data/assets/{test_example_file_success.c → fixtures/test_example_file_success.c} +0 -0
  1097. /data/assets/{test_example_file_unity_printf.c → fixtures/test_example_file_unity_printf.c} +0 -0
  1098. /data/assets/{test_example_file_verbose.c → fixtures/test_example_file_verbose.c} +0 -0
  1099. /data/assets/{test_example_file_with_mock.c → fixtures/test_example_file_with_mock.c} +0 -0
  1100. /data/assets/{test_example_file_with_stdio.c → fixtures/test_example_file_with_stdio.c} +0 -0
  1101. /data/assets/{test_example_with_parameterized_tests.c → fixtures/test_example_with_parameterized_tests.c} +0 -0
  1102. /data/assets/{test_partial_all_module.c → fixtures/test_partial_all_module.c} +0 -0
  1103. /data/assets/{test_same_dir_pairing.c → fixtures/test_same_dir_pairing.c} +0 -0
  1104. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/feature_config.h +0 -0
  1105. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/feature_extra.h +0 -0
  1106. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/local_flag_extra.h +0 -0
  1107. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/nested_extra.h +0 -0
  1108. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/nested_wrapper.h +0 -0
  1109. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/project_flag_extra.h +0 -0
  1110. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget_feature.h +0 -0
  1111. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware.c +0 -0
  1112. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware.h +0 -0
  1113. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware_configurator.c +0 -0
  1114. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware_configurator.h +0 -0
  1115. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/test/test_adc_hardware.c +0 -0
  1116. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/test/test_adc_hardware_special.c +0 -0
  1117. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/src/unicoder.c +0 -0
  1118. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/src/unicoder.h +0 -0
  1119. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/test/test_unicoder.c +0 -0
  1120. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/test/test_unicoder_partial.c +0 -0
  1121. /data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/src/conditional_module.h +0 -0
  1122. /data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/src/optional_dep.h +0 -0
  1123. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/blanks.c +0 -0
  1124. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/blanks.h +0 -0
  1125. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/counter.c +0 -0
  1126. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/counter.h +0 -0
  1127. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/decorators.c +0 -0
  1128. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/decorators.h +0 -0
  1129. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_blanks.c +0 -0
  1130. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_counter.c +0 -0
  1131. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_decorators.c +0 -0
  1132. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareA.c +0 -0
  1133. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareA.h +0 -0
  1134. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareB.c +0 -0
  1135. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareB.h +0 -0
  1136. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareC.c +0 -0
  1137. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareC.h +0 -0
  1138. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorA.h +0 -0
  1139. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorB.h +0 -0
  1140. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorC.h +0 -0
  1141. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareA.c +0 -0
  1142. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareB.c +0 -0
  1143. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareC.c +0 -0
  1144. /data/assets/{uncovered_example_file.c → fixtures/uncovered_example_file.c} +0 -0
  1145. /data/plugins/bullseye/assets/{template.erb → coverage.template} +0 -0
@@ -21,7 +21,7 @@
21
21
 
22
22
 
23
23
  <link rel="icon" href="../assets/images/favicon.png">
24
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.7">
24
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.8.0">
25
25
 
26
26
 
27
27
 
@@ -29,10 +29,10 @@
29
29
 
30
30
 
31
31
 
32
- <link rel="stylesheet" href="../assets/stylesheets/main.ec1eaa64.min.css">
32
+ <link rel="stylesheet" href="../assets/stylesheets/main.57a0d79d.min.css">
33
33
 
34
34
 
35
- <link rel="stylesheet" href="../assets/stylesheets/palette.ab4e12ef.min.css">
35
+ <link rel="stylesheet" href="../assets/stylesheets/palette.fb2fffe2.min.css">
36
36
 
37
37
 
38
38
 
@@ -93,6 +93,16 @@
93
93
 
94
94
  <div data-md-color-scheme="default" data-md-component="outdated" hidden>
95
95
 
96
+ <aside class="md-banner md-banner--warning">
97
+ <div class="md-banner__inner md-grid md-typeset">
98
+ You are not viewing the latest version.
99
+ <a href="../..">
100
+ <strong>Click here to go to latest.</strong>
101
+ </a>
102
+ </div>
103
+ <script>var el=document.querySelector("[data-md-component=outdated]"),base=new URL(".."),outdated=__md_get("__outdated",sessionStorage,base);!0===outdated&&el&&(el.hidden=!1)</script>
104
+ </aside>
105
+
96
106
  </div>
97
107
 
98
108
 
@@ -332,7 +342,7 @@
332
342
 
333
343
 
334
344
  <li class="md-tabs__item">
335
- <a href="../project/release-history.html" class="md-tabs__link">
345
+ <a href="../project/index.html" class="md-tabs__link">
336
346
 
337
347
 
338
348
 
@@ -641,6 +651,8 @@
641
651
 
642
652
 
643
653
 
654
+
655
+
644
656
 
645
657
 
646
658
 
@@ -788,6 +800,34 @@
788
800
 
789
801
 
790
802
 
803
+ <li class="md-nav__item">
804
+ <a href="../getting-started/builds.html" class="md-nav__link">
805
+
806
+
807
+
808
+ <span class="md-ellipsis">
809
+
810
+
811
+ Builds
812
+
813
+
814
+
815
+ </span>
816
+
817
+
818
+
819
+ </a>
820
+ </li>
821
+
822
+
823
+
824
+
825
+
826
+
827
+
828
+
829
+
830
+
791
831
 
792
832
 
793
833
 
@@ -814,7 +854,7 @@
814
854
 
815
855
 
816
856
 
817
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5" >
857
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6" >
818
858
 
819
859
 
820
860
  <div class="md-nav__link md-nav__container">
@@ -836,14 +876,14 @@
836
876
  </a>
837
877
 
838
878
 
839
- <label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="0">
879
+ <label class="md-nav__link " for="__nav_3_6" id="__nav_3_6_label" tabindex="0">
840
880
  <span class="md-nav__icon md-icon"></span>
841
881
  </label>
842
882
 
843
883
  </div>
844
884
 
845
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
846
- <label class="md-nav__title" for="__nav_3_5">
885
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_6_label" aria-expanded="false">
886
+ <label class="md-nav__title" for="__nav_3_6">
847
887
  <span class="md-nav__icon md-icon"></span>
848
888
 
849
889
 
@@ -2412,6 +2452,8 @@
2412
2452
 
2413
2453
 
2414
2454
 
2455
+
2456
+
2415
2457
 
2416
2458
 
2417
2459
 
@@ -3049,10 +3091,66 @@
3049
3091
 
3050
3092
 
3051
3093
  <li class="md-nav__item">
3052
- <a href="bullseye.html" class="md-nav__link">
3094
+ <a href="sanitize.html" class="md-nav__link">
3053
3095
 
3054
3096
 
3055
3097
 
3098
+ <span class="md-ellipsis">
3099
+
3100
+
3101
+ Sanitize (ASan, UBSan & Leaks)
3102
+
3103
+
3104
+
3105
+ </span>
3106
+
3107
+
3108
+
3109
+ </a>
3110
+ </li>
3111
+
3112
+
3113
+
3114
+
3115
+
3116
+
3117
+
3118
+
3119
+
3120
+
3121
+
3122
+
3123
+
3124
+
3125
+
3126
+
3127
+
3128
+
3129
+
3130
+
3131
+
3132
+
3133
+
3134
+
3135
+
3136
+
3137
+
3138
+
3139
+
3140
+
3141
+
3142
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
3143
+
3144
+
3145
+
3146
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_13" >
3147
+
3148
+
3149
+ <div class="md-nav__link md-nav__container">
3150
+ <a href="bullseye/index.html" class="md-nav__link ">
3151
+
3152
+
3153
+
3056
3154
  <span class="md-ellipsis">
3057
3155
 
3058
3156
 
@@ -3060,6 +3158,50 @@
3060
3158
 
3061
3159
 
3062
3160
 
3161
+ </span>
3162
+
3163
+
3164
+
3165
+ </a>
3166
+
3167
+
3168
+ <label class="md-nav__link " for="__nav_6_13" id="__nav_6_13_label" tabindex="">
3169
+ <span class="md-nav__icon md-icon"></span>
3170
+ </label>
3171
+
3172
+ </div>
3173
+
3174
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_13_label" aria-expanded="false">
3175
+ <label class="md-nav__title" for="__nav_6_13">
3176
+ <span class="md-nav__icon md-icon"></span>
3177
+
3178
+
3179
+ Bullseye (Coverage)
3180
+
3181
+
3182
+ </label>
3183
+ <ul class="md-nav__list" data-md-scrollfix>
3184
+
3185
+
3186
+
3187
+
3188
+
3189
+
3190
+
3191
+
3192
+
3193
+ <li class="md-nav__item">
3194
+ <a href="bullseye/licensing.html" class="md-nav__link">
3195
+
3196
+
3197
+
3198
+ <span class="md-ellipsis">
3199
+
3200
+
3201
+ Licensing
3202
+
3203
+
3204
+
3063
3205
  </span>
3064
3206
 
3065
3207
 
@@ -3070,6 +3212,14 @@
3070
3212
 
3071
3213
 
3072
3214
 
3215
+ </ul>
3216
+ </nav>
3217
+
3218
+ </li>
3219
+
3220
+
3221
+
3222
+
3073
3223
 
3074
3224
 
3075
3225
 
@@ -3288,10 +3438,10 @@
3288
3438
  </li>
3289
3439
 
3290
3440
  <li class="md-nav__item">
3291
- <a href="#starting-dash-name" class="md-nav__link">
3441
+ <a href="#name" class="md-nav__link">
3292
3442
  <span class="md-ellipsis">
3293
3443
 
3294
- Starting Dash &amp; Name
3444
+ Name
3295
3445
 
3296
3446
  </span>
3297
3447
  </a>
@@ -3302,7 +3452,7 @@
3302
3452
  <a href="#working-paths" class="md-nav__link">
3303
3453
  <span class="md-ellipsis">
3304
3454
 
3305
- Working Paths
3455
+ Working paths
3306
3456
 
3307
3457
  </span>
3308
3458
  </a>
@@ -3313,7 +3463,7 @@
3313
3463
  <a href="#fetching-dependencies" class="md-nav__link">
3314
3464
  <span class="md-ellipsis">
3315
3465
 
3316
- Fetching Dependencies
3466
+ Fetching dependencies
3317
3467
 
3318
3468
  </span>
3319
3469
  </a>
@@ -3324,7 +3474,7 @@
3324
3474
  <a href="#environment-variables" class="md-nav__link">
3325
3475
  <span class="md-ellipsis">
3326
3476
 
3327
- Environment Variables
3477
+ Environment variables
3328
3478
 
3329
3479
  </span>
3330
3480
  </a>
@@ -3335,7 +3485,7 @@
3335
3485
  <a href="#building-dependencies" class="md-nav__link">
3336
3486
  <span class="md-ellipsis">
3337
3487
 
3338
- Building Dependencies
3488
+ Building dependencies
3339
3489
 
3340
3490
  </span>
3341
3491
  </a>
@@ -3374,6 +3524,17 @@
3374
3524
  </span>
3375
3525
  </a>
3376
3526
 
3527
+ </li>
3528
+
3529
+ <li class="md-nav__item">
3530
+ <a href="#executables" class="md-nav__link">
3531
+ <span class="md-ellipsis">
3532
+
3533
+ executables
3534
+
3535
+ </span>
3536
+ </a>
3537
+
3377
3538
  </li>
3378
3539
 
3379
3540
  <li class="md-nav__item">
@@ -3416,10 +3577,10 @@
3416
3577
  <ul class="md-nav__list">
3417
3578
 
3418
3579
  <li class="md-nav__item">
3419
- <a href="#ceedling-dependenciesclean" class="md-nav__link">
3580
+ <a href="#ceedling-dependenciesfetch" class="md-nav__link">
3420
3581
  <span class="md-ellipsis">
3421
3582
 
3422
- ceedling dependencies:clean
3583
+ ceedling dependencies:fetch
3423
3584
 
3424
3585
  </span>
3425
3586
  </a>
@@ -3427,10 +3588,10 @@
3427
3588
  </li>
3428
3589
 
3429
3590
  <li class="md-nav__item">
3430
- <a href="#ceedling-dependenciesfetch" class="md-nav__link">
3591
+ <a href="#ceedling-dependenciesmake" class="md-nav__link">
3431
3592
  <span class="md-ellipsis">
3432
3593
 
3433
- ceedling dependencies:fetch
3594
+ ceedling dependencies:make
3434
3595
 
3435
3596
  </span>
3436
3597
  </a>
@@ -3438,10 +3599,10 @@
3438
3599
  </li>
3439
3600
 
3440
3601
  <li class="md-nav__item">
3441
- <a href="#ceedling-dependenciesmake" class="md-nav__link">
3602
+ <a href="#ceedling-dependenciesclean" class="md-nav__link">
3442
3603
  <span class="md-ellipsis">
3443
3604
 
3444
- ceedling dependencies:make
3605
+ ceedling dependencies:clean
3445
3606
 
3446
3607
  </span>
3447
3608
  </a>
@@ -3457,6 +3618,17 @@
3457
3618
  </span>
3458
3619
  </a>
3459
3620
 
3621
+ </li>
3622
+
3623
+ <li class="md-nav__item">
3624
+ <a href="#filesdependencies" class="md-nav__link">
3625
+ <span class="md-ellipsis">
3626
+
3627
+ files:dependencies
3628
+
3629
+ </span>
3630
+ </a>
3631
+
3460
3632
  </li>
3461
3633
 
3462
3634
  <li class="md-nav__item">
@@ -3490,11 +3662,94 @@
3490
3662
  <a href="#custom-tools" class="md-nav__link">
3491
3663
  <span class="md-ellipsis">
3492
3664
 
3493
- Custom Tools
3665
+ Custom tools
3666
+
3667
+ </span>
3668
+ </a>
3669
+
3670
+ </li>
3671
+
3672
+ <li class="md-nav__item">
3673
+ <a href="#cookbook" class="md-nav__link">
3674
+ <span class="md-ellipsis">
3675
+
3676
+ Cookbook
3677
+
3678
+ </span>
3679
+ </a>
3680
+
3681
+ <nav class="md-nav" aria-label="Cookbook">
3682
+ <ul class="md-nav__list">
3683
+
3684
+ <li class="md-nav__item">
3685
+ <a href="#a-tagged-release-from-git-built-with-make" class="md-nav__link">
3686
+ <span class="md-ellipsis">
3687
+
3688
+ A tagged release from git, built with Make
3689
+
3690
+ </span>
3691
+ </a>
3692
+
3693
+ </li>
3694
+
3695
+ <li class="md-nav__item">
3696
+ <a href="#a-vendor-archive-with-environment-settings" class="md-nav__link">
3697
+ <span class="md-ellipsis">
3698
+
3699
+ A vendor archive with environment settings
3700
+
3701
+ </span>
3702
+ </a>
3703
+
3704
+ </li>
3705
+
3706
+ <li class="md-nav__item">
3707
+ <a href="#a-sibling-ceedling-project" class="md-nav__link">
3708
+ <span class="md-ellipsis">
3709
+
3710
+ A sibling Ceedling project
3711
+
3712
+ </span>
3713
+ </a>
3714
+
3715
+ </li>
3716
+
3717
+ <li class="md-nav__item">
3718
+ <a href="#a-shared-library-deployed-beside-the-release" class="md-nav__link">
3719
+ <span class="md-ellipsis">
3720
+
3721
+ A shared library deployed beside the release
3722
+
3723
+ </span>
3724
+ </a>
3725
+
3726
+ </li>
3727
+
3728
+ <li class="md-nav__item">
3729
+ <a href="#build-tools-deployed-to-a-shared-folder" class="md-nav__link">
3730
+ <span class="md-ellipsis">
3731
+
3732
+ Build tools deployed to a shared folder
3494
3733
 
3495
3734
  </span>
3496
3735
  </a>
3497
3736
 
3737
+ </li>
3738
+
3739
+ <li class="md-nav__item">
3740
+ <a href="#a-small-library-compiled-by-ceedling" class="md-nav__link">
3741
+ <span class="md-ellipsis">
3742
+
3743
+ A small library compiled by Ceedling
3744
+
3745
+ </span>
3746
+ </a>
3747
+
3748
+ </li>
3749
+
3750
+ </ul>
3751
+ </nav>
3752
+
3498
3753
  </li>
3499
3754
 
3500
3755
  </ul>
@@ -3807,6 +4062,12 @@
3807
4062
 
3808
4063
 
3809
4064
 
4065
+
4066
+
4067
+
4068
+
4069
+
4070
+
3810
4071
 
3811
4072
 
3812
4073
 
@@ -3826,8 +4087,9 @@
3826
4087
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
3827
4088
 
3828
4089
 
3829
- <label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
3830
-
4090
+ <div class="md-nav__link md-nav__container">
4091
+ <a href="../project/index.html" class="md-nav__link ">
4092
+
3831
4093
 
3832
4094
 
3833
4095
  <span class="md-ellipsis">
@@ -3841,8 +4103,14 @@
3841
4103
 
3842
4104
 
3843
4105
 
3844
- <span class="md-nav__icon md-icon"></span>
3845
- </label>
4106
+ </a>
4107
+
4108
+
4109
+ <label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="0">
4110
+ <span class="md-nav__icon md-icon"></span>
4111
+ </label>
4112
+
4113
+ </div>
3846
4114
 
3847
4115
  <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
3848
4116
  <label class="md-nav__title" for="__nav_8">
@@ -3856,6 +4124,8 @@
3856
4124
  <ul class="md-nav__list" data-md-scrollfix>
3857
4125
 
3858
4126
 
4127
+
4128
+
3859
4129
 
3860
4130
 
3861
4131
 
@@ -3889,6 +4159,34 @@
3889
4159
 
3890
4160
 
3891
4161
 
4162
+ <li class="md-nav__item">
4163
+ <a href="../project/sbom.html" class="md-nav__link">
4164
+
4165
+
4166
+
4167
+ <span class="md-ellipsis">
4168
+
4169
+
4170
+ Software Bill of Materials
4171
+
4172
+
4173
+
4174
+ </span>
4175
+
4176
+
4177
+
4178
+ </a>
4179
+ </li>
4180
+
4181
+
4182
+
4183
+
4184
+
4185
+
4186
+
4187
+
4188
+
4189
+
3892
4190
  <li class="md-nav__item">
3893
4191
  <a href="../project/upgrade.html" class="md-nav__link">
3894
4192
 
@@ -3960,6 +4258,8 @@
3960
4258
 
3961
4259
 
3962
4260
 
4261
+
4262
+
3963
4263
 
3964
4264
 
3965
4265
 
@@ -4050,6 +4350,34 @@
4050
4350
 
4051
4351
 
4052
4352
 
4353
+ <li class="md-nav__item">
4354
+ <a href="../development/releases.html" class="md-nav__link">
4355
+
4356
+
4357
+
4358
+ <span class="md-ellipsis">
4359
+
4360
+
4361
+ Branching & Releases
4362
+
4363
+
4364
+
4365
+ </span>
4366
+
4367
+
4368
+
4369
+ </a>
4370
+ </li>
4371
+
4372
+
4373
+
4374
+
4375
+
4376
+
4377
+
4378
+
4379
+
4380
+
4053
4381
 
4054
4382
 
4055
4383
 
@@ -4076,7 +4404,7 @@
4076
4404
 
4077
4405
 
4078
4406
 
4079
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_3" >
4407
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_4" >
4080
4408
 
4081
4409
 
4082
4410
  <div class="md-nav__link md-nav__container">
@@ -4098,14 +4426,14 @@
4098
4426
  </a>
4099
4427
 
4100
4428
 
4101
- <label class="md-nav__link " for="__nav_10_3" id="__nav_10_3_label" tabindex="0">
4429
+ <label class="md-nav__link " for="__nav_10_4" id="__nav_10_4_label" tabindex="0">
4102
4430
  <span class="md-nav__icon md-icon"></span>
4103
4431
  </label>
4104
4432
 
4105
4433
  </div>
4106
4434
 
4107
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_10_3_label" aria-expanded="false">
4108
- <label class="md-nav__title" for="__nav_10_3">
4435
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_10_4_label" aria-expanded="false">
4436
+ <label class="md-nav__title" for="__nav_10_4">
4109
4437
  <span class="md-nav__icon md-icon"></span>
4110
4438
 
4111
4439
 
@@ -4254,10 +4582,10 @@
4254
4582
  </li>
4255
4583
 
4256
4584
  <li class="md-nav__item">
4257
- <a href="#starting-dash-name" class="md-nav__link">
4585
+ <a href="#name" class="md-nav__link">
4258
4586
  <span class="md-ellipsis">
4259
4587
 
4260
- Starting Dash &amp; Name
4588
+ Name
4261
4589
 
4262
4590
  </span>
4263
4591
  </a>
@@ -4268,7 +4596,7 @@
4268
4596
  <a href="#working-paths" class="md-nav__link">
4269
4597
  <span class="md-ellipsis">
4270
4598
 
4271
- Working Paths
4599
+ Working paths
4272
4600
 
4273
4601
  </span>
4274
4602
  </a>
@@ -4279,7 +4607,7 @@
4279
4607
  <a href="#fetching-dependencies" class="md-nav__link">
4280
4608
  <span class="md-ellipsis">
4281
4609
 
4282
- Fetching Dependencies
4610
+ Fetching dependencies
4283
4611
 
4284
4612
  </span>
4285
4613
  </a>
@@ -4290,7 +4618,7 @@
4290
4618
  <a href="#environment-variables" class="md-nav__link">
4291
4619
  <span class="md-ellipsis">
4292
4620
 
4293
- Environment Variables
4621
+ Environment variables
4294
4622
 
4295
4623
  </span>
4296
4624
  </a>
@@ -4301,7 +4629,7 @@
4301
4629
  <a href="#building-dependencies" class="md-nav__link">
4302
4630
  <span class="md-ellipsis">
4303
4631
 
4304
- Building Dependencies
4632
+ Building dependencies
4305
4633
 
4306
4634
  </span>
4307
4635
  </a>
@@ -4340,6 +4668,17 @@
4340
4668
  </span>
4341
4669
  </a>
4342
4670
 
4671
+ </li>
4672
+
4673
+ <li class="md-nav__item">
4674
+ <a href="#executables" class="md-nav__link">
4675
+ <span class="md-ellipsis">
4676
+
4677
+ executables
4678
+
4679
+ </span>
4680
+ </a>
4681
+
4343
4682
  </li>
4344
4683
 
4345
4684
  <li class="md-nav__item">
@@ -4382,10 +4721,10 @@
4382
4721
  <ul class="md-nav__list">
4383
4722
 
4384
4723
  <li class="md-nav__item">
4385
- <a href="#ceedling-dependenciesclean" class="md-nav__link">
4724
+ <a href="#ceedling-dependenciesfetch" class="md-nav__link">
4386
4725
  <span class="md-ellipsis">
4387
4726
 
4388
- ceedling dependencies:clean
4727
+ ceedling dependencies:fetch
4389
4728
 
4390
4729
  </span>
4391
4730
  </a>
@@ -4393,10 +4732,10 @@
4393
4732
  </li>
4394
4733
 
4395
4734
  <li class="md-nav__item">
4396
- <a href="#ceedling-dependenciesfetch" class="md-nav__link">
4735
+ <a href="#ceedling-dependenciesmake" class="md-nav__link">
4397
4736
  <span class="md-ellipsis">
4398
4737
 
4399
- ceedling dependencies:fetch
4738
+ ceedling dependencies:make
4400
4739
 
4401
4740
  </span>
4402
4741
  </a>
@@ -4404,10 +4743,10 @@
4404
4743
  </li>
4405
4744
 
4406
4745
  <li class="md-nav__item">
4407
- <a href="#ceedling-dependenciesmake" class="md-nav__link">
4746
+ <a href="#ceedling-dependenciesclean" class="md-nav__link">
4408
4747
  <span class="md-ellipsis">
4409
4748
 
4410
- ceedling dependencies:make
4749
+ ceedling dependencies:clean
4411
4750
 
4412
4751
  </span>
4413
4752
  </a>
@@ -4423,6 +4762,17 @@
4423
4762
  </span>
4424
4763
  </a>
4425
4764
 
4765
+ </li>
4766
+
4767
+ <li class="md-nav__item">
4768
+ <a href="#filesdependencies" class="md-nav__link">
4769
+ <span class="md-ellipsis">
4770
+
4771
+ files:dependencies
4772
+
4773
+ </span>
4774
+ </a>
4775
+
4426
4776
  </li>
4427
4777
 
4428
4778
  <li class="md-nav__item">
@@ -4456,11 +4806,94 @@
4456
4806
  <a href="#custom-tools" class="md-nav__link">
4457
4807
  <span class="md-ellipsis">
4458
4808
 
4459
- Custom Tools
4809
+ Custom tools
4810
+
4811
+ </span>
4812
+ </a>
4813
+
4814
+ </li>
4815
+
4816
+ <li class="md-nav__item">
4817
+ <a href="#cookbook" class="md-nav__link">
4818
+ <span class="md-ellipsis">
4819
+
4820
+ Cookbook
4821
+
4822
+ </span>
4823
+ </a>
4824
+
4825
+ <nav class="md-nav" aria-label="Cookbook">
4826
+ <ul class="md-nav__list">
4827
+
4828
+ <li class="md-nav__item">
4829
+ <a href="#a-tagged-release-from-git-built-with-make" class="md-nav__link">
4830
+ <span class="md-ellipsis">
4831
+
4832
+ A tagged release from git, built with Make
4833
+
4834
+ </span>
4835
+ </a>
4836
+
4837
+ </li>
4838
+
4839
+ <li class="md-nav__item">
4840
+ <a href="#a-vendor-archive-with-environment-settings" class="md-nav__link">
4841
+ <span class="md-ellipsis">
4842
+
4843
+ A vendor archive with environment settings
4844
+
4845
+ </span>
4846
+ </a>
4847
+
4848
+ </li>
4849
+
4850
+ <li class="md-nav__item">
4851
+ <a href="#a-sibling-ceedling-project" class="md-nav__link">
4852
+ <span class="md-ellipsis">
4853
+
4854
+ A sibling Ceedling project
4855
+
4856
+ </span>
4857
+ </a>
4858
+
4859
+ </li>
4860
+
4861
+ <li class="md-nav__item">
4862
+ <a href="#a-shared-library-deployed-beside-the-release" class="md-nav__link">
4863
+ <span class="md-ellipsis">
4864
+
4865
+ A shared library deployed beside the release
4460
4866
 
4461
4867
  </span>
4462
4868
  </a>
4463
4869
 
4870
+ </li>
4871
+
4872
+ <li class="md-nav__item">
4873
+ <a href="#build-tools-deployed-to-a-shared-folder" class="md-nav__link">
4874
+ <span class="md-ellipsis">
4875
+
4876
+ Build tools deployed to a shared folder
4877
+
4878
+ </span>
4879
+ </a>
4880
+
4881
+ </li>
4882
+
4883
+ <li class="md-nav__item">
4884
+ <a href="#a-small-library-compiled-by-ceedling" class="md-nav__link">
4885
+ <span class="md-ellipsis">
4886
+
4887
+ A small library compiled by Ceedling
4888
+
4889
+ </span>
4890
+ </a>
4891
+
4892
+ </li>
4893
+
4894
+ </ul>
4895
+ </nav>
4896
+
4464
4897
  </li>
4465
4898
 
4466
4899
  </ul>
@@ -4532,29 +4965,24 @@
4532
4965
 
4533
4966
 
4534
4967
  <h1 id="dependencies">Dependencies</h1>
4535
- <p>Plugin for supporting release dependencies. It’s rare for an embedded project to
4536
- be built completely free of other libraries and modules. Some of these may be
4537
- standard internal libraries. Some of these may be 3rd party libraries. In either
4538
- case, they become part of the project’s ecosystem.</p>
4539
- <p>This plugin is intended to make that relationship easier. It allows you to specify
4540
- a source for dependencies. If required, it will automatically grab the appropriate
4541
- version of that dependency.</p>
4542
- <p>Most 3rd party libraries have a method of building already in place. While we’d
4543
- love to convert the world to a place where everything downloads with a test suite
4544
- in Ceedling, that’s not likely to happen anytime soon. Until then, this plugin
4545
- will allow the developer to specify what calls Ceedling should make to oversee
4546
- the build process of those third party utilities. Are they using Make? CMake? A
4547
- custom series of scripts that only a mad scientist could possibly understand? No
4548
- matter. Ceedling has you covered. Just specify what should be called, and Ceedling
4549
- will make it happen whenever it notices that the output artifacts are missing.</p>
4550
- <p>Output artifacts? Sure! Things like static and dynamic libraries, or folders
4551
- containing header files that might want to be included by your release project.</p>
4968
+ <p>This plugin fetches, builds, and links the libraries and modules your project depends
4969
+ on. It’s rare for an embedded project to be built completely free of other code. Some of
4970
+ it may be standard internal libraries, and some may be third-party libraries. Either way,
4971
+ it becomes part of the project’s ecosystem.</p>
4972
+ <p>For each dependency, you tell this plugin where to fetch it from, how to build it, and what
4973
+ it produces. Ceedling fetches and builds it whenever those outputs are missing, then adds
4974
+ its headers, sources, and libraries to your test and release builds.</p>
4975
+ <p>Most third-party libraries already have a build process of their own. Make? CMake? A
4976
+ custom series of scripts that only a mad scientist could possibly understand? No matter.
4977
+ You list the commands, and Ceedling runs them.</p>
4978
+ <p>See the <a href="#cookbook"><em>Cookbook</em> section</a> for real-world scenarios along with the example
4979
+ <code>:dependencies</code> configurations and <code>ceedling dependencies:...</code> command lines to make
4980
+ use of this plugin.</p>
4552
4981
  <h2 id="so-how-does-all-this-magic-work">So how does all this magic work?</h2>
4553
- <p>First, you need to add the Dependencies plugin to your list of enabled plugins. Then, we'll
4554
- add a new comfiguration section called <code>:dependencies</code>. There, you can list as many
4555
- dependencies as you desire. Each has a series of fields that help Ceedling to understand
4556
- your needs. Many of them are optional. If you don't need that feature, just don't include
4557
- it! In the end, it'll look something like this:</p>
4982
+ <p>Enable the plugin in your project configuration, then list your dependencies under
4983
+ <code>:dependencies</code> ↳ <code>:deps</code>. Each dependency has a series of fields, most of them optional.
4984
+ If you don’t need a feature, leave its field out. In the end, it looks something like
4985
+ this:</p>
4558
4986
  <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nt">:plugins</span><span class="p">:</span>
4559
4987
  <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="w"> </span><span class="nt">:enabled</span><span class="p">:</span>
4560
4988
  <a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">dependencies</span>
@@ -4563,191 +4991,268 @@ it! In the end, it'll look something like this:</p>
4563
4991
  <a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a><span class="w"> </span><span class="nt">:deps</span><span class="p">:</span>
4564
4992
  <a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">:name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">WolfSSL</span>
4565
4993
  <a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a><span class="w"> </span><span class="nt">:paths</span><span class="p">:</span>
4566
- <a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/wolfssl/source</span>
4567
- <a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a><span class="w"> </span><span class="nt">:source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/wolfssl/source</span>
4568
- <a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/wolfssl/build</span>
4569
- <a id="__codelineno-0-12" name="__codelineno-0-12" href="#__codelineno-0-12"></a><span class="w"> </span><span class="nt">:artifact_lib</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/wolfssl/install</span>
4570
- <a id="__codelineno-0-13" name="__codelineno-0-13" href="#__codelineno-0-13"></a><span class="w"> </span><span class="nt">:artifact_inc</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/wolfssl/install</span>
4571
- <a id="__codelineno-0-14" name="__codelineno-0-14" href="#__codelineno-0-14"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span>
4572
- <a id="__codelineno-0-15" name="__codelineno-0-15" href="#__codelineno-0-15"></a><span class="w"> </span><span class="nt">:method</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">:zip</span>
4573
- <a id="__codelineno-0-16" name="__codelineno-0-16" href="#__codelineno-0-16"></a><span class="w"> </span><span class="nt">:source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">\\shared_drive\third_party_libs\wolfssl\wolfssl-4.2.0.zip</span>
4574
- <a id="__codelineno-0-17" name="__codelineno-0-17" href="#__codelineno-0-17"></a><span class="w"> </span><span class="nt">:environment</span><span class="p">:</span>
4575
- <a id="__codelineno-0-18" name="__codelineno-0-18" href="#__codelineno-0-18"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CFLAGS+=-DWOLFSSL_DTLS_ALLOW_FUTURE</span>
4576
- <a id="__codelineno-0-19" name="__codelineno-0-19" href="#__codelineno-0-19"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span>
4577
- <a id="__codelineno-0-20" name="__codelineno-0-20" href="#__codelineno-0-20"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">&quot;autoreconf</span><span class="nv"> </span><span class="s">-i&quot;</span>
4578
- <a id="__codelineno-0-21" name="__codelineno-0-21" href="#__codelineno-0-21"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">&quot;./configure</span><span class="nv"> </span><span class="s">--enable-tls13</span><span class="nv"> </span><span class="s">--enable-singlethreaded&quot;</span>
4579
- <a id="__codelineno-0-22" name="__codelineno-0-22" href="#__codelineno-0-22"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">make</span>
4580
- <a id="__codelineno-0-23" name="__codelineno-0-23" href="#__codelineno-0-23"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">make install</span>
4581
- <a id="__codelineno-0-24" name="__codelineno-0-24" href="#__codelineno-0-24"></a><span class="w"> </span><span class="nt">:artifacts</span><span class="p">:</span>
4582
- <a id="__codelineno-0-25" name="__codelineno-0-25" href="#__codelineno-0-25"></a><span class="w"> </span><span class="nt">:static_libraries</span><span class="p">:</span>
4583
- <a id="__codelineno-0-26" name="__codelineno-0-26" href="#__codelineno-0-26"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">lib/wolfssl.a</span>
4584
- <a id="__codelineno-0-27" name="__codelineno-0-27" href="#__codelineno-0-27"></a><span class="w"> </span><span class="nt">:dynamic_libraries</span><span class="p">:</span>
4585
- <a id="__codelineno-0-28" name="__codelineno-0-28" href="#__codelineno-0-28"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">lib/wolfssl.so</span>
4586
- <a id="__codelineno-0-29" name="__codelineno-0-29" href="#__codelineno-0-29"></a><span class="w"> </span><span class="nt">:includes</span><span class="p">:</span>
4587
- <a id="__codelineno-0-30" name="__codelineno-0-30" href="#__codelineno-0-30"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">include/**</span>
4994
+ <a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/wolfssl/source</span>
4995
+ <a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a><span class="w"> </span><span class="nt">:source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/wolfssl/source</span>
4996
+ <a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/wolfssl/build</span>
4997
+ <a id="__codelineno-0-12" name="__codelineno-0-12" href="#__codelineno-0-12"></a><span class="w"> </span><span class="nt">:artifact</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/wolfssl/install</span>
4998
+ <a id="__codelineno-0-13" name="__codelineno-0-13" href="#__codelineno-0-13"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span>
4999
+ <a id="__codelineno-0-14" name="__codelineno-0-14" href="#__codelineno-0-14"></a><span class="w"> </span><span class="nt">:method</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">:zip</span>
5000
+ <a id="__codelineno-0-15" name="__codelineno-0-15" href="#__codelineno-0-15"></a><span class="w"> </span><span class="nt">:source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">\\shared_drive\third_party_libs\wolfssl\wolfssl-4.2.0.zip</span>
5001
+ <a id="__codelineno-0-16" name="__codelineno-0-16" href="#__codelineno-0-16"></a><span class="w"> </span><span class="nt">:environment</span><span class="p">:</span>
5002
+ <a id="__codelineno-0-17" name="__codelineno-0-17" href="#__codelineno-0-17"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CFLAGS+=-DWOLFSSL_DTLS_ALLOW_FUTURE</span>
5003
+ <a id="__codelineno-0-18" name="__codelineno-0-18" href="#__codelineno-0-18"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span>
5004
+ <a id="__codelineno-0-19" name="__codelineno-0-19" href="#__codelineno-0-19"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">autoreconf -i</span>
5005
+ <a id="__codelineno-0-20" name="__codelineno-0-20" href="#__codelineno-0-20"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">./configure --enable-tls13 --enable-singlethreaded</span>
5006
+ <a id="__codelineno-0-21" name="__codelineno-0-21" href="#__codelineno-0-21"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">make</span>
5007
+ <a id="__codelineno-0-22" name="__codelineno-0-22" href="#__codelineno-0-22"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">make install</span>
5008
+ <a id="__codelineno-0-23" name="__codelineno-0-23" href="#__codelineno-0-23"></a><span class="w"> </span><span class="nt">:artifacts</span><span class="p">:</span>
5009
+ <a id="__codelineno-0-24" name="__codelineno-0-24" href="#__codelineno-0-24"></a><span class="w"> </span><span class="nt">:static_libraries</span><span class="p">:</span>
5010
+ <a id="__codelineno-0-25" name="__codelineno-0-25" href="#__codelineno-0-25"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">lib/wolfssl.a</span>
5011
+ <a id="__codelineno-0-26" name="__codelineno-0-26" href="#__codelineno-0-26"></a><span class="w"> </span><span class="nt">:dynamic_libraries</span><span class="p">:</span>
5012
+ <a id="__codelineno-0-27" name="__codelineno-0-27" href="#__codelineno-0-27"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">lib/wolfssl.so</span>
5013
+ <a id="__codelineno-0-28" name="__codelineno-0-28" href="#__codelineno-0-28"></a><span class="w"> </span><span class="nt">:includes</span><span class="p">:</span>
5014
+ <a id="__codelineno-0-29" name="__codelineno-0-29" href="#__codelineno-0-29"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">include/**</span>
4588
5015
  </code></pre></div>
4589
- <h2 id="starting-dash-name">Starting Dash &amp; Name</h2>
4590
- <p>Yes, that opening dash tells the dependencies plugin that the rest of these fields
4591
- belong to our first dependency. If we had a second dependency, we’d have another
4592
- dash, lined up with the first, and followed by all the fields indented again.</p>
4593
- <p>By convention, we use the <code>:name</code> field as the first field for each tool. Ceedling
4594
- honestly doesn't care which order the fields are given... but as humans, it makes
4595
- it easier for us to see the name of each dependency with starting dash.</p>
4596
- <p>The name field is only used to print progress while we're running Ceedling. You may
4597
- call the name of the field whatever you wish.</p>
4598
- <h2 id="working-paths">Working Paths</h2>
4599
- <p>All paths are collected under <code>:dependencies</code> ↳ <code>:paths</code>. The <code>:source</code> field allows us
4600
- to specify where the source code for each of our dependencies is stored. By default, it’s
4601
- the same as the <code>:fetch</code> path, which is where source will be fetched TO when fetching the
4602
- dependency from elsewhere. All commands to build this dependency will be executed from
4603
- the <code>:source</code> location. Temporary data will be placed in the <code>:build</code> location. Unless you're
4604
- using one of Ceedling’s built-in builders, you'll need to learn where the tool you're using to
4605
- build places it’s built artifacts , and list that here. Finally, the output
4606
- artifacts will be referenced to this location. You override this by specifying a <code>:artifact</code>
4607
- path. In summary:</p>
4608
- <ul>
4609
- <li><code>:paths</code><ul>
4610
- <li><code>:fetch</code> -- where things are fetched to (defaults to <code>build/deps/depname/</code>)</li>
4611
- <li><code>:source</code> -- where we trigger builds (defaults to <code>:fetch</code>)</li>
4612
- <li><code>:build</code> -- where we have the produced build files (defaults to <code>&lt;:fetch&gt;/build</code>)</li>
4613
- <li><code>:deploy</code> -- where any produced library files should be copied (defaults to same as release executable)</li>
4614
- <li><code>:artifact</code> -- where output libraries can be found (defaults to <code>:build</code>)</li>
4615
- </ul>
4616
- </li>
4617
- </ul>
4618
- <p>If the dependency is directly included in your project (you've specified <code>:none</code> as the
4619
- <code>:method</code> for fetching), then <code>:source</code> should be where your Ceedling can find the
4620
- source for your dependency in you repo.</p>
4621
- <p>All artifacts are relative to the appropriate <code>:artifact</code> path. So if there are multiple
4622
- include dirs, choose the highest level and make the rest relative from there. </p>
4623
- <h2 id="fetching-dependencies">Fetching Dependencies</h2>
4624
- <p>The <code>:dependencies</code> plugin supports the ability to automatically fetch your dependencies
4625
- for you... using some common methods of fetching source. This section contains only a
4626
- couple of fields:</p>
5016
+ <h2 id="name">Name</h2>
5017
+ <p>As a YAML array of objects, each dependency begins with a dash, followed by its fields.
5018
+ By convention, <code>:name</code> comes first, which makes each dependency easy to spot.</p>
5019
+ <p>The name appears in Ceedling’s progress messages. Its letters, digits, and underscores
5020
+ also name the dependency’s own tasks, so <code>Worker Bees</code> gets <code>dependencies:make:WorkerBees</code>.
5021
+ A name therefore needs at least one letter or digit. Two dependencies whose names reduce
5022
+ to the same task name stop the build with an error.</p>
5023
+ <h2 id="working-paths">Working paths</h2>
5024
+ <p>A dependency’s paths are collected under its <code>:paths</code>. Each path you leave out falls back
5025
+ to another, and with none configured every path is <code>dependencies/&lt;task name&gt;</code>.</p>
5026
+ <table>
5027
+ <thead>
5028
+ <tr>
5029
+ <th>Path</th>
5030
+ <th>Purpose</th>
5031
+ <th>When left out</th>
5032
+ </tr>
5033
+ </thead>
5034
+ <tbody>
5035
+ <tr>
5036
+ <td><code>:fetch</code></td>
5037
+ <td>Where the dependency is fetched to</td>
5038
+ <td><code>:source</code></td>
5039
+ </tr>
5040
+ <tr>
5041
+ <td><code>:source</code></td>
5042
+ <td>Where build commands run from</td>
5043
+ <td><code>:fetch</code></td>
5044
+ </tr>
5045
+ <tr>
5046
+ <td><code>:build</code></td>
5047
+ <td>Where the build places its files</td>
5048
+ <td><code>:source</code>, then <code>:fetch</code></td>
5049
+ </tr>
5050
+ <tr>
5051
+ <td><code>:artifact</code></td>
5052
+ <td>Where the outputs listed under <code>:artifacts</code> are found</td>
5053
+ <td><code>:build</code></td>
5054
+ </tr>
5055
+ <tr>
5056
+ <td><code>:deploy</code></td>
5057
+ <td>Where <code>dependencies:deploy</code> copies dynamic libraries and executables</td>
5058
+ <td>Your release executable’s folder</td>
5059
+ </tr>
5060
+ </tbody>
5061
+ </table>
5062
+ <p>Cleaning a dependency never removes its <code>:deploy</code> path, which holds copies alongside your
5063
+ project’s own files.</p>
5064
+ <p>If the dependency is part of your repository (its fetch <code>:method</code> is <code>:none</code>), <code>:source</code>
5065
+ is where its code already lives. Paths may lie outside your project, such as
5066
+ <code>../shared/lib</code>, and headers found there work in test and release builds alike.</p>
5067
+ <p>Every artifact is relative to the <code>:artifact</code> path. With several include directories,
5068
+ choose the highest level and list the rest relative to it.</p>
5069
+ <h2 id="fetching-dependencies">Fetching dependencies</h2>
5070
+ <p>The plugin fetches a dependency with one of several common methods, configured under its
5071
+ <code>:fetch</code>:</p>
4627
5072
  <ul>
4628
- <li><code>:method</code> -- This is the method that this dependency is fetched.<ul>
4629
- <li><code>:none</code> -- This tells Ceedling that the code is already included in the project.</li>
4630
- <li><code>:zip</code> -- This tells Ceedling that we want to unpack a zip file to our source path.</li>
4631
- <li><code>:gzip</code> -- This tells Ceedling that we want to unpack a gzip file to our source path.</li>
4632
- <li><code>:git</code> -- This tells Ceedling that we want to clone a git repo to our source path.</li>
4633
- <li><code>:svn</code> -- This tells Ceedling that we want to checkout a subversion repo to our source path.</li>
4634
- <li><code>:custom</code> -- This tells Ceedling that we want to use a custom command or commands to fetch the code.</li>
5073
+ <li><code>:method</code>, the way this dependency is fetched:<ul>
5074
+ <li><code>:none</code>: the code is already part of the project, so nothing is fetched.</li>
5075
+ <li><code>:zip</code>: unpack a zip archive into the fetch path.</li>
5076
+ <li><code>:tar_gzip</code>: unpack a gzipped tar archive into the fetch path.</li>
5077
+ <li><code>:git</code>: clone a git repository into the fetch path.</li>
5078
+ <li><code>:svn</code>: check out a Subversion repository into the fetch path.</li>
5079
+ <li><code>:custom</code>: run commands of your own in the fetch path.</li>
4635
5080
  </ul>
4636
5081
  </li>
4637
- <li><code>:source</code> -- This is the path or url to fetch code when using the <code>:zip</code>, <code>:gzip</code> or <code>:git</code> method.</li>
4638
- <li><code>:tag</code>/<code>:branch</code> -- This is the specific tag or branch that you wish to retrieve (<code>:git</code> only, optional).</li>
4639
- <li><code>:hash</code> -- This is the specific SHA1 hash you want to fetch (<code>:git</code> only, optional and triggers a deep clone).</li>
4640
- <li><code>:revision</code> -- This is the specific revision you want to fetch (<code>:svn</code> only, optional).</li>
4641
- <li><code>:executable</code> -- This is a YAML list of commands to execute when using the <code>:custom</code> method</li>
5082
+ <li><code>:source</code>: the archive or repository to fetch from (<code>:zip</code>, <code>:tar_gzip</code>, <code>:git</code>, and
5083
+ <code>:svn</code>, all of which require it).</li>
5084
+ <li><code>:tag</code> or <code>:branch</code>: the tag or branch to clone (<code>:git</code> only, optional). A tag wins
5085
+ when both are given.</li>
5086
+ <li><code>:hash</code>: the commit to check out (<code>:git</code> only, optional). It makes a full clone rather
5087
+ than a shallow one, so the commit is available.</li>
5088
+ <li><code>:revision</code>: the revision to check out (<code>:svn</code> only, optional).</li>
5089
+ <li><code>:executable</code>: the list of commands to run (<code>:custom</code> only, required).</li>
4642
5090
  </ul>
4643
- <p>Some notes:</p>
4644
- <ul>
4645
- <li>The <code>:source</code> location for fetching a <code>:zip</code> or <code>:gzip</code> file is relative to the <code>:paths</code> ↳ <code>:source</code>
4646
- folder. </li>
4647
- </ul>
4648
- <h2 id="environment-variables">Environment Variables</h2>
4649
- <p>Many build systems support customization through environment variables. By specifying
4650
- an array of environment variables, the Dependencies plugin will customize the shell environment
4651
- before calling the build process.</p>
4652
- <p>Note that Ceedling’s project configuration includes a top-level <code>:environment</code> sections itself.
4653
- The top-level <code>:environment</code> section is for all of Ceedling. The <code>:environment</code> section nested
4654
- within a specific dependency’s configuration is only for the shell environment used to process
4655
- that dependency. The format and abilities of the two <code>:environment</code> configuration sections are
4656
- also different.</p>
4657
- <p>Environment variables may be specified in three ways. Let’s look at one of each:</p>
5091
+ <p>Fetching runs from inside the fetch path, so an archive <code>:source</code> given as a relative
5092
+ path is relative to the fetch path.</p>
5093
+ <p>A dependency is fetched once. Once its fetch path holds files, fetching it again, or
5094
+ building it after a fetch, leaves those files alone. To fetch a fresh copy, clean the
5095
+ dependency first with <code>dependencies:clean</code>.</p>
5096
+ <p>The <code>:zip</code>, <code>:tar_gzip</code>, <code>:git</code>, and <code>:svn</code> methods use the plugin’s
5097
+ <a href="#custom-tools">tools</a> (<code>unzip</code>, <code>tar</code>, <code>git</code>, and <code>svn</code>). Each is checked just before a
5098
+ dependency fetches with it, so a missing tool stops only that fetch, and a machine that
5099
+ never fetches, such as a CI agent working from fetched dependencies, needs none of them.</p>
5100
+ <h2 id="environment-variables">Environment variables</h2>
5101
+ <p>Many build systems take settings from environment variables. A dependency’s
5102
+ <code>:environment</code> sets variables while that dependency’s fetch and build commands run, then
5103
+ restores them, so they never reach another dependency or Ceedling itself.</p>
5104
+ <p>Ceedling’s project configuration also has a top-level <code>:environment</code> section, which
5105
+ applies to all of Ceedling. The two sections differ in format and abilities.</p>
5106
+ <p>Each entry sets a variable, adds to it, or removes from it:</p>
4658
5107
  <div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="nt">:dependencies</span><span class="p">:</span>
4659
- <a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="w"> </span><span class="nt">&lt;a dependency configuration&gt;</span><span class="p">:</span>
4660
- <a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="w"> </span><span class="nt">:environment</span><span class="p">:</span>
4661
- <a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">ARCHITECTURE=ARM9</span>
4662
- <a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CFLAGS+=-DADD_AWESOMENESS</span>
4663
- <a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CFLAGS-=-DWASTE</span>
5108
+ <a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="w"> </span><span class="nt">:deps</span><span class="p">:</span>
5109
+ <a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">:name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Engine</span>
5110
+ <a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="w"> </span><span class="nt">:environment</span><span class="p">:</span>
5111
+ <a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">ARCHITECTURE=ARM9</span>
5112
+ <a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CFLAGS+= -DADD_AWESOMENESS</span>
5113
+ <a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CFLAGS-= -DWASTE</span>
4664
5114
  </code></pre></div>
4665
- <p>In the first example, you see the most straightforward method. The environment variable
4666
- <code>ARCHITECTURE</code> is set to the value <code>ARM9</code>. That’s it. Simple.</p>
4667
- <p>The next two options modify an existing symbol. In the first one, we use <code>+=</code>, which tells
4668
- Ceedling to add the define <code>ADD_AWESOMENESS</code> to the environment variable <code>CFLAGS</code>. The second
4669
- tells Ceedling to remove the define <code>WASTE</code> from the same environment variable.</p>
4670
- <p>There are a couple of things to note here.</p>
4671
- <p>First, when adding to a variable, Ceedling has no way of knowing
4672
- what delimiter you are expecting. In this example you can see we manually added some whitespace.
4673
- If we had been modifying <code>PATH</code> instead, we might have had to use a <code>:</code> on a unux or <code>;</code> on
4674
- Windows.</p>
4675
- <p>Second, removing an argument will have no effect on the argument if that argument isn't found
4676
- precisely. It’s case sensitive and the entire string must match. If symbol doesn't already exist,
4677
- it WILL after executing this command... however it will be assigned to nothing.</p>
4678
- <h2 id="building-dependencies">Building Dependencies</h2>
4679
- <p>The heart of the <code>:dependencies</code> plugin is the ability for you, the developer, to specify the
4680
- build process for each of your dependencies. You will need to have any required tools installed
4681
- before using this feature.</p>
4682
- <p>The steps are specified as an array of strings. Ceedling will execute those steps in the order
4683
- specified, moving from step to step unless an error is encountered. By the end of the process,
4684
- the artifacts should have been created by your process... otherwise an error will be produced.</p>
5115
+ <p><code>ARCHITECTURE=ARM9</code> sets <code>ARCHITECTURE</code> to <code>ARM9</code>. <code>+=</code> appends to a variable, here
5116
+ adding <code>-DADD_AWESOMENESS</code> to <code>CFLAGS</code>, and <code>-=</code> removes text from it, here removing
5117
+ <code>-DWASTE</code>. An entry in any other form stops the build with an error.</p>
5118
+ <p>When appending, Ceedling cannot know which delimiter you expect, so include it yourself:
5119
+ a space for compiler flags, or <code>:</code> (<code>;</code> on Windows) for <code>PATH</code>. Text after <code>+=</code> and <code>-=</code>
5120
+ is used exactly as written, leading space included, while a value after <code>=</code> loses its
5121
+ leading spaces. Removing text is case
5122
+ sensitive and removes only an exact match. Appending to or removing from a variable that
5123
+ is not set leaves it set, empty if nothing was appended.</p>
5124
+ <h2 id="building-dependencies">Building dependencies</h2>
5125
+ <p>The heart of the plugin is the build process you specify for each dependency under
5126
+ <code>:build</code>, a list of steps Ceedling runs in order. Any tools those steps use must be
5127
+ installed. A failing step stops the build with its error.</p>
5128
+ <p>Each step is a command line, which runs from the dependency’s <code>:source</code> path exactly as
5129
+ written, quoting and spacing included. The source, build, and artifact paths are created
5130
+ first if they do not exist. A step can instead be <code>:build_lib</code>, which builds a static
5131
+ library with Ceedling’s own compiler and archiver (see <a href="#custom-tools">Custom tools</a>).</p>
4685
5132
  <h2 id="artifacts">Artifacts</h2>
4686
- <p>These are the outputs of the build process. There are there types of artifacts. Any dependency
4687
- may have none or some of these. Calling out these files tells Ceedling that they are important.
4688
- Your dependency’s build process may produce many other files... but these are the files that
4689
- Ceedling understands it needs to act on.</p>
5133
+ <p>Artifacts are the outputs of the build process, listed under <code>:artifacts</code>. A dependency
5134
+ may have any of them or none. Your dependency’s build process may produce many other
5135
+ files, but these are the ones Ceedling acts on.</p>
4690
5136
  <h3 id="static_libraries"><code>static_libraries</code></h3>
4691
- <p>Specifying one or more static libraries will tell Ceedling where it should find static libraries
4692
- output by your build process. These libraries are automatically added to the list of dependencies
4693
- and will be linked with the rest of your code to produce the final release.</p>
4694
- <p>If any of these libraries don't exist, Ceedling will trigger your build process in order for it
4695
- to produce them.</p>
5137
+ <p>Static libraries Ceedling links into your test and release builds. If one does not
5138
+ exist, Ceedling fetches and builds the dependency to produce it.</p>
4696
5139
  <h3 id="dynamic_libraries"><code>dynamic_libraries</code></h3>
4697
- <p>Specifying one or more dynamic libraries will tell Ceedling where it should find dynamic libraries
4698
- output by your build process. These libraries are automatically copied to the same folder as your
4699
- final release binary.</p>
4700
- <p>If any of these libraries don't exist, Ceedling will trigger your build process in order for it
4701
- to produce them.</p>
5140
+ <p>Dynamic libraries Ceedling links into your test and release builds. If one does not
5141
+ exist, Ceedling fetches and builds the dependency to produce it. <code>dependencies:deploy</code>
5142
+ copies them to the <a href="#working-paths"><code>:deploy</code> path</a>, by default beside your release
5143
+ executable, where it loads them at run time.</p>
5144
+ <h3 id="executables"><code>executables</code></h3>
5145
+ <p>Programs a dependency builds, such as a code generator, a flashing utility, or a tool
5146
+ your release ships alongside it. Ceedling never links them. A release build, or
5147
+ <code>dependencies:make</code>, fetches and builds the dependency when one does not exist, while
5148
+ test builds do not wait on them. <code>dependencies:deploy</code> copies them, with any dynamic
5149
+ libraries, to the <a href="#working-paths"><code>:deploy</code> path</a>.</p>
5150
+ <p>On Windows, list each executable with its <code>.exe</code> extension.</p>
4702
5151
  <h3 id="includes"><code>includes</code></h3>
4703
- <p>Often when libraries are built, the same process will output a collection of includes so that
4704
- your release code knows how to interact with that library. It’s the public API for that library.
4705
- By specifying the directories that will contain these includes (don't specify the files themselves,
4706
- Ceedling only needs the directories), Ceedling is able to automatically add these to its internal
4707
- include list. This allows these files to be used while building your release code, as well we making
4708
- them mockable during unit testing.</p>
5152
+ <p>The public headers a dependency provides. Ceedling adds their directories to its search
5153
+ paths, so your code can include them and your tests can mock them. An entry may be:</p>
5154
+ <ul>
5155
+ <li>a header file, such as <code>include/wolfssl.h</code>, which adds that file’s directory;</li>
5156
+ <li>a directory, such as <code>include</code>;</li>
5157
+ <li>a glob, such as <code>include/**</code>, which adds every directory it finds.</li>
5158
+ </ul>
4709
5159
  <h3 id="source"><code>source</code></h3>
4710
- <p>It’s possible that your external dependency will just produce additional C files as its output.
4711
- In this case, Ceedling is able to automatically add these to its internal source list. This allows
4712
- these files to be used while building your release code.</p>
5160
+ <p>Directories of C files a dependency produces, such as generated code. Ceedling adds the
5161
+ directories to its search paths and their C files to your release build.</p>
4713
5162
  <h2 id="tasks">Tasks</h2>
4714
- <p>Once configured correctly, the <code>:dependencies</code> plugin should integrate seamlessly into your
4715
- workflow and you shouldn't have to think about it. In the real world, that doesn't always happen.
4716
- Here are a number of tasks that are added or modified by this plugin.</p>
4717
- <h3 id="ceedling-dependenciesclean"><code>ceedling dependencies:clean</code></h3>
4718
- <p>This can be issued in order to completely remove the dependency from its source path. On the
4719
- next build, it will be refetched and rebuilt from scratch. This can also apply to a particular
4720
- dependency. For example, by specifying <code>dependencies:clean:DepName</code>.</p>
5163
+ <p>Once configured, the plugin works on its own: a release or test build fetches and builds
5164
+ any dependency whose outputs are missing. These tasks let you act on dependencies
5165
+ directly. Each also works on a single dependency by its task name, such as
5166
+ <code>dependencies:make:WorkerBees</code>.</p>
4721
5167
  <h3 id="ceedling-dependenciesfetch"><code>ceedling dependencies:fetch</code></h3>
4722
- <p>This can be issued in order to fetch each dependency from its origin. This will have no effect on
4723
- dependencies that don't have fetch instructions specified. This can also apply to a particular
4724
- dependency. For example, by specifying <code>dependencies:fetch:DepName</code>.</p>
5168
+ <p>Fetches each dependency that is not fetched yet. Dependencies without fetch settings, or
5169
+ fetched by <code>:none</code>, are left alone.</p>
4725
5170
  <h3 id="ceedling-dependenciesmake"><code>ceedling dependencies:make</code></h3>
4726
- <p>This will force the dependencies to all build. This should happen automatically when a release
4727
- has been triggered... but if you're just getting your dependency configured at this moment, you
4728
- may want to just use this feature instead. A single dependency can also be built by specifying its
4729
- name, like <code>dependencies:make:MyTunaBoat</code>.</p>
5171
+ <p>Fetches each dependency if needed, then builds any whose outputs are missing. This
5172
+ happens automatically in a release build, but is handy while you are configuring a
5173
+ dependency.</p>
5174
+ <h3 id="ceedling-dependenciesclean"><code>ceedling dependencies:clean</code></h3>
5175
+ <p>Removes a fetched dependency entirely, every one of its working paths, so the next build
5176
+ fetches and builds it from scratch. A dependency fetched by <code>:none</code> keeps its source and
5177
+ loses only its artifact path. A dependency without fetch settings is left alone.</p>
4730
5178
  <h3 id="ceedling-dependenciesdeploy"><code>ceedling dependencies:deploy</code></h3>
4731
- <p>This will force any dynamic libraries produced by your dependencies to be copied to your release
4732
- build directory... just in case you clobbered them.</p>
5179
+ <p>Copies every dynamic library and executable of each dependency to its
5180
+ <a href="#working-paths"><code>:deploy</code> path</a>, by default beside your release executable. An artifact
5181
+ that has not been built is built first.</p>
5182
+ <h3 id="filesdependencies"><code>files:dependencies</code></h3>
5183
+ <p>Lists every static library, dynamic library, and executable your dependencies provide.</p>
4733
5184
  <h3 id="pathsinclude"><code>paths:include</code></h3>
4734
- <p>Maybe you want to verify that all the include paths are correct. If you query Ceedling with this
4735
- request, it will list all the header file paths that it’s found, including those produced by
4736
- dependencies.</p>
5185
+ <p>Lists every header search path Ceedling uses, including those from dependencies.</p>
4737
5186
  <h3 id="filesinclude"><code>files:include</code></h3>
4738
- <p>Maybe you want to take that query further and actually get a list of ALL the header files
4739
- Ceedling has found, including those belonging to your dependencies.</p>
4740
- <h2 id="custom-tools">Custom Tools</h2>
4741
- <p>You can optionally specify a compiler, assembler, and linker, just as you would a release build:</p>
5187
+ <p>Lists every header file Ceedling has found, including those from dependencies.</p>
5188
+ <h2 id="custom-tools">Custom tools</h2>
5189
+ <p>The plugin’s tools are configured like any other Ceedling tool, and you can replace them
5190
+ under <code>:tools</code>:</p>
5191
+ <table>
5192
+ <thead>
5193
+ <tr>
5194
+ <th>Tool</th>
5195
+ <th>Default</th>
5196
+ <th>Used for</th>
5197
+ </tr>
5198
+ </thead>
5199
+ <tbody>
5200
+ <tr>
5201
+ <td><code>:deps_compiler</code></td>
5202
+ <td><code>gcc</code></td>
5203
+ <td><code>:build_lib</code> compiling</td>
5204
+ </tr>
5205
+ <tr>
5206
+ <td><code>:deps_assembler</code></td>
5207
+ <td>none</td>
5208
+ <td><code>:build_lib</code> assembling, needed only for assembly files</td>
5209
+ </tr>
5210
+ <tr>
5211
+ <td><code>:deps_linker</code></td>
5212
+ <td><code>ar</code></td>
5213
+ <td><code>:build_lib</code> archiving</td>
5214
+ </tr>
5215
+ <tr>
5216
+ <td><code>:deps_zip</code></td>
5217
+ <td><code>unzip</code></td>
5218
+ <td><code>:zip</code> fetching</td>
5219
+ </tr>
5220
+ <tr>
5221
+ <td><code>:deps_targzip</code></td>
5222
+ <td><code>tar</code></td>
5223
+ <td><code>:tar_gzip</code> fetching</td>
5224
+ </tr>
5225
+ <tr>
5226
+ <td><code>:deps_git_clone</code>, <code>:deps_git_checkout</code></td>
5227
+ <td><code>git</code></td>
5228
+ <td><code>:git</code> fetching</td>
5229
+ </tr>
5230
+ <tr>
5231
+ <td><code>:deps_subversion</code></td>
5232
+ <td><code>svn</code></td>
5233
+ <td><code>:svn</code> fetching</td>
5234
+ </tr>
5235
+ </tbody>
5236
+ </table>
5237
+ <p>The compiler, assembler, and archiver are checked just before <code>:build_lib</code> uses them, so
5238
+ a project without <code>:build_lib</code> needs none of them.</p>
5239
+ <p><code>:build_lib</code> compiles every C file anywhere under the dependency’s <code>:source</code> path, with
5240
+ every directory holding a header there as a search path. It then archives the objects
5241
+ into the first library under <code>:artifacts</code> ↳ <code>:static_libraries</code>, built in the <code>:build</code>
5242
+ path and copied to the <code>:artifact</code> path when the two differ. A dependency’s own
5243
+ <code>:defines</code> and <code>:flags</code> apply to its compilation, and <code>:libraries</code> and <code>:libpaths</code> to its
5244
+ archiving.</p>
5245
+ <p>The compiler receives its search paths as <code>${5}</code> and its defines as <code>${6}</code>, as Ceedling’s
5246
+ own compilers do:</p>
4742
5247
  <div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="nt">:tools</span><span class="p">:</span>
4743
5248
  <a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a><span class="w"> </span><span class="nt">:deps_compiler</span><span class="p">:</span>
4744
5249
  <a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="w"> </span><span class="nt">:executable</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">gcc</span>
4745
5250
  <a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="w"> </span><span class="nt">:arguments</span><span class="p">:</span>
4746
5251
  <a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">-g</span>
4747
- <a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">-I&quot;$&quot;</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">COLLECTION_PATHS_SUBPROJECTS</span>
4748
- <a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">-D$</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">COLLECTION_DEFINES_SUBPROJECTS</span>
4749
- <a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">-c &quot;${1}&quot;</span>
4750
- <a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">-o &quot;${2}&quot;</span>
5252
+ <a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">-I"${5}"</span>
5253
+ <a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">-D${6}</span>
5254
+ <a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">-c "${1}"</span>
5255
+ <a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">-o "${2}"</span>
4751
5256
  <a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a><span class="w"> </span><span class="nt">:deps_linker</span><span class="p">:</span>
4752
5257
  <a id="__codelineno-2-11" name="__codelineno-2-11" href="#__codelineno-2-11"></a><span class="w"> </span><span class="nt">:executable</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">ar</span>
4753
5258
  <a id="__codelineno-2-12" name="__codelineno-2-12" href="#__codelineno-2-12"></a><span class="w"> </span><span class="nt">:arguments</span><span class="p">:</span>
@@ -4755,30 +5260,203 @@ Ceedling has found, including those belonging to your dependencies.</p>
4755
5260
  <a id="__codelineno-2-14" name="__codelineno-2-14" href="#__codelineno-2-14"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">${2}</span>
4756
5261
  <a id="__codelineno-2-15" name="__codelineno-2-15" href="#__codelineno-2-15"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">${1}</span>
4757
5262
  </code></pre></div>
4758
- <p>Then, once created, you can reference these tools in your build steps by using the <code>:build_lib</code> symbol instead
4759
- of a series of strings to explain all the steps. Ceedling will understand that it should build all the specified
4760
- source and/or assembly files into the specified library:</p>
5263
+ <p>A dependency built with <code>:build_lib</code> looks like this:</p>
4761
5264
  <div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="nt">:dependencies</span><span class="p">:</span>
4762
5265
  <a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a><span class="w"> </span><span class="nt">:deps</span><span class="p">:</span>
4763
5266
  <a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">:name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CaptainCrunch</span>
4764
5267
  <a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a><span class="w"> </span><span class="nt">:paths</span><span class="p">:</span>
4765
- <a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">../cc/</span>
4766
- <a id="__codelineno-3-6" name="__codelineno-3-6" href="#__codelineno-3-6"></a><span class="w"> </span><span class="nt">:source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">../cc/</span>
4767
- <a id="__codelineno-3-7" name="__codelineno-3-7" href="#__codelineno-3-7"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">../cc/build</span>
4768
- <a id="__codelineno-3-8" name="__codelineno-3-8" href="#__codelineno-3-8"></a><span class="w"> </span><span class="nt">:artifact</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">../cc/build</span>
4769
- <a id="__codelineno-3-9" name="__codelineno-3-9" href="#__codelineno-3-9"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span>
4770
- <a id="__codelineno-3-10" name="__codelineno-3-10" href="#__codelineno-3-10"></a><span class="w"> </span><span class="nt">:method</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">:none</span>
4771
- <a id="__codelineno-3-11" name="__codelineno-3-11" href="#__codelineno-3-11"></a><span class="w"> </span><span class="nt">:environment</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[]</span>
4772
- <a id="__codelineno-3-12" name="__codelineno-3-12" href="#__codelineno-3-12"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span>
4773
- <a id="__codelineno-3-13" name="__codelineno-3-13" href="#__codelineno-3-13"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">:build_lib</span>
4774
- <a id="__codelineno-3-14" name="__codelineno-3-14" href="#__codelineno-3-14"></a><span class="w"> </span><span class="nt">:artifacts</span><span class="p">:</span>
4775
- <a id="__codelineno-3-15" name="__codelineno-3-15" href="#__codelineno-3-15"></a><span class="w"> </span><span class="nt">:static_libraries</span><span class="p">:</span>
4776
- <a id="__codelineno-3-16" name="__codelineno-3-16" href="#__codelineno-3-16"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">release/cc.a</span>
4777
- <a id="__codelineno-3-17" name="__codelineno-3-17" href="#__codelineno-3-17"></a><span class="w"> </span><span class="nt">:dynamic_libraries</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[]</span>
4778
- <a id="__codelineno-3-18" name="__codelineno-3-18" href="#__codelineno-3-18"></a><span class="w"> </span><span class="nt">:includes</span><span class="p">:</span><span class="w"> </span>
4779
- <a id="__codelineno-3-19" name="__codelineno-3-19" href="#__codelineno-3-19"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">./cc.h</span>
4780
- <a id="__codelineno-3-20" name="__codelineno-3-20" href="#__codelineno-3-20"></a><span class="w"> </span><span class="nt">:defines</span><span class="p">:</span>
4781
- <a id="__codelineno-3-21" name="__codelineno-3-21" href="#__codelineno-3-21"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">THESE_GET_USED_DURING_COMPILATION</span>
5268
+ <a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a><span class="w"> </span><span class="nt">:source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">../cc/</span>
5269
+ <a id="__codelineno-3-6" name="__codelineno-3-6" href="#__codelineno-3-6"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">../cc/build</span>
5270
+ <a id="__codelineno-3-7" name="__codelineno-3-7" href="#__codelineno-3-7"></a><span class="w"> </span><span class="nt">:artifact</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">../cc/build</span>
5271
+ <a id="__codelineno-3-8" name="__codelineno-3-8" href="#__codelineno-3-8"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span>
5272
+ <a id="__codelineno-3-9" name="__codelineno-3-9" href="#__codelineno-3-9"></a><span class="w"> </span><span class="nt">:method</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">:none</span>
5273
+ <a id="__codelineno-3-10" name="__codelineno-3-10" href="#__codelineno-3-10"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span>
5274
+ <a id="__codelineno-3-11" name="__codelineno-3-11" href="#__codelineno-3-11"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">:build_lib</span>
5275
+ <a id="__codelineno-3-12" name="__codelineno-3-12" href="#__codelineno-3-12"></a><span class="w"> </span><span class="nt">:artifacts</span><span class="p">:</span>
5276
+ <a id="__codelineno-3-13" name="__codelineno-3-13" href="#__codelineno-3-13"></a><span class="w"> </span><span class="nt">:static_libraries</span><span class="p">:</span>
5277
+ <a id="__codelineno-3-14" name="__codelineno-3-14" href="#__codelineno-3-14"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">release/cc.a</span>
5278
+ <a id="__codelineno-3-15" name="__codelineno-3-15" href="#__codelineno-3-15"></a><span class="w"> </span><span class="nt">:includes</span><span class="p">:</span>
5279
+ <a id="__codelineno-3-16" name="__codelineno-3-16" href="#__codelineno-3-16"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">./cc.h</span>
5280
+ <a id="__codelineno-3-17" name="__codelineno-3-17" href="#__codelineno-3-17"></a><span class="w"> </span><span class="nt">:defines</span><span class="p">:</span>
5281
+ <a id="__codelineno-3-18" name="__codelineno-3-18" href="#__codelineno-3-18"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">THESE_GET_USED_DURING_COMPILATION</span>
5282
+ </code></pre></div>
5283
+ <h2 id="cookbook">Cookbook</h2>
5284
+ <p>Each recipe below pairs a dependency’s configuration with the commands that work with
5285
+ it. Any of them can sit alongside the others in one <code>:deps</code> list.</p>
5286
+ <h3 id="a-tagged-release-from-git-built-with-make">A tagged release from git, built with Make</h3>
5287
+ <p>Your drone flight controller firmware uses an open-source sensor fusion library, which
5288
+ blends accelerometer and gyroscope readings into an orientation. Its maintainers publish
5289
+ tagged releases on GitHub and build it with a makefile.</p>
5290
+ <p>Pin a library to a release tag so every developer and CI run builds the same code. The
5291
+ clone is shallow, which keeps it quick.</p>
5292
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="nt">:dependencies</span><span class="p">:</span>
5293
+ <a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="w"> </span><span class="nt">:deps</span><span class="p">:</span>
5294
+ <a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">:name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Sensor Fusion</span>
5295
+ <a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a><span class="w"> </span><span class="nt">:paths</span><span class="p">:</span>
5296
+ <a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/fusion</span>
5297
+ <a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a><span class="w"> </span><span class="nt">:artifact</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/fusion/out</span>
5298
+ <a id="__codelineno-4-7" name="__codelineno-4-7" href="#__codelineno-4-7"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span>
5299
+ <a id="__codelineno-4-8" name="__codelineno-4-8" href="#__codelineno-4-8"></a><span class="w"> </span><span class="nt">:method</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">:git</span>
5300
+ <a id="__codelineno-4-9" name="__codelineno-4-9" href="#__codelineno-4-9"></a><span class="w"> </span><span class="nt">:source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://github.com/example/sensor-fusion.git</span>
5301
+ <a id="__codelineno-4-10" name="__codelineno-4-10" href="#__codelineno-4-10"></a><span class="w"> </span><span class="nt">:tag</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">v2.4.1</span>
5302
+ <a id="__codelineno-4-11" name="__codelineno-4-11" href="#__codelineno-4-11"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span>
5303
+ <a id="__codelineno-4-12" name="__codelineno-4-12" href="#__codelineno-4-12"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">make lib OUT=out</span>
5304
+ <a id="__codelineno-4-13" name="__codelineno-4-13" href="#__codelineno-4-13"></a><span class="w"> </span><span class="nt">:artifacts</span><span class="p">:</span>
5305
+ <a id="__codelineno-4-14" name="__codelineno-4-14" href="#__codelineno-4-14"></a><span class="w"> </span><span class="nt">:static_libraries</span><span class="p">:</span>
5306
+ <a id="__codelineno-4-15" name="__codelineno-4-15" href="#__codelineno-4-15"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">libfusion.a</span>
5307
+ <a id="__codelineno-4-16" name="__codelineno-4-16" href="#__codelineno-4-16"></a><span class="w"> </span><span class="nt">:includes</span><span class="p">:</span>
5308
+ <a id="__codelineno-4-17" name="__codelineno-4-17" href="#__codelineno-4-17"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">../include/**</span>
5309
+ </code></pre></div>
5310
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>ceedling<span class="w"> </span>dependencies:make<span class="w"> </span><span class="c1"># Clone v2.4.1 if needed, then build libfusion.a</span>
5311
+ <a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a>ceedling<span class="w"> </span>release<span class="w"> </span><span class="c1"># Link it into the release build</span>
5312
+ </code></pre></div>
5313
+ <p>To move to a new tag, change <code>:tag</code>, then fetch a fresh copy, since a fetched dependency
5314
+ is not fetched again:</p>
5315
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>ceedling<span class="w"> </span>dependencies:clean:SensorFusion<span class="w"> </span>dependencies:make:SensorFusion
5316
+ </code></pre></div>
5317
+ <h3 id="a-vendor-archive-with-environment-settings">A vendor archive with environment settings</h3>
5318
+ <p>Your chip vendor ships its real-time operating system as a zip archive, which your team
5319
+ keeps on a shared file server. It builds with an autotools configure script, which must
5320
+ be told to cross-compile for your ARM Cortex-M4 target.</p>
5321
+ <p>Unpack a zip from a shared location and build it with the vendor’s own configure script,
5322
+ passing settings through the environment of that build alone.</p>
5323
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="nt">:dependencies</span><span class="p">:</span>
5324
+ <a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a><span class="w"> </span><span class="nt">:deps</span><span class="p">:</span>
5325
+ <a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">:name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">VendorRTOS</span>
5326
+ <a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a><span class="w"> </span><span class="nt">:paths</span><span class="p">:</span>
5327
+ <a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/rtos/source</span>
5328
+ <a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/rtos/source/build</span>
5329
+ <a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a><span class="w"> </span><span class="nt">:artifact</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/rtos/install</span>
5330
+ <a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span>
5331
+ <a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a><span class="w"> </span><span class="nt">:method</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">:zip</span>
5332
+ <a id="__codelineno-7-10" name="__codelineno-7-10" href="#__codelineno-7-10"></a><span class="w"> </span><span class="nt">:source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/mnt/vendor/rtos-5.2.zip</span>
5333
+ <a id="__codelineno-7-11" name="__codelineno-7-11" href="#__codelineno-7-11"></a><span class="w"> </span><span class="nt">:environment</span><span class="p">:</span>
5334
+ <a id="__codelineno-7-12" name="__codelineno-7-12" href="#__codelineno-7-12"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CC=arm-none-eabi-gcc</span>
5335
+ <a id="__codelineno-7-13" name="__codelineno-7-13" href="#__codelineno-7-13"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CFLAGS+= -mcpu=cortex-m4</span>
5336
+ <a id="__codelineno-7-14" name="__codelineno-7-14" href="#__codelineno-7-14"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span>
5337
+ <a id="__codelineno-7-15" name="__codelineno-7-15" href="#__codelineno-7-15"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">./configure --prefix=../install</span>
5338
+ <a id="__codelineno-7-16" name="__codelineno-7-16" href="#__codelineno-7-16"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">make install</span>
5339
+ <a id="__codelineno-7-17" name="__codelineno-7-17" href="#__codelineno-7-17"></a><span class="w"> </span><span class="nt">:artifacts</span><span class="p">:</span>
5340
+ <a id="__codelineno-7-18" name="__codelineno-7-18" href="#__codelineno-7-18"></a><span class="w"> </span><span class="nt">:static_libraries</span><span class="p">:</span>
5341
+ <a id="__codelineno-7-19" name="__codelineno-7-19" href="#__codelineno-7-19"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">lib/librtos.a</span>
5342
+ <a id="__codelineno-7-20" name="__codelineno-7-20" href="#__codelineno-7-20"></a><span class="w"> </span><span class="nt">:includes</span><span class="p">:</span>
5343
+ <a id="__codelineno-7-21" name="__codelineno-7-21" href="#__codelineno-7-21"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">include</span>
5344
+ </code></pre></div>
5345
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>ceedling<span class="w"> </span>dependencies:fetch:VendorRTOS<span class="w"> </span><span class="c1"># Unpack the archive</span>
5346
+ <a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a>ceedling<span class="w"> </span>dependencies:make:VendorRTOS<span class="w"> </span><span class="c1"># Configure and build with CC and CFLAGS set</span>
5347
+ </code></pre></div>
5348
+ <h3 id="a-sibling-ceedling-project">A sibling Ceedling project</h3>
5349
+ <p>Your repository holds two Ceedling projects side by side: the main application and a
5350
+ supervisor module that watches over it. The supervisor is developed and unit tested in
5351
+ its own project, and the application links it as a library.</p>
5352
+ <p>Build a library from another Ceedling project in the same repository, using that
5353
+ project’s own release build. It is never fetched, so cleaning removes only its build
5354
+ outputs.</p>
5355
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="nt">:dependencies</span><span class="p">:</span>
5356
+ <a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a><span class="w"> </span><span class="nt">:deps</span><span class="p">:</span>
5357
+ <a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">:name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Supervisor</span>
5358
+ <a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a><span class="w"> </span><span class="nt">:paths</span><span class="p">:</span>
5359
+ <a id="__codelineno-9-5" name="__codelineno-9-5" href="#__codelineno-9-5"></a><span class="w"> </span><span class="nt">:source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">../supervisor</span>
5360
+ <a id="__codelineno-9-6" name="__codelineno-9-6" href="#__codelineno-9-6"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">../supervisor/build</span>
5361
+ <a id="__codelineno-9-7" name="__codelineno-9-7" href="#__codelineno-9-7"></a><span class="w"> </span><span class="nt">:artifact</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">../supervisor/build/release</span>
5362
+ <a id="__codelineno-9-8" name="__codelineno-9-8" href="#__codelineno-9-8"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span>
5363
+ <a id="__codelineno-9-9" name="__codelineno-9-9" href="#__codelineno-9-9"></a><span class="w"> </span><span class="nt">:method</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">:none</span>
5364
+ <a id="__codelineno-9-10" name="__codelineno-9-10" href="#__codelineno-9-10"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span>
5365
+ <a id="__codelineno-9-11" name="__codelineno-9-11" href="#__codelineno-9-11"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">ceedling clobber release</span>
5366
+ <a id="__codelineno-9-12" name="__codelineno-9-12" href="#__codelineno-9-12"></a><span class="w"> </span><span class="nt">:artifacts</span><span class="p">:</span>
5367
+ <a id="__codelineno-9-13" name="__codelineno-9-13" href="#__codelineno-9-13"></a><span class="w"> </span><span class="nt">:static_libraries</span><span class="p">:</span>
5368
+ <a id="__codelineno-9-14" name="__codelineno-9-14" href="#__codelineno-9-14"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">libsupervisor.a</span>
5369
+ <a id="__codelineno-9-15" name="__codelineno-9-15" href="#__codelineno-9-15"></a><span class="w"> </span><span class="nt">:includes</span><span class="p">:</span>
5370
+ <a id="__codelineno-9-16" name="__codelineno-9-16" href="#__codelineno-9-16"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">../../src/supervisor.h</span>
5371
+ </code></pre></div>
5372
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>ceedling<span class="w"> </span>dependencies:make:Supervisor<span class="w"> </span><span class="c1"># Run the sibling project’s release build</span>
5373
+ <a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a>ceedling<span class="w"> </span>test:all<span class="w"> </span><span class="c1"># Test against its library and header</span>
5374
+ <a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a>ceedling<span class="w"> </span>dependencies:clean:Supervisor<span class="w"> </span><span class="c1"># Remove only its release outputs</span>
5375
+ </code></pre></div>
5376
+ <h3 id="a-shared-library-deployed-beside-the-release">A shared library deployed beside the release</h3>
5377
+ <p>Your Linux-based product decodes audio with a third-party codec, built as a shared
5378
+ library the application loads when it starts. You keep the codec’s source release in the
5379
+ project’s <code>downloads</code> folder.</p>
5380
+ <p>Build a dynamic library and copy it beside the release executable, which loads it at run
5381
+ time.</p>
5382
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="nt">:dependencies</span><span class="p">:</span>
5383
+ <a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a><span class="w"> </span><span class="nt">:deps</span><span class="p">:</span>
5384
+ <a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">:name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Codec</span>
5385
+ <a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a><span class="w"> </span><span class="nt">:paths</span><span class="p">:</span>
5386
+ <a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/codec</span>
5387
+ <a id="__codelineno-11-6" name="__codelineno-11-6" href="#__codelineno-11-6"></a><span class="w"> </span><span class="nt">:artifact</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/codec/lib</span>
5388
+ <a id="__codelineno-11-7" name="__codelineno-11-7" href="#__codelineno-11-7"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span>
5389
+ <a id="__codelineno-11-8" name="__codelineno-11-8" href="#__codelineno-11-8"></a><span class="w"> </span><span class="nt">:method</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">:tar_gzip</span>
5390
+ <a id="__codelineno-11-9" name="__codelineno-11-9" href="#__codelineno-11-9"></a><span class="w"> </span><span class="nt">:source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">../../downloads/codec-1.8.tar.gz</span>
5391
+ <a id="__codelineno-11-10" name="__codelineno-11-10" href="#__codelineno-11-10"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span>
5392
+ <a id="__codelineno-11-11" name="__codelineno-11-11" href="#__codelineno-11-11"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">make shared</span>
5393
+ <a id="__codelineno-11-12" name="__codelineno-11-12" href="#__codelineno-11-12"></a><span class="w"> </span><span class="nt">:artifacts</span><span class="p">:</span>
5394
+ <a id="__codelineno-11-13" name="__codelineno-11-13" href="#__codelineno-11-13"></a><span class="w"> </span><span class="nt">:dynamic_libraries</span><span class="p">:</span>
5395
+ <a id="__codelineno-11-14" name="__codelineno-11-14" href="#__codelineno-11-14"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">libcodec.so</span>
5396
+ <a id="__codelineno-11-15" name="__codelineno-11-15" href="#__codelineno-11-15"></a><span class="w"> </span><span class="nt">:includes</span><span class="p">:</span>
5397
+ <a id="__codelineno-11-16" name="__codelineno-11-16" href="#__codelineno-11-16"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">../include</span>
5398
+ </code></pre></div>
5399
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>ceedling<span class="w"> </span>release<span class="w"> </span>dependencies:deploy<span class="w"> </span><span class="c1"># Build, link, then copy libcodec.so beside the executable</span>
5400
+ </code></pre></div>
5401
+ <p>The archive’s relative <code>:source</code> resolves from inside the fetch path, which is why it
5402
+ climbs two folders.</p>
5403
+ <h3 id="build-tools-deployed-to-a-shared-folder">Build tools deployed to a shared folder</h3>
5404
+ <p><code>packer</code> is an in-house utility your tools team keeps in its own git repository. It
5405
+ bundles a compiled firmware image with its version metadata into a signed update file,
5406
+ and its companion <code>packer-verify</code> checks such a file. Your release scripts run both from
5407
+ the project’s <code>tools/bin</code> folder, so every developer and CI agent needs them built from
5408
+ the same tagged version and installed there.</p>
5409
+ <p>Build tools from source and install them where your build scripts or CI agents expect
5410
+ them. Ceedling builds them for a release, never links them, and never cleans the deploy
5411
+ folder.</p>
5412
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="nt">:dependencies</span><span class="p">:</span>
5413
+ <a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a><span class="w"> </span><span class="nt">:deps</span><span class="p">:</span>
5414
+ <a id="__codelineno-13-3" name="__codelineno-13-3" href="#__codelineno-13-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">:name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Packer</span>
5415
+ <a id="__codelineno-13-4" name="__codelineno-13-4" href="#__codelineno-13-4"></a><span class="w"> </span><span class="nt">:paths</span><span class="p">:</span>
5416
+ <a id="__codelineno-13-5" name="__codelineno-13-5" href="#__codelineno-13-5"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/packer</span>
5417
+ <a id="__codelineno-13-6" name="__codelineno-13-6" href="#__codelineno-13-6"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/packer/build</span>
5418
+ <a id="__codelineno-13-7" name="__codelineno-13-7" href="#__codelineno-13-7"></a><span class="w"> </span><span class="nt">:deploy</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">tools/bin</span>
5419
+ <a id="__codelineno-13-8" name="__codelineno-13-8" href="#__codelineno-13-8"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span>
5420
+ <a id="__codelineno-13-9" name="__codelineno-13-9" href="#__codelineno-13-9"></a><span class="w"> </span><span class="nt">:method</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">:git</span>
5421
+ <a id="__codelineno-13-10" name="__codelineno-13-10" href="#__codelineno-13-10"></a><span class="w"> </span><span class="nt">:source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://github.com/example/firmware-packer.git</span>
5422
+ <a id="__codelineno-13-11" name="__codelineno-13-11" href="#__codelineno-13-11"></a><span class="w"> </span><span class="nt">:tag</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">v1.3.0</span>
5423
+ <a id="__codelineno-13-12" name="__codelineno-13-12" href="#__codelineno-13-12"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span>
5424
+ <a id="__codelineno-13-13" name="__codelineno-13-13" href="#__codelineno-13-13"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">make all BUILD=build</span>
5425
+ <a id="__codelineno-13-14" name="__codelineno-13-14" href="#__codelineno-13-14"></a><span class="w"> </span><span class="nt">:artifacts</span><span class="p">:</span>
5426
+ <a id="__codelineno-13-15" name="__codelineno-13-15" href="#__codelineno-13-15"></a><span class="w"> </span><span class="nt">:executables</span><span class="p">:</span>
5427
+ <a id="__codelineno-13-16" name="__codelineno-13-16" href="#__codelineno-13-16"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">packer</span>
5428
+ <a id="__codelineno-13-17" name="__codelineno-13-17" href="#__codelineno-13-17"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">packer-verify</span>
5429
+ </code></pre></div>
5430
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>ceedling<span class="w"> </span>dependencies:deploy:Packer<span class="w"> </span><span class="c1"># Clone, build, then copy both tools to tools/bin</span>
5431
+ </code></pre></div>
5432
+ <h3 id="a-small-library-compiled-by-ceedling">A small library compiled by Ceedling</h3>
5433
+ <p>A colleague’s CRC routines live in your company’s Subversion repository: a C file and
5434
+ a header, with no makefile and no library of their own. Your firmware checks its data
5435
+ packets with them.</p>
5436
+ <p>Pin a few C files from Subversion and let <code>:build_lib</code> compile and archive them, with no
5437
+ build system of their own.</p>
5438
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a><span class="nt">:dependencies</span><span class="p">:</span>
5439
+ <a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a><span class="w"> </span><span class="nt">:deps</span><span class="p">:</span>
5440
+ <a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">:name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CRC Utils</span>
5441
+ <a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a><span class="w"> </span><span class="nt">:paths</span><span class="p">:</span>
5442
+ <a id="__codelineno-15-5" name="__codelineno-15-5" href="#__codelineno-15-5"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/crc</span>
5443
+ <a id="__codelineno-15-6" name="__codelineno-15-6" href="#__codelineno-15-6"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">third_party/crc/build</span>
5444
+ <a id="__codelineno-15-7" name="__codelineno-15-7" href="#__codelineno-15-7"></a><span class="w"> </span><span class="nt">:fetch</span><span class="p">:</span>
5445
+ <a id="__codelineno-15-8" name="__codelineno-15-8" href="#__codelineno-15-8"></a><span class="w"> </span><span class="nt">:method</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">:svn</span>
5446
+ <a id="__codelineno-15-9" name="__codelineno-15-9" href="#__codelineno-15-9"></a><span class="w"> </span><span class="nt">:source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://svn.example.com/repos/crc/trunk</span>
5447
+ <a id="__codelineno-15-10" name="__codelineno-15-10" href="#__codelineno-15-10"></a><span class="w"> </span><span class="nt">:revision</span><span class="p">:</span><span class="w"> </span><span class="s">'1287'</span>
5448
+ <a id="__codelineno-15-11" name="__codelineno-15-11" href="#__codelineno-15-11"></a><span class="w"> </span><span class="nt">:build</span><span class="p">:</span>
5449
+ <a id="__codelineno-15-12" name="__codelineno-15-12" href="#__codelineno-15-12"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">:build_lib</span>
5450
+ <a id="__codelineno-15-13" name="__codelineno-15-13" href="#__codelineno-15-13"></a><span class="w"> </span><span class="nt">:artifacts</span><span class="p">:</span>
5451
+ <a id="__codelineno-15-14" name="__codelineno-15-14" href="#__codelineno-15-14"></a><span class="w"> </span><span class="nt">:static_libraries</span><span class="p">:</span>
5452
+ <a id="__codelineno-15-15" name="__codelineno-15-15" href="#__codelineno-15-15"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">libcrc.a</span>
5453
+ <a id="__codelineno-15-16" name="__codelineno-15-16" href="#__codelineno-15-16"></a><span class="w"> </span><span class="nt">:includes</span><span class="p">:</span>
5454
+ <a id="__codelineno-15-17" name="__codelineno-15-17" href="#__codelineno-15-17"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">../crc.h</span>
5455
+ <a id="__codelineno-15-18" name="__codelineno-15-18" href="#__codelineno-15-18"></a><span class="w"> </span><span class="nt">:defines</span><span class="p">:</span>
5456
+ <a id="__codelineno-15-19" name="__codelineno-15-19" href="#__codelineno-15-19"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CRC_TABLE_IN_ROM</span>
5457
+ </code></pre></div>
5458
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a>ceedling<span class="w"> </span>dependencies:make:CRCUtils<span class="w"> </span><span class="c1"># Check out revision 1287, then compile and archive</span>
5459
+ <a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a>ceedling<span class="w"> </span>files:dependencies<span class="w"> </span><span class="c1"># Confirm third_party/crc/build/libcrc.a is listed</span>
4782
5460
  </code></pre></div>
4783
5461
  <p><br/><br/></p>
4784
5462
 
@@ -4848,10 +5526,10 @@ source and/or assembly files into the specified library:</p>
4848
5526
 
4849
5527
 
4850
5528
 
4851
- <script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["navigation.tabs", "navigation.sections", "navigation.top", "navigation.indexes", "navigation.path", "search.suggest", "search.highlight", "content.code.copy", "content.code.annotate"], "search": "../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"default": "latest", "provider": "mike"}}</script>
5529
+ <script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["navigation.tabs", "navigation.sections", "navigation.top", "navigation.indexes", "navigation.path", "search.suggest", "search.highlight", "content.code.copy", "content.code.annotate"], "search": "../assets/javascripts/workers/search.a7633da7.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"default": "latest", "provider": "mike"}}</script>
4852
5530
 
4853
5531
 
4854
- <script src="../assets/javascripts/bundle.d7400e89.min.js"></script>
5532
+ <script src="../assets/javascripts/bundle.c21346df.min.js"></script>
4855
5533
 
4856
5534
 
4857
5535
  </body>