[CMake] Problem with option() when in subdirectory
Alexander Neundorf
a.neundorf-work at gmx.net
Sun Sep 18 08:32:33 EDT 2011
On Sunday, September 18, 2011 02:15:54 PM David Demelier wrote:
> Hello,
>
> I noticed that option() values are not checked when the option() command
> is under a add_subdirectory() target.
>
> Example:
>
>
> -- a's CMakeLists.txt --
> project(a C)
>
> set(BUILD_DEMOS OFF)
> add_subdirectory(extern/b)
>
> -- extern/b's CMakeLists.txt --
> project(b C)
>
> option(BUILD_DEMOS "Enable the demos build" ON)
>
> if (BUILD_DEMOS)
> ...
> endif ()
>
> Then when building the project a it will also enter the if BUILD_DEMOS
> conditional.
>
> What can I do now? :)
The values of options are stored in the cache.
In your toplevel file, OFF is put in the cache.
Then, in the subdir, the variable of BUILD_DEMOS is already in the cache, so
it is not overridden with ON, but keeps the value which is in the cache.
Does that help ?
Alex
More information about the CMake
mailing list