]> Kevux Git Server - fll/commitdiff
Feature: Add 'import' Object to fakefile and settings specifications.
authorKevin Day <thekevinday@gmail.com>
Mon, 12 Dec 2022 00:40:30 +0000 (18:40 -0600)
committerKevin Day <thekevinday@gmail.com>
Mon, 12 Dec 2022 00:46:55 +0000 (18:46 -0600)
This is important for building complex project structures and reducing the code redundancy.
To keep the logic and design simple, recursion is not allowed.

One can now create a base settings file that is imported by other settings files.
The same is true for fakefile files.

level_3/fake/documents/fakefile.txt
level_3/fake/documents/settings.txt
level_3/fake/specifications/fakefile.txt
level_3/fake/specifications/settings.txt

index 6f8a34301572804499c85f95090c185c8160d90d..b9f12655563acaee93696f18dff5522f39296cc6 100644 (file)
@@ -54,6 +54,15 @@ Fakefile Documentation:
 
       The return code for programs can still be retrieved through using the reserved IKI variable code:"return".
 
+    - code:"import"\:
+      Load this bold:"fakefile".
+      The code:"settings" section data from the imported bold:"fakefile" is treated as if it were appended to the end of the current bold:"fakefile" code:"setting" section.
+      Each section in the imported bole:"fakefile" is treated as if it were appended to either the end of a matching section, if found, or appended at the end of the bold:"fakefile", if no matches are found.
+      This a non-recursive operation and the imported file itself cannot perform an import.
+      Relative paths are relative to the importing file.
+      Absolute paths that start with "./" are relative to the project root rather than the importing file.
+      Absolute paths that start with "/" are treated normally.
+
     - code:"indexer"\:
       This represents the name of the indexer program to use, such as code:"ar".
       An indexer is often called a linker.
index c3e94eccdc9050e216c09eb956ccffef27ca9c80..6c2cdde18ab396c2869963d219b077e429a9289e 100644 (file)
@@ -346,6 +346,16 @@ Settings Documentation:
 
     This defaults to code:"yes".
 
+  - code:"import"\:
+    Load this bold:"settings" file at this point in the bold:"settings" file.
+    This can be an absolute or a relative path.
+    This is intended to reduce repition and likely should be placed at the top of the bold:"settings" file.
+    This a non-recursive operation and the imported file itself cannot perform an import.
+    Loaded values are processed as if they are in the file at the spot where the import setting is specified.
+    Relative paths are relative to the importing file.
+    Absolute paths that start with "./" are relative to the project root rather than the importing file.
+    Absolute paths that start with "/" are treated normally.
+
   - code:"modes"\:
     A collection of available build modes.
     Build modes provide custom variants of the build process where certain bold:"settings" are appended onto others.
index fee2cec0529df2c674cf842b599ca1f8c18a6aa4..b62b843145bf216c1b1bcb06f5b9f75f483da75d 100644 (file)
@@ -40,6 +40,7 @@ Fakefile Specification:
     - code:"define": First Content represents variable name (case-sensitive), remaining Content represents the value.
     - code:"environment": Zero or more Content representing valid environment variable names (alpha-numeric with underscore, but cannot begin with a number).
     - code:"fail": Only one Content, which must be either code:"exit", code:"warn" or code:"ignore" (quotes not required) (case-sensitive).
+    - code:"import": Only one Content, which must only be a valid filename.
     - code:"indexer": Only one Content, which must only be a valid filename.
     - code:"indexer_arguments: Zero or more arguments supported by the indexer specified in code:"build_indexer".
     - code:"load_build": Only one Content, which must be either code:"yes" or code:"no" (quotes not required) (case-sensitive).
index a74d075fab0b67dbd9127464e0db28e90ba47f74..32f57d505dacde644cc5c4b46688f2c0cf7db57a 100644 (file)
@@ -76,6 +76,7 @@ Settings Specification:
     - code:"flags_shared": Must only contain any number of parameters supported by the compiler specified in code:"build_compiler".
     - code:"flags_static": Must only contain any number of parameters supported by the compiler specified in code:"build_compiler".
     - code:"has_path_standard": Must only one of: code:"yes" or code:"no".
+    - code:"import": Only one Content, which must only be a valid filename.
     - code:"modes": Any valid word character, character:'-', or character:'+'.
     - code:"modes_default": May only be a single complete Content word defined in code:"modes" Object.
     - code:"path_headers": Must be a single valid path.