I'm building a large library using CMake, and I would like users to be able to selectively enable/disable certain parts of my build process.
How can I add command-line options to my CMake build, e.g. so that users may type something like cmake --build-partone --nobuild-parttwo --dothis=true --dothat=false ..
?
Apparently the OPTION keyword will create variables that can be set from the CMake GUI, but I can't figure out how to do this from the command line.
Yeah, you should use the option
command. You can set options from the command line this way:
//CMakeLists.txt
option(MyOption "MyOption" OFF)
//Command line
cmake -DMyOption=ON MyProjectFolder
Note that -DMyOption
must come before the path.
Just a little correction:
If you have other variables to pass, it is recommended to indicate the type of these:
//CMakeLists.txt
option(MyOption "MyOption" OFF)
//Command line
cmake -DMyOption:BOOL=ON MyProjectFolder -D...
Success story sharing
cmake MyProjectFolder -DMyOption
does not turn the option on (or off)-DMyOption=ON
or-DMyOption=OFF
to turn on or off.