0dfe395e3c
Allow setting build properties based on the features available for a target. The availability of features is determined at generate-time by evaluating the link implementation. Ensure that the <LANG>_STANDARD determined while evaluating COMPILE_FEATURES in the link implementation is not lower than that provided by the INTERFACE of the link implementation. This is similar to handling of transitive properties such as POSITION_INDEPENDENT_CODE.
16 lines
480 B
CMake
16 lines
480 B
CMake
|
|
add_library(empty1 empty.cpp)
|
|
|
|
add_library(empty2 INTERFACE)
|
|
add_library(empty3 INTERFACE)
|
|
target_compile_features(empty3 INTERFACE cxx_constexpr)
|
|
|
|
target_link_libraries(empty1
|
|
# When starting, $<COMPILE_FEATURES:cxx_final> is '0', so 'freeze' the
|
|
# CXX_STANDARD at 98 during computation.
|
|
$<$<COMPILE_FEATURES:cxx_final>:empty2>
|
|
# This would add cxx_constexpr, but that would require CXX_STANDARD = 11,
|
|
# which is not allowed after freeze. Report an error.
|
|
empty3
|
|
)
|