ceedling 1.1.10 → 1.2.0

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 (1131) 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 +51 -29
  8. data/Rakefile +768 -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 +7 -0
  118. data/bin/cli.rb +78 -47
  119. data/bin/cli_handler.rb +89 -57
  120. data/bin/cli_helper.rb +90 -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 +327 -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 +32 -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 +366 -530
  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 +343 -610
  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 +245 -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/rakefile.rb +2 -1
  231. data/lib/ceedling/{tasks_base.rake → rakefiles/base/tasks_base.rake} +1 -1
  232. data/lib/ceedling/{tasks_filesystem.rake → rakefiles/base/tasks_filesystem.rake} +3 -0
  233. data/lib/ceedling/rakefiles/release/rules_release.rake +52 -0
  234. data/lib/ceedling/{erb_wrapper.rb → rakefiles/release/tasks_release.rake} +5 -8
  235. data/lib/ceedling/rakefiles/tests/rules_tests.rake +43 -0
  236. data/lib/ceedling/rakefiles/tests/rules_tests_generate.rake +80 -0
  237. data/lib/ceedling/{tasks_tests.rake → rakefiles/tests/tasks_tests.rake} +11 -20
  238. data/lib/ceedling/rakefiles/tests/tasks_tests_generate.rake +55 -0
  239. data/lib/ceedling/release_invoker/README.md +35 -0
  240. data/lib/ceedling/release_invoker/release_build_executor.rb +263 -0
  241. data/lib/ceedling/release_invoker/release_build_planner.rb +80 -0
  242. data/lib/ceedling/release_invoker/release_invoker.rb +78 -0
  243. data/lib/ceedling/release_invoker/release_invoker_types.rb +40 -0
  244. data/lib/ceedling/reportinator.rb +18 -2
  245. data/lib/ceedling/ruby_expandinator.rb +40 -1
  246. data/lib/ceedling/setupinator.rb +9 -3
  247. data/lib/ceedling/system_wrapper.rb +17 -0
  248. data/lib/ceedling/templateinator.rb +146 -0
  249. data/lib/ceedling/test_context_extractor.rb +59 -28
  250. data/lib/ceedling/test_invoker/HEADER_COLLISIONS.md +41 -0
  251. data/lib/ceedling/test_invoker/PIPELINE.md +142 -0
  252. data/lib/ceedling/test_invoker/README.md +6 -0
  253. data/lib/ceedling/test_invoker/mock_locator.rb +49 -0
  254. data/lib/ceedling/test_invoker/partials_manager.rb +426 -0
  255. data/lib/ceedling/test_invoker/standin_headerinator.rb +136 -0
  256. data/lib/ceedling/test_invoker/test_bare_includes_extractinator.rb +117 -0
  257. data/lib/ceedling/test_invoker/test_build_executor.rb +783 -429
  258. data/lib/ceedling/test_invoker/test_build_planner.rb +175 -70
  259. data/lib/ceedling/test_invoker/test_build_setup.rb +132 -241
  260. data/lib/ceedling/test_invoker/test_build_validations.rb +102 -0
  261. data/lib/ceedling/test_invoker/test_file_preprocessinator.rb +148 -0
  262. data/lib/ceedling/test_invoker/test_includes_extractinator.rb +34 -0
  263. data/lib/ceedling/test_invoker/test_includes_preprocessinator.rb +118 -0
  264. data/lib/ceedling/test_invoker/test_includes_reconcilinator.rb +149 -0
  265. data/lib/ceedling/test_invoker/test_invoker.rb +16 -183
  266. data/lib/ceedling/test_invoker/test_invoker_types.rb +85 -16
  267. data/lib/ceedling/test_invoker/test_pipeline_helpers.rb +121 -0
  268. data/lib/ceedling/test_invoker/test_pipeline_manager.rb +303 -0
  269. data/lib/ceedling/test_invoker/test_runner_generatinator.rb +105 -0
  270. data/lib/ceedling/test_invoker/test_search_paths.rb +73 -0
  271. data/lib/ceedling/test_invoker/test_source_file_directive_resolver.rb +78 -0
  272. data/lib/ceedling/tool_executor.rb +42 -13
  273. data/lib/ceedling/tool_executor_helper.rb +1 -1
  274. data/lib/ceedling/tool_validator.rb +124 -123
  275. data/lib/ceedling/yaml_wrapper.rb +5 -3
  276. data/lib/version.rb +19 -2
  277. data/mkdocs.prerelease.yml +42 -0
  278. data/mkdocs.yml +10 -2
  279. data/plugins/bullseye/bullseye.rake +70 -107
  280. data/plugins/bullseye/config/defaults.yml +12 -54
  281. data/plugins/bullseye/config/defaults_bullseye.rb +182 -0
  282. data/plugins/bullseye/lib/bullseye.rb +511 -120
  283. data/plugins/bullseye/lib/bullseye_constants.rb +100 -0
  284. data/plugins/command_hooks/lib/command_hooks.rb +117 -199
  285. data/plugins/compile_commands_json_db/lib/compile_commands_json_db.rb +72 -27
  286. data/plugins/cppcheck/config/defaults.yml +6 -1
  287. data/plugins/cppcheck/config/defaults_cppcheck.rb +5 -1
  288. data/plugins/cppcheck/cppcheck.rake +7 -1
  289. data/plugins/cppcheck/lib/cppcheck.rb +175 -26
  290. data/plugins/cppcheck/lib/cppcheck_constants.rb +12 -0
  291. data/plugins/cppcheck/lib/cppcheck_reports.rb +5 -1
  292. data/plugins/dependencies/Rakefile +14 -2
  293. data/plugins/dependencies/config/defaults.yml +9 -6
  294. data/plugins/dependencies/dependencies.rake +46 -76
  295. data/plugins/dependencies/example/boss/project.yml +1 -1
  296. data/plugins/dependencies/example/supervisor/project.yml +1 -1
  297. data/plugins/dependencies/example/version.tar.gzip +0 -0
  298. data/plugins/dependencies/lib/dependencies.rb +232 -427
  299. data/plugins/dependencies/lib/dependency_commands.rb +72 -0
  300. data/plugins/dependencies/lib/dependency_environment.rb +57 -0
  301. data/plugins/dependencies/lib/dependency_spec.rb +145 -0
  302. data/plugins/fff/.rspec +1 -0
  303. data/plugins/fff/Rakefile +14 -2
  304. data/plugins/fff/examples/fff_example/project.yml +1 -1
  305. data/plugins/fff/lib/fff.rb +30 -9
  306. data/plugins/fff/lib/fff_mock_generator.rb +142 -128
  307. data/plugins/fff/spec/fff_mock_header_generator_spec.rb +15 -0
  308. data/plugins/fff/spec/fff_mock_source_generator_spec.rb +14 -0
  309. data/plugins/fff/spec/spec_helper.rb +45 -0
  310. data/plugins/fff/src/fff_unity_helper.h +5 -0
  311. data/plugins/fff/vendor/fff/fakegen.rb +5 -4
  312. data/plugins/fff/vendor/fff/fff.h +4 -4
  313. data/plugins/gcov/config/defaults.yml +5 -0
  314. data/plugins/gcov/gcov.rake +12 -8
  315. data/plugins/gcov/lib/console_reportinator.rb +140 -20
  316. data/plugins/gcov/lib/gcov.rb +155 -60
  317. data/plugins/gcov/lib/gcov_constants.rb +4 -7
  318. data/plugins/gcov/lib/gcov_reportinator.rb +90 -0
  319. data/plugins/gcov/lib/gcov_types.rb +62 -1
  320. data/plugins/gcov/lib/gcovr_reportinator.rb +255 -213
  321. data/plugins/gcov/lib/reportgenerator_reportinator.rb +122 -44
  322. data/plugins/module_generator/Rakefile +4 -4
  323. data/plugins/module_generator/config/module_generator.yml +0 -1
  324. data/plugins/module_generator/example/project.yml +1 -1
  325. data/plugins/module_generator/lib/module_generator.rb +117 -87
  326. data/plugins/module_generator/lib/module_generator_options.rb +150 -0
  327. data/plugins/module_generator/lib/module_generator_project.rb +45 -0
  328. data/plugins/module_generator/lib/module_generator_request.rb +83 -0
  329. data/plugins/module_generator/lib/module_generator_test_file.rb +68 -0
  330. data/plugins/module_generator/lib/module_generator_unity.rb +24 -0
  331. data/plugins/module_generator/module_generator.rake +24 -46
  332. data/plugins/report_build_warnings_log/config/defaults.yml +4 -1
  333. data/plugins/report_build_warnings_log/lib/report_build_warnings_log.rb +47 -55
  334. data/plugins/report_build_warnings_log/lib/warning_collector.rb +140 -0
  335. data/plugins/report_build_warnings_log/lib/warning_reports.rb +135 -0
  336. data/plugins/report_tests_gtestlike_stdout/assets/test_results.template +3 -0
  337. data/{spec/units/configurator_builder_spec.rb → plugins/report_tests_gtestlike_stdout/config/defaults.yml} +6 -10
  338. data/plugins/report_tests_gtestlike_stdout/lib/gtestlike_report.rb +168 -0
  339. data/plugins/report_tests_gtestlike_stdout/lib/report_tests_gtestlike_stdout.rb +25 -1
  340. data/plugins/report_tests_ide_stdout/assets/test_results.template +50 -0
  341. data/plugins/report_tests_ide_stdout/config/defaults.yml +13 -0
  342. data/plugins/report_tests_ide_stdout/lib/ide_report_lines.rb +103 -0
  343. data/plugins/report_tests_ide_stdout/lib/report_tests_ide_stdout.rb +12 -4
  344. data/plugins/report_tests_log_factory/lib/cppunit_tests_reporter.rb +33 -51
  345. data/plugins/report_tests_log_factory/lib/html_tests_reporter.rb +286 -295
  346. data/plugins/report_tests_log_factory/lib/json_tests_reporter.rb +22 -35
  347. data/plugins/report_tests_log_factory/lib/junit_tests_reporter.rb +91 -133
  348. data/plugins/report_tests_log_factory/lib/report_tests_log_factory.rb +72 -86
  349. data/plugins/report_tests_log_factory/lib/tests_reporter.rb +31 -12
  350. data/plugins/report_tests_pretty_stdout/assets/{template.erb → test_results.template} +8 -8
  351. data/plugins/report_tests_raw_output_log/lib/report_tests_raw_output_log.rb +18 -48
  352. data/plugins/report_tests_teamcity_stdout/lib/report_tests_teamcity_stdout.rb +13 -2
  353. data/plugins/sanitize/config/defaults.yml +44 -0
  354. data/plugins/sanitize/config/defaults_sanitize.rb +20 -0
  355. data/plugins/sanitize/lib/sanitize.rb +174 -0
  356. data/plugins/sanitize/lib/sanitize_config.rb +110 -0
  357. data/plugins/sanitize/lib/sanitize_constants.rb +13 -0
  358. data/plugins/sanitize/lib/sanitize_findings.rb +85 -0
  359. data/plugins/sanitize/lib/sanitize_records.rb +115 -0
  360. data/plugins/sanitize/lib/sanitize_reports.rb +135 -0
  361. data/plugins/sanitize/sanitize.rake +108 -0
  362. data/plugins/valgrind/config/defaults.yml +7 -1
  363. data/plugins/valgrind/config/defaults_valgrind.rb +6 -1
  364. data/plugins/valgrind/lib/valgrind.rb +202 -39
  365. data/plugins/valgrind/lib/valgrind_constants.rb +4 -0
  366. data/plugins/valgrind/lib/valgrind_report.rb +52 -0
  367. data/plugins/valgrind/valgrind.rake +33 -11
  368. data/site-local/404.html +248 -14
  369. data/site-local/configuration/environment-vars.html +248 -14
  370. data/site-local/configuration/global-collections.html +248 -19
  371. data/site-local/configuration/index.html +249 -15
  372. data/site-local/configuration/loading.html +260 -22
  373. data/site-local/configuration/mixins.html +252 -17
  374. data/site-local/configuration/parallel-builds.html +248 -14
  375. data/site-local/configuration/project-file.html +275 -30
  376. data/site-local/configuration/reference/cexception.html +255 -20
  377. data/site-local/configuration/reference/cmock.html +281 -14
  378. data/site-local/configuration/reference/defines.html +262 -19
  379. data/site-local/configuration/reference/environment.html +251 -17
  380. data/site-local/configuration/reference/extension.html +361 -16
  381. data/site-local/configuration/reference/files.html +262 -14
  382. data/site-local/configuration/reference/flags.html +270 -19
  383. data/site-local/configuration/reference/index.html +248 -14
  384. data/site-local/configuration/reference/libraries.html +248 -14
  385. data/site-local/configuration/reference/mixins.html +248 -14
  386. data/site-local/configuration/reference/partials.html +249 -19
  387. data/site-local/configuration/reference/paths.html +275 -15
  388. data/site-local/configuration/reference/plugins.html +248 -14
  389. data/site-local/configuration/reference/project.html +291 -14
  390. data/site-local/configuration/reference/release-build.html +256 -14
  391. data/site-local/configuration/reference/test-build.html +290 -24
  392. data/site-local/configuration/reference/test-runner.html +288 -17
  393. data/site-local/configuration/reference/tools.html +254 -14
  394. data/site-local/configuration/reference/unity.html +280 -15
  395. data/site-local/configuration/which-ceedling.html +248 -14
  396. data/site-local/development/index.html +254 -14
  397. data/site-local/development/plugins/configuration.html +269 -17
  398. data/site-local/development/plugins/index.html +267 -15
  399. data/site-local/development/plugins/plugin-subclass.html +906 -154
  400. data/site-local/development/plugins/rake-tasks.html +276 -14
  401. data/site-local/development/releases.html +4708 -0
  402. data/site-local/development/workflow.html +1030 -51
  403. data/site-local/getting-started/builds.html +4607 -0
  404. data/site-local/getting-started/command-line.html +418 -34
  405. data/site-local/getting-started/example-projects/cipher-quest.html +248 -14
  406. data/site-local/getting-started/example-projects/index.html +249 -15
  407. data/site-local/getting-started/example-projects/temp-sensor.html +248 -14
  408. data/site-local/getting-started/example-projects/wondrous-forest.html +248 -14
  409. data/site-local/getting-started/index.html +255 -14
  410. data/site-local/getting-started/installation.html +258 -22
  411. data/site-local/getting-started/quick-start.html +251 -15
  412. data/site-local/help.html +255 -14
  413. data/site-local/index.html +292 -22
  414. data/site-local/overview/build-system.html +249 -15
  415. data/site-local/overview/index.html +248 -14
  416. data/site-local/overview/test-environments.html +257 -14
  417. data/site-local/overview/tools-and-frameworks.html +248 -14
  418. data/site-local/plugins/beep.html +251 -14
  419. data/site-local/plugins/bullseye/index.html +5079 -0
  420. data/site-local/plugins/bullseye/licensing.html +4840 -0
  421. data/site-local/plugins/command-hooks.html +265 -27
  422. data/site-local/plugins/compile-commands-json-db.html +256 -17
  423. data/site-local/plugins/cppcheck.html +1081 -262
  424. data/site-local/plugins/dependencies.html +934 -242
  425. data/site-local/plugins/fff.html +296 -15
  426. data/site-local/plugins/gcov/examples.html +251 -14
  427. data/site-local/plugins/gcov/gcovr.html +567 -65
  428. data/site-local/plugins/gcov/index.html +251 -14
  429. data/site-local/plugins/gcov/overview.html +259 -18
  430. data/site-local/plugins/gcov/reportgenerator.html +386 -38
  431. data/site-local/plugins/gcov/reporting.html +348 -100
  432. data/site-local/plugins/gcov/setup.html +253 -15
  433. data/site-local/plugins/gcov/tool-versions.html +301 -19
  434. data/site-local/plugins/gcov/troubleshooting.html +273 -36
  435. data/site-local/plugins/index.html +294 -36
  436. data/site-local/plugins/module-generator.html +779 -195
  437. data/site-local/plugins/report-build-warnings-log.html +578 -33
  438. data/site-local/plugins/report-tests-gtestlike-stdout.html +467 -84
  439. data/site-local/plugins/report-tests-ide-stdout.html +654 -51
  440. data/site-local/plugins/report-tests-log-factory.html +337 -70
  441. data/site-local/plugins/report-tests-pretty-stdout.html +251 -14
  442. data/site-local/plugins/report-tests-raw-output-log.html +251 -14
  443. data/site-local/plugins/report-tests-teamcity-stdout.html +251 -14
  444. data/site-local/plugins/sanitize.html +5332 -0
  445. data/site-local/plugins/valgrind.html +416 -26
  446. data/site-local/{plugins/bullseye.html → project/index.html} +297 -217
  447. data/site-local/project/release-history.html +251 -17
  448. data/site-local/project/sbom.html +4726 -0
  449. data/site-local/project/upgrade.html +250 -16
  450. data/site-local/reference/build-directives.html +257 -14
  451. data/site-local/reference/command-line.html +373 -16
  452. data/site-local/reference/environment-vars.html +248 -14
  453. data/site-local/reference/gcov-plugin.html +492 -18
  454. data/site-local/reference/global-collections.html +249 -15
  455. data/site-local/reference/index.html +248 -14
  456. data/site-local/reference/partials-macros.html +258 -14
  457. data/site-local/reference/project-configuration.html +248 -14
  458. data/site-local/sitemap.xml.gz +0 -0
  459. data/{docs/mkdocs/snapshot/assets → site-local/snapshot/assets/features}/project.yml +4 -1
  460. data/site-local/snapshot/examples/cipher_quest/index.html +248 -14
  461. data/site-local/snapshot/examples/temp_sensor/index.html +248 -14
  462. data/site-local/snapshot/examples/wondrous_forest/index.html +265 -25
  463. data/site-local/snapshot/plugins/bullseye/config/defaults.yml +24 -0
  464. data/site-local/snapshot/plugins/bullseye/config/defaults_bullseye.rb +182 -0
  465. data/site-local/snapshot/plugins/gcov/config/defaults.yml +5 -0
  466. data/site-local/testing-guide/build-directives.html +332 -22
  467. data/site-local/testing-guide/conventions.html +678 -153
  468. data/site-local/testing-guide/frameworks.html +248 -14
  469. data/site-local/testing-guide/index.html +248 -21
  470. data/site-local/testing-guide/partials/configuration.html +248 -14
  471. data/site-local/testing-guide/partials/conventions.html +316 -17
  472. data/site-local/testing-guide/partials/directives.html +456 -48
  473. data/site-local/testing-guide/partials/example.html +248 -14
  474. data/site-local/testing-guide/partials/index.html +255 -14
  475. data/site-local/testing-guide/partials/overview.html +248 -14
  476. data/site-local/testing-guide/partials/variables.html +248 -14
  477. data/site-local/testing-guide/test-cases.html +248 -14
  478. data/site-local/testing-guide/test-sample.html +248 -14
  479. data/site-local/testing-guide/test-suite-anatomy.html +248 -14
  480. data/spec/integration/actionator_file_operations_spec.rb +287 -0
  481. data/spec/integration/analysis_tool_output_spec.rb +204 -0
  482. data/spec/{units/c_extractor/c_extractor_integration_spec.rb → integration/c_extractor_composition_spec.rb} +196 -17
  483. data/spec/integration/command_hooks_plugin_spec.rb +152 -0
  484. data/spec/integration/compile_commands_json_db_spec.rb +76 -0
  485. data/spec/integration/configurator_pipeline_spec.rb +180 -0
  486. data/spec/integration/configurator_plugins_spec.rb +122 -0
  487. data/spec/integration/configurator_validation_spec.rb +98 -0
  488. data/spec/integration/dependencies/dependency_tracker_cache_hardening_spec.rb +396 -0
  489. data/spec/integration/dependencies/dependency_tracker_core_spec.rb +244 -0
  490. data/spec/integration/dependencies/dependency_tracker_diagnose_spec.rb +224 -0
  491. data/spec/integration/dependencies/dependency_tracker_filename_handling_spec.rb +118 -0
  492. data/spec/integration/dependencies/dependency_tracker_gcc_deps_spec.rb +199 -0
  493. data/spec/integration/dependencies/dependency_tracker_pruning_spec.rb +167 -0
  494. data/spec/integration/dependencies_plugin_spec.rb +473 -0
  495. data/spec/integration/erb_dependency_removed_spec.rb +167 -0
  496. data/spec/integration/includes_extraction_spec.rb +612 -0
  497. data/spec/integration/mixin_loading_spec.rb +414 -0
  498. data/spec/integration/module_generator_spec.rb +436 -0
  499. data/spec/integration/partials_fallback_preprocessing_spec.rb +316 -0
  500. data/spec/integration/partials_header_composition_spec.rb +889 -0
  501. data/spec/integration/partials_module_resolution_spec.rb +372 -0
  502. data/spec/integration/partials_symbol_linkage_spec.rb +371 -0
  503. data/spec/integration/preprocessing_transient_io_retry_spec.rb +135 -0
  504. data/spec/integration/quote_include_isolator_spec.rb +167 -0
  505. data/spec/integration/report_build_warnings_log_spec.rb +170 -0
  506. data/spec/integration/report_tests_log_factory_spec.rb +100 -0
  507. data/spec/integration/sanitizer_exclusions_spec.rb +126 -0
  508. data/spec/integration/system_harness_sanitizers_spec.rb +104 -0
  509. data/spec/integration/test_build_parallel_barrier_spec.rb +89 -0
  510. data/spec/integration/test_executable_manifest_spec.rb +118 -0
  511. data/spec/integration/test_includes_extractinator_spec.rb +293 -0
  512. data/spec/integration/tool_executor_spec.rb +224 -0
  513. data/spec/integration/tool_validator_spec.rb +133 -0
  514. data/spec/integration/vendor_copy_transient_io_retry_spec.rb +130 -0
  515. data/spec/manual/stress_test.rb +1 -1
  516. data/spec/support/config_yaml_helper.rb +17 -0
  517. data/spec/support/fixtures/sanitizer_reports/clang_asan_heap.txt +45 -0
  518. data/spec/support/fixtures/sanitizer_reports/clang_ubsan_shift.txt +5 -0
  519. data/spec/support/fixtures/sanitizer_reports/gcc_heap.txt +47 -0
  520. data/spec/support/fixtures/sanitizer_reports/gcc_leak.txt +10 -0
  521. data/spec/support/fixtures/sanitizer_reports/gcc_segv.txt +6 -0
  522. data/spec/support/fixtures/sanitizer_reports/gcc_ubsan_shift.txt +6 -0
  523. data/spec/support/fixtures/templates/bullseye__all_pass.txt +6 -0
  524. data/spec/support/fixtures/templates/bullseye__coverage_branches_only.txt +6 -0
  525. data/spec/support/fixtures/templates/bullseye__coverage_functions_only.txt +6 -0
  526. data/spec/support/fixtures/templates/bullseye__coverage_none.txt +6 -0
  527. data/spec/support/fixtures/templates/bullseye__empty.txt +6 -0
  528. data/spec/support/fixtures/templates/bullseye__gcov_context.txt +6 -0
  529. data/spec/support/fixtures/templates/bullseye__mixed_all.txt +6 -0
  530. data/spec/support/fixtures/templates/bullseye__one_failure_matching.txt +6 -0
  531. data/spec/support/fixtures/templates/bullseye__one_failure_multiline.txt +6 -0
  532. data/spec/support/fixtures/templates/bullseye__one_failure_no_message.txt +6 -0
  533. data/spec/support/fixtures/templates/bullseye__one_failure_nonmatching.txt +6 -0
  534. data/spec/support/fixtures/templates/bullseye__one_ignore_no_message.txt +6 -0
  535. data/spec/support/fixtures/templates/bullseye__one_ignore_with_message.txt +6 -0
  536. data/spec/support/fixtures/templates/bullseye__stdout_only.txt +6 -0
  537. data/spec/support/fixtures/templates/ide__all_pass.txt +10 -0
  538. data/spec/support/fixtures/templates/ide__coverage_branches_only.txt +10 -0
  539. data/spec/support/fixtures/templates/ide__coverage_functions_only.txt +10 -0
  540. data/spec/support/fixtures/templates/ide__coverage_none.txt +10 -0
  541. data/spec/support/fixtures/templates/ide__empty.txt +8 -0
  542. data/spec/support/fixtures/templates/ide__gcov_context.txt +28 -0
  543. data/spec/support/fixtures/templates/ide__mixed_all.txt +29 -0
  544. data/spec/support/fixtures/templates/ide__one_failure_matching.txt +15 -0
  545. data/spec/support/fixtures/templates/ide__one_failure_multiline.txt +17 -0
  546. data/spec/support/fixtures/templates/ide__one_failure_no_message.txt +15 -0
  547. data/spec/support/fixtures/templates/ide__one_failure_nonmatching.txt +15 -0
  548. data/spec/support/fixtures/templates/ide__one_ignore_no_message.txt +15 -0
  549. data/spec/support/fixtures/templates/ide__one_ignore_with_message.txt +15 -0
  550. data/spec/support/fixtures/templates/ide__stdout_only.txt +16 -0
  551. data/spec/support/fixtures/templates/pretty__all_pass.txt +8 -0
  552. data/spec/support/fixtures/templates/pretty__coverage_branches_only.txt +8 -0
  553. data/spec/support/fixtures/templates/pretty__coverage_functions_only.txt +8 -0
  554. data/spec/support/fixtures/templates/pretty__coverage_none.txt +8 -0
  555. data/spec/support/fixtures/templates/pretty__empty.txt +6 -0
  556. data/spec/support/fixtures/templates/pretty__gcov_context.txt +31 -0
  557. data/spec/support/fixtures/templates/pretty__mixed_all.txt +35 -0
  558. data/spec/support/fixtures/templates/pretty__one_failure_matching.txt +15 -0
  559. data/spec/support/fixtures/templates/pretty__one_failure_multiline.txt +17 -0
  560. data/spec/support/fixtures/templates/pretty__one_failure_no_message.txt +15 -0
  561. data/spec/support/fixtures/templates/pretty__one_failure_nonmatching.txt +15 -0
  562. data/spec/support/fixtures/templates/pretty__one_ignore_no_message.txt +15 -0
  563. data/spec/support/fixtures/templates/pretty__one_ignore_with_message.txt +15 -0
  564. data/spec/support/fixtures/templates/pretty__stdout_only.txt +15 -0
  565. data/spec/support/fixtures/valgrind_reports/sigsegv.log +51 -0
  566. data/spec/support/fixtures/valgrind_reports/sigsegv.xml +182 -0
  567. data/spec/support/include_guard_helper.rb +20 -0
  568. data/spec/support/integration/configurator_integration_helper.rb +159 -0
  569. data/spec/support/integration/dependency_tracker_integration_helper.rb +136 -0
  570. data/spec/support/integration/partials_generation_integration_helper.rb +726 -0
  571. data/spec/support/integration/spec_integration_helper.rb +285 -0
  572. data/spec/support/integration/test_includes_harness.rb +259 -0
  573. data/spec/support/integration/tool_executor_integration_helper.rb +55 -0
  574. data/spec/support/spec_helper.rb +41 -0
  575. data/spec/support/system/sanitizers/asan_ubsan.yml +82 -0
  576. data/spec/support/system/sanitizers/asan_ubsan_leaks.yml +57 -0
  577. data/spec/support/system/simplecov_boot.rb +66 -0
  578. data/spec/support/system/spec_system_helper.rb +376 -16
  579. data/spec/support/system/system_context.rb +181 -59
  580. data/spec/support/template_render_cases.rb +166 -0
  581. data/spec/system/bracket_path_handling_spec.rb +175 -0
  582. data/spec/system/build_output_mirroring_spec.rb +89 -0
  583. data/spec/system/build_recovery_spec.rb +382 -0
  584. data/spec/system/bullseye_deployment_spec.rb +102 -0
  585. data/spec/system/cli_surface_spec.rb +245 -0
  586. data/spec/system/command_hooks_spec.rb +117 -0
  587. data/spec/system/conditional_include_macro_visibility_spec.rb +32 -124
  588. data/spec/system/conditional_mock_includes_spec.rb +181 -0
  589. data/spec/system/cppcheck_deployment_spec.rb +26 -8
  590. data/spec/system/delta_builds_spec.rb +751 -0
  591. data/spec/system/deployment_as_gem_spec.rb +7 -0
  592. data/spec/system/deployment_as_vendor_spec.rb +29 -145
  593. data/spec/system/dumpconfig_spec.rb +137 -0
  594. data/spec/system/encoding_stress_spec.rb +7 -4
  595. data/spec/system/example_cipher_quest_spec.rb +25 -100
  596. data/spec/system/example_temp_sensor_spec.rb +30 -172
  597. data/spec/system/example_wondrous_forest_spec.rb +25 -62
  598. data/spec/system/extension_multiple_values_spec.rb +75 -0
  599. data/spec/system/files_paths_reporting_spec.rb +154 -0
  600. data/spec/system/gcov_deployment_spec.rb +72 -3
  601. data/spec/system/header_include_path_validation_spec.rb +222 -0
  602. data/spec/system/implicit_source_header_correspondence_disambiguation_spec.rb +100 -0
  603. data/spec/system/include_path_reconciliation_spec.rb +64 -0
  604. data/spec/system/mixin_ordering_spec.rb +30 -415
  605. data/spec/system/mocks_partials_configuration_validation_spec.rb +126 -0
  606. data/spec/system/parent_directory_reference_spec.rb +114 -0
  607. data/spec/system/partials_module_disambiguation_spec.rb +143 -0
  608. data/spec/system/pinned_thread_count_spec.rb +102 -0
  609. data/spec/system/plugin_delta_builds_spec.rb +179 -0
  610. data/spec/system/preprocessing_encoding_spec.rb +87 -4
  611. data/spec/system/preprocessing_fallback_conditionals_spec.rb +19 -25
  612. data/spec/system/preprocessing_parameterized_tests_spec.rb +2 -2
  613. data/spec/system/rake_release_task_path_disambiguation_spec.rb +97 -0
  614. data/spec/system/rake_test_task_path_disambiguation_spec.rb +118 -0
  615. data/spec/system/report_and_tooling_plugins_spec.rb +327 -0
  616. data/spec/system/ruby_replacement_spec.rb +1 -1
  617. data/spec/system/same_named_modules_spec.rb +115 -0
  618. data/spec/system/sanitize_deployment_spec.rb +64 -0
  619. data/spec/system/shuffle_tests_spec.rb +139 -0
  620. data/spec/system/sibling_header_collision_spec.rb +620 -0
  621. data/spec/system/subdir_include_preservation_spec.rb +63 -0
  622. data/spec/system/support/bullseye_common_test_cases.rb +369 -0
  623. data/spec/system/support/bullseye_helpers.rb +70 -0
  624. data/spec/system/support/common_test_cases.rb +167 -43
  625. data/spec/system/support/cppcheck_common_test_cases.rb +80 -0
  626. data/spec/system/support/cppcheck_helpers.rb +10 -8
  627. data/spec/system/support/gcov_common_test_cases.rb +173 -37
  628. data/spec/system/support/gcov_helpers.rb +3 -3
  629. data/spec/system/support/gcov_partials_test_cases.rb +48 -2
  630. data/spec/system/support/sanitize_common_test_cases.rb +222 -0
  631. data/spec/system/support/sanitize_helpers.rb +27 -0
  632. data/spec/system/support/valgrind_common_test_cases.rb +116 -16
  633. data/spec/system/support/valgrind_helpers.rb +3 -4
  634. data/spec/system/test_pipeline_stop_points_spec.rb +160 -0
  635. data/spec/system/test_runner_system_include_spec.rb +19 -41
  636. data/spec/system/test_source_file_directive_spec.rb +235 -0
  637. data/spec/system/upgrade_as_vendor_spec.rb +25 -46
  638. data/spec/system/valgrind_deployment_spec.rb +41 -0
  639. data/spec/units/batchinator_spec.rb +314 -0
  640. data/spec/units/bin/actionator_spec.rb +412 -0
  641. data/spec/units/bin/app_cfg_spec.rb +90 -0
  642. data/spec/units/bin/cli_handler_spec.rb +204 -0
  643. data/spec/units/bin/cli_helper_spec.rb +238 -10
  644. data/spec/units/bin/cli_options_transform_spec.rb +49 -0
  645. data/spec/units/bin/composinator_spec.rb +236 -0
  646. data/spec/units/bin/{projectinator_mixin_spec.rb → mixin_resolvinator_spec.rb} +122 -83
  647. data/spec/units/bin/mixin_standardizer_spec.rb +4 -3
  648. data/spec/units/bin/mixinator_spec.rb +58 -22
  649. data/spec/units/bin/path_validator_spec.rb +112 -0
  650. data/spec/units/bin/projectinator_spec.rb +223 -0
  651. data/spec/units/bin/rake_patches_spec.rb +52 -0
  652. data/spec/units/bin/recursive_merger_spec.rb +22 -0
  653. data/spec/units/bin/versionator_spec.rb +104 -0
  654. data/spec/units/c_extractor/c_extractor_code_text_spec.rb +4 -4
  655. data/spec/units/c_extractor/c_extractor_declarations_spec.rb +70 -0
  656. data/spec/units/c_extractor/c_extractor_functions_spec.rb +75 -1
  657. data/spec/units/c_extractor/c_extractor_preprocessing_spec.rb +158 -0
  658. data/spec/units/c_extractor/c_extractor_spec.rb +236 -6
  659. data/spec/units/ceedling/templateinator_golden_spec.rb +84 -0
  660. data/spec/units/ceedling/templateinator_spec.rb +188 -0
  661. data/spec/units/config/configurator_builder_spec.rb +444 -0
  662. data/spec/units/config/configurator_plugins_spec.rb +160 -0
  663. data/spec/units/config/configurator_setup_spec.rb +706 -6
  664. data/spec/units/config/configurator_spec.rb +952 -0
  665. data/spec/units/config/configurator_validator_spec.rb +259 -0
  666. data/spec/units/config/line_marker_suppressors_spec.rb +89 -0
  667. data/spec/units/config_matchinator_spec.rb +103 -0
  668. data/spec/units/defineinator_spec.rb +158 -0
  669. data/spec/units/dependencies/dependency_cache_store_spec.rb +364 -0
  670. data/spec/units/dependencies/dependency_debug_tree_spec.rb +189 -0
  671. data/spec/units/dependencies/dependency_differ_spec.rb +139 -0
  672. data/spec/units/dependencies/dependency_hasher_spec.rb +141 -0
  673. data/spec/units/dependencies/dependency_path_normalizer_spec.rb +111 -0
  674. data/spec/units/dependencies/dependency_tracker_spec.rb +905 -0
  675. data/spec/units/dependencies/dependinator_spec.rb +99 -0
  676. data/spec/units/dependencies/gcc_dependency_parser_spec.rb +152 -0
  677. data/spec/units/encodinator_spec.rb +92 -0
  678. data/spec/units/file_finder_helper_spec.rb +99 -15
  679. data/spec/units/file_finder_spec.rb +495 -0
  680. data/spec/units/file_path_collection_utils_spec.rb +9 -0
  681. data/spec/units/file_path_utils_spec.rb +736 -0
  682. data/spec/units/file_wrapper_spec.rb +447 -0
  683. data/spec/units/filename_extension_spec.rb +120 -0
  684. data/spec/units/flaginator_spec.rb +114 -0
  685. data/spec/units/generators/generator_helper_spec.rb +113 -0
  686. data/spec/units/generators/generator_mocks_spec.rb +131 -0
  687. data/spec/units/generators/generator_partials_spec.rb +336 -160
  688. data/spec/units/generators/generator_spec.rb +317 -0
  689. data/spec/units/generators/generator_test_results_backtrace_spec.rb +169 -9
  690. data/spec/units/generators/generator_test_results_sanity_checker_spec.rb +14 -6
  691. data/spec/units/generators/generator_test_results_spec.rb +65 -8
  692. data/spec/units/generators/generator_test_runner_spec.rb +1 -1
  693. data/spec/units/includes/include_factory_spec.rb +53 -0
  694. data/spec/units/includes/include_pathinator_spec.rb +269 -0
  695. data/spec/units/includes/include_spec.rb +8 -4
  696. data/spec/units/includes/includes_spec.rb +326 -18
  697. data/spec/units/mock_locator_spec.rb +74 -0
  698. data/spec/units/parsing_parcels_spec.rb +65 -0
  699. data/spec/units/partials/partializer_config_spec.rb +284 -18
  700. data/spec/units/partials/partializer_helper_spec.rb +122 -0
  701. data/spec/units/partials/partializer_spec.rb +346 -71
  702. data/spec/units/partials/partializer_utils_spec.rb +4 -4
  703. data/spec/units/partials_manager_spec.rb +539 -0
  704. data/spec/units/path_matcher_spec.rb +193 -0
  705. data/spec/units/path_mirror_spec.rb +103 -0
  706. data/spec/units/plugin_manager_spec.rb +77 -0
  707. data/spec/units/plugin_reportinator_spec.rb +78 -3
  708. data/spec/units/plugins/bullseye_spec.rb +1068 -0
  709. data/spec/units/plugins/command_hooks_spec.rb +157 -0
  710. data/spec/units/plugins/compile_commands_json_db_spec.rb +145 -0
  711. data/spec/units/plugins/console_reportinator_spec.rb +370 -0
  712. data/spec/units/plugins/cppcheck_spec.rb +330 -4
  713. data/spec/units/plugins/cppunit_tests_reporter_spec.rb +118 -0
  714. data/spec/units/plugins/dependencies_spec.rb +295 -0
  715. data/spec/units/plugins/dependency_commands_spec.rb +83 -0
  716. data/spec/units/plugins/dependency_environment_spec.rb +64 -0
  717. data/spec/units/plugins/dependency_spec_spec.rb +170 -0
  718. data/spec/units/plugins/gcov_reportinator_spec.rb +272 -0
  719. data/spec/units/plugins/gcov_spec.rb +521 -0
  720. data/spec/units/plugins/gcovr_reportinator_spec.rb +795 -0
  721. data/spec/units/plugins/gtestlike_report_spec.rb +363 -0
  722. data/spec/units/plugins/html_tests_reporter_spec.rb +158 -0
  723. data/spec/units/plugins/ide_report_lines_spec.rb +229 -0
  724. data/spec/units/plugins/json_tests_reporter_spec.rb +87 -0
  725. data/spec/units/plugins/junit_tests_reporter_spec.rb +237 -0
  726. data/spec/units/plugins/module_generator_options_spec.rb +185 -0
  727. data/spec/units/plugins/module_generator_project_spec.rb +55 -0
  728. data/spec/units/plugins/module_generator_request_spec.rb +107 -0
  729. data/spec/units/plugins/module_generator_spec.rb +214 -0
  730. data/spec/units/plugins/module_generator_test_file_spec.rb +102 -0
  731. data/spec/units/plugins/module_generator_unity_spec.rb +37 -0
  732. data/spec/units/plugins/report_build_warnings_log_spec.rb +199 -0
  733. data/spec/units/plugins/report_log_writer_plugin_spec.rb +94 -0
  734. data/spec/units/plugins/report_tests_gtestlike_stdout_spec.rb +274 -0
  735. data/spec/units/plugins/report_tests_ide_stdout_spec.rb +140 -0
  736. data/spec/units/plugins/report_tests_log_factory_spec.rb +210 -0
  737. data/spec/units/plugins/report_tests_pretty_stdout_spec.rb +83 -0
  738. data/spec/units/plugins/report_tests_raw_output_log_spec.rb +98 -0
  739. data/spec/units/plugins/report_tests_stdout_plugin_spec.rb +145 -0
  740. data/spec/units/plugins/report_tests_teamcity_stdout_spec.rb +121 -0
  741. data/spec/units/plugins/reportgenerator_reportinator_spec.rb +410 -0
  742. data/spec/units/plugins/sanitize_config_spec.rb +119 -0
  743. data/spec/units/plugins/sanitize_findings_spec.rb +69 -0
  744. data/spec/units/plugins/sanitize_records_spec.rb +114 -0
  745. data/spec/units/plugins/sanitize_reports_spec.rb +84 -0
  746. data/spec/units/plugins/sanitize_spec.rb +300 -0
  747. data/spec/units/plugins/tests_reporter_spec.rb +89 -0
  748. data/spec/units/plugins/valgrind_spec.rb +560 -0
  749. data/spec/units/plugins/warning_collector_spec.rb +185 -0
  750. data/spec/units/plugins/warning_reports_spec.rb +150 -0
  751. data/spec/units/preprocess/c_comment_scanner_spec.rb +17 -17
  752. data/spec/units/preprocess/c_preprocessor_conditionals_spec.rb +94 -0
  753. data/spec/units/preprocess/preprocessinator_bare_includes_extractor_spec.rb +73 -0
  754. data/spec/units/preprocess/preprocessinator_code_finder_spec.rb +35 -16
  755. data/spec/units/preprocess/preprocessinator_comment_stripper_spec.rb +129 -48
  756. data/spec/units/preprocess/preprocessinator_file_assembler_spec.rb +292 -9
  757. data/spec/units/preprocess/preprocessinator_includes_handler_spec.rb +294 -16
  758. data/spec/units/preprocess/preprocessinator_line_marker_includes_extractor_spec.rb +356 -6
  759. data/spec/units/preprocess/preprocessinator_reconstructor_spec.rb +58 -4
  760. data/spec/units/preprocess/preprocessinator_spec.rb +693 -5
  761. data/spec/units/quote_include_isolator_spec.rb +176 -0
  762. data/spec/units/rake_app/rake_invocation_tracker_spec.rb +94 -0
  763. data/spec/units/rake_app/rake_task_registry_spec.rb +263 -0
  764. data/spec/units/rake_app/rake_utils_spec.rb +54 -0
  765. data/spec/units/rake_app/rake_wrapper_spec.rb +64 -0
  766. data/spec/units/rake_app/rakefile_component_resolver_spec.rb +182 -0
  767. data/spec/units/release_build_executor_spec.rb +404 -0
  768. data/spec/units/release_build_planner_spec.rb +144 -0
  769. data/spec/units/release_invoker_spec.rb +127 -0
  770. data/spec/units/reportinator_spec.rb +35 -0
  771. data/spec/units/ruby_expandinator_spec.rb +36 -0
  772. data/spec/units/standin_headerinator_spec.rb +168 -0
  773. data/spec/units/system_wrapper_spec.rb +16 -0
  774. data/spec/units/test_build_executor_spec.rb +1653 -8
  775. data/spec/units/test_build_planner_spec.rb +878 -0
  776. data/spec/units/test_build_setup_spec.rb +583 -0
  777. data/spec/units/test_context_extractor_spec.rb +51 -3
  778. data/spec/units/test_file_preprocessinator_spec.rb +206 -0
  779. data/spec/units/test_includes_extractinator_spec.rb +764 -0
  780. data/spec/units/test_invoker/objects_wiring_spec.rb +31 -0
  781. data/spec/units/test_invoker_spec.rb +147 -0
  782. data/spec/units/test_invoker_types_spec.rb +182 -0
  783. data/spec/units/test_pipeline_helpers_spec.rb +100 -0
  784. data/spec/units/test_pipeline_manager_spec.rb +415 -0
  785. data/spec/units/test_runner_generatinator_spec.rb +215 -0
  786. data/spec/units/test_runner_manager_spec.rb +70 -0
  787. data/spec/units/test_search_paths_spec.rb +84 -0
  788. data/spec/units/test_source_file_directive_resolver_spec.rb +239 -0
  789. data/spec/units/tool_executor_helper_spec.rb +1 -1
  790. data/spec/units/tool_executor_spec.rb +571 -2
  791. data/spec/units/tool_validator_spec.rb +303 -24
  792. data/spec/units/version_spec.rb +74 -0
  793. data/spec/units/yaml_wrapper_spec.rb +4 -1
  794. data/vendor/cmock/docs/CMock_Summary.md +11 -0
  795. data/vendor/cmock/lib/cmock_config.rb +1 -0
  796. data/vendor/cmock/lib/cmock_generator.rb +5 -1
  797. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +31 -0
  798. data/vendor/cmock/vendor/unity/auto/generate_module.rb +4 -4
  799. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +8 -2
  800. data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +2 -2
  801. data/vendor/cmock/vendor/unity/docs/UnityChangeLog.md +7 -0
  802. data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +4 -0
  803. data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +9 -0
  804. data/vendor/cmock/vendor/unity/src/unity_internals.h +21 -7
  805. data/vendor/cmock/vendor/unity/test/Makefile +9 -2
  806. data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +1 -0
  807. data/vendor/cmock/vendor/unity/test/spec/generate_module_naming_spec.rb +38 -0
  808. data/vendor/cmock/vendor/unity/test/testdata/spi/MockConfig.h +19 -0
  809. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithSameNamedMocks.c +42 -0
  810. data/vendor/cmock/vendor/unity/test/testdata/uart/MockConfig.h +19 -0
  811. data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +78 -0
  812. data/vendor/cmock/vendor/unity/test/tests/test_unity_test_summary.rb +58 -0
  813. data/vendor/diy/lib/diy/factory.rb +5 -4
  814. data/vendor/diy/lib/diy.rb +5 -4
  815. data/vendor/diy/sample_code/car.rb +5 -4
  816. data/vendor/diy/sample_code/chassis.rb +5 -4
  817. data/vendor/diy/sample_code/diy_example.rb +5 -4
  818. data/vendor/diy/sample_code/engine.rb +5 -4
  819. data/vendor/diy/sample_code/objects.yml +5 -4
  820. data/vendor/diy/test/constructor.rb +5 -4
  821. data/vendor/diy/test/diy_test.rb +5 -4
  822. data/vendor/diy/test/factory_test.rb +5 -4
  823. data/vendor/diy/test/files/broken_construction.yml +5 -4
  824. data/vendor/diy/test/files/cat/cat.rb +5 -4
  825. data/vendor/diy/test/files/cat/extra_conflict.yml +5 -4
  826. data/vendor/diy/test/files/cat/heritage.rb +5 -4
  827. data/vendor/diy/test/files/cat/needs_input.yml +5 -4
  828. data/vendor/diy/test/files/cat/the_cat_lineage.rb +5 -4
  829. data/vendor/diy/test/files/dog/dog_model.rb +5 -4
  830. data/vendor/diy/test/files/dog/dog_presenter.rb +5 -4
  831. data/vendor/diy/test/files/dog/dog_view.rb +5 -4
  832. data/vendor/diy/test/files/dog/file_resolver.rb +5 -4
  833. data/vendor/diy/test/files/dog/other_thing.rb +5 -4
  834. data/vendor/diy/test/files/dog/simple.yml +5 -4
  835. data/vendor/diy/test/files/donkey/foo/bar/qux.rb +5 -4
  836. data/vendor/diy/test/files/donkey/foo.rb +5 -4
  837. data/vendor/diy/test/files/factory/beef.rb +5 -4
  838. data/vendor/diy/test/files/factory/dog.rb +5 -4
  839. data/vendor/diy/test/files/factory/factory.yml +5 -4
  840. data/vendor/diy/test/files/factory/farm/llama.rb +5 -4
  841. data/vendor/diy/test/files/factory/farm/pork.rb +5 -4
  842. data/vendor/diy/test/files/factory/kitten.rb +5 -4
  843. data/vendor/diy/test/files/fud/objects.yml +5 -4
  844. data/vendor/diy/test/files/fud/toy.rb +5 -4
  845. data/vendor/diy/test/files/functions/attached_things_builder.rb +5 -4
  846. data/vendor/diy/test/files/functions/invalid_method.yml +5 -4
  847. data/vendor/diy/test/files/functions/method_extractor.rb +5 -4
  848. data/vendor/diy/test/files/functions/nonsingleton_objects.yml +5 -4
  849. data/vendor/diy/test/files/functions/objects.yml +5 -4
  850. data/vendor/diy/test/files/functions/thing.rb +5 -4
  851. data/vendor/diy/test/files/functions/thing_builder.rb +5 -4
  852. data/vendor/diy/test/files/functions/things_builder.rb +5 -4
  853. data/vendor/diy/test/files/gnu/objects.yml +5 -4
  854. data/vendor/diy/test/files/gnu/thinger.rb +5 -4
  855. data/vendor/diy/test/files/goat/base.rb +5 -4
  856. data/vendor/diy/test/files/goat/can.rb +5 -4
  857. data/vendor/diy/test/files/goat/goat.rb +5 -4
  858. data/vendor/diy/test/files/goat/objects.yml +5 -4
  859. data/vendor/diy/test/files/goat/paper.rb +5 -4
  860. data/vendor/diy/test/files/goat/plane.rb +5 -4
  861. data/vendor/diy/test/files/goat/shirt.rb +5 -4
  862. data/vendor/diy/test/files/goat/wings.rb +5 -4
  863. data/vendor/diy/test/files/horse/holder_thing.rb +5 -4
  864. data/vendor/diy/test/files/horse/objects.yml +5 -4
  865. data/vendor/diy/test/files/namespace/animal/bird.rb +5 -4
  866. data/vendor/diy/test/files/namespace/animal/cat.rb +5 -4
  867. data/vendor/diy/test/files/namespace/animal/reptile/hardshell/turtle.rb +5 -4
  868. data/vendor/diy/test/files/namespace/animal/reptile/lizard.rb +5 -4
  869. data/vendor/diy/test/files/namespace/bad_module_specified.yml +5 -4
  870. data/vendor/diy/test/files/namespace/class_name_combine.yml +5 -4
  871. data/vendor/diy/test/files/namespace/no_module_specified.yml +5 -4
  872. data/vendor/diy/test/files/namespace/objects.yml +5 -4
  873. data/vendor/diy/test/files/namespace/road.rb +5 -4
  874. data/vendor/diy/test/files/namespace/sky.rb +5 -4
  875. data/vendor/diy/test/files/namespace/subcontext.yml +5 -4
  876. data/vendor/diy/test/files/non_singleton/air.rb +5 -4
  877. data/vendor/diy/test/files/non_singleton/fat_cat.rb +5 -4
  878. data/vendor/diy/test/files/non_singleton/objects.yml +5 -4
  879. data/vendor/diy/test/files/non_singleton/pig.rb +5 -4
  880. data/vendor/diy/test/files/non_singleton/thread_spinner.rb +5 -4
  881. data/vendor/diy/test/files/non_singleton/tick.rb +5 -4
  882. data/vendor/diy/test/files/non_singleton/yard.rb +5 -4
  883. data/vendor/diy/test/files/yak/core_model.rb +5 -4
  884. data/vendor/diy/test/files/yak/core_presenter.rb +5 -4
  885. data/vendor/diy/test/files/yak/core_view.rb +5 -4
  886. data/vendor/diy/test/files/yak/data_source.rb +5 -4
  887. data/vendor/diy/test/files/yak/fringe_model.rb +5 -4
  888. data/vendor/diy/test/files/yak/fringe_presenter.rb +5 -4
  889. data/vendor/diy/test/files/yak/fringe_view.rb +5 -4
  890. data/vendor/diy/test/files/yak/giant_squid.rb +5 -4
  891. data/vendor/diy/test/files/yak/krill.rb +5 -4
  892. data/vendor/diy/test/files/yak/my_objects.yml +5 -4
  893. data/vendor/diy/test/files/yak/sub_sub_context_test.yml +5 -4
  894. data/vendor/diy/test/test_helper.rb +5 -4
  895. data/vendor/unity/auto/generate_module.rb +4 -4
  896. data/vendor/unity/auto/generate_test_runner.rb +5 -1
  897. data/vendor/unity/docs/UnityHelperScriptsGuide.md +9 -0
  898. data/vendor/unity/test/spec/generate_module_naming_spec.rb +38 -0
  899. data/vendor/unity/test/testdata/spi/MockConfig.h +19 -0
  900. data/vendor/unity/test/testdata/testRunnerGeneratorWithSameNamedMocks.c +42 -0
  901. data/vendor/unity/test/testdata/uart/MockConfig.h +19 -0
  902. data/vendor/unity/test/tests/test_generate_test_runner.rb +29 -0
  903. metadata +770 -287
  904. data/assets/tests_with_fallback_conditionals/src/conditional_module.c +0 -18
  905. data/bin/actions_wrapper.rb +0 -51
  906. data/docs/mkdocs/assets/images/ceedling-logo-circle.png +0 -0
  907. data/docs/mkdocs/assets/images/ceedling.svg +0 -90
  908. data/docs/mkdocs/assets/images/favicon.png +0 -0
  909. data/docs/mkdocs/assets/stylesheets/admonitions.css +0 -152
  910. data/docs/mkdocs/assets/stylesheets/fixes-local.css +0 -15
  911. data/docs/mkdocs/assets/stylesheets/styling.css +0 -102
  912. data/docs/mkdocs/configuration/environment-vars.md +0 -14
  913. data/docs/mkdocs/configuration/global-collections.md +0 -156
  914. data/docs/mkdocs/configuration/index.md +0 -75
  915. data/docs/mkdocs/configuration/loading.md +0 -89
  916. data/docs/mkdocs/configuration/mixins.md +0 -607
  917. data/docs/mkdocs/configuration/parallel-builds.md +0 -97
  918. data/docs/mkdocs/configuration/project-file.md +0 -216
  919. data/docs/mkdocs/configuration/reference/cexception.md +0 -35
  920. data/docs/mkdocs/configuration/reference/cmock.md +0 -106
  921. data/docs/mkdocs/configuration/reference/defines.md +0 -352
  922. data/docs/mkdocs/configuration/reference/environment.md +0 -55
  923. data/docs/mkdocs/configuration/reference/extension.md +0 -63
  924. data/docs/mkdocs/configuration/reference/files.md +0 -154
  925. data/docs/mkdocs/configuration/reference/flags.md +0 -296
  926. data/docs/mkdocs/configuration/reference/index.md +0 -176
  927. data/docs/mkdocs/configuration/reference/libraries.md +0 -82
  928. data/docs/mkdocs/configuration/reference/mixins.md +0 -24
  929. data/docs/mkdocs/configuration/reference/partials.md +0 -38
  930. data/docs/mkdocs/configuration/reference/paths.md +0 -276
  931. data/docs/mkdocs/configuration/reference/plugins.md +0 -60
  932. data/docs/mkdocs/configuration/reference/project.md +0 -333
  933. data/docs/mkdocs/configuration/reference/release-build.md +0 -62
  934. data/docs/mkdocs/configuration/reference/test-build.md +0 -55
  935. data/docs/mkdocs/configuration/reference/test-runner.md +0 -61
  936. data/docs/mkdocs/configuration/reference/tools.md +0 -457
  937. data/docs/mkdocs/configuration/reference/unity.md +0 -49
  938. data/docs/mkdocs/configuration/which-ceedling.md +0 -77
  939. data/docs/mkdocs/development/index.md +0 -61
  940. data/docs/mkdocs/development/plugins/configuration.md +0 -164
  941. data/docs/mkdocs/development/plugins/index.md +0 -84
  942. data/docs/mkdocs/development/plugins/plugin-subclass.md +0 -513
  943. data/docs/mkdocs/development/plugins/rake-tasks.md +0 -54
  944. data/docs/mkdocs/development/workflow.md +0 -284
  945. data/docs/mkdocs/getting-started/command-line.md +0 -477
  946. data/docs/mkdocs/getting-started/example-projects/cipher-quest.md +0 -65
  947. data/docs/mkdocs/getting-started/example-projects/index.md +0 -49
  948. data/docs/mkdocs/getting-started/example-projects/temp-sensor.md +0 -60
  949. data/docs/mkdocs/getting-started/example-projects/wondrous-forest.md +0 -45
  950. data/docs/mkdocs/getting-started/index.md +0 -41
  951. data/docs/mkdocs/getting-started/installation.md +0 -179
  952. data/docs/mkdocs/getting-started/quick-start.md +0 -86
  953. data/docs/mkdocs/help.md +0 -49
  954. data/docs/mkdocs/index.md +0 -222
  955. data/docs/mkdocs/overview/build-system.md +0 -115
  956. data/docs/mkdocs/overview/index.md +0 -29
  957. data/docs/mkdocs/overview/test-environments.md +0 -33
  958. data/docs/mkdocs/overview/tools-and-frameworks.md +0 -115
  959. data/docs/mkdocs/plugins/beep.md +0 -134
  960. data/docs/mkdocs/plugins/bullseye.md +0 -83
  961. data/docs/mkdocs/plugins/command-hooks.md +0 -268
  962. data/docs/mkdocs/plugins/compile-commands-json-db.md +0 -42
  963. data/docs/mkdocs/plugins/cppcheck.md +0 -377
  964. data/docs/mkdocs/plugins/dependencies.md +0 -310
  965. data/docs/mkdocs/plugins/fff.md +0 -247
  966. data/docs/mkdocs/plugins/gcov/examples.md +0 -92
  967. data/docs/mkdocs/plugins/gcov/gcovr.md +0 -526
  968. data/docs/mkdocs/plugins/gcov/index.md +0 -74
  969. data/docs/mkdocs/plugins/gcov/overview.md +0 -145
  970. data/docs/mkdocs/plugins/gcov/reportgenerator.md +0 -246
  971. data/docs/mkdocs/plugins/gcov/reporting.md +0 -147
  972. data/docs/mkdocs/plugins/gcov/setup.md +0 -232
  973. data/docs/mkdocs/plugins/gcov/tool-versions.md +0 -60
  974. data/docs/mkdocs/plugins/gcov/troubleshooting.md +0 -78
  975. data/docs/mkdocs/plugins/index.md +0 -261
  976. data/docs/mkdocs/plugins/module-generator.md +0 -267
  977. data/docs/mkdocs/plugins/report-build-warnings-log.md +0 -42
  978. data/docs/mkdocs/plugins/report-tests-gtestlike-stdout.md +0 -98
  979. data/docs/mkdocs/plugins/report-tests-ide-stdout.md +0 -63
  980. data/docs/mkdocs/plugins/report-tests-log-factory.md +0 -454
  981. data/docs/mkdocs/plugins/report-tests-pretty-stdout.md +0 -56
  982. data/docs/mkdocs/plugins/report-tests-raw-output-log.md +0 -52
  983. data/docs/mkdocs/plugins/report-tests-teamcity-stdout.md +0 -96
  984. data/docs/mkdocs/plugins/sample_html_report.png +0 -0
  985. data/docs/mkdocs/plugins/valgrind.md +0 -198
  986. data/docs/mkdocs/project/release-history.md +0 -61
  987. data/docs/mkdocs/project/upgrade.md +0 -85
  988. data/docs/mkdocs/reference/build-directives.md +0 -37
  989. data/docs/mkdocs/reference/command-line.md +0 -323
  990. data/docs/mkdocs/reference/environment-vars.md +0 -60
  991. data/docs/mkdocs/reference/gcov-plugin.md +0 -600
  992. data/docs/mkdocs/reference/global-collections.md +0 -160
  993. data/docs/mkdocs/reference/index.md +0 -65
  994. data/docs/mkdocs/reference/partials-macros.md +0 -79
  995. data/docs/mkdocs/reference/project-configuration.md +0 -46
  996. data/docs/mkdocs/snapshot/examples/cipher_quest/README.md +0 -210
  997. data/docs/mkdocs/snapshot/examples/temp_sensor/README.md +0 -283
  998. data/docs/mkdocs/snapshot/examples/wondrous_forest/README.md +0 -92
  999. data/docs/mkdocs/snapshot/plugins/gcov/config/defaults.yml +0 -32
  1000. data/docs/mkdocs/snapshot/plugins/gcov/config/defaults_gcov.rb +0 -136
  1001. data/docs/mkdocs/snapshot.yml +0 -20
  1002. data/docs/mkdocs/testing-guide/build-directives.md +0 -153
  1003. data/docs/mkdocs/testing-guide/conventions.md +0 -616
  1004. data/docs/mkdocs/testing-guide/frameworks.md +0 -192
  1005. data/docs/mkdocs/testing-guide/index.md +0 -80
  1006. data/docs/mkdocs/testing-guide/partials/configuration.md +0 -67
  1007. data/docs/mkdocs/testing-guide/partials/conventions.md +0 -68
  1008. data/docs/mkdocs/testing-guide/partials/directives.md +0 -212
  1009. data/docs/mkdocs/testing-guide/partials/example.md +0 -149
  1010. data/docs/mkdocs/testing-guide/partials/index.md +0 -88
  1011. data/docs/mkdocs/testing-guide/partials/overview.md +0 -81
  1012. data/docs/mkdocs/testing-guide/partials/variables.md +0 -244
  1013. data/docs/mkdocs/testing-guide/test-cases.md +0 -194
  1014. data/docs/mkdocs/testing-guide/test-sample.md +0 -94
  1015. data/docs/mkdocs/testing-guide/test-suite-anatomy.md +0 -58
  1016. data/lib/ceedling/cacheinator.rb +0 -53
  1017. data/lib/ceedling/cacheinator_helper.rb +0 -60
  1018. data/lib/ceedling/dependinator.rb +0 -31
  1019. data/lib/ceedling/makefile.rb +0 -52
  1020. data/lib/ceedling/release_invoker.rb +0 -112
  1021. data/lib/ceedling/rules_release.rake +0 -109
  1022. data/lib/ceedling/rules_tests.rake +0 -40
  1023. data/lib/ceedling/tasks_release.rake +0 -36
  1024. data/plugins/fff/vendor/fff/Makefile +0 -10
  1025. data/plugins/fff/vendor/fff/buildandtest +0 -15
  1026. data/plugins/fff/vendor/fff/examples/Makefile +0 -7
  1027. data/plugins/fff/vendor/fff/examples/driver_testing/Makefile +0 -64
  1028. data/plugins/fff/vendor/fff/examples/driver_testing/driver.c +0 -32
  1029. data/plugins/fff/vendor/fff/examples/driver_testing/driver.h +0 -21
  1030. data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.cpp +0 -58
  1031. data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.fff.cpp +0 -70
  1032. data/plugins/fff/vendor/fff/examples/driver_testing/hardware_abstraction.h +0 -25
  1033. data/plugins/fff/vendor/fff/examples/driver_testing/registers.h +0 -23
  1034. data/plugins/fff/vendor/fff/examples/embedded_ui/DISPLAY.h +0 -27
  1035. data/plugins/fff/vendor/fff/examples/embedded_ui/Kata.txt +0 -25
  1036. data/plugins/fff/vendor/fff/examples/embedded_ui/Makefile +0 -67
  1037. data/plugins/fff/vendor/fff/examples/embedded_ui/SYSTEM.h +0 -31
  1038. data/plugins/fff/vendor/fff/examples/embedded_ui/UI.c +0 -56
  1039. data/plugins/fff/vendor/fff/examples/embedded_ui/UI.h +0 -22
  1040. data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_ansic.c +0 -191
  1041. data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_cpp.cpp +0 -144
  1042. data/plugins/fff/vendor/fff/examples/embedded_ui/test_suite_template.c +0 -42
  1043. data/plugins/fff/vendor/fff/gtest/Makefile +0 -22
  1044. data/plugins/fff/vendor/fff/gtest/gtest-all.cc +0 -9118
  1045. data/plugins/fff/vendor/fff/gtest/gtest-main.cc +0 -6
  1046. data/plugins/fff/vendor/fff/gtest/gtest.h +0 -19547
  1047. data/plugins/fff/vendor/fff/test/Makefile +0 -81
  1048. data/plugins/fff/vendor/fff/test/c_test_framework.h +0 -25
  1049. data/plugins/fff/vendor/fff/test/fff_test_c.c +0 -116
  1050. data/plugins/fff/vendor/fff/test/fff_test_cpp.cpp +0 -53
  1051. data/plugins/fff/vendor/fff/test/fff_test_global_c.c +0 -84
  1052. data/plugins/fff/vendor/fff/test/fff_test_global_cpp.cpp +0 -31
  1053. data/plugins/fff/vendor/fff/test/global_fakes.c +0 -21
  1054. data/plugins/fff/vendor/fff/test/global_fakes.h +0 -47
  1055. data/plugins/fff/vendor/fff/test/test_cases.include +0 -276
  1056. data/plugins/report_tests_gtestlike_stdout/assets/template.erb +0 -83
  1057. data/site-local/snapshot/assets/project.yml +0 -404
  1058. data/spec/system/partials_types_header_spec.rb +0 -166
  1059. data/spec/units/configurator_spec.rb +0 -232
  1060. /data/assets/{ceedling → features/ceedling} +0 -0
  1061. /data/assets/{ceedling.cmd → features/ceedling.cmd} +0 -0
  1062. /data/assets/{default_gitignore → features/default_gitignore} +0 -0
  1063. /data/assets/{broken_uncovered_file.c → fixtures/broken_uncovered_file.c} +0 -0
  1064. /data/assets/{example_file.c → fixtures/example_file.c} +0 -0
  1065. /data/assets/{example_file.h → fixtures/example_file.h} +0 -0
  1066. /data/assets/{example_file_call.c → fixtures/example_file_call.c} +0 -0
  1067. /data/assets/{example_file_call.h → fixtures/example_file_call.h} +0 -0
  1068. /data/assets/{example_file_with_statics.c → fixtures/example_file_with_statics.c} +0 -0
  1069. /data/assets/{example_file_with_stdio.c → fixtures/example_file_with_stdio.c} +0 -0
  1070. /data/assets/{example_file_with_stdio.h → fixtures/example_file_with_stdio.h} +0 -0
  1071. /data/assets/{fake_crash_test_fixture.rb → fixtures/fake_crash_test_fixture.rb} +0 -0
  1072. /data/assets/{partial_all_module.h → fixtures/partial_all_module.h} +0 -0
  1073. /data/assets/{run_with_ubsan.rb → fixtures/run_with_ubsan.rb} +0 -0
  1074. /data/assets/{same_dir_pairing_module.c → fixtures/same_dir_pairing_module.c} +0 -0
  1075. /data/assets/{same_dir_pairing_module.h → fixtures/same_dir_pairing_module.h} +0 -0
  1076. /data/assets/{same_dir_pairing_module_func.h → fixtures/same_dir_pairing_module_func.h} +0 -0
  1077. /data/assets/{same_dir_pairing_other.c → fixtures/same_dir_pairing_other.c} +0 -0
  1078. /data/assets/{same_dir_pairing_other.h → fixtures/same_dir_pairing_other.h} +0 -0
  1079. /data/assets/{test_example_file.c → fixtures/test_example_file.c} +0 -0
  1080. /data/assets/{test_example_file_2.c → fixtures/test_example_file_2.c} +0 -0
  1081. /data/assets/{test_example_file_source_include.c → fixtures/test_example_file_source_include.c} +0 -0
  1082. /data/assets/{test_example_file_success.c → fixtures/test_example_file_success.c} +0 -0
  1083. /data/assets/{test_example_file_unity_printf.c → fixtures/test_example_file_unity_printf.c} +0 -0
  1084. /data/assets/{test_example_file_verbose.c → fixtures/test_example_file_verbose.c} +0 -0
  1085. /data/assets/{test_example_file_with_mock.c → fixtures/test_example_file_with_mock.c} +0 -0
  1086. /data/assets/{test_example_file_with_stdio.c → fixtures/test_example_file_with_stdio.c} +0 -0
  1087. /data/assets/{test_example_with_parameterized_tests.c → fixtures/test_example_with_parameterized_tests.c} +0 -0
  1088. /data/assets/{test_partial_all_module.c → fixtures/test_partial_all_module.c} +0 -0
  1089. /data/assets/{test_same_dir_pairing.c → fixtures/test_same_dir_pairing.c} +0 -0
  1090. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/feature_config.h +0 -0
  1091. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/feature_extra.h +0 -0
  1092. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/local_flag_extra.h +0 -0
  1093. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/nested_extra.h +0 -0
  1094. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/nested_wrapper.h +0 -0
  1095. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/project_flag_extra.h +0 -0
  1096. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget_feature.h +0 -0
  1097. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware.c +0 -0
  1098. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware.h +0 -0
  1099. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware_configurator.c +0 -0
  1100. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware_configurator.h +0 -0
  1101. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/test/test_adc_hardware.c +0 -0
  1102. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/test/test_adc_hardware_special.c +0 -0
  1103. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/src/unicoder.c +0 -0
  1104. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/src/unicoder.h +0 -0
  1105. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/test/test_unicoder.c +0 -0
  1106. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/test/test_unicoder_partial.c +0 -0
  1107. /data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/src/conditional_module.h +0 -0
  1108. /data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/src/optional_dep.h +0 -0
  1109. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/blanks.c +0 -0
  1110. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/blanks.h +0 -0
  1111. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/counter.c +0 -0
  1112. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/counter.h +0 -0
  1113. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/decorators.c +0 -0
  1114. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/decorators.h +0 -0
  1115. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_blanks.c +0 -0
  1116. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_counter.c +0 -0
  1117. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_decorators.c +0 -0
  1118. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareA.c +0 -0
  1119. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareA.h +0 -0
  1120. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareB.c +0 -0
  1121. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareB.h +0 -0
  1122. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareC.c +0 -0
  1123. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareC.h +0 -0
  1124. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorA.h +0 -0
  1125. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorB.h +0 -0
  1126. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorC.h +0 -0
  1127. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareA.c +0 -0
  1128. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareB.c +0 -0
  1129. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareC.c +0 -0
  1130. /data/assets/{uncovered_example_file.c → fixtures/uncovered_example_file.c} +0 -0
  1131. /data/plugins/bullseye/assets/{template.erb → coverage.template} +0 -0
