CMake is a tool for build system configuration.
It generates a chosen build system in the directory it was executed in.
The build system to generate can be specified using the -G flag which defaults to Makefile.
A list of all supported generators (e.g. for IDEs) can be found here.
Use the console tool ccmake or the gui cmake-guifor a more comfortable configuration.
The generated build system automatically reconfigures cmake when necessary.
It respects your environment variables CXX, CXX_FLAGS, … during configuration.
Please use them to set your compiler and warning level of choice.
Invoke cmake with -DVariable=Value to set the cmake-internal variable Variable to Value.
A complete list of variables recognised by cmake can be found here.
Use -DCMAKE_BUILD_TYPE to specify what type of build you would like Debug, Release, RelWithDebInfo, MinSizeRel
CMake will select appropriate flag for you (e.g. -g, -O2).
Specifying no BUILD_TYPE results in an un-optimised non-debug build.
The generated build system knows where the source directory is.
It is thus possible to have multiple configurations using the same (e.g. build/debug/, build/release/)
Use -DBUILD_SHARED_LIBS=ON to build shared libraries, -DBUILD_SHARED_LIBS=OFF to build static libraries. In preCICE, we default to ON since v2.3.