diff options
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() +{ +} |