summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2020-09-23 15:57:43 (GMT)
committerKitware Robot <kwrobot@kitware.com>2020-09-23 15:58:02 (GMT)
commit869d6c82a0c4e55948ef183c43480dce1ff8dfa9 (patch)
tree6596b5414986c315647ecd1114474ee0d002544f
parent226f6bc61568543e1a35035b6fae6f949196ef8a (diff)
parentbf114602daf09031ec7cf524758e95439bf21627 (diff)
downloadCMake-869d6c82a0c4e55948ef183c43480dce1ff8dfa9.zip
CMake-869d6c82a0c4e55948ef183c43480dce1ff8dfa9.tar.gz
CMake-869d6c82a0c4e55948ef183c43480dce1ff8dfa9.tar.bz2
Merge topic 'install-EXPORT-source-CONFIG'
bf114602da install(EXPORT): Fix exporting target w/ source named using CONFIG genex Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5240
-rw-r--r--Source/cmExportFileGenerator.cxx4
-rw-r--r--Tests/ExportImport/Export/CMakeLists.txt15
2 files changed, 16 insertions, 3 deletions
diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx
index 58aa391..cbae4e5 100644
--- a/Source/cmExportFileGenerator.cxx
+++ b/Source/cmExportFileGenerator.cxx
@@ -565,11 +565,9 @@ void cmExportFileGenerator::PopulateCompatibleInterfaceProperties(
ifaceProperties);
if (gtarget->GetType() != cmStateEnums::INTERFACE_LIBRARY) {
- getCompatibleInterfaceProperties(gtarget, ifaceProperties, "");
-
std::vector<std::string> configNames =
gtarget->Target->GetMakefile()->GetGeneratorConfigs(
- cmMakefile::ExcludeEmptyConfig);
+ cmMakefile::IncludeEmptyConfig);
for (std::string const& cn : configNames) {
getCompatibleInterfaceProperties(gtarget, ifaceProperties, cn);
diff --git a/Tests/ExportImport/Export/CMakeLists.txt b/Tests/ExportImport/Export/CMakeLists.txt
index 387fe6b..6d9b4ab 100644
--- a/Tests/ExportImport/Export/CMakeLists.txt
+++ b/Tests/ExportImport/Export/CMakeLists.txt
@@ -669,3 +669,18 @@ endif()
# IMPORTED_LINK_INTERFACE_LANGUAGES entries should not be targets.
add_library(C INTERFACE)
add_library(CXX INTERFACE)
+
+#------------------------------------------------------------------------------
+# test export of targets built from sources named using $<CONFIG> generator-expression
+# FIXME: Enable test on Xcode generator when it supports per-config sources.
+if(NOT XCODE)
+ file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/Generated_$<CONFIG>.cpp" CONTENT "// content")
+ add_library(testStaticFromGeneratedSource STATIC)
+ target_sources(testStaticFromGeneratedSource PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/Generated_$<CONFIG>.cpp")
+
+ add_library(testLibFromGeneratedSource SHARED empty.cpp)
+ target_link_libraries(testLibFromGeneratedSource PRIVATE testStaticFromGeneratedSource)
+
+ install(TARGETS testLibFromGeneratedSource EXPORT testLibFromGeneratedSource_Export)
+ install(EXPORT testLibFromGeneratedSource_Export DESTINATION lib)
+endif()