Add expected compiler features to a target.
target_compile_features(<target> <PRIVATE|PUBLIC|INTERFACE> <feature> [...])
Specify compiler features required when compiling a given target. If the feature is not listed in the CMAKE_C_COMPILE_FEATURES variable or CMAKE_CXX_COMPILE_FEATURES variable, 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.
PRIVATE keywords are required to specify the scope of the features.
PUBLIC items will populate the :prop_tgt:COMPILE_FEATURES property of
INTERFACE items will populate the :prop_tgt:INTERFACE_COMPILE_FEATURES property of
<target>. Repeated calls for the same
<target> append items.
<target> must have been created by a command such as add_executable or add_library and must not be an
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.