summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeniz Bahadir <dbahadir@benocs.com>2020-09-18 14:48:33 +0200
committerBrad King <brad.king@kitware.com>2020-09-22 07:35:02 -0400
commitbf114602daf09031ec7cf524758e95439bf21627 (patch)
treed62e27e79a5865fdeead8831cb986ab548df94d6
parent46bb6ae8d44e403f2fdd3ae6b074c74426ac20bb (diff)
downloadcmake-bf114602daf09031ec7cf524758e95439bf21627.tar.gz
install(EXPORT): Fix exporting target w/ source named using CONFIG genex
Fixes: #21203
-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 58aa391092..cbae4e59ab 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 387fe6b445..6d9b4ab4f5 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()