Export: Populate INTERFACE_COMPILE_FEATURES property.
This commit is contained in:
parent
8ed59fc207
commit
9eaf375598
|
@ -85,6 +85,9 @@ bool cmExportBuildFileGenerator::GenerateMainFile(std::ostream& os)
|
|||
this->PopulateInterfaceProperty("INTERFACE_AUTOUIC_OPTIONS", te,
|
||||
cmGeneratorExpression::BuildInterface,
|
||||
properties, missingTargets);
|
||||
this->PopulateInterfaceProperty("INTERFACE_COMPILE_FEATURES", te,
|
||||
cmGeneratorExpression::BuildInterface,
|
||||
properties, missingTargets);
|
||||
this->PopulateInterfaceProperty("INTERFACE_POSITION_INDEPENDENT_CODE",
|
||||
te, properties);
|
||||
const bool newCMP0022Behavior =
|
||||
|
|
|
@ -149,6 +149,10 @@ bool cmExportInstallFileGenerator::GenerateMainFile(std::ostream& os)
|
|||
te,
|
||||
cmGeneratorExpression::InstallInterface,
|
||||
properties, missingTargets);
|
||||
this->PopulateInterfaceProperty("INTERFACE_COMPILE_FEATURES",
|
||||
te,
|
||||
cmGeneratorExpression::InstallInterface,
|
||||
properties, missingTargets);
|
||||
|
||||
const bool newCMP0022Behavior =
|
||||
te->GetPolicyStatusCMP0022() != cmPolicies::WARN
|
||||
|
|
|
@ -23,7 +23,10 @@ set_property(TARGET sharedlib PROPERTY INTERFACE_COMPILE_DEFINITIONS "SHAREDLIB_
|
|||
add_library(sharediface INTERFACE)
|
||||
target_link_libraries(sharediface INTERFACE sharedlib)
|
||||
|
||||
install(TARGETS headeronly sharediface
|
||||
add_library(use_auto_type INTERFACE)
|
||||
target_compile_features(use_auto_type INTERFACE cxx_auto_type)
|
||||
|
||||
install(TARGETS headeronly sharediface use_auto_type
|
||||
EXPORT expInterface
|
||||
)
|
||||
install(TARGETS sharedlib
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
cmake_minimum_required (VERSION 2.7.20090711)
|
||||
cmake_policy(SET CMP0025 NEW)
|
||||
project(Import C CXX)
|
||||
|
||||
# Import everything in a subdirectory.
|
||||
|
|
|
@ -40,6 +40,23 @@ macro(do_try_compile prefix)
|
|||
if(NOT ${prefix}IFACE_TRY_COMPILE)
|
||||
message(SEND_ERROR "${prefix} try_compile with IMPORTED INTERFACE target failed!\n\n${OUTPUT}")
|
||||
endif()
|
||||
|
||||
if (";${CMAKE_CXX_COMPILE_FEATURES};" MATCHES ";cxx_auto_type;")
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${prefix}::use_auto_type)
|
||||
check_cxx_source_compiles(
|
||||
"
|
||||
int main(int,char**)
|
||||
{
|
||||
auto value = 0;
|
||||
return value;
|
||||
}
|
||||
" ${prefix}IMPORTED_IFACE_CONSTEXPR)
|
||||
|
||||
if(NOT ${prefix}IMPORTED_IFACE_CONSTEXPR)
|
||||
message(SEND_ERROR "${prefix} try_compile with IMPORTED INTERFACE target failed!\n\n${OUTPUT}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
endmacro()
|
||||
|
||||
do_try_compile(bld)
|
||||
|
|
Loading…
Reference in New Issue