My UNIX Makefile is as follows:
param=0
run:
./foo -r "fun($(param))"
So if I do make run
, I get ./foo - r "fun(0)"
and
for make run param=10
, I get ./foo -r "fun(10)"
.
Now I want to generate similar Makefile using cmake.
add_custom_target(
run
./foo -r "\"fun($(param))\""
)
How do I set the default value for param
within cmake configuration file?
The concept in CMake is a bit different. You can define "cache variables" (basically variables that are remembered for subsequent builds in the same build dir, and can be customized by users) that come with default values and documentation strings and such. These can then be changed either by passing
-D name:type=value
options to cmake, or using one of the friendlier frontends (e.g.ccmake
, the curses UI for CMake).Example based on your question:
You'll find more details in the exhaustive docs for CMake.
PS. this is for variables inside CMake and specifically
CMakeLists.txt
itself; the possibility to change the value is not carried over into the generated Makefile as far as I can tell. I'm not sure that's possible in the first place because it probably wouldn't be compatiable with all of the targets supported by CMake (e.g. Visual Studio projects and what not). In any case, CMake doesn't seem to have been designed for generating build files used independently of CMake.Use
to set it.