35 lines
1.2 KiB
Text
35 lines
1.2 KiB
Text
This is an example project that is built with cmake.
|
|
The project consists of
|
|
- an example library, TestLib, which is built from testlib/foo.h and .cc
|
|
- a configuration file, SimpleConfig.h which is built from SimpleConfig.h.in
|
|
- a main program, in main.cc
|
|
|
|
With cmake, you usually build the project in a directory separate from the source,
|
|
typically named build. This has the advantages that you can easily make several
|
|
separate builds simply by doing them in separate build directories. It also
|
|
means that the generated files are kept separate from the source code, so that
|
|
removing them is done by simply removing the entire build directory.
|
|
|
|
The steps to create the build files (Makefile, unless otherwise specified, but
|
|
cmake can generate project files for other build systems as well) and then
|
|
build the project are
|
|
|
|
> mkdir build
|
|
> cd build
|
|
> cmake ..
|
|
> make
|
|
|
|
To see the actual commands executed when building with the generated Makefile,
|
|
use the command
|
|
> make VERBOSE=1
|
|
|
|
Configuration of the compilation can be done by setting environment variables
|
|
which are read by cmake.
|
|
|
|
To set which compiler to use:
|
|
|
|
CC=clang CXX=clang++ cmake ..
|
|
|
|
To set compiler flags, one can use
|
|
|
|
cmake -DCMAKE_CXX_FLAGS="-Wall -Werror" ..
|