@@ -89,10 +89,34 @@
89
89
  </div>
90
90
  <div data-md-component="announce">
91
91
 
92
+ <aside class="md-banner">
93
+ <div class="md-banner__inner md-grid md-typeset">
94
+
95
+
96
+
97
+
98
+ </div>
99
+
100
+ </aside>
101
+
92
102
  </div>
93
103
 
94
104
  <div data-md-color-scheme="default" data-md-component="outdated" hidden>
95
105
 
106
+ <aside class="md-banner md-banner--warning">
107
+ <div class="md-banner__inner md-grid md-typeset">
108
+
109
+
110
+ You are not viewing the latest version.
111
+ <a href="../..">
112
+ <strong>Click here to go to latest.</strong>
113
+ </a>
114
+
115
+
116
+ </div>
117
+ <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>
118
+ </aside>
119
+
96
120
  </div>
97
121
 
98
122
 
@@ -332,7 +356,7 @@
332
356
 
333
357
 
334
358
  <li class="md-tabs__item">
335
- <a href="../project/release-history.html" class="md-tabs__link">
359
+ <a href="../project/index.html" class="md-tabs__link">
336
360
 
337
361
 
338
362
 
@@ -641,6 +665,8 @@
641
665
 
642
666
 
643
667
 
668
+
669
+
644
670
 
