summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmExportBuildFileGenerator.cxx6
-rw-r--r--Source/cmExportInstallFileGenerator.cxx6
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build/CMakeLists.txt4
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build/no_modules.cxx3
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/CMakeLists.txt4
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/no_modules.cxx3
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-build/CMakeLists.txt4
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-build/no_modules.cxx3
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-install/CMakeLists.txt4
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-install/no_modules.cxx3
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build/CMakeLists.txt4
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build/no_modules.cxx3
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/CMakeLists.txt4
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/no_modules.cxx3
14 files changed, 48 insertions, 6 deletions
diff --git a/Source/cmExportBuildFileGenerator.cxx b/Source/cmExportBuildFileGenerator.cxx
index 437ae69..a3637d8 100644
--- a/Source/cmExportBuildFileGenerator.cxx
+++ b/Source/cmExportBuildFileGenerator.cxx
@@ -542,6 +542,12 @@ bool cmExportBuildFileGenerator::GenerateImportCxxModuleConfigTargetInclusion(
os.SetCopyIfDifferent(true);
for (auto const* tgt : this->ExportedTargets) {
+ // Only targets with C++ module sources will have a
+ // collator-generated install script.
+ if (!tgt->HaveCxx20ModuleSources()) {
+ continue;
+ }
+
os << "include(\"${CMAKE_CURRENT_LIST_DIR}/target-" << tgt->GetExportName()
<< '-' << config << ".cmake\")\n";
}
diff --git a/Source/cmExportInstallFileGenerator.cxx b/Source/cmExportInstallFileGenerator.cxx
index 51c91f3..df119ae 100644
--- a/Source/cmExportInstallFileGenerator.cxx
+++ b/Source/cmExportInstallFileGenerator.cxx
@@ -752,6 +752,12 @@ bool cmExportInstallFileGenerator::
auto& prop_files = this->ConfigCxxModuleTargetFiles[config];
for (auto const* tgt : this->ExportedTargets) {
+ // Only targets with C++ module sources will have a
+ // collator-generated install script.
+ if (!tgt->HaveCxx20ModuleSources()) {
+ continue;
+ }
+
auto prop_filename = cmStrCat("target-", tgt->GetExportName(), '-',
filename_config, ".cmake");
prop_files.emplace_back(cmStrCat(dest, prop_filename));
diff --git a/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build/CMakeLists.txt
index a450b7e..62971a3 100644
--- a/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build/CMakeLists.txt
@@ -21,7 +21,9 @@ target_sources(export_bmi_and_interfaces
importable.cxx)
target_compile_features(export_bmi_and_interfaces PUBLIC cxx_std_20)
-install(TARGETS export_bmi_and_interfaces
+add_library(no_modules STATIC no_modules.cxx)
+
+install(TARGETS export_bmi_and_interfaces no_modules
EXPORT CXXModules
FILE_SET modules DESTINATION "lib/cxx/miu"
CXX_MODULES_BMI DESTINATION "lib/cxx/bmi")
diff --git a/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build/no_modules.cxx b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build/no_modules.cxx
new file mode 100644
index 0000000..eea854f
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build/no_modules.cxx
@@ -0,0 +1,3 @@
+void no_modules()
+{
+}
diff --git a/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/CMakeLists.txt
index a5574fe..bc19d93 100644
--- a/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/CMakeLists.txt
@@ -21,7 +21,9 @@ target_sources(export_bmi_and_interfaces
importable.cxx)
target_compile_features(export_bmi_and_interfaces PUBLIC cxx_std_20)
-install(TARGETS export_bmi_and_interfaces
+add_library(no_modules STATIC no_modules.cxx)
+
+install(TARGETS export_bmi_and_interfaces no_modules
EXPORT CXXModules
FILE_SET modules DESTINATION "lib/cxx/miu"
CXX_MODULES_BMI DESTINATION "lib/cxx/bmi")
diff --git a/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/no_modules.cxx b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/no_modules.cxx
new file mode 100644
index 0000000..eea854f
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/no_modules.cxx
@@ -0,0 +1,3 @@
+void no_modules()
+{
+}
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-build/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/export-interface-build/CMakeLists.txt
index 8584dce..62352ff 100644
--- a/Tests/RunCMake/CXXModules/examples/export-interface-build/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-build/CMakeLists.txt
@@ -21,7 +21,9 @@ target_sources(export_interfaces
importable.cxx)
target_compile_features(export_interfaces PUBLIC cxx_std_20)
-install(TARGETS export_interfaces
+add_library(no_modules STATIC no_modules.cxx)
+
+install(TARGETS export_interfaces no_modules
EXPORT CXXModules
FILE_SET modules DESTINATION "lib/cxx/miu")
export(EXPORT CXXModules
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-build/no_modules.cxx b/Tests/RunCMake/CXXModules/examples/export-interface-build/no_modules.cxx
new file mode 100644
index 0000000..eea854f
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-build/no_modules.cxx
@@ -0,0 +1,3 @@
+void no_modules()
+{
+}
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-install/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/export-interface-install/CMakeLists.txt
index b5c6224..15c91d9 100644
--- a/Tests/RunCMake/CXXModules/examples/export-interface-install/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-install/CMakeLists.txt
@@ -21,7 +21,9 @@ target_sources(export_interfaces
importable.cxx)
target_compile_features(export_interfaces PUBLIC cxx_std_20)
-install(TARGETS export_interfaces
+add_library(no_modules STATIC no_modules.cxx)
+
+install(TARGETS export_interfaces no_modules
EXPORT CXXModules
FILE_SET modules DESTINATION "lib/cxx/miu")
install(EXPORT CXXModules
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-install/no_modules.cxx b/Tests/RunCMake/CXXModules/examples/export-interface-install/no_modules.cxx
new file mode 100644
index 0000000..eea854f
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-install/no_modules.cxx
@@ -0,0 +1,3 @@
+void no_modules()
+{
+}
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build/CMakeLists.txt
index 7633bec..7d04c50 100644
--- a/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build/CMakeLists.txt
@@ -21,7 +21,9 @@ target_sources(export_interfaces_no_properties
importable.cxx)
target_compile_features(export_interfaces_no_properties PUBLIC cxx_std_20)
-install(TARGETS export_interfaces_no_properties
+add_library(no_modules STATIC no_modules.cxx)
+
+install(TARGETS export_interfaces_no_properties no_modules
EXPORT CXXModules
FILE_SET modules DESTINATION "lib/cxx/miu")
export(EXPORT CXXModules
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build/no_modules.cxx b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build/no_modules.cxx
new file mode 100644
index 0000000..eea854f
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build/no_modules.cxx
@@ -0,0 +1,3 @@
+void no_modules()
+{
+}
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/CMakeLists.txt
index 75f2440..c0db766 100644
--- a/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/CMakeLists.txt
@@ -21,7 +21,9 @@ target_sources(export_interfaces_no_properties
importable.cxx)
target_compile_features(export_interfaces_no_properties PUBLIC cxx_std_20)
-install(TARGETS export_interfaces_no_properties
+add_library(no_modules STATIC no_modules.cxx)
+
+install(TARGETS export_interfaces_no_properties no_modules
EXPORT CXXModules
FILE_SET modules DESTINATION "lib/cxx/miu")
install(EXPORT CXXModules
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/no_modules.cxx b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/no_modules.cxx
new file mode 100644
index 0000000..eea854f
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/no_modules.cxx
@@ -0,0 +1,3 @@
+void no_modules()
+{
+}