add_compile_definitionsΒΆ

Added in version 3.12.

Add preprocessor definitions to the compilation of source files.

add_compile_definitions(<definition> ...)

Adds preprocessor definitions to the compiler command line.

The preprocessor definitions are added to the COMPILE_DEFINITIONS directory property for the current CMakeLists file. They are also added to the COMPILE_DEFINITIONS target property for each target in the current CMakeLists file.

Definitions are specified using the syntax VAR or VAR=value. Function-style definitions are not supported. CMake will automatically escape the value correctly for the native build system (note that CMake language syntax may require escapes to specify some values).

Added in version 3.26: Any leading -D on an item will be removed.

Arguments to add_compile_definitions may use generator expressions with the syntax $<...>. See the cmake-generator-expressions(7) manual for available expressions. See the cmake-buildsystem(7) manual for more on defining buildsystem properties.

Note

Use of the add_compile_definitions command for new development is discouraged. Unencapsulated alterations to the build environment can have unintentionally broad effect, potentially resulting in unnecessary build dependencies. Additionally, the add_compile_definitions command cannot be used to express interface usage requirements. It is recommended that new development use the target_compile_definitions() command instead.