Either something is fundamentally broken with dynamic_project_options or I'm sorely misunderstanding how to use it.
My understanding of the intent is as follows:
OPT_${option_name}
that is configurable afterward running CMake (e.g. through ccmake
).OPT_${option_name}
if it is specified (usually through the cmake command line).ENABLE_DEVELOPER_MODE
is toggled.This is the sample CMake file I used, which is just a slightly modified version of the example one in the dynamic project options file.
If I invoke it like this:
cmake -S . -B ./build -G Ninja -DOPT_GCC_WARNINGS="-Wdouble-conversion"
I'd expect there to be an option called OPT_GCC_WARNINGS
with that given value (and a user default of "-WBaz"
based on the lack of developer options being enabled).
If I invoke it without the OPT_GCC_WARNINGS
on the command line, I would expect there to be no option available (based on the cmake_dependent_option use in DynamicProjectOptions), but that a hidden one be populated with the value "-WBaz"
. Instead, I find an option called OPT_GCC_WARNINGS
that has the value OFF
.
I suspect that either I misunderstand how to use this tool properly, or that this worked at one point but some subtle CMake variable creation behavior changed recently and broke it (and maybe I'm the only one to use this dynamic macro?).
I'm happy to help test this out further. I was hoping to just submit a PR, but I'm really stuck on this so I don't have a solution yet.
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too