target_compile_features — CMake 4.0.1 Documentation (original) (raw)
Added in version 3.1.
Add expected compiler features to a target.
target_compile_features( <PRIVATE|PUBLIC|INTERFACE> [...])
Specifies compiler features required when compiling a given target. If the feature is not listed in the CMAKE_C_COMPILE_FEATURES,CMAKE_CUDA_COMPILE_FEATURES, or CMAKE_CXX_COMPILE_FEATURESvariables, then an error will be reported by CMake. If the use of the feature requires an additional compiler flag, such as -std=gnu++11
, the flag will be added automatically.
The INTERFACE
, PUBLIC
and PRIVATE
keywords are required to specify the scope of the features. PRIVATE
and PUBLIC
items will populate the COMPILE_FEATURES property of <target>
.PUBLIC
and INTERFACE
items will populate theINTERFACE_COMPILE_FEATURES property of <target>
. Repeated calls for the same <target>
append items.
Added in version 3.11: Allow setting INTERFACE
items on IMPORTED targets.
The named <target>
must have been created by a command such asadd_executable() or add_library() and must not be anALIAS target.
for more on defining buildsystem properties.
Arguments to target_compile_features
may use generator expressions with the syntax $<...>
. See the cmake-generator-expressions(7)manual for available expressions. See the cmake-compile-features(7)manual for information on compile features and a list of supported compilers.