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.
- Deprecate the package and direct users to the replacement
- 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-var
behaviour:- Trigger a WARNING if
PARENT_SCOPE
and a TYPE is provided since CMake requires TYPED vars to be CACHE vars andPARENT_SCOPE
will force the var to be considered a non CACHE var that would store the parameters beforePARENT_SCOPE
in the call as list entries. (TRILFRAME-128) - Trigger an exception if
PARENT_SCOPE
andFORCE
are both provided sinceFORCE
is only valid for CACHE variables butPARENT_SCOPE
is 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 becauseFORCE
is invalid to that form ofset()
. (TRILFRAME-128) - bash generated options that have a TYPE and
PARENT_SCOPE
are 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
-D
CLI option ifopt-set-cmake-var
withoutFORCE
is called on a CMake Cache variable that has already been set. (TRILFRAME-120). - For bash generation, trigger a WARNING and DO NOT generate the
-D
CLI option ifopt-set-cmake-var
is called on a non-cache CMake variable. (TRILFRAME-136) - For bash generation, always add a TYPE to the
-D
CLI 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.ExceptionControl
and will raise a "MINOR"exception_control_event
(i.e., throws ifexception_control_level
is 4 or greater). We also tie this ecl to the ecl of theSetProgramOptions
class 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-remove
also works to remove variables added byopt-set-cmake-var
. - Changed
VariableFieldData
so that it won't usedataclasses
to keep our Python compatibilty to 3.6 (dataclasses
requires 3.7 and higher).
- Relocated
setprogramoptions
package tosrc/
- Relocated examples into
examples/
directory. - Improved
gitlab-ci.yml
pipeline.
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 toSetProgramOptions
CMAKE
- 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
ValueError
will 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_entry
to 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.