645
671
 
646
672
 
@@ -788,6 +814,34 @@
788
814
 
789
815
 
790
816
 
817
+ <li class="md-nav__item">
818
+ <a href="../getting-started/builds.html" class="md-nav__link">
819
+
820
+
821
+
822
+ <span class="md-ellipsis">
823
+
824
+
825
+ Builds
826
+
827
+
828
+
829
+ </span>
830
+
831
+
832
+
833
+ </a>
834
+ </li>
835
+
836
+
837
+
838
+
839
+
840
+
841
+
842
+
843
+
844
+
791
845
 
792
846
 
793
847
 
@@ -814,7 +868,7 @@
814
868
 
815
869
 
816
870
 
817
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5" >
871
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6" >
818
872
 
819
873
 
820
874
  <div class="md-nav__link md-nav__container">
@@ -836,14 +890,14 @@
836
890
  </a>
837
891
 
838
892
 
839
- <label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="0">
893
+ <label class="md-nav__link " for="__nav_3_6" id="__nav_3_6_label" tabindex="0">
840
894
  <span class="md-nav__icon md-icon"></span>
841
895
  </label>
842
896
 
843
897
  </div>
844
898
 
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">
899
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_6_label" aria-expanded="false">
900
+ <label class="md-nav__title" for="__nav_3_6">
847
901
  <span class="md-nav__icon md-icon"></span>
