Added
Changed
- 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 and `PARENT_SCOPE` will force the
var to be considered a non CACHE var that would store the parameters
before `PARENT_SCOPE` in the call as _list_ entries. (TRILFRAME-128)
- Trigger an exception if `PARENT_SCOPE` and `FORCE` are both provided since
`FORCE` is only valid for CACHE variables but `PARENT_SCOPE` is only valid
for non-CACHE vars (and as noted above will _force_ the `set()` operation
to be a non-CACHE var which then triggers a CMake error because `FORCE` is
invalid to that form of `set()`. (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 matching
`set()` operation (with the warning). (TRILFRAME-128)
- For **bash** generation, trigger a WARNING and DO NOT generate the `-D` CLI option
if `opt-set-cmake-var` without `FORCE` 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
if `opt-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)
- 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 if `exception_control_level` is 4 or greater).
We also tie this _ecl_ to the _ecl_ of the `SetProgramOptions` class so changing this
will affect whether or not the exception is raised or if the output returned is an
empty string.
Deprecated
Removed
Fixed
- Bash generation handling of the FORCE flag. See TRILFRAME-120 for details.
Security
Internal
- Add test to verify that `opt-remove` also works to remove variables added
by `opt-set-cmake-var`.
- Changed `VariableFieldData` so that it won't use `dataclasses` to keep our
Python compatibilty to 3.6 (`dataclasses` requires 3.7 and higher).
Todo (for Unreleased)