[CMake] CMAKE_BUILD_TYPE and exact control of compiler options
René J. V. Bertin
rjvbertin at gmail.com
Mon Oct 12 04:39:37 EDT 2015
Hello,
I'm using cmake in conjunction with a packaging/distribution system that aims to
control the compiler and linker flags, a priori via the usual environment
variables. (We're talking about MacPorts.)
Using one of the CMAKE_BUILD_TYPE presets, the value of those env. variables
appears at most to be added in front of the preset options, which means user
options can be overridden. That may be intended behaviour, but not ideal for my
use case.
Working with Debian and Ubuntu systems, I deduced that using a non-pre-defined
BUILD_TYPE make cmake use the values of CFLAGS, CXXFLAGS etc, through
CMAKE_C_FLAGS, CMAKE_CXX_FLAGS etc (instead of CMAKE_C*_FLAGS_RELEASE, for
instance).
Experimenting with -DCMAKE_BUILD_TYPE=MacPorts in the toplevel control file
(cmake PortGroup), that appeared indeed to work, but I appear to have been
mistaken. Adding -DCMAKE_C*_FLAGS_MACPORTS definitions has no effect, nor has
setting CMAKE_C*_FLAGS from the CMake command line.
Which leads me to the following questions:
- Is it indeed possible to get CMake to take all compiler and linker flags from
the environment, and if so, how?
- If not, what is the best/official way to get exact control over the compiler
and linker options used?
- Out of curiosity, what's special about the CMAKE_BUILD_TYPE=Debian build type?
Thanks
René Bertin
More information about the CMake
mailing list