848
902
 
849
903
 
@@ -2412,6 +2466,8 @@
2412
2466
 
2413
2467
 
2414
2468
 
2469
+
2470
+
2415
2471
 
2416
2472
 
2417
2473
 
@@ -3049,8 +3105,64 @@
3049
3105
 
3050
3106
 
3051
3107
  <li class="md-nav__item">
3052
- <a href="bullseye.html" class="md-nav__link">
3108
+ <a href="sanitize.html" class="md-nav__link">
3109
+
3110
+
3111
+
3112
+ <span class="md-ellipsis">
3113
+
3114
+
3115
+ Sanitize (ASan, UBSan & Leaks)
3116
+
3117
+
3118
+
3119
+ </span>
3120
+
3121
+
3122
+
3123
+ </a>
3124
+ </li>
3125
+
3126
+
3127
+
3128
+
3129
+
3130
+
3131
+
3132
+
3133
+
3134
+
3135
+
3136
+
3137
+
3138
+
3139
+
3140
+
3141
+
3142
+
3143
+
3144
+
3145
+
3146
+
3147
+
3148
+
3053
3149
 
3150
+
3151
+
3152
+
3153
+
3154
+
3155
+
3156
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
3157
+
3158
+
3159
+
3160
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_13" >
3161
+
3162
+
3163
+ <div class="md-nav__link md-nav__container">
3164
+ <a href="bullseye/index.html" class="md-nav__link ">
3165
+
3054
3166
 
