All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Documentation updates
- Documentation updates
- Open Source License approved. Adding 3-Clause BSD license files and source headers.
- github actions files for CI/CD testing will be added to this version number once code is posted to https://github.com/sandialabs/SetProgramOptions
- Changes to
opt-set-cmake-varbehaviour:- Trigger a WARNING if
PARENT_SCOPEand a TYPE is provided since CMake requires TYPED vars to be CACHE vars andPARENT_SCOPEwill force the var to be considered a non CACHE var that would store the parameters beforePARENT_SCOPEin the call as list entries. (TRILFRAME-128) - Trigger an exception if
PARENT_SCOPEandFORCEare both provided sinceFORCEis only valid for CACHE variables butPARENT_SCOPEis only valid for non-CACHE vars (and as noted above will force theset()operation to be a non-CACHE var which then triggers a CMake error becauseFORCEis invalid to that form ofset(). (TRILFRAME-128) - bash generated options that have a TYPE and
PARENT_SCOPEare processed to generate the same list string that would be generated by the matchingset()operation (with the warning). (TRILFRAME-128) - For bash generation, trigger a WARNING and DO NOT generate the
-DCLI option ifopt-set-cmake-varwithoutFORCEis called on a CMake Cache variable that has already been set. (TRILFRAME-120). - For bash generation, trigger a WARNING and DO NOT generate the
-DCLI option ifopt-set-cmake-varis called on a non-cache CMake variable. (TRILFRAME-136) - For bash generation, always add a TYPE to the
-DCLI option. (TRILFRAME-136)
- Trigger a WARNING if
- Revert(ish) the modifications from MR12 which removed the error when generating
BASH output if there is an unhandled CMake variable left hanging around.
Rather than make this an unavoidable error though, ExpandVarsInText now inherits
from
configparserenhanced.ExceptionControland will raise a "MINOR"exception_control_event(i.e., throws ifexception_control_levelis 4 or greater). We also tie this ecl to the ecl of theSetProgramOptionsclass so changing this will affect whether or not the exception is raised or if the output returned is an empty string.
- Bash generation handling of the FORCE flag. See TRILFRAME-120 for details.
- Add test to verify that
opt-removealso works to remove variables added byopt-set-cmake-var. - Changed
VariableFieldDataso that it won't usedataclassesto keep our Python compatibilty to 3.6 (dataclassesrequires 3.7 and higher).
- Relocated
setprogramoptionspackage tosrc/ - Relocated examples into
examples/directory. - Improved
gitlab-ci.ymlpipeline.
common.py- moved some free-functions to this.- Improved variable processing. Variables should now be encoded in our pseudo-langauge
that has a syntax like this:
${VARNAME|VARTYPE}.ENV- is the only 'type' that is known toSetProgramOptionsCMAKE- is known toSetProgramOptionsCMake, which denotes a "CMake" variable which would be part of the internal state. This mostly makes sense when generating CMake Fragments, but we also attempt to track variables that are set when generating BASH output and will perform expansions when a prevoulsly set value is known.- A
ValueErrorwill be raised if "BASH" output generation is attempted with a "CMAKE" var type still embedded in the .ini file.
- values containing spaces in them will have double quotes (
") added to them.
- Modified
_gen_option_entryto detect values with spaces in them and add quotes (") to the string.
- Initial version release. From now on changes should be noted in the CHANGELOG.