]> Kevux Git Server - fll/commitdiff
Feature: Add missing documentation handling functionality to Featureless Make.
authorKevin Day <thekevinday@gmail.com>
Sat, 7 Jan 2023 05:03:34 +0000 (23:03 -0600)
committerKevin Day <thekevinday@gmail.com>
Sat, 7 Jan 2023 05:23:03 +0000 (23:23 -0600)
This is an oversight and should have been implemented before the first stable release.
This feature should be a core feature.

Documentation is important.
Make sure the handling of documentation is available for use.

This adds "build_sources_documentation" to the build settings to help facilitate documentation installation.
The documentation that is copied is expected to be under 'data/documentation/'.

The 'documentation' and 'documents' terminology overlaps to some degree.
The 'documentation' is a more specific thing and may not always be a 'document'.
The existing behavior around 'documents' is left unchanged.

The skeleton operation now creates the 'data/documentation/' directory.

The bootstrap.sh script now supports enabling and disabling documentation via the more common '--enable-doc' and '--disable-doc' parameters.

14 files changed:
build/scripts/bootstrap.sh
level_3/fake/c/common.c
level_3/fake/c/common.h
level_3/fake/c/private-build-load.c
level_3/fake/c/private-build-skeleton.c
level_3/fake/c/private-build.c
level_3/fake/c/private-build.h
level_3/fake/c/private-common.c
level_3/fake/c/private-common.h
level_3/fake/c/private-fake-path_generate.c
level_3/fake/c/private-make-operate.c
level_3/fake/c/private-skeleton.c
level_3/fake/documents/settings.txt
level_3/fake/specifications/settings.txt

index f1403aa7a808e12dcf0e0170136088d9a8fbc814..d2b00efb5bebf6649d1cd7b22fe678cbda4e93a7 100644 (file)
@@ -54,6 +54,7 @@ bootstrap_main() {
   local path_build=build/
   local path_build_stage=build/stage/
   local path_data=data/
+  local path_documentation=${path_data}documentation/
   local path_settings=${path_data}settings/
   local path_sources=sources/
   local path_language=c/
@@ -72,6 +73,7 @@ bootstrap_main() {
   local verbose=
   local verbose_common=
 
+  local enable_documentation=
   local enable_shared=
   local enable_static=
 
@@ -134,6 +136,10 @@ bootstrap_main() {
           grab_next=path_sources
         elif [[ $p == "-w" || $p == "--work" ]] ; then
           grab_next=path_work
+        elif [[ $p == "--enable-doc" ]] ; then
+          enable_documentation="yes"
+        elif [[ $p == "--disable-doc" ]] ; then
+          enable_documentation="no"
         elif [[ $p == "--enable-shared" ]] ; then
           enable_shared="yes"
         elif [[ $p == "--disable-shared" ]] ; then
@@ -188,6 +194,7 @@ bootstrap_main() {
   fi
 
   settings_defines="${path_data}build/defines"
+  path_documentation="${path_data}documentation/"
   path_settings="${path_data}settings/"
   path_build_stage="${path_build}stage/"
 
@@ -495,6 +502,8 @@ bootstrap_help() {
   echo -e " -${c_important}w${c_reset}, --${c_important}work${c_reset}       Use includes/libraries/programs from this directory instead of system."
   echo
   echo -e "${c_highlight}Special Options:${c_reset}"
+  echo -e " --${c_important}enable-doc${c_reset}      Forcibly do build documentation files."
+  echo -e " --${c_important}disable-doc${c_reset}     Forcibly do not build documentation files."
   echo -e " --${c_important}enable-shared${c_reset}   Forcibly do build shared files."
   echo -e " --${c_important}disable-shared${c_reset}  Forcibly do not build shared files."
   echo -e " --${c_important}enable-static${c_reset}   Forcibly do build static files."
@@ -521,213 +530,215 @@ bootstrap_id() {
     "build_objects_program_static") let key=13;;
     "build_script") let key=14;;
     "build_shared") let key=15;;
-    "build_sources_headers") let key=16;;
-    "build_sources_headers_shared") let key=17;;
-    "build_sources_headers_static") let key=18;;
-    "build_sources_library") let key=19;;
-    "build_sources_library_shared") let key=20;;
-    "build_sources_library_static") let key=21;;
-    "build_sources_object") let key=22;;
-    "build_sources_object_shared") let key=23;;
-    "build_sources_object_static") let key=24;;
-    "build_sources_program") let key=25;;
-    "build_sources_program_shared") let key=26;;
-    "build_sources_program_static") let key=27;;
-    "build_sources_script") let key=28;;
-    "build_sources_setting") let key=29;;
-    "build_static") let key=30;;
-    "defines") let key=31;;
-    "defines_library") let key=32;;
-    "defines_library_shared") let key=33;;
-    "defines_library_static") let key=34;;
-    "defines_object") let key=35;;
-    "defines_object_shared") let key=36;;
-    "defines_object_static") let key=37;;
-    "defines_program") let key=38;;
-    "defines_program_shared") let key=39;;
-    "defines_program_static") let key=40;;
-    "defines_shared") let key=41;;
-    "defines_static") let key=42;;
-    "environment") let key=43;;
-    "flags") let key=44;;
-    "flags_library") let key=45;;
-    "flags_library_shared") let key=46;;
-    "flags_library_static") let key=47;;
-    "flags_object") let key=48;;
-    "flags_object_shared") let key=49;;
-    "flags_object_static") let key=50;;
-    "flags_program") let key=51;;
-    "flags_program_shared") let key=52;;
-    "flags_program_static") let key=53;;
-    "flags_shared") let key=54;;
-    "flags_static") let key=55;;
-    "has_path_standard") let key=56;;
-    "modes") let key=57;;
-    "modes_default") let key=58;;
-    "path_headers") let key=59;;
-    "path_language") let key=60;;
-    "path_library_script") let key=61;;
-    "path_library_shared") let key=62;;
-    "path_library_static") let key=63;;
-    "path_object_script") let key=64;;
-    "path_object_shared") let key=65;;
-    "path_object_static") let key=66;;
-    "path_program_script") let key=67;;
-    "path_program_shared") let key=68;;
-    "path_program_static") let key=69;;
-    "path_sources") let key=70;;
-    "path_sources_object") let key=71;;
-    "preserve_path_headers") let key=72;;
-    "process_post") let key=73;;
-    "process_pre") let key=74;;
-    "search_exclusive") let key=75;;
-    "search_shared") let key=76;;
-    "search_static") let key=77;;
-    "version_file") let key=78;;
-    "version_major") let key=79;;
-    "version_major_prefix") let key=80;;
-    "version_micro") let key=81;;
-    "version_micro_prefix") let key=82;;
-    "version_minor") let key=83;;
-    "version_minor_prefix") let key=84;;
-    "version_nano") let key=85;;
-    "version_nano_prefix") let key=86;;
-    "version_target") let key=87;;
-
-    "build_compiler-mode") let key=88;;
-    "build_indexer-mode") let key=89;;
-    "build_indexer_arguments-mode") let key=90;;
-    "build_language-mode") let key=91;;
-    "build_libraries-mode") let key=92;;
-    "build_libraries_shared-mode") let key=93;;
-    "build_libraries_static-mode") let key=94;;
-    "build_name-mode") let key=95;;
-    "build_objects_library-mode") let key=96;;
-    "build_objects_library_shared-mode") let key=97;;
-    "build_objects_library_static-mode") let key=98;;
-    "build_objects_program-mode") let key=99;;
-    "build_objects_program_shared-mode") let key=100;;
-    "build_objects_program_static-mode") let key=101;;
-    "build_script-mode") let key=102;;
-    "build_shared-mode") let key=103;;
-    "build_sources_headers-mode") let key=104;;
-    "build_sources_headers_shared-mode") let key=105;;
-    "build_sources_headers_static-mode") let key=106;;
-    "build_sources_library-mode") let key=107;;
-    "build_sources_library_shared-mode") let key=108;;
-    "build_sources_library_static-mode") let key=109;;
-    "build_sources_object-mode") let key=110;;
-    "build_sources_object_shared-mode") let key=111;;
-    "build_sources_object_static-mode") let key=112;;
-    "build_sources_program-mode") let key=113;;
-    "build_sources_program_shared-mode") let key=114;;
-    "build_sources_program_static-mode") let key=115;;
-    "build_sources_script-mode") let key=116;;
-    "build_sources_setting-mode") let key=117;;
-    "build_static-mode") let key=118;;
-    "defines-mode") let key=119;;
-    "defines_library-mode") let key=120;;
-    "defines_library_shared-mode") let key=121;;
-    "defines_library_static-mode") let key=122;;
-    "defines_object-mode") let key=123;;
-    "defines_object_shared-mode") let key=124;;
-    "defines_object_static-mode") let key=125;;
-    "defines_program-mode") let key=126;;
-    "defines_program_shared-mode") let key=127;;
-    "defines_program_static-mode") let key=128;;
-    "defines_shared-mode") let key=129;;
-    "defines_static-mode") let key=130;;
-    "environment-mode") let key=131;;
-    "flags-mode") let key=132;;
-    "flags_library-mode") let key=133;;
-    "flags_library_shared-mode") let key=134;;
-    "flags_library_static-mode") let key=135;;
-    "flags_object-mode") let key=136;;
-    "flags_object_shared-mode") let key=137;;
-    "flags_object_static-mode") let key=138;;
-    "flags_program-mode") let key=139;;
-    "flags_program_shared-mode") let key=140;;
-    "flags_program_static-mode") let key=141;;
-    "flags_shared-mode") let key=142;;
-    "flags_static-mode") let key=143;;
-    "has_path_standard-mode") let key=144;;
-    "path_headers-mode") let key=145;;
-    "path_language-mode") let key=146;;
-    "path_library_script-mode") let key=147;;
-    "path_library_shared-mode") let key=148;;
-    "path_library_static-mode") let key=149;;
-    "path_object_script-mode") let key=150;;
-    "path_object_shared-mode") let key=151;;
-    "path_object_static-mode") let key=152;;
-    "path_program_script-mode") let key=153;;
-    "path_program_shared-mode") let key=154;;
-    "path_program_static-mode") let key=155;;
-    "path_sources-mode") let key=156;;
-    "path_sources_object-mode") let key=157;;
-    "preserve_path_headers-mode") let key=158;;
-    "process_post-mode") let key=159;;
-    "process_pre-mode") let key=160;;
-    "search_exclusive-mode") let key=161;;
-    "search_shared-mode") let key=162;;
-    "search_static-mode") let key=163;;
-    "version_file-mode") let key=164;;
-    "version_major-mode") let key=165;;
-    "version_major_prefix-mode") let key=166;;
-    "version_micro-mode") let key=167;;
-    "version_micro_prefix-mode") let key=168;;
-    "version_minor-mode") let key=169;;
-    "version_minor_prefix-mode") let key=170;;
-    "version_nano-mode") let key=171;;
-    "version_nano_prefix-mode") let key=172;;
-    "version_target-mode") let key=173;;
-
-    "has-build_compiler") let key=174;;
-    "has-build_indexer") let key=175;;
-    "has-build_indexer_arguments") let key=176;;
-    "has-build_name") let key=177;;
-    "has-has_path_standard") let key=178;;
-    "has-path_library_script") let key=179;;
-    "has-path_library_shared") let key=180;;
-    "has-path_library_static") let key=181;;
-    "has-path_object_script") let key=182;;
-    "has-path_object_shared") let key=183;;
-    "has-path_object_static") let key=184;;
-    "has-path_program_script") let key=185;;
-    "has-path_program_shared") let key=186;;
-    "has-path_program_static") let key=187;;
-    "has-path_sources") let key=188;;
-    "has-path_sources_object") let key=189;;
-    "has-search_exclusive") let key=190;;
-    "has-search_shared") let key=191;;
-    "has-search_static") let key=192;;
-    "has-version_major_prefix") let key=193;;
-    "has-version_micro_prefix") let key=194;;
-    "has-version_minor_prefix") let key=195;;
-    "has-version_nano_prefix") let key=196;;
-
-    "has-build_compiler-mode") let key=197;;
-    "has-build_indexer-mode") let key=198;;
-    "has-build_indexer_arguments-mode") let key=199;;
-    "has-build_name-mode") let key=200;;
-    "has-has_path_standard-mode") let key=201;;
-    "has-path_library_script-mode") let key=202;;
-    "has-path_library_shared-mode") let key=203;;
-    "has-path_library_static-mode") let key=204;;
-    "has-path_object_script-mode") let key=205;;
-    "has-path_object_shared-mode") let key=206;;
-    "has-path_object_static-mode") let key=207;;
-    "has-path_program_script-mode") let key=208;;
-    "has-path_program_shared-mode") let key=209;;
-    "has-path_program_static-mode") let key=210;;
-    "has-path_sources-mode") let key=211;;
-    "has-path_sources_object-mode") let key=212;;
-    "has-search_exclusive-mode") let key=213;;
-    "has-search_shared-mode") let key=214;;
-    "has-search_static-mode") let key=215;;
-    "has-version_major_prefix-mode") let key=216;;
-    "has-version_micro_prefix-mode") let key=217;;
-    "has-version_minor_prefix-mode") let key=218;;
-    "has-version_nano_prefix-mode") let key=219;;
+    "build_sources_documentation") let key=16;;
+    "build_sources_headers") let key=17;;
+    "build_sources_headers_shared") let key=18;;
+    "build_sources_headers_static") let key=19;;
+    "build_sources_library") let key=20;;
+    "build_sources_library_shared") let key=21;;
+    "build_sources_library_static") let key=22;;
+    "build_sources_object") let key=23;;
+    "build_sources_object_shared") let key=24;;
+    "build_sources_object_static") let key=25;;
+    "build_sources_program") let key=26;;
+    "build_sources_program_shared") let key=27;;
+    "build_sources_program_static") let key=28;;
+    "build_sources_script") let key=29;;
+    "build_sources_setting") let key=30;;
+    "build_static") let key=31;;
+    "defines") let key=32;;
+    "defines_library") let key=33;;
+    "defines_library_shared") let key=34;;
+    "defines_library_static") let key=35;;
+    "defines_object") let key=36;;
+    "defines_object_shared") let key=37;;
+    "defines_object_static") let key=38;;
+    "defines_program") let key=39;;
+    "defines_program_shared") let key=40;;
+    "defines_program_static") let key=41;;
+    "defines_shared") let key=42;;
+    "defines_static") let key=43;;
+    "environment") let key=44;;
+    "flags") let key=45;;
+    "flags_library") let key=46;;
+    "flags_library_shared") let key=47;;
+    "flags_library_static") let key=48;;
+    "flags_object") let key=49;;
+    "flags_object_shared") let key=50;;
+    "flags_object_static") let key=51;;
+    "flags_program") let key=52;;
+    "flags_program_shared") let key=53;;
+    "flags_program_static") let key=54;;
+    "flags_shared") let key=55;;
+    "flags_static") let key=56;;
+    "has_path_standard") let key=57;;
+    "modes") let key=58;;
+    "modes_default") let key=59;;
+    "path_headers") let key=60;;
+    "path_language") let key=61;;
+    "path_library_script") let key=62;;
+    "path_library_shared") let key=63;;
+    "path_library_static") let key=64;;
+    "path_object_script") let key=65;;
+    "path_object_shared") let key=66;;
+    "path_object_static") let key=67;;
+    "path_program_script") let key=68;;
+    "path_program_shared") let key=69;;
+    "path_program_static") let key=70;;
+    "path_sources") let key=71;;
+    "path_sources_object") let key=72;;
+    "preserve_path_headers") let key=73;;
+    "process_post") let key=74;;
+    "process_pre") let key=75;;
+    "search_exclusive") let key=76;;
+    "search_shared") let key=77;;
+    "search_static") let key=78;;
+    "version_file") let key=79;;
+    "version_major") let key=80;;
+    "version_major_prefix") let key=81;;
+    "version_micro") let key=82;;
+    "version_micro_prefix") let key=83;;
+    "version_minor") let key=84;;
+    "version_minor_prefix") let key=85;;
+    "version_nano") let key=86;;
+    "version_nano_prefix") let key=87;;
+    "version_target") let key=88;;
+
+    "build_compiler-mode") let key=89;;
+    "build_indexer-mode") let key=90;;
+    "build_indexer_arguments-mode") let key=91;;
+    "build_language-mode") let key=92;;
+    "build_libraries-mode") let key=93;;
+    "build_libraries_shared-mode") let key=94;;
+    "build_libraries_static-mode") let key=95;;
+    "build_name-mode") let key=96;;
+    "build_objects_library-mode") let key=97;;
+    "build_objects_library_shared-mode") let key=98;;
+    "build_objects_library_static-mode") let key=99;;
+    "build_objects_program-mode") let key=100;;
+    "build_objects_program_shared-mode") let key=101;;
+    "build_objects_program_static-mode") let key=102;;
+    "build_script-mode") let key=103;;
+    "build_shared-mode") let key=104;;
+    "build_sources_documentation-mode") let key=105;;
+    "build_sources_headers-mode") let key=106;;
+    "build_sources_headers_shared-mode") let key=107;;
+    "build_sources_headers_static-mode") let key=108;;
+    "build_sources_library-mode") let key=109;;
+    "build_sources_library_shared-mode") let key=110;;
+    "build_sources_library_static-mode") let key=111;;
+    "build_sources_object-mode") let key=112;;
+    "build_sources_object_shared-mode") let key=113;;
+    "build_sources_object_static-mode") let key=114;;
+    "build_sources_program-mode") let key=115;;
+    "build_sources_program_shared-mode") let key=116;;
+    "build_sources_program_static-mode") let key=117;;
+    "build_sources_script-mode") let key=118;;
+    "build_sources_setting-mode") let key=119;;
+    "build_static-mode") let key=120;;
+    "defines-mode") let key=121;;
+    "defines_library-mode") let key=122;;
+    "defines_library_shared-mode") let key=123;;
+    "defines_library_static-mode") let key=124;;
+    "defines_object-mode") let key=125;;
+    "defines_object_shared-mode") let key=126;;
+    "defines_object_static-mode") let key=127;;
+    "defines_program-mode") let key=128;;
+    "defines_program_shared-mode") let key=129;;
+    "defines_program_static-mode") let key=130;;
+    "defines_shared-mode") let key=131;;
+    "defines_static-mode") let key=132;;
+    "environment-mode") let key=133;;
+    "flags-mode") let key=134;;
+    "flags_library-mode") let key=135;;
+    "flags_library_shared-mode") let key=136;;
+    "flags_library_static-mode") let key=137;;
+    "flags_object-mode") let key=138;;
+    "flags_object_shared-mode") let key=139;;
+    "flags_object_static-mode") let key=140;;
+    "flags_program-mode") let key=141;;
+    "flags_program_shared-mode") let key=142;;
+    "flags_program_static-mode") let key=143;;
+    "flags_shared-mode") let key=144;;
+    "flags_static-mode") let key=145;;
+    "has_path_standard-mode") let key=146;;
+    "path_headers-mode") let key=147;;
+    "path_language-mode") let key=148;;
+    "path_library_script-mode") let key=149;;
+    "path_library_shared-mode") let key=150;;
+    "path_library_static-mode") let key=151;;
+    "path_object_script-mode") let key=152;;
+    "path_object_shared-mode") let key=153;;
+    "path_object_static-mode") let key=154;;
+    "path_program_script-mode") let key=155;;
+    "path_program_shared-mode") let key=156;;
+    "path_program_static-mode") let key=157;;
+    "path_sources-mode") let key=158;;
+    "path_sources_object-mode") let key=159;;
+    "preserve_path_headers-mode") let key=160;;
+    "process_post-mode") let key=161;;
+    "process_pre-mode") let key=162;;
+    "search_exclusive-mode") let key=163;;
+    "search_shared-mode") let key=164;;
+    "search_static-mode") let key=165;;
+    "version_file-mode") let key=166;;
+    "version_major-mode") let key=167;;
+    "version_major_prefix-mode") let key=168;;
+    "version_micro-mode") let key=169;;
+    "version_micro_prefix-mode") let key=170;;
+    "version_minor-mode") let key=171;;
+    "version_minor_prefix-mode") let key=172;;
+    "version_nano-mode") let key=173;;
+    "version_nano_prefix-mode") let key=174;;
+    "version_target-mode") let key=175;;
+
+    "has-build_compiler") let key=176;;
+    "has-build_indexer") let key=177;;
+    "has-build_indexer_arguments") let key=178;;
+    "has-build_name") let key=179;;
+    "has-has_path_standard") let key=180;;
+    "has-path_library_script") let key=181;;
+    "has-path_library_shared") let key=182;;
+    "has-path_library_static") let key=183;;
+    "has-path_object_script") let key=184;;
+    "has-path_object_shared") let key=185;;
+    "has-path_object_static") let key=186;;
+    "has-path_program_script") let key=187;;
+    "has-path_program_shared") let key=188;;
+    "has-path_program_static") let key=189;;
+    "has-path_sources") let key=190;;
+    "has-path_sources_object") let key=191;;
+    "has-search_exclusive") let key=192;;
+    "has-search_shared") let key=193;;
+    "has-search_static") let key=194;;
+    "has-version_major_prefix") let key=195;;
+    "has-version_micro_prefix") let key=196;;
+    "has-version_minor_prefix") let key=197;;
+    "has-version_nano_prefix") let key=198;;
+
+    "has-build_compiler-mode") let key=199;;
+    "has-build_indexer-mode") let key=200;;
+    "has-build_indexer_arguments-mode") let key=201;;
+    "has-build_name-mode") let key=202;;
+    "has-has_path_standard-mode") let key=203;;
+    "has-path_library_script-mode") let key=204;;
+    "has-path_library_shared-mode") let key=205;;
+    "has-path_library_static-mode") let key=206;;
+    "has-path_object_script-mode") let key=207;;
+    "has-path_object_shared-mode") let key=208;;
+    "has-path_object_static-mode") let key=209;;
+    "has-path_program_script-mode") let key=210;;
+    "has-path_program_shared-mode") let key=211;;
+    "has-path_program_static-mode") let key=212;;
+    "has-path_sources-mode") let key=213;;
+    "has-path_sources_object-mode") let key=214;;
+    "has-search_exclusive-mode") let key=215;;
+    "has-search_shared-mode") let key=216;;
+    "has-search_static-mode") let key=217;;
+    "has-version_major_prefix-mode") let key=218;;
+    "has-version_micro_prefix-mode") let key=219;;
+    "has-version_minor_prefix-mode") let key=220;;
+    "has-version_nano_prefix-mode") let key=221;;
   esac
 }
 
@@ -812,7 +823,7 @@ bootstrap_load_settings() {
   done
 
   # Multi value Objects.
-  for i in build_indexer_arguments build_libraries build_libraries_shared build_libraries_static build_objects_library build_objects_library_shared build_objects_library_static build_objects_program build_objects_program_shared build_objects_program_static build_sources_headers build_sources_headers_shared build_sources_headers_static build_sources_library build_sources_library_shared build_sources_library_static build_sources_program build_sources_program_shared build_sources_program_static build_sources_script build_sources_setting defines defines_library defines_library_shared defines_library_static defines_object defines_object_shared defines_object_static defines_program defines_program_shared defines_program_static defines_shared defines_static environment flags flags_library flags_library_shared flags_library_static flags_object flags_object_shared flags_object_static flags_program flags_program_shared flags_program_static flags_shared flags_static ; do
+  for i in build_indexer_arguments build_libraries build_libraries_shared build_libraries_static build_objects_library build_objects_library_shared build_objects_library_static build_objects_program build_objects_program_shared build_objects_program_static build_sources_documentation build_sources_headers build_sources_headers_shared build_sources_headers_static build_sources_library build_sources_library_shared build_sources_library_static build_sources_program build_sources_program_shared build_sources_program_static build_sources_script build_sources_setting defines defines_library defines_library_shared defines_library_static defines_object defines_object_shared defines_object_static defines_program defines_program_shared defines_program_static defines_shared defines_static environment flags flags_library flags_library_shared flags_library_static flags_object flags_object_shared flags_object_static flags_program flags_program_shared flags_program_static flags_shared flags_static ; do
 
     bootstrap_id "$i"
 
@@ -907,7 +918,7 @@ bootstrap_load_settings_mode() {
     done
 
     # Multi value Objects.
-    for i in build_indexer_arguments build_libraries build_libraries_shared build_libraries_static build_objects_library build_objects_library_shared build_objects_library_static build_objects_program build_objects_program_shared build_objects_program_static build_sources_headers build_sources_headers_shared build_sources_headers_static build_sources_library build_sources_library_shared build_sources_library_static build_sources_object_shared build_sources_object_static build_sources_program build_sources_program_shared build_sources_program_static build_sources_script build_sources_setting build_static defines defines_library defines_library_shared defines_library_static defines_object defines_object_shared defines_object_static defines_program defines_program_shared defines_program_static defines_shared defines_static environment flags flags_library flags_library_shared flags_library_static flags_object flags_object_shared flags_object_static flags_program flags_program_shared flags_program_static flags_shared flags_static ; do
+    for i in build_indexer_arguments build_libraries build_libraries_shared build_libraries_static build_objects_library build_objects_library_shared build_objects_library_static build_objects_program build_objects_program_shared build_objects_program_static build_sources_documentation build_sources_headers build_sources_headers_shared build_sources_headers_static build_sources_library build_sources_library_shared build_sources_library_static build_sources_object_shared build_sources_object_static build_sources_program build_sources_program_shared build_sources_program_static build_sources_script build_sources_setting build_static defines defines_library defines_library_shared defines_library_static defines_object defines_object_shared defines_object_static defines_program defines_program_shared defines_program_static defines_shared defines_static environment flags flags_library flags_library_shared flags_library_static flags_object flags_object_shared flags_object_static flags_program flags_program_shared flags_program_static flags_shared flags_static ; do
 
       bootstrap_id "${i}-mode"
 
@@ -1160,6 +1171,9 @@ bootstrap_operation_build() {
   bootstrap_id "search_static"
   local search_static=${variables[$key]}
 
+  bootstrap_id "build_sources_documentation"
+  local sources_documentation=${variables[$key]}
+
   bootstrap_id "build_sources_headers"
   local sources_headers=${variables[$key]}
 
@@ -1249,6 +1263,8 @@ bootstrap_operation_build() {
 
   bootstrap_operation_build_prepare_settings
 
+  bootstrap_operation_build_prepare_documentation
+
   bootstrap_operation_build_prepare_headers
 
   bootstrap_operation_build_prepare_remaining
@@ -1285,6 +1301,22 @@ bootstrap_operation_build() {
     return 1
   fi
 
+  if [[ $sources_documentation != "" ]] ; then
+    for i in $sources_documentation ; do
+      directory=$(dirname $i)
+
+      if [[ $directory == "." ]] ; then
+        cp $verbose_common -R ${path_documentation}${i} ${path_build}documentation/ || failure=1
+      else
+        mkdir $verbose_common -p ${path_build}documentation/${directory} || failure=1
+
+        if [[ $failure -eq 0 ]] ; then
+          cp $verbose_common -R ${path_documentation}${i} ${path_build}documentation/${directory}/ || failure=1
+        fi
+      fi
+    done
+  fi
+
   if [[ $sources_setting != "" ]] ; then
     for i in $sources_setting ; do
       directory=$(dirname $i)
@@ -1879,6 +1911,17 @@ bootstrap_operation_build_prepare_defines() {
   fi
 }
 
+bootstrap_operation_build_prepare_documentation() {
+  local key=
+
+  bootstrap_id "build_sources_documentation-mode"
+  if [[ $sources_documentation == "" ]] ; then
+    sources_documentation=${variables[$key]}
+  else
+    sources_documentation="$sources_documentation ${variables[$key]}"
+  fi
+}
+
 bootstrap_operation_build_prepare_flags() {
   local key=
 
@@ -2689,7 +2732,7 @@ bootstrap_operation_build_validate_sources() {
   for i in $sources_script ; do
     if [[ $i != "$(echo $i | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
       if [[ $verbosity != "quiet" ]] ; then
-        echo -e "${c_error}ERROR: Cannot Build, invalid sources_script path provided: '${i}'.${c_reset}"
+        echo -e "${c_error}ERROR: Cannot Build, invalid build_sources_script path provided: '${i}'.${c_reset}"
       fi
 
       let failure=1
@@ -2699,7 +2742,7 @@ bootstrap_operation_build_validate_sources() {
   for i in $sources_headers ; do
     if [[ $i != "$(echo $i | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
       if [[ $verbosity != "quiet" ]] ; then
-        echo -e "${c_error}ERROR: Cannot Build, invalid sources_headers path provided: '${i}'.${c_reset}"
+        echo -e "${c_error}ERROR: Cannot Build, invalid build_sources_headers path provided: '${i}'.${c_reset}"
       fi
 
       let failure=1
@@ -2709,7 +2752,7 @@ bootstrap_operation_build_validate_sources() {
   for i in $sources_library ; do
     if [[ $i != "$(echo $i | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
       if [[ $verbosity != "quiet" ]] ; then
-        echo -e "${c_error}ERROR: Cannot Build, invalid sources_library path provided: '${i}'.${c_reset}"
+        echo -e "${c_error}ERROR: Cannot Build, invalid build_sources_library path provided: '${i}'.${c_reset}"
       fi
 
       let failure=1
@@ -2719,7 +2762,7 @@ bootstrap_operation_build_validate_sources() {
   for i in $sources_library_object ; do
     if [[ $i != "$(echo $i | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
       if [[ $verbosity != "quiet" ]] ; then
-        echo -e "${c_error}ERROR: Cannot Build, invalid sources_library_object path provided: '${i}'.${c_reset}"
+        echo -e "${c_error}ERROR: Cannot Build, invalid build_sources_library_object path provided: '${i}'.${c_reset}"
       fi
 
       let failure=1
@@ -2729,7 +2772,7 @@ bootstrap_operation_build_validate_sources() {
   for i in $sources_program_object ; do
     if [[ $i != "$(echo $i | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
       if [[ $verbosity != "quiet" ]] ; then
-        echo -e "${c_error}ERROR: Cannot Build, invalid sources_program_object path provided: '${i}'.${c_reset}"
+        echo -e "${c_error}ERROR: Cannot Build, invalid build_sources_program_object path provided: '${i}'.${c_reset}"
       fi
 
       let failure=1
@@ -2739,7 +2782,17 @@ bootstrap_operation_build_validate_sources() {
   for i in $sources_program ; do
     if [[ $i != "$(echo $i | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
       if [[ $verbosity != "quiet" ]] ; then
-        echo -e "${c_error}ERROR: Cannot Build, invalid sources_program path provided: '${i}'.${c_reset}"
+        echo -e "${c_error}ERROR: Cannot Build, invalid build_sources_program path provided: '${i}'.${c_reset}"
+      fi
+
+      let failure=1
+    fi
+  done
+
+  for i in $sources_documentation ; do
+    if [[ $i != "$(echo $i | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
+      if [[ $verbosity != "quiet" ]] ; then
+        echo -e "${c_error}ERROR: Cannot Build, invalid build_sources_documentation path provided: '${i}'.${c_reset}"
       fi
 
       let failure=1
@@ -2749,7 +2802,7 @@ bootstrap_operation_build_validate_sources() {
   for i in $sources_setting ; do
     if [[ $i != "$(echo $i | sed -e 's|^//*||' -e 's|^\.\.//*||' -e 's|/*$||')" ]] ; then
       if [[ $verbosity != "quiet" ]] ; then
-        echo -e "${c_error}ERROR: Cannot Build, invalid sources_setting path provided: '${i}'.${c_reset}"
+        echo -e "${c_error}ERROR: Cannot Build, invalid build_sources_setting path provided: '${i}'.${c_reset}"
       fi
 
       let failure=1
@@ -2850,6 +2903,7 @@ bootstrap_cleanup() {
   unset bootstrap_operation_build
   unset bootstrap_operation_build_prepare_defaults
   unset bootstrap_operation_build_prepare_defines
+  unset bootstrap_operation_build_prepare_documentation
   unset bootstrap_operation_build_prepare_flags
   unset bootstrap_operation_build_prepare_headers
   unset bootstrap_operation_build_prepare_libraries
index 36472452ac345769df3f41101e515ea7f3daa392..77d7970e966705d685c1b1da626a6bb2a812ade4 100644 (file)
@@ -22,6 +22,7 @@ extern "C" {
   const f_string_static_t fake_path_part_c_s = macro_f_string_static_t_initialize(FAKE_path_part_c_s, 0, FAKE_path_part_c_s_length);
   const f_string_static_t fake_path_part_cpp_s = macro_f_string_static_t_initialize(FAKE_path_part_cpp_s, 0, FAKE_path_part_cpp_s_length);
   const f_string_static_t fake_path_part_data_s = macro_f_string_static_t_initialize(FAKE_path_part_data_s, 0, FAKE_path_part_data_s_length);
+  const f_string_static_t fake_path_part_documentation_s = macro_f_string_static_t_initialize(FAKE_path_part_documentation_s, 0, FAKE_path_part_documentation_s_length);
   const f_string_static_t fake_path_part_documents_s = macro_f_string_static_t_initialize(FAKE_path_part_documents_s, 0, FAKE_path_part_documents_s_length);
   const f_string_static_t fake_path_part_includes_s = macro_f_string_static_t_initialize(FAKE_path_part_includes_s, 0, FAKE_path_part_includes_s_length);
   const f_string_static_t fake_path_part_libraries_s = macro_f_string_static_t_initialize(FAKE_path_part_libraries_s, 0, FAKE_path_part_libraries_s_length);
index 9ef862643b7a114fc041312d2f550ac1ccb4ebdf..ee3f2211abf5e9a8ce61addacd909a13e99a80c9 100644 (file)
@@ -79,6 +79,7 @@ extern "C" {
   #define FAKE_path_part_c_s              "c"              F_path_separator_s
   #define FAKE_path_part_cpp_s            "c++"            F_path_separator_s
   #define FAKE_path_part_data_s           "data"           F_path_separator_s
+  #define FAKE_path_part_documentation_s  "documentation"  F_path_separator_s
   #define FAKE_path_part_documents_s      "documents"      F_path_separator_s
   #define FAKE_path_part_includes_s       "includes"       F_path_separator_s
   #define FAKE_path_part_libraries_s      "libraries"      F_path_separator_s
@@ -98,6 +99,7 @@ extern "C" {
   #define FAKE_path_part_c_s_length              1 + F_path_separator_s_length
   #define FAKE_path_part_cpp_s_length            3 + F_path_separator_s_length
   #define FAKE_path_part_data_s_length           4 + F_path_separator_s_length
+  #define FAKE_path_part_documentation_s_length  13 + F_path_separator_s_length
   #define FAKE_path_part_documents_s_length      9 + F_path_separator_s_length
   #define FAKE_path_part_includes_s_length       8 + F_path_separator_s_length
   #define FAKE_path_part_libraries_s_length      9 + F_path_separator_s_length
@@ -117,6 +119,7 @@ extern "C" {
   extern const f_string_static_t fake_path_part_c_s;
   extern const f_string_static_t fake_path_part_cpp_s;
   extern const f_string_static_t fake_path_part_data_s;
+  extern const f_string_static_t fake_path_part_documentation_s;
   extern const f_string_static_t fake_path_part_documents_s;
   extern const f_string_static_t fake_path_part_includes_s;
   extern const f_string_static_t fake_path_part_libraries_s;
index ded2b2c9d437864cc9c4a4e8e5767d885fc2b377..343b1c5cfe5ba8f173d5e4cd1d6933cf06c98862 100644 (file)
@@ -298,6 +298,7 @@ extern "C" {
       fake_build_setting_name_build_objects_program_static_s,
       fake_build_setting_name_build_script_s,
       fake_build_setting_name_build_shared_s,
+      fake_build_setting_name_build_sources_documentation_s,
       fake_build_setting_name_build_sources_headers_s,
       fake_build_setting_name_build_sources_headers_shared_s,
       fake_build_setting_name_build_sources_headers_static_s,
@@ -389,6 +390,7 @@ extern "C" {
       &setting->build_objects_program_static,
       &build_script,
       &build_shared,
+      &setting->build_sources_documentation,
       &setting->build_sources_headers,
       &setting->build_sources_headers_shared,
       &setting->build_sources_headers_static,
@@ -480,6 +482,7 @@ extern "C" {
       F_false, // setting->build_objects_program_stat
       F_false, // build_script
       F_false, // build_shared
+      F_false, // setting->build_sources_documentation
       F_false, // setting->build_sources_headers
       F_false, // setting->build_sources_headers_shar
       F_false, // setting->build_sources_headers_stat
@@ -870,40 +873,40 @@ extern "C" {
         settings_matches[7],  // build_name
         settings_matches[14], // build_script
         settings_matches[15], // build_shared
-        settings_matches[22], // build_sources_object
-        settings_matches[23], // build_sources_object_shared
-        settings_matches[24], // build_sources_object_static
-        settings_matches[30], // build_static
-        settings_matches[56], // has_path_standard
-        settings_matches[59], // path_headers
-        settings_matches[60], // path_language
-        settings_matches[61], // path_library_script
-        settings_matches[62], // path_library_shared
-        settings_matches[63], // path_library_static
-        settings_matches[64], // path_object_script
-        settings_matches[65], // path_object_shared
-        settings_matches[66], // path_object_static
-        settings_matches[67], // path_program_script
-        settings_matches[68], // path_program_shared
-        settings_matches[69], // path_program_static
-        settings_matches[70], // path_sources
-        settings_matches[71], // path_sources_object
-        settings_matches[72], // preserve_path_headers
-        settings_matches[73], // process_post
-        settings_matches[74], // process_pre
-        settings_matches[75], // search_exclusive
-        settings_matches[76], // search_shared
-        settings_matches[77], // search_static
-        settings_matches[78], // version_file
-        settings_matches[79], // version_major
-        settings_matches[80], // version_major_prefix
-        settings_matches[81], // version_micro
-        settings_matches[82], // version_micro_prefix
-        settings_matches[83], // version_minor
-        settings_matches[84], // version_minor_prefix
-        settings_matches[85], // version_nano
-        settings_matches[86], // version_nano_prefix
-        settings_matches[87], // version_target
+        settings_matches[23], // build_sources_object
+        settings_matches[24], // build_sources_object_shared
+        settings_matches[25], // build_sources_object_static
+        settings_matches[31], // build_static
+        settings_matches[57], // has_path_standard
+        settings_matches[60], // path_headers
+        settings_matches[61], // path_language
+        settings_matches[62], // path_library_script
+        settings_matches[63], // path_library_shared
+        settings_matches[64], // path_library_static
+        settings_matches[65], // path_object_script
+        settings_matches[66], // path_object_shared
+        settings_matches[67], // path_object_static
+        settings_matches[68], // path_program_script
+        settings_matches[69], // path_program_shared
+        settings_matches[70], // path_program_static
+        settings_matches[71], // path_sources
+        settings_matches[72], // path_sources_object
+        settings_matches[73], // preserve_path_headers
+        settings_matches[74], // process_post
+        settings_matches[75], // process_pre
+        settings_matches[76], // search_exclusive
+        settings_matches[77], // search_shared
+        settings_matches[78], // search_static
+        settings_matches[79], // version_file
+        settings_matches[80], // version_major
+        settings_matches[81], // version_major_prefix
+        settings_matches[82], // version_micro
+        settings_matches[83], // version_micro_prefix
+        settings_matches[84], // version_minor
+        settings_matches[85], // version_minor_prefix
+        settings_matches[86], // version_nano
+        settings_matches[87], // version_nano_prefix
+        settings_matches[88], // version_target
       };
 
       const f_string_static_t settings_single_string_default[] = {
@@ -1497,6 +1500,7 @@ extern "C" {
       fake_build_stage_program_shared_s,
       fake_build_stage_program_static_s,
       fake_build_stage_skeleton_s,
+      fake_build_stage_sources_documentation_s,
       fake_build_stage_sources_headers_s,
       fake_build_stage_sources_script_s,
       fake_build_stage_sources_settings_s,
@@ -1516,6 +1520,7 @@ extern "C" {
       &stage->file_program_shared,
       &stage->file_program_static,
       &stage->file_skeleton,
+      &stage->file_sources_documentation,
       &stage->file_sources_headers,
       &stage->file_sources_script,
       &stage->file_sources_settings,
index daebdc6f6f10d6365dbe4c28222a24e4524ef32e..cb77a67172a719692ae6b59033858e4fdcf4ec22 100644 (file)
@@ -31,6 +31,7 @@ extern "C" {
 
     const f_string_static_t *directorys[] = {
       &data->path_build,
+      &data->path_build_documentation,
       &data->path_build_documents,
       &data->path_build_includes,
       &data->path_build_libraries,
@@ -56,7 +57,7 @@ extern "C" {
 
     bool created = F_false;
 
-    for (uint8_t i = 0; i < 18; ++i) {
+    for (uint8_t i = 0; i < 19; ++i) {
 
       if (!directorys[i]->used) continue;
 
index 2f447721ff76785f4f511dbc79b0d27cfef5407e..de21a027d2ad7edfec07a20fd3bfcce3487e3eb9 100644 (file)
@@ -15,6 +15,7 @@ extern "C" {
 #endif
 
 #ifndef _di_fake_build_strings_
+const f_string_static_t fake_build_documentation_files_s = macro_f_string_static_t_initialize(FAKE_build_documentation_files_s, 0, FAKE_build_documentation_files_s_length);
   const f_string_static_t fake_build_header_files_s = macro_f_string_static_t_initialize(FAKE_build_header_files_s, 0, FAKE_build_header_files_s_length);
   const f_string_static_t fake_build_header_files_shared_s = macro_f_string_static_t_initialize(FAKE_build_header_files_shared_s, 0, FAKE_build_header_files_shared_s_length);
   const f_string_static_t fake_build_header_files_static_s = macro_f_string_static_t_initialize(FAKE_build_header_files_static_s, 0, FAKE_build_header_files_static_s_length);
@@ -885,6 +886,8 @@ extern "C" {
 
     data->main->child = fake_build_execute_process_script(data, &data_build, data_build.setting.process_pre, stage.file_process_pre, &status);
 
+    fake_build_copy(data, mode, fake_build_documentation_files_s, data->path_data_documentation, data->path_build_documentation, data_build.setting.build_sources_documentation, stage.file_sources_documentation, 0, &status);
+
     fake_build_copy(data, mode, fake_build_setting_files_s, data->path_data_settings, data->path_build_settings, data_build.setting.build_sources_setting, stage.file_sources_settings, 0, &status);
 
     if (data_build.setting.build_language == fake_build_language_type_bash_e) {
index 9598f227b7ec852fa41334848642e99bc6b86e45..a473c35b51b7c17ff8b220c8c79b9fc57ffb451a 100644 (file)
@@ -13,18 +13,21 @@ extern "C" {
 #endif
 
 #ifndef _di_fake_build_strings_
+  #define FAKE_build_documentation_files_s "documentation files"
   #define FAKE_build_header_files_s        "header files"
   #define FAKE_build_header_files_shared_s "shared header files"
   #define FAKE_build_header_files_static_s "static header files"
   #define FAKE_build_scripts_s             "scripts"
   #define FAKE_build_setting_files_s       "setting files"
 
+  #define FAKE_build_documentation_files_s_length 19
   #define FAKE_build_header_files_s_length        12
   #define FAKE_build_header_files_shared_s_length 19
   #define FAKE_build_header_files_static_s_length 19
   #define FAKE_build_scripts_s_length             7
   #define FAKE_build_setting_files_s_length       13
 
+  extern const f_string_static_t fake_build_documentation_files_s;
   extern const f_string_static_t fake_build_header_files_s;
   extern const f_string_static_t fake_build_header_files_shared_s;
   extern const f_string_static_t fake_build_header_files_static_s;
index ee1e225e2afbdef2e35e0216d60f42d1ce301515..c95b85d3337053f20a1a0b6b217fdd22398f3218 100644 (file)
@@ -28,6 +28,7 @@ extern "C" {
   const f_string_static_t fake_build_setting_name_build_objects_program_static_s = macro_f_string_static_t_initialize(FAKE_build_setting_name_build_objects_program_static_s, 0, FAKE_build_setting_name_build_objects_program_static_s_length);
   const f_string_static_t fake_build_setting_name_build_script_s = macro_f_string_static_t_initialize(FAKE_build_setting_name_build_script_s, 0, FAKE_build_setting_name_build_script_s_length);
   const f_string_static_t fake_build_setting_name_build_shared_s = macro_f_string_static_t_initialize(FAKE_build_setting_name_build_shared_s, 0, FAKE_build_setting_name_build_shared_s_length);
+  const f_string_static_t fake_build_setting_name_build_sources_documentation_s = macro_f_string_static_t_initialize(FAKE_build_setting_name_build_sources_documentation_s, 0, FAKE_build_setting_name_build_sources_documentation_s_length);
   const f_string_static_t fake_build_setting_name_build_sources_headers_s = macro_f_string_static_t_initialize(FAKE_build_setting_name_build_sources_headers_s, 0, FAKE_build_setting_name_build_sources_headers_s_length);
   const f_string_static_t fake_build_setting_name_build_sources_headers_shared_s = macro_f_string_static_t_initialize(FAKE_build_setting_name_build_sources_headers_shared_s, 0, FAKE_build_setting_name_build_sources_headers_shared_s_length);
   const f_string_static_t fake_build_setting_name_build_sources_headers_static_s = macro_f_string_static_t_initialize(FAKE_build_setting_name_build_sources_headers_static_s, 0, FAKE_build_setting_name_build_sources_headers_static_s_length);
@@ -118,6 +119,7 @@ extern "C" {
   const f_string_static_t fake_build_stage_program_static_s = macro_f_string_static_t_initialize(FAKE_build_stage_program_static_s, 0, FAKE_build_stage_program_static_s_length);
   const f_string_static_t fake_build_stage_separate_s = macro_f_string_static_t_initialize(FAKE_build_stage_separate_s, 0, FAKE_build_stage_separate_s_length);
   const f_string_static_t fake_build_stage_skeleton_s = macro_f_string_static_t_initialize(FAKE_build_stage_skeleton_s, 0, FAKE_build_stage_skeleton_s_length);
+  const f_string_static_t fake_build_stage_sources_documentation_s = macro_f_string_static_t_initialize(FAKE_build_stage_sources_documentation_s, 0, FAKE_build_stage_sources_documentation_s_length);
   const f_string_static_t fake_build_stage_sources_headers_s = macro_f_string_static_t_initialize(FAKE_build_stage_sources_headers_s, 0, FAKE_build_stage_sources_headers_s_length);
   const f_string_static_t fake_build_stage_sources_script_s = macro_f_string_static_t_initialize(FAKE_build_stage_sources_script_s, 0, FAKE_build_stage_sources_script_s_length);
   const f_string_static_t fake_build_stage_sources_settings_s = macro_f_string_static_t_initialize(FAKE_build_stage_sources_settings_s, 0, FAKE_build_stage_sources_settings_s_length);
@@ -327,6 +329,7 @@ extern "C" {
     f_string_dynamic_resize(0, &data->settings);
 
     f_string_dynamic_resize(0, &data->path_build);
+    f_string_dynamic_resize(0, &data->path_build_documentation);
     f_string_dynamic_resize(0, &data->path_build_documents);
     f_string_dynamic_resize(0, &data->path_build_includes);
     f_string_dynamic_resize(0, &data->path_build_libraries);
@@ -347,7 +350,7 @@ extern "C" {
 
     f_string_dynamic_resize(0, &data->path_data);
     f_string_dynamic_resize(0, &data->path_data_build);
-
+    f_string_dynamic_resize(0, &data->path_data_documentation);
     f_string_dynamic_resize(0, &data->path_data_settings);
 
     f_string_dynamic_resize(0, &data->path_documents);
index 3512f809f726398a3f0c70950e7782d6b55798f4..aab5dff99fa4816f40726607525d18c9b4fbfb1e 100644 (file)
@@ -29,6 +29,7 @@ extern "C" {
  * settings: The settings data.
  *
  * path_build:                  The build path.
+ * path_build_documentation:    The build documentation path.
  * path_build_documents:        The build documents path.
  * path_build_includes:         The build includes path.
  * path_build_libraries:        The build libraries path.
@@ -46,9 +47,10 @@ extern "C" {
  * path_build_settings:         The build settings path.
  * path_build_stage:            The build stage path.
  *
- * path_data:                The data path.
- * path_data_build:          The data_build path.
- * path_data_build_settings: The data_build_settings path.
+ * path_data:               The data path.
+ * path_data_build:         The build data path.
+ * path_data_documentation: The documentation data path.
+ * path_data_settings:      The settings data path.
  *
  * path_documents: The documents path.
  * path_licenses:  The licenses path.
@@ -94,6 +96,7 @@ extern "C" {
     f_string_dynamic_t settings;
 
     f_string_dynamic_t path_build;
+    f_string_dynamic_t path_build_documentation;
     f_string_dynamic_t path_build_documents;
     f_string_dynamic_t path_build_includes;
     f_string_dynamic_t path_build_libraries;
@@ -113,6 +116,7 @@ extern "C" {
 
     f_string_dynamic_t path_data;
     f_string_dynamic_t path_data_build;
+    f_string_dynamic_t path_data_documentation;
     f_string_dynamic_t path_data_settings;
 
     f_string_dynamic_t path_documents;
@@ -194,6 +198,8 @@ extern "C" {
       f_string_dynamic_t_initialize, \
       f_string_dynamic_t_initialize, \
       f_string_dynamic_t_initialize, \
+      f_string_dynamic_t_initialize, \
+      f_string_dynamic_t_initialize, \
       f_string_dynamics_t_initialize, \
       f_string_dynamics_t_initialize, \
     }
@@ -263,6 +269,7 @@ extern "C" {
  * build_objects_program:        The build_objects_program setting.
  * build_objects_program_shared: The build_objects_program_shared setting.
  * build_objects_program_static: The build_objects_program_static setting.
+ * build_sources_documentation:  The build_sources_documentation setting.
  * build_sources_headers:        The build_sources_headers setting.
  * build_sources_headers_shared: The build_sources_headers_shared setting.
  * build_sources_headers_static: The build_sources_headers_static setting.
@@ -366,6 +373,7 @@ extern "C" {
     f_string_dynamics_t build_objects_program;
     f_string_dynamics_t build_objects_program_shared;
     f_string_dynamics_t build_objects_program_static;
+    f_string_dynamics_t build_sources_documentation;
     f_string_dynamics_t build_sources_headers;
     f_string_dynamics_t build_sources_headers_shared;
     f_string_dynamics_t build_sources_headers_static;
@@ -496,6 +504,7 @@ extern "C" {
     f_string_dynamics_t_initialize, \
     f_string_dynamics_t_initialize, \
     f_string_dynamics_t_initialize, \
+    f_string_dynamics_t_initialize, \
   }
 
   #define macro_fake_build_setting_t_delete_simple(setting) \
@@ -538,6 +547,7 @@ extern "C" {
     macro_f_string_dynamics_t_delete_simple(setting.build_objects_program) \
     macro_f_string_dynamics_t_delete_simple(setting.build_objects_program_shared) \
     macro_f_string_dynamics_t_delete_simple(setting.build_objects_program_static) \
+    macro_f_string_dynamics_t_delete_simple(setting.build_sources_documentation) \
     macro_f_string_dynamics_t_delete_simple(setting.build_sources_headers) \
     macro_f_string_dynamics_t_delete_simple(setting.build_sources_headers_shared) \
     macro_f_string_dynamics_t_delete_simple(setting.build_sources_headers_static) \
@@ -599,6 +609,7 @@ extern "C" {
   #define FAKE_build_setting_name_build_objects_program_static_s "build_objects_program_static"
   #define FAKE_build_setting_name_build_script_s                 "build_script"
   #define FAKE_build_setting_name_build_shared_s                 "build_shared"
+  #define FAKE_build_setting_name_build_sources_documentation_s  "build_sources_documentation"
   #define FAKE_build_setting_name_build_sources_headers_s        "build_sources_headers"
   #define FAKE_build_setting_name_build_sources_headers_shared_s "build_sources_headers_shared"
   #define FAKE_build_setting_name_build_sources_headers_static_s "build_sources_headers_static"
@@ -694,6 +705,7 @@ extern "C" {
   #define FAKE_build_setting_name_build_objects_program_static_s_length 28
   #define FAKE_build_setting_name_build_script_s_length                 12
   #define FAKE_build_setting_name_build_shared_s_length                 12
+  #define FAKE_build_setting_name_build_sources_documentation_s_length  27
   #define FAKE_build_setting_name_build_sources_headers_s_length        21
   #define FAKE_build_setting_name_build_sources_headers_shared_s_length 28
   #define FAKE_build_setting_name_build_sources_headers_static_s_length 28
@@ -789,6 +801,7 @@ extern "C" {
   extern const f_string_static_t fake_build_setting_name_build_objects_program_static_s;
   extern const f_string_static_t fake_build_setting_name_build_script_s;
   extern const f_string_static_t fake_build_setting_name_build_shared_s;
+  extern const f_string_static_t fake_build_setting_name_build_sources_documentation_s;
   extern const f_string_static_t fake_build_setting_name_build_sources_headers_s;
   extern const f_string_static_t fake_build_setting_name_build_sources_headers_shared_s;
   extern const f_string_static_t fake_build_setting_name_build_sources_headers_static_s;
@@ -862,7 +875,7 @@ extern "C" {
   extern const f_string_static_t fake_build_setting_name_version_nano_prefix_s;
   extern const f_string_static_t fake_build_setting_name_version_target_s;
 
-  #define fake_build_setting_total_d 88
+  #define fake_build_setting_total_d 89
 #endif // _di_fake_build_setting_t_
 
 #ifndef _di_fake_build_stage_t_
@@ -880,6 +893,7 @@ extern "C" {
     f_string_dynamic_t file_program_shared;
     f_string_dynamic_t file_program_static;
     f_string_dynamic_t file_skeleton;
+    f_string_dynamic_t file_sources_documentation;
     f_string_dynamic_t file_sources_headers;
     f_string_dynamic_t file_sources_script;
     f_string_dynamic_t file_sources_settings;
@@ -902,9 +916,10 @@ extern "C" {
     f_string_dynamic_t_initialize, \
     f_string_dynamic_t_initialize, \
     f_string_dynamic_t_initialize, \
+    f_string_dynamic_t_initialize, \
   }
 
-  #define fake_build_stage_total_d 16
+  #define fake_build_stage_total_d 17
 
   #define macro_fake_build_stage_t_delete_simple(stage) \
     macro_f_string_dynamic_t_delete_simple(stage.file_library_script) \
@@ -920,47 +935,50 @@ extern "C" {
     macro_f_string_dynamic_t_delete_simple(stage.file_program_shared) \
     macro_f_string_dynamic_t_delete_simple(stage.file_program_static) \
     macro_f_string_dynamic_t_delete_simple(stage.file_skeleton) \
+    macro_f_string_dynamic_t_delete_simple(stage.file_sources_documentation) \
     macro_f_string_dynamic_t_delete_simple(stage.file_sources_headers) \
     macro_f_string_dynamic_t_delete_simple(stage.file_sources_script) \
     macro_f_string_dynamic_t_delete_simple(stage.file_sources_settings)
 
-  #define FAKE_build_stage_built_s            ".built"
-  #define FAKE_build_stage_library_script_s   "library_script"
-  #define FAKE_build_stage_library_shared_s   "library_shared"
-  #define FAKE_build_stage_library_static_s   "library_static"
-  #define FAKE_build_stage_object_script_s    "object_script"
-  #define FAKE_build_stage_object_shared_s    "object_shared"
-  #define FAKE_build_stage_object_static_s    "object_static"
-  #define FAKE_build_stage_objects_static_s   "objects_static"
-  #define FAKE_build_stage_process_post_s     "process_post"
-  #define FAKE_build_stage_process_pre_s      "process_pre"
-  #define FAKE_build_stage_program_script_s   "program_script"
-  #define FAKE_build_stage_program_shared_s   "program_shared"
-  #define FAKE_build_stage_program_static_s   "program_static"
-  #define FAKE_build_stage_separate_s         "-"
-  #define FAKE_build_stage_skeleton_s         "skeleton"
-  #define FAKE_build_stage_sources_headers_s  "sources_headers"
-  #define FAKE_build_stage_sources_script_s   "sources_script"
-  #define FAKE_build_stage_sources_settings_s "sources_settings"
-
-  #define FAKE_build_stage_built_s_length            6
-  #define FAKE_build_stage_library_script_s_length   14
-  #define FAKE_build_stage_library_shared_s_length   14
-  #define FAKE_build_stage_library_static_s_length   14
-  #define FAKE_build_stage_object_script_s_length    13
-  #define FAKE_build_stage_object_shared_s_length    13
-  #define FAKE_build_stage_object_static_s_length    13
-  #define FAKE_build_stage_objects_static_s_length   14
-  #define FAKE_build_stage_process_post_s_length     12
-  #define FAKE_build_stage_process_pre_s_length      11
-  #define FAKE_build_stage_program_script_s_length   14
-  #define FAKE_build_stage_program_shared_s_length   14
-  #define FAKE_build_stage_program_static_s_length   14
-  #define FAKE_build_stage_separate_s_length         1
-  #define FAKE_build_stage_skeleton_s_length         8
-  #define FAKE_build_stage_sources_headers_s_length  15
-  #define FAKE_build_stage_sources_script_s_length   14
-  #define FAKE_build_stage_sources_settings_s_length 16
+  #define FAKE_build_stage_built_s                 ".built"
+  #define FAKE_build_stage_library_script_s        "library_script"
+  #define FAKE_build_stage_library_shared_s        "library_shared"
+  #define FAKE_build_stage_library_static_s        "library_static"
+  #define FAKE_build_stage_object_script_s         "object_script"
+  #define FAKE_build_stage_object_shared_s         "object_shared"
+  #define FAKE_build_stage_object_static_s         "object_static"
+  #define FAKE_build_stage_objects_static_s        "objects_static"
+  #define FAKE_build_stage_process_post_s          "process_post"
+  #define FAKE_build_stage_process_pre_s           "process_pre"
+  #define FAKE_build_stage_program_script_s        "program_script"
+  #define FAKE_build_stage_program_shared_s        "program_shared"
+  #define FAKE_build_stage_program_static_s        "program_static"
+  #define FAKE_build_stage_separate_s              "-"
+  #define FAKE_build_stage_skeleton_s              "skeleton"
+  #define FAKE_build_stage_sources_documentation_s "sources_documentation"
+  #define FAKE_build_stage_sources_headers_s       "sources_headers"
+  #define FAKE_build_stage_sources_script_s        "sources_script"
+  #define FAKE_build_stage_sources_settings_s      "sources_settings"
+
+  #define FAKE_build_stage_built_s_length                 6
+  #define FAKE_build_stage_library_script_s_length        14
+  #define FAKE_build_stage_library_shared_s_length        14
+  #define FAKE_build_stage_library_static_s_length        14
+  #define FAKE_build_stage_object_script_s_length         13
+  #define FAKE_build_stage_object_shared_s_length         13
+  #define FAKE_build_stage_object_static_s_length         13
+  #define FAKE_build_stage_objects_static_s_length        14
+  #define FAKE_build_stage_process_post_s_length          12
+  #define FAKE_build_stage_process_pre_s_length           11
+  #define FAKE_build_stage_program_script_s_length        14
+  #define FAKE_build_stage_program_shared_s_length        14
+  #define FAKE_build_stage_program_static_s_length        14
+  #define FAKE_build_stage_separate_s_length              1
+  #define FAKE_build_stage_skeleton_s_length              8
+  #define FAKE_build_stage_sources_documentation_s_length 21
+  #define FAKE_build_stage_sources_headers_s_length       15
+  #define FAKE_build_stage_sources_script_s_length        14
+  #define FAKE_build_stage_sources_settings_s_length      16
 
   extern const f_string_static_t fake_build_stage_built_s;
   extern const f_string_static_t fake_build_stage_library_script_s;
@@ -977,6 +995,7 @@ extern "C" {
   extern const f_string_static_t fake_build_stage_program_static_s;
   extern const f_string_static_t fake_build_stage_separate_s;
   extern const f_string_static_t fake_build_stage_skeleton_s;
+  extern const f_string_static_t fake_build_stage_sources_documentation_s;
   extern const f_string_static_t fake_build_stage_sources_headers_s;
   extern const f_string_static_t fake_build_stage_sources_script_s;
   extern const f_string_static_t fake_build_stage_sources_settings_s;
index 486556e3f4011b6d16d5ac4e74da45f4e746fb63..d43801e718fc41c26658214c7141c890a741a852 100644 (file)
@@ -21,11 +21,12 @@ extern "C" {
       };
 
       const uint8_t parameters_size[] = {
-        7,
-        2,
+        8,
+        3,
       };
 
       f_string_dynamic_t *parameters_value_0[] = {
+        &data->path_build_documentation,
         &data->path_build_documents,
         &data->path_build_includes,
         &data->path_build_libraries,
@@ -37,6 +38,7 @@ extern "C" {
 
       f_string_dynamic_t *parameters_value_1[] = {
         &data->path_data_build,
+        &data->path_data_documentation,
         &data->path_data_settings,
       };
 
@@ -64,6 +66,7 @@ extern "C" {
 
     {
       const f_string_static_t parameters_source[] = {
+        fake_path_part_documentation_s,
         fake_path_part_documents_s,
         fake_path_part_includes_s,
         fake_path_part_libraries_s,
@@ -72,12 +75,14 @@ extern "C" {
         fake_path_part_settings_s,
         fake_path_part_stage_s,
         fake_path_part_build_s,
+        fake_path_part_documentation_s,
         fake_path_part_settings_s,
         fake_path_part_documents_s,
         fake_path_part_licenses_s,
       };
 
       f_string_dynamic_t * const parameters_value[] = {
+        &data->path_build_documentation,
         &data->path_build_documents,
         &data->path_build_includes,
         &data->path_build_libraries,
@@ -86,12 +91,13 @@ extern "C" {
         &data->path_build_settings,
         &data->path_build_stage,
         &data->path_data_build,
+        &data->path_data_documentation,
         &data->path_data_settings,
         &data->path_documents,
         &data->path_licenses,
       };
 
-      for (i = 0; i < 11; ++i) {
+      for (i = 0; i < 13; ++i) {
 
         status = f_string_dynamic_append_nulless(parameters_source[i], parameters_value[i]);
 
index 479366a3c48bea64a638957b604d3c3e054f1bae..496cdce09bee06b800408a422dc8b015eed9fb1e 100644 (file)
@@ -951,6 +951,7 @@ extern "C" {
         fake_build_setting_name_build_libraries_s,
         fake_build_setting_name_build_libraries_shared_s,
         fake_build_setting_name_build_libraries_static_s,
+        fake_build_setting_name_build_sources_documentation_s,
         fake_build_setting_name_build_sources_headers_s,
         fake_build_setting_name_build_sources_headers_shared_s,
         fake_build_setting_name_build_sources_headers_static_s,
@@ -989,6 +990,7 @@ extern "C" {
         data_make->setting_build.build_libraries,
         data_make->setting_build.build_libraries_shared,
         data_make->setting_build.build_libraries_static,
+        data_make->setting_build.build_sources_documentation,
         data_make->setting_build.build_sources_headers,
         data_make->setting_build.build_sources_headers_shared,
         data_make->setting_build.build_sources_headers_static,
@@ -1027,6 +1029,7 @@ extern "C" {
         0,                                         // build_libraries
         0,                                         // build_libraries_shared
         0,                                         // build_libraries_static
+        0,                                         // build_sources_documentation
         0,                                         // build_sources_headers
         0,                                         // build_sources_headers_shared
         0,                                         // build_sources_headers_static
@@ -1061,7 +1064,7 @@ extern "C" {
         0,                                         // modes_default
       };
 
-      for (uint8_t i = 0; i < 35; ++i) {
+      for (uint8_t i = 0; i < 36; ++i) {
 
         status = fl_string_dynamic_partial_compare_string(dynamics_name[i].string, data_make->buffer, dynamics_name[i].used, range_name);
 
index a68b6a8ac0412065b08d99908152a066fc569a0a..e6275de171a1e9b75a95dd468e29752379510a3b 100644 (file)
@@ -54,6 +54,7 @@ extern "C" {
         &data->path_build,
         &data->path_data,
         &data->path_data_build,
+        &data->path_data_documentation,
         &data->path_data_settings,
         &data->path_documents,
         &data->path_licenses,
@@ -76,7 +77,7 @@ extern "C" {
         &fake_path_part_specifications_s,
       };
 
-      for (uint8_t i = 0; i < 23; ++i) {
+      for (uint8_t i = 0; i < 24; ++i) {
 
         status = fake_skeleton_operate_directory_create(data, *parameters_value[i]);
 
index 6c185d09a13933dfc42844a1489a291aa1a23849..cc8137b5a2f72c51d60fa6bb8ba59ac61c22cb3d 100644 (file)
@@ -108,6 +108,11 @@ Settings Documentation:
   - code:"build_shared"\:
     When code:"yes", the build process will compile any source code for any supported language that supports shared library linking.
 
+  - code:"build_sources_documentation"\:
+    A collection of documentation files.
+    These are documentation files used by the project and are simply copied over to the build directory.
+    Unless a pre-process script (or in theory post-process script) is configured to alter these, they are not modified.
+
   - code:"build_sources_headers"\:
     A collection of header files.
     May include a relative sub-path to each individual header (such as: code:"level_0/a.h level_0/b.h level_1/c.h").
index b6969e771fd351cd16a9874cede387d6c1c8eddc..5afe3e952c9d169f5ce640a695d204bd0203b5bc 100644 (file)
@@ -35,6 +35,7 @@ Settings Specification:
     - code:"build_objects_program_static": Must only contain any number of valid object file names relative to the code:"path_object_static" path.
     - code:"build_script": Must only one of: code:"yes" or code:"no".
     - code:"build_shared": Must only one of: code:"yes" or code:"no".
+    - code:"build_sources_documentation": Must only contain any number of valid filenames.
     - code:"build_sources_headers": Must only contain any number of valid filenames.
     - code:"build_sources_headers_shared": Must only contain any number of valid filenames.
     - code:"build_sources_headers_static": Must only contain any number of valid filenames.