3055
3167
 
3056
3168
  <span class="md-ellipsis">
@@ -3060,6 +3172,50 @@
3060
3172
 
3061
3173
 
3062
3174
 
3175
+ </span>
3176
+
3177
+
3178
+
3179
+ </a>
3180
+
3181
+
3182
+ <label class="md-nav__link " for="__nav_6_13" id="__nav_6_13_label" tabindex="">
3183
+ <span class="md-nav__icon md-icon"></span>
3184
+ </label>
3185
+
3186
+ </div>
3187
+
3188
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_13_label" aria-expanded="false">
3189
+ <label class="md-nav__title" for="__nav_6_13">
3190
+ <span class="md-nav__icon md-icon"></span>
3191
+
3192
+
3193
+ Bullseye (Coverage)
3194
+
3195
+
3196
+ </label>
3197
+ <ul class="md-nav__list" data-md-scrollfix>
3198
+
3199
+
3200
+
3201
+
3202
+
3203
+
3204
+
3205
+
3206
+
3207
+ <li class="md-nav__item">
3208
+ <a href="bullseye/licensing.html" class="md-nav__link">
3209
+
3210
+
3211
+
3212
+ <span class="md-ellipsis">
3213
+
3214
+
3215
+ Licensing
3216
+
3217
+
3218
+
3063
3219
  </span>
3064
3220
 
3065
3221
 
@@ -3070,6 +3226,14 @@
3070
3226
 
3071
3227
 
3072
3228
 
3229
+ </ul>
3230
+ </nav>
3231
+
3232
+ </li>
3233
+
3234
+
3235
+
3236
+
3073
3237
 
3074
3238
 
3075
3239
 
@@ -3288,10 +3452,10 @@
3288
3452
  </li>
3289
3453
 
3290
3454
  <li class="md-nav__item">
3291
- <a href="#starting-dash-name" class="md-nav__link">
3455
+ <a href="#name" class="md-nav__link">
3292
3456
  <span class="md-ellipsis">
3293
3457
 
3294
- Starting Dash &amp; Name
3458
+ Name
3295
3459
 
3296
3460
  </span>
3297
3461
  </a>
@@ -3302,7 +3466,7 @@
3302
3466
  <a href="#working-paths" class="md-nav__link">
3303
3467
  <span class="md-ellipsis">
3304
3468
 
3305
- Working Paths
3469
+ Working paths
3306
3470
 
3307
3471
  </span>
3308
3472
  </a>
@@ -3313,7 +3477,7 @@
3313
3477
  <a href="#fetching-dependencies" class="md-nav__link">
3314
3478
  <span class="md-ellipsis">
3315
3479
 
3316
- Fetching Dependencies
3480
+ Fetching dependencies
3317
3481
 
3318
3482
  </span>
3319
3483
  </a>
@@ -3324,7 +3488,7 @@
3324
3488
  <a href="#environment-variables" class="md-nav__link">
3325
3489
  <span class="md-ellipsis">
3326
3490
 
3327
- Environment Variables
3491
+ Environment variables
3328
3492
 
3329
3493
  </span>
3330
3494
  </a>
@@ -3335,7 +3499,7 @@
3335
3499
  <a href="#building-dependencies" class="md-nav__link">
3336
3500
  <span class="md-ellipsis">
3337
3501
 
3338
- Building Dependencies
3502
+ Building dependencies
3339
3503
 
3340
3504
  </span>
3341
3505
  </a>
@@ -3374,6 +3538,17 @@
3374
3538
  </span>
3375
3539
  </a>
3376
3540
 
3541
+ </li>
3542
+
3543
+ <li class="md-nav__item">
3544
+ <a href="#executables" class="md-nav__link">
3545
+ <span class="md-ellipsis">
3546
+
3547
+ executables
3548
+
3549
+ </span>
3550
+ </a>
3551
+
3377
3552
  </li>
3378
3553
 
3379
3554
  <li class="md-nav__item">
@@ -3416,10 +3591,10 @@
3416
3591
  <ul class="md-nav__list">
3417
3592
 
3418
3593
  <li class="md-nav__item">
3419
- <a href="#ceedling-dependenciesclean" class="md-nav__link">
3594
+ <a href="#ceedling-dependenciesfetch" class="md-nav__link">
3420
3595
  <span class="md-ellipsis">
3421
3596
 
3422
- ceedling dependencies:clean
3597
+ ceedling dependencies:fetch
3423
3598
 
3424
3599
  </span>
3425
3600
  </a>
@@ -3427,10 +3602,10 @@
3427
3602
  </li>
3428
3603
 
3429
3604
  <li class="md-nav__item">
3430
- <a href="#ceedling-dependenciesfetch" class="md-nav__link">
3605
+ <a href="#ceedling-dependenciesmake" class="md-nav__link">
3431
3606
  <span class="md-ellipsis">
3432
3607
 
3433
- ceedling dependencies:fetch
3608
+ ceedling dependencies:make
3434
3609
 
3435
3610
  </span>
3436
3611
  </a>
@@ -3438,10 +3613,10 @@
3438
3613
  </li>
3439
3614
 
3440
3615
  <li class="md-nav__item">
3441
- <a href="#ceedling-dependenciesmake" class="md-nav__link">
3616
+ <a href="#ceedling-dependenciesclean" class="md-nav__link">
3442
3617
  <span class="md-ellipsis">
3443
3618
 
3444
- ceedling dependencies:make
3619
+ ceedling dependencies:clean
3445
3620
 
3446
3621
  </span>
3447
3622
  </a>
@@ -3457,6 +3632,17 @@
3457
3632
  </span>
3458
3633
  </a>
3459
3634
 
3635
+ </li>
3636
+
3637
+ <li class="md-nav__item">
3638
+ <a href="#filesdependencies" class="md-nav__link">
3639
+ <span class="md-ellipsis">
3640
+
3641
+ files:dependencies
3642
+
3643
+ </span>
3644
+ </a>
3645
+
3460
3646
  </li>
3461
3647
 
3462
3648
  <li class="md-nav__item">
@@ -3490,11 +3676,94 @@
3490
3676
  <a href="#custom-tools" class="md-nav__link">
3491
3677
  <span class="md-ellipsis">
3492
3678
 
3493
- Custom Tools
3679
+ Custom tools
3680
+
3681
+ </span>
3682
+ </a>
3683
+
3684
+ </li>
3685
+
3686
+ <li class="md-nav__item">
3687
+ <a href="#cookbook" class="md-nav__link">
3688
+ <span class="md-ellipsis">
3689
+
3690
+ Cookbook
3691
+
3692
+ </span>
3693
+ </a>
3694
+
3695
+ <nav class="md-nav" aria-label="Cookbook">
3696
+ <ul class="md-nav__list">
3697
+
3698
+ <li class="md-nav__item">
3699
+ <a href="#a-tagged-release-from-git-built-with-make" class="md-nav__link">
3700
+ <span class="md-ellipsis">
3701
+
3702
+ A tagged release from git, built with Make
3494
3703
 
3495
3704
  </span>
3496
3705
  </a>
3497
3706
 
3707
+ </li>
3708
+
3709
+ <li class="md-nav__item">
3710
+ <a href="#a-vendor-archive-with-environment-settings" class="md-nav__link">
3711
+ <span class="md-ellipsis">
3712
+
3713
+ A vendor archive with environment settings
3714
+
3715
+ </span>
3716
+ </a>
3717
+
3718
+ </li>
3719
+
3720
+ <li class="md-nav__item">
3721
+ <a href="#a-sibling-ceedling-project" class="md-nav__link">
3722
+ <span class="md-ellipsis">
3723
+
3724
+ A sibling Ceedling project
3725
+
3726
+ </span>
3727
+ </a>
3728
+
3729
+ </li>
3730
+
3731
+ <li class="md-nav__item">
3732
+ <a href="#a-shared-library-deployed-beside-the-release" class="md-nav__link">
3733
+ <span class="md-ellipsis">
3734
+
3735
+ A shared library deployed beside the release
3736
+
3737
+ </span>
3738
+ </a>
3739
+
3740
+ </li>
3741
+
3742
+ <li class="md-nav__item">
3743
+ <a href="#build-tools-deployed-to-a-shared-folder" class="md-nav__link">
3744
+ <span class="md-ellipsis">
3745
+
3746
+ Build tools deployed to a shared folder
3747
+
3748
+ </span>
3749
+ </a>
3750
+
3751
+ </li>
3752
+
3753
+ <li class="md-nav__item">
3754
+ <a href="#a-small-library-compiled-by-ceedling" class="md-nav__link">
3755
+ <span class="md-ellipsis">
3756
+
3757
+ A small library compiled by Ceedling
3758
+
3759
+ </span>
3760
+ </a>
3761
+
3762
+ </li>
3763
+
3764
+ </ul>
3765
+ </nav>
3766
+
3498
3767
  </li>
3499
3768
 
3500
3769
  </ul>
@@ -3807,6 +4076,12 @@
3807
4076
 
3808
4077
 
3809
4078
 
4079
+
4080
+
4081
+
4082
+
4083
+
4084
+
3810
4085
 
3811
4086
 
3812
4087
 
@@ -3826,8 +4101,9 @@
3826
4101
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
3827
4102
 
3828
4103
 
3829
- <label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
3830
-
4104
+ <div class="md-nav__link md-nav__container">
4105
+ <a href="../project/index.html" class="md-nav__link ">
4106
+
3831
4107
 
3832
4108
 
3833
4109
  <span class="md-ellipsis">
@@ -3841,8 +4117,14 @@
3841
4117
 
3842
4118
 
3843
4119
 
3844
- <span class="md-nav__icon md-icon"></span>
3845
- </label>
4120
+ </a>
4121
+
4122
+
4123
+ <label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="0">
4124
+ <span class="md-nav__icon md-icon"></span>
4125
+ </label>
4126
+
4127
+ </div>
3846
4128
 
3847
4129
  <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
3848
4130
  <label class="md-nav__title" for="__nav_8">
@@ -3856,6 +4138,8 @@
3856
4138
  <ul class="md-nav__list" data-md-scrollfix>
3857
4139
 
3858
4140
 
4141
+
4142
+
3859
4143
 
3860
4144
 
3861
4145
 
@@ -3889,6 +4173,34 @@
3889
4173
 
3890
4174
 
3891
4175
 
4176
+ <li class="md-nav__item">
4177
+ <a href="../project/sbom.html" class="md-nav__link">
4178
+
4179
+
4180
+
4181
+ <span class="md-ellipsis">
4182
+
4183
+
4184
+ Software Bill of Materials
4185
+
4186
+
4187
+
4188
+ </span>
4189
+
4190
+
4191
+
4192
+ </a>
4193
+ </li>
4194
+
4195
+
4196
+
4197
+
4198
+
4199
+
4200
+
4201
+
4202
+
4203
+
3892
4204
  <li class="md-nav__item">
3893
4205
  <a href="../project/upgrade.html" class="md-nav__link">
3894
4206
 
@@ -3960,6 +4272,8 @@
3960
4272
 
3961
4273
 
3962
4274
 
4275
+
4276
+
3963
4277
 
3964
4278
 
3965
4279
 
@@ -4050,6 +4364,34 @@
4050
4364
 
4051
4365
 
4052
4366
 
4367
+ <li class="md-nav__item">
4368
+ <a href="../development/releases.html" class="md-nav__link">
4369
+
4370
+
4371
+
4372
+ <span class="md-ellipsis">
4373
+
4374
+
4375
+ Branching & Releases
4376
+
4377
+
4378
+
4379
+ </span>
4380
+
4381
+
4382
+
4383
+ </a>
4384
+ </li>
4385
+
4386
+
4387
+
4388
+
4389
+
4390
+
4391
+
4392
+
4393
+
4394
+
4053
4395
 
4054
4396
 
4055
4397
 
@@ -4076,7 +4418,7 @@
4076
4418
 
4077
4419
 
4078
4420
 
4079
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_3" >
4421
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_4" >
4080
4422
 
4081
4423
 
4082
4424
  <div class="md-nav__link md-nav__container">
@@ -4098,14 +4440,14 @@
4098
4440
  </a>
4099
4441
 
4100
4442
 
4101
- <label class="md-nav__link " for="__nav_10_3" id="__nav_10_3_label" tabindex="0">
4443
+ <label class="md-nav__link " for="__nav_10_4" id="__nav_10_4_label" tabindex="0">
4102
4444
  <span class="md-nav__icon md-icon"></span>
4103
4445
  </label>
4104
4446
 
4105
4447
  </div>
4106
4448
 
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">
4449
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_10_4_label" aria-expanded="false">
4450
+ <label class="md-nav__title" for="__nav_10_4">
4109
4451
  <span class="md-nav__icon md-icon"></span>
4110
4452
 
4111
4453
 
@@ -4254,10 +4596,10 @@
4254
4596
  </li>
4255
4597
 
4256
4598
  <li class="md-nav__item">
4257
- <a href="#starting-dash-name" class="md-nav__link">
4599
+ <a href="#name" class="md-nav__link">
4258
4600
  <span class="md-ellipsis">
4259
4601
 
4260
- Starting Dash &amp; Name
4602
+ Name
4261
4603
 
4262
4604
  </span>
4263
4605
  </a>
@@ -4268,7 +4610,7 @@
4268
4610
  <a href="#working-paths" class="md-nav__link">
4269
4611
  <span class="md-ellipsis">
4270
4612
 
4271
- Working Paths
4613
+ Working paths
4272
4614
 
4273
4615
  </span>
4274
4616
  </a>
@@ -4279,7 +4621,7 @@
4279
4621
  <a href="#fetching-dependencies" class="md-nav__link">
4280
4622
  <span class="md-ellipsis">
4281
4623
 
4282
- Fetching Dependencies
4624
+ Fetching dependencies
4283
4625
 
4284
4626
  </span>
4285
4627
  </a>
@@ -4290,7 +4632,7 @@
4290
4632
  <a href="#environment-variables" class="md-nav__link">
4291
4633
  <span class="md-ellipsis">
4292
4634
 
4293
- Environment Variables
4635
+ Environment variables
4294
4636
 
4295
4637
  </span>
4296
4638
  </a>
@@ -4301,7 +4643,7 @@
4301
4643
  <a href="#building-dependencies" class="md-nav__link">
4302
4644
  <span class="md-ellipsis">
4303
4645
 
4304
- Building Dependencies
4646
+ Building dependencies
4305
4647
 
4306
4648
  </span>
4307
4649
  </a>
@@ -4340,6 +4682,17 @@
4340
4682
  </span>
4341
4683
  </a>
4342
4684
 
4685
+ </li>
4686
+
4687
+ <li class="md-nav__item">
4688
+ <a href="#executables" class="md-nav__link">
4689
+ <span class="md-ellipsis">
4690
+
4691
+ executables
4692
+
4693
+ </span>
4694
+ </a>
4695
+
4343
4696
  </li>
4344
4697
 
4345
4698
  <li class="md-nav__item">
@@ -4382,10 +4735,10 @@
4382
4735
  <ul class="md-nav__list">
4383
4736
 
4384
4737
  <li class="md-nav__item">
4385
- <a href="#ceedling-dependenciesclean" class="md-nav__link">
4738
+ <a href="#ceedling-dependenciesfetch" class="md-nav__link">
4386
4739
  <span class="md-ellipsis">
4387
4740
 
4388
- ceedling dependencies:clean
4741
+ ceedling dependencies:fetch
4389
4742
 
4390
4743
  </span>
4391
4744
  </a>
@@ -4393,10 +4746,10 @@
4393
4746
  </li>
4394
4747
 
4395
4748
  <li class="md-nav__item">
4396
- <a href="#ceedling-dependenciesfetch" class="md-nav__link">
4749
+ <a href="#ceedling-dependenciesmake" class="md-nav__link">
4397
4750
  <span class="md-ellipsis">
4398
4751
 
4399
- ceedling dependencies:fetch
4752
+ ceedling dependencies:make
4400
4753
 
4401
4754
  </span>
4402
4755
  </a>
@@ -4404,10 +4757,10 @@
4404
4757
  </li>
4405
4758
 
4406
4759
  <li class="md-nav__item">
4407
- <a href="#ceedling-dependenciesmake" class="md-nav__link">
4760
+ <a href="#ceedling-dependenciesclean" class="md-nav__link">
4408
4761
  <span class="md-ellipsis">
4409
4762
 
4410
- ceedling dependencies:make
4763
+ ceedling dependencies:clean
4411
4764
 
4412
4765
  </span>
4413
4766
  </a>
@@ -4423,6 +4776,17 @@
4423
4776
  </span>
4424
4777
  </a>
4425
4778
 
4779
+ </li>
4780
+
4781
+ <li class="md-nav__item">
4782
+ <a href="#filesdependencies" class="md-nav__link">
4783
+ <span class="md-ellipsis">
4784
+
4785
+ files:dependencies
4786
+
4787
+ </span>
4788
+ </a>
4789
+
4426
4790
  </li>
4427
4791
 
4428
4792
  <li class="md-nav__item">
@@ -4456,11 +4820,94 @@
4456
4820
  <a href="#custom-tools" class="md-nav__link">
4457
4821
  <span class="md-ellipsis">
4458
4822
 
4459
- Custom Tools
4823
+ Custom tools
4460
4824
 
4461
4825
  </span>
4462
4826
  </a>
4463
4827
 
4828
+ </li>
4829
+
4830
+ <li class="md-nav__item">
4831
+ <a href="#cookbook" class="md-nav__link">
4832
+ <span class="md-ellipsis">
4833
+
4834
+ Cookbook
4835
+
4836
+ </span>
4837
+ </a>
4838
+
4839
+ <nav class="md-nav" aria-label="Cookbook">
4840
+ <ul class="md-nav__list">
4841
+
4842
+ <li class="md-nav__item">
4843
+ <a href="#a-tagged-release-from-git-built-with-make" class="md-nav__link">
4844
+ <span class="md-ellipsis">
4845
+
4846
+ A tagged release from git, built with Make
4847
+
4848
+ </span>
4849
+ </a>
4850
+
4851
+ </li>
4852
+
4853
+ <li class="md-nav__item">
4854
+ <a href="#a-vendor-archive-with-environment-settings" class="md-nav__link">
4855
+ <span class="md-ellipsis">
4856
+
4857
+ A vendor archive with environment settings
4858
+
4859
+ </span>
4860
+ </a>
4861
+
4862
+ </li>
4863
+
4864
+ <li class="md-nav__item">
4865
+ <a href="#a-sibling-ceedling-project" class="md-nav__link">
4866
+ <span class="md-ellipsis">
4867
+
4868
+ A sibling Ceedling project
4869
+
4870
+ </span>
4871
+ </a>
4872
+
4873
+ </li>
4874
+
4875
+ <li class="md-nav__item">
4876
+ <a href="#a-shared-library-deployed-beside-the-release" class="md-nav__link">
4877
+ <span class="md-ellipsis">
4878
+
4879
+ A shared library deployed beside the release
4880
+
4881
+ </span>
4882
+ </a>
4883
+
4884
+ </li>
4885
+
4886
+ <li class="md-nav__item">
4887
+ <a href="#build-tools-deployed-to-a-shared-folder" class="md-nav__link">
4888
+ <span class="md-ellipsis">
4889
+
4890
+ Build tools deployed to a shared folder
4891
+
4892
+ </span>
4893
+ </a>
4894
+
4895
+ </li>
4896
+
4897
+ <li class="md-nav__item">
4898
+ <a href="#a-small-library-compiled-by-ceedling" class="md-nav__link">
4899
+ <span class="md-ellipsis">
4900
+
4901
+ A small library compiled by Ceedling
4902
+
4903
+ </span>
4904
+ </a>
4905
+
4906
+ </li>
4907
+
4908
+ </ul>
4909
+ </nav>
4910
+
4464
4911
  </li>
4465
4912
 
4466
4913
  </ul>
@@ -4532,29 +4979,24 @@
4532
4979
 
4533
4980
 
4534
4981
  <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>
4982
+ <p>This plugin fetches, builds, and links the libraries and modules your project depends
4983
+ on. It’s rare for an embedded project to be built completely free of other code. Some of
4984
+ it may be standard internal libraries, and some may be third-party libraries. Either way,
4985
+ it becomes part of the project’s ecosystem.</p>
4986
+ <p>For each dependency, you tell this plugin where to fetch it from, how to build it, and what
4987
+ it produces. Ceedling fetches and builds it whenever those outputs are missing, then adds
4988
+ its headers, sources, and libraries to your test and release builds.</p>
4989
+ <p>Most third-party libraries already have a build process of their own. Make? CMake? A
4990
+ custom series of scripts that only a mad scientist could possibly understand? No matter.
4991
+ You list the commands, and Ceedling runs them.</p>
4992
+ <p>See the <a href="#cookbook"><em>Cookbook</em> section</a> for real-world scenarios along with the example
4993
+ <code>:dependencies</code> configurations and <code>ceedling dependencies:...</code> command lines to make
4994
+ use of this plugin.</p>
4552
4995
  <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>
4996
+ <p>Enable the plugin in your project configuration, then list your dependencies under
4997
+ <code>:dependencies</code> ↳ <code>:deps</code>. Each dependency has a series of fields, most of them optional.
4998
+ If you don’t need a feature, leave its field out. In the end, it looks something like
4999
+ this:</p>
4558
5000
  <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
5001
  <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
5002
  <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,189 +5005,266 @@ it! In the end, it'll look something like this:</p>
4563
5005
  <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
5006
  <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
5007
  <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>
5008
+ <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>
5009
+ <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>
5010
+ <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>
5011
+ <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>
5012
+ <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>
5013
+ <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>
5014
+ <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>
5015
+ <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>
5016
+ <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>
5017
+ <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>
5018
+ <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>
5019
+ <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>
5020
+ <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>
5021
+ <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>
5022
+ <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>
5023
+ <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>
5024
+ <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>
5025
+ <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>
5026
+ <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>
5027
+ <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>
5028
+ <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
5029
  </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>
5030
+ <h2 id="name">Name</h2>
5031
+ <p>As a YAML array of objects, each dependency begins with a dash, followed by its fields.
5032
+ By convention, <code>:name</code> comes first, which makes each dependency easy to spot.</p>
5033
+ <p>The name appears in Ceedling’s progress messages. Its letters, digits, and underscores
5034
+ also name the dependency’s own tasks, so <code>Worker Bees</code> gets <code>dependencies:make:WorkerBees</code>.
5035
+ A name therefore needs at least one letter or digit. Two dependencies whose names reduce
5036
+ to the same task name stop the build with an error.</p>
5037
+ <h2 id="working-paths">Working paths</h2>
5038
+ <p>A dependency’s paths are collected under its <code>:paths</code>. Each path you leave out falls back
5039
+ to another, and with none configured every path is <code>dependencies/&lt;task name&gt;</code>.</p>
5040
+ <table>
5041
+ <thead>
5042
+ <tr>
5043
+ <th>Path</th>
5044
+ <th>Purpose</th>
5045
+ <th>When left out</th>
5046
+ </tr>
5047
+ </thead>
5048
+ <tbody>
5049
+ <tr>
5050
+ <td><code>:fetch</code></td>
5051
+ <td>Where the dependency is fetched to</td>
5052
+ <td><code>:source</code></td>
5053
+ </tr>
5054
+ <tr>
5055
+ <td><code>:source</code></td>
5056
+ <td>Where build commands run from</td>
5057
+ <td><code>:fetch</code></td>
5058
+ </tr>
5059
+ <tr>
5060
+ <td><code>:build</code></td>
5061
+ <td>Where the build places its files</td>
5062
+ <td><code>:source</code>, then <code>:fetch</code></td>
5063
+ </tr>
5064
+ <tr>
5065
+ <td><code>:artifact</code></td>
5066
+ <td>Where the outputs listed under <code>:artifacts</code> are found</td>
5067
+ <td><code>:build</code></td>
5068
+ </tr>
5069
+ <tr>
5070
+ <td><code>:deploy</code></td>
5071
+ <td>Where <code>dependencies:deploy</code> copies dynamic libraries and executables</td>
5072
+ <td>Your release executable’s folder</td>
5073
+ </tr>
5074
+ </tbody>
5075
+ </table>
5076
+ <p>Cleaning a dependency never removes its <code>:deploy</code> path, which holds copies alongside your
5077
+ project’s own files.</p>
5078
+ <p>If the dependency is part of your repository (its fetch <code>:method</code> is <code>:none</code>), <code>:source</code>
5079
+ is where its code already lives. Paths may lie outside your project, such as
5080
+ <code>../shared/lib</code>, and headers found there work in test and release builds alike.</p>
5081
+ <p>Every artifact is relative to the <code>:artifact</code> path. With several include directories,
5082
+ choose the highest level and list the rest relative to it.</p>
5083
+ <h2 id="fetching-dependencies">Fetching dependencies</h2>
5084
+ <p>The plugin fetches a dependency with one of several common methods, configured under its
5085
+ <code>:fetch</code>:</p>
4627
5086
  <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>
5087
+ <li><code>:method</code>, the way this dependency is fetched:<ul>
5088
+ <li><code>:none</code>: the code is already part of the project, so nothing is fetched.</li>
5089
+ <li><code>:zip</code>: unpack a zip archive into the fetch path.</li>
5090
+ <li><code>:tar_gzip</code>: unpack a gzipped tar archive into the fetch path.</li>
5091
+ <li><code>:git</code>: clone a git repository into the fetch path.</li>
5092
+ <li><code>:svn</code>: check out a Subversion repository into the fetch path.</li>
5093
+ <li><code>:custom</code>: run commands of your own in the fetch path.</li>
4635
5094
  </ul>
4636
5095
  </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>
4642
- </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>
5096
+ <li><code>:source</code>: the archive or repository to fetch from (<code>:zip</code>, <code>:tar_gzip</code>, <code>:git</code>, and
5097
+ <code>:svn</code>, all of which require it).</li>
5098
+ <li><code>:tag</code> or <code>:branch</code>: the tag or branch to clone (<code>:git</code> only, optional). A tag wins
5099
+ when both are given.</li>
5100
+ <li><code>:hash</code>: the commit to check out (<code>:git</code> only, optional). It makes a full clone rather
5101
+ than a shallow one, so the commit is available.</li>
5102
+ <li><code>:revision</code>: the revision to check out (<code>:svn</code> only, optional).</li>
5103
+ <li><code>:executable</code>: the list of commands to run (<code>:custom</code> only, required).</li>
4647
5104
  </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>
5105
+ <p>Fetching runs from inside the fetch path, so an archive <code>:source</code> given as a relative
5106
+ path is relative to the fetch path.</p>
5107
+ <p>A dependency is fetched once. Once its fetch path holds files, fetching it again, or
5108
+ building it after a fetch, leaves those files alone. To fetch a fresh copy, clean the
5109
+ dependency first with <code>dependencies:clean</code>.</p>
5110
+ <p>The <code>:zip</code>, <code>:tar_gzip</code>, <code>:git</code>, and <code>:svn</code> methods use the plugin’s
5111
+ <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
5112
+ dependency fetches with it, so a missing tool stops only that fetch, and a machine that
5113
+ never fetches, such as a CI agent working from fetched dependencies, needs none of them.</p>
5114
+ <h2 id="environment-variables">Environment variables</h2>
5115
+ <p>Many build systems take settings from environment variables. A dependency’s
5116
+ <code>:environment</code> sets variables while that dependency’s fetch and build commands run, then
5117
+ restores them, so they never reach another dependency or Ceedling itself.</p>
5118
+ <p>Ceedling’s project configuration also has a top-level <code>:environment</code> section, which
5119
+ applies to all of Ceedling. The two sections differ in format and abilities.</p>
5120
+ <p>Each entry sets a variable, adds to it, or removes from it:</p>
4658
5121
  <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>
5122
+ <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>
5123
+ <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>
5124
+ <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>
5125
+ <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>
5126
+ <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>
5127
+ <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
5128
  </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>
5129
+ <p><code>ARCHITECTURE=ARM9</code> sets <code>ARCHITECTURE</code> to <code>ARM9</code>. <code>+=</code> appends to a variable, here
5130
+ adding <code>-DADD_AWESOMENESS</code> to <code>CFLAGS</code>, and <code>-=</code> removes text from it, here removing
5131
+ <code>-DWASTE</code>. An entry in any other form stops the build with an error.</p>
5132
+ <p>When appending, Ceedling cannot know which delimiter you expect, so include it yourself:
5133
+ a space for compiler flags, or <code>:</code> (<code>;</code> on Windows) for <code>PATH</code>. Text after <code>+=</code> and <code>-=</code>
5134
+ is used exactly as written, leading space included, while a value after <code>=</code> loses its
5135
+ leading spaces. Removing text is case
5136
+ sensitive and removes only an exact match. Appending to or removing from a variable that
5137
+ is not set leaves it set, empty if nothing was appended.</p>
5138
+ <h2 id="building-dependencies">Building dependencies</h2>
5139
+ <p>The heart of the plugin is the build process you specify for each dependency under
5140
+ <code>:build</code>, a list of steps Ceedling runs in order. Any tools those steps use must be
5141
+ installed. A failing step stops the build with its error.</p>
5142
+ <p>Each step is a command line, which runs from the dependency’s <code>:source</code> path exactly as
5143
+ written, quoting and spacing included. The source, build, and artifact paths are created
5144
+ first if they do not exist. A step can instead be <code>:build_lib</code>, which builds a static
5145
+ library with Ceedling’s own compiler and archiver (see <a href="#custom-tools">Custom tools</a>).</p>
4685
5146
  <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>
5147
+ <p>Artifacts are the outputs of the build process, listed under <code>:artifacts</code>. A dependency
5148
+ may have any of them or none. Your dependency’s build process may produce many other
5149
+ files, but these are the ones Ceedling acts on.</p>
4690
5150
  <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>
5151
+ <p>Static libraries Ceedling links into your test and release builds. If one does not
5152
+ exist, Ceedling fetches and builds the dependency to produce it.</p>
4696
5153
  <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>
5154
+ <p>Dynamic libraries Ceedling links into your test and release builds. If one does not
5155
+ exist, Ceedling fetches and builds the dependency to produce it. <code>dependencies:deploy</code>
5156
+ copies them to the <a href="#working-paths"><code>:deploy</code> path</a>, by default beside your release
5157
+ executable, where it loads them at run time.</p>
5158
+ <h3 id="executables"><code>executables</code></h3>
5159
+ <p>Programs a dependency builds, such as a code generator, a flashing utility, or a tool
5160
+ your release ships alongside it. Ceedling never links them. A release build, or
5161
+ <code>dependencies:make</code>, fetches and builds the dependency when one does not exist, while
5162
+ test builds do not wait on them. <code>dependencies:deploy</code> copies them, with any dynamic
5163
+ libraries, to the <a href="#working-paths"><code>:deploy</code> path</a>.</p>
5164
+ <p>On Windows, list each executable with its <code>.exe</code> extension.</p>
4702
5165
  <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>
5166
+ <p>The public headers a dependency provides. Ceedling adds their directories to its search
5167
+ paths, so your code can include them and your tests can mock them. An entry may be:</p>
5168
+ <ul>
5169
+ <li>a header file, such as <code>include/wolfssl.h</code>, which adds that file’s directory;</li>
5170
+ <li>a directory, such as <code>include</code>;</li>
5171
+ <li>a glob, such as <code>include/**</code>, which adds every directory it finds.</li>
5172
+ </ul>
4709
5173
  <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>
5174
+ <p>Directories of C files a dependency produces, such as generated code. Ceedling adds the
5175
+ directories to its search paths and their C files to your release build.</p>
4713
5176
  <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>
5177
+ <p>Once configured, the plugin works on its own: a release or test build fetches and builds
5178
+ any dependency whose outputs are missing. These tasks let you act on dependencies
5179
+ directly. Each also works on a single dependency by its task name, such as
5180
+ <code>dependencies:make:WorkerBees</code>.</p>
4721
5181
  <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>
5182
+ <p>Fetches each dependency that is not fetched yet. Dependencies without fetch settings, or
5183
+ fetched by <code>:none</code>, are left alone.</p>
4725
5184
  <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>
5185
+ <p>Fetches each dependency if needed, then builds any whose outputs are missing. This
5186
+ happens automatically in a release build, but is handy while you are configuring a
5187
+ dependency.</p>
5188
+ <h3 id="ceedling-dependenciesclean"><code>ceedling dependencies:clean</code></h3>
5189
+ <p>Removes a fetched dependency entirely, every one of its working paths, so the next build
5190
+ fetches and builds it from scratch. A dependency fetched by <code>:none</code> keeps its source and
5191
+ loses only its artifact path. A dependency without fetch settings is left alone.</p>
4730
5192
  <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>
5193
+ <p>Copies every dynamic library and executable of each dependency to its
5194
+ <a href="#working-paths"><code>:deploy</code> path</a>, by default beside your release executable. An artifact
5195
+ that has not been built is built first.</p>
5196
+ <h3 id="filesdependencies"><code>files:dependencies</code></h3>
5197
+ <p>Lists every static library, dynamic library, and executable your dependencies provide.</p>
4733
5198
  <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>
5199
+ <p>Lists every header search path Ceedling uses, including those from dependencies.</p>
4737
5200
  <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>
5201
+ <p>Lists every header file Ceedling has found, including those from dependencies.</p>
5202
+ <h2 id="custom-tools">Custom tools</h2>
5203
+ <p>The plugin’s tools are configured like any other Ceedling tool, and you can replace them
5204
+ under <code>:tools</code>:</p>
5205
+ <table>
5206
+ <thead>
5207
+ <tr>
5208
+ <th>Tool</th>
5209
+ <th>Default</th>
5210
+ <th>Used for</th>
5211
+ </tr>
5212
+ </thead>
5213
+ <tbody>
5214
+ <tr>
5215
+ <td><code>:deps_compiler</code></td>
5216
+ <td><code>gcc</code></td>
5217
+ <td><code>:build_lib</code> compiling</td>
5218
+ </tr>
5219
+ <tr>
5220
+ <td><code>:deps_assembler</code></td>
5221
+ <td>none</td>
5222
+ <td><code>:build_lib</code> assembling, needed only for assembly files</td>
5223
+ </tr>
5224
+ <tr>
5225
+ <td><code>:deps_linker</code></td>
5226
+ <td><code>ar</code></td>
5227
+ <td><code>:build_lib</code> archiving</td>
5228
+ </tr>
5229
+ <tr>
5230
+ <td><code>:deps_zip</code></td>
5231
+ <td><code>unzip</code></td>
5232
+ <td><code>:zip</code> fetching</td>
5233
+ </tr>
5234
+ <tr>
5235
+ <td><code>:deps_targzip</code></td>
5236
+ <td><code>tar</code></td>
5237
+ <td><code>:tar_gzip</code> fetching</td>
5238
+ </tr>
5239
+ <tr>
5240
+ <td><code>:deps_git_clone</code>, <code>:deps_git_checkout</code></td>
5241
+ <td><code>git</code></td>
5242
+ <td><code>:git</code> fetching</td>
5243
+ </tr>
5244
+ <tr>
5245
+ <td><code>:deps_subversion</code></td>
5246
+ <td><code>svn</code></td>
5247
+ <td><code>:svn</code> fetching</td>
5248
+ </tr>
5249
+ </tbody>
5250
+ </table>
5251
+ <p>The compiler, assembler, and archiver are checked just before <code>:build_lib</code> uses them, so
5252
+ a project without <code>:build_lib</code> needs none of them.</p>
5253
+ <p><code>:build_lib</code> compiles every C file anywhere under the dependency’s <code>:source</code> path, with
5254
+ every directory holding a header there as a search path. It then archives the objects
5255
+ into the first library under <code>:artifacts</code> ↳ <code>:static_libraries</code>, built in the <code>:build</code>
5256
+ path and copied to the <code>:artifact</code> path when the two differ. A dependency’s own
5257
+ <code>:defines</code> and <code>:flags</code> apply to its compilation, and <code>:libraries</code> and <code>:libpaths</code> to its
5258
+ archiving.</p>
5259
+ <p>The compiler receives its search paths as <code>${5}</code> and its defines as <code>${6}</code>, as Ceedling’s
5260
+ own compilers do:</p>
4742
5261
  <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
5262
  <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
5263
  <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
5264
  <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
5265
  <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>
5266
+ <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;${5}&quot;</span>
5267
+ <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>
4749
5268
  <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
5269
  <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>
4751
5270
  <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>
@@ -4755,30 +5274,203 @@ Ceedling has found, including those belonging to your dependencies.</p>
4755
5274
  <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
5275
  <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
5276
  </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>
5277
+ <p>A dependency built with <code>:build_lib</code> looks like this:</p>
4761
5278
  <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
5279
  <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
5280
  <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
5281
  <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>
5282
+ <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>
5283
+ <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>
5284
+ <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>
5285
+ <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>
5286
+ <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>
5287
+ <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>
5288
+ <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>
5289
+ <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>
5290
+ <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>
5291
+ <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>
5292
+ <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>
5293
+ <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>
5294
+ <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>
5295
+ <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>
5296
+ </code></pre></div>
5297
+ <h2 id="cookbook">Cookbook</h2>
5298
+ <p>Each recipe below pairs a dependency’s configuration with the commands that work with
5299
+ it. Any of them can sit alongside the others in one <code>:deps</code> list.</p>
5300
+ <h3 id="a-tagged-release-from-git-built-with-make">A tagged release from git, built with Make</h3>
5301
+ <p>Your drone flight controller firmware uses an open-source sensor fusion library, which
5302
+ blends accelerometer and gyroscope readings into an orientation. Its maintainers publish
5303
+ tagged releases on GitHub and build it with a makefile.</p>
5304
+ <p>Pin a library to a release tag so every developer and CI run builds the same code. The
5305
+ clone is shallow, which keeps it quick.</p>
5306
+ <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>
5307
+ <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>
5308
+ <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>
5309
+ <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>
5310
+ <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>
5311
+ <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>
5312
+ <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>
5313
+ <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>
5314
+ <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>
5315
+ <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>
5316
+ <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>
5317
+ <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>
5318
+ <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>
5319
+ <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>
5320
+ <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>
5321
+ <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>
5322
+ <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>
5323
+ </code></pre></div>
5324
+ <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>
5325
+ <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>
5326
+ </code></pre></div>
5327
+ <p>To move to a new tag, change <code>:tag</code>, then fetch a fresh copy, since a fetched dependency
5328
+ is not fetched again:</p>
5329
+ <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
5330
+ </code></pre></div>
5331
+ <h3 id="a-vendor-archive-with-environment-settings">A vendor archive with environment settings</h3>
5332
+ <p>Your chip vendor ships its real-time operating system as a zip archive, which your team
5333
+ keeps on a shared file server. It builds with an autotools configure script, which must
5334
+ be told to cross-compile for your ARM Cortex-M4 target.</p>
5335
+ <p>Unpack a zip from a shared location and build it with the vendor’s own configure script,
5336
+ passing settings through the environment of that build alone.</p>
5337
+ <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>
5338
+ <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>
5339
+ <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>
5340
+ <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>
5341
+ <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>
5342
+ <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>
5343
+ <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>
5344
+ <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>
5345
+ <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>
5346
+ <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>
5347
+ <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>
5348
+ <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>
5349
+ <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>
5350
+ <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>
5351
+ <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>
5352
+ <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>
5353
+ <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>
5354
+ <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>
5355
+ <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>
5356
+ <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>
5357
+ <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>
5358
+ </code></pre></div>
5359
+ <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>
5360
+ <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>
5361
+ </code></pre></div>
5362
+ <h3 id="a-sibling-ceedling-project">A sibling Ceedling project</h3>
5363
+ <p>Your repository holds two Ceedling projects side by side: the main application and a
5364
+ supervisor module that watches over it. The supervisor is developed and unit tested in
5365
+ its own project, and the application links it as a library.</p>
5366
+ <p>Build a library from another Ceedling project in the same repository, using that
5367
+ project’s own release build. It is never fetched, so cleaning removes only its build
5368
+ outputs.</p>
5369
+ <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>
5370
+ <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>
5371
+ <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>
5372
+ <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>
5373
+ <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>
5374
+ <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>
5375
+ <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>
5376
+ <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>
5377
+ <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>
5378
+ <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>
5379
+ <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>
5380
+ <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>
5381
+ <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>
5382
+ <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>
5383
+ <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>
5384
+ <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>
5385
+ </code></pre></div>
5386
+ <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>
5387
+ <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>
5388
+ <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>
5389
+ </code></pre></div>
5390
+ <h3 id="a-shared-library-deployed-beside-the-release">A shared library deployed beside the release</h3>
5391
+ <p>Your Linux-based product decodes audio with a third-party codec, built as a shared
5392
+ library the application loads when it starts. You keep the codec’s source release in the
5393
+ project’s <code>downloads</code> folder.</p>
5394
+ <p>Build a dynamic library and copy it beside the release executable, which loads it at run
5395
+ time.</p>
5396
+ <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>
5397
+ <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>
5398
+ <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>
5399
+ <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>
5400
+ <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>
5401
+ <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>
5402
+ <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>
5403
+ <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>
5404
+ <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>
5405
+ <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>
5406
+ <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>
5407
+ <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>
5408
+ <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>
5409
+ <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>
5410
+ <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>
5411
+ <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>
5412
+ </code></pre></div>
5413
+ <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>
5414
+ </code></pre></div>
5415
+ <p>The archive’s relative <code>:source</code> resolves from inside the fetch path, which is why it
5416
+ climbs two folders.</p>
5417
+ <h3 id="build-tools-deployed-to-a-shared-folder">Build tools deployed to a shared folder</h3>
5418
+ <p><code>packer</code> is an in-house utility your tools team keeps in its own git repository. It
5419
+ bundles a compiled firmware image with its version metadata into a signed update file,
5420
+ and its companion <code>packer-verify</code> checks such a file. Your release scripts run both from
5421
+ the project’s <code>tools/bin</code> folder, so every developer and CI agent needs them built from
5422
+ the same tagged version and installed there.</p>
5423
+ <p>Build tools from source and install them where your build scripts or CI agents expect
5424
+ them. Ceedling builds them for a release, never links them, and never cleans the deploy
5425
+ folder.</p>
5426
+ <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>
5427
+ <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>
5428
+ <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>
5429
+ <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>
5430
+ <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>
5431
+ <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>
5432
+ <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>
5433
+ <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>
5434
+ <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>
5435
+ <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>
5436
+ <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>
5437
+ <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>
5438
+ <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>
5439
+ <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>
5440
+ <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>
5441
+ <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>
5442
+ <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>
5443
+ </code></pre></div>
5444
+ <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>
5445
+ </code></pre></div>
5446
+ <h3 id="a-small-library-compiled-by-ceedling">A small library compiled by Ceedling</h3>
5447
+ <p>A colleague’s CRC routines live in your company’s Subversion repository: a C file and
5448
+ a header, with no makefile and no library of their own. Your firmware checks its data
5449
+ packets with them.</p>
5450
+ <p>Pin a few C files from Subversion and let <code>:build_lib</code> compile and archive them, with no
5451
+ build system of their own.</p>
5452
+ <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>
5453
+ <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>
5454
+ <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>
5455
+ <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>
5456
+ <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>
5457
+ <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>
5458
+ <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>
5459
+ <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>
5460
+ <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>
5461
+ <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">&#39;1287&#39;</span>
5462
+ <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>
5463
+ <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>
5464
+ <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>
5465
+ <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>
5466
+ <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>
5467
+ <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>
5468
+ <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>
5469
+ <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>
5470
+ <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>
5471
+ </code></pre></div>
5472
+ <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>
5473
+ <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
5474
  </code></pre></div>
4783
5475
  <p><br/><br/></p>
4784
5476