summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-05-25 13:47:47 (GMT)
committerKitware Robot <kwrobot@kitware.com>2023-05-25 13:48:08 (GMT)
commitcf7b7600c669ea162e0c3960c3e4e3a5d04f3274 (patch)
tree94147b2403051e504ac91433864e883dc0c2828a /Tests
parent02db7f044d0d6097be865968318108b5229c5e4b (diff)
parent28ece63fee1d5b4cd37f79ea5c7f078509f44bcd (diff)
downloadCMake-cf7b7600c669ea162e0c3960c3e4e3a5d04f3274.zip
CMake-cf7b7600c669ea162e0c3960c3e4e3a5d04f3274.tar.gz
CMake-cf7b7600c669ea162e0c3960c3e4e3a5d04f3274.tar.bz2
Merge topic 'misc-cxx-modules-fixes'
28ece63fee cxxmodules: Fix exported path to installed module sources in subdirs f2a699261b cxxmodules: Do not expect collator install scripts with no CXX_MODULES f9677cc122 Tests: Improve RunCMake.CXXModules expectation matching and error reporting Acked-by: Kitware Robot <kwrobot@kitware.com> Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com> Merge-request: !8474
Diffstat (limited to 'Tests')
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build-stderr.txt2
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build/CMakeLists.txt8
-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-build/subdir/importable.cxx6
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build/test/CMakeLists.txt22
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install-stderr.txt2
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/CMakeLists.txt8
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/no_modules.cxx3
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/subdir/importable.cxx6
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/test/CMakeLists.txt22
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-build-stderr.txt2
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-build/CMakeLists.txt8
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-build/no_modules.cxx3
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-build/subdir/importable.cxx6
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-build/test/CMakeLists.txt22
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-install-stderr.txt2
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-install/CMakeLists.txt8
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-install/no_modules.cxx3
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-install/subdir/importable.cxx6
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-install/test/CMakeLists.txt22
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build-stderr.txt2
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build/CMakeLists.txt8
-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-build/subdir/importable.cxx6
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build/test/CMakeLists.txt10
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install-stderr.txt2
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/CMakeLists.txt8
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/no_modules.cxx3
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/subdir/importable.cxx6
-rw-r--r--Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/test/CMakeLists.txt10
30 files changed, 178 insertions, 44 deletions
diff --git a/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build-stderr.txt b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build-stderr.txt
index 5e4392a..c8dbdcf 100644
--- a/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build-stderr.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build-stderr.txt
@@ -1,4 +1,4 @@
-CMake Warning \(dev\) at CMakeLists.txt:7 \(target_sources\):
+CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.
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..71e7b62 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
@@ -18,10 +18,14 @@ target_sources(export_bmi_and_interfaces
BASE_DIRS
"${CMAKE_CURRENT_SOURCE_DIR}"
FILES
- importable.cxx)
+ importable.cxx
+ subdir/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-build/subdir/importable.cxx b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build/subdir/importable.cxx
new file mode 100644
index 0000000..07d6af6
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build/subdir/importable.cxx
@@ -0,0 +1,6 @@
+export module subdir_importable;
+
+export int from_subdir()
+{
+ return 0;
+}
diff --git a/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build/test/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build/test/CMakeLists.txt
index 2e37da2..3cb185c 100644
--- a/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build/test/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-build/test/CMakeLists.txt
@@ -14,19 +14,31 @@ get_property(file_sets TARGET CXXModules::export_bmi_and_interfaces
PROPERTY INTERFACE_CXX_MODULE_SETS)
if (NOT file_sets STREQUAL "modules")
message(FATAL_ERROR
- "Incorrect exported file sets in `CXXModules::export_bmi_and_interfaces`: `${file_sets}`")
+ "Incorrect exported file sets in CXXModules::export_bmi_and_interfaces:\n ${file_sets}")
endif ()
get_property(file_set_files TARGET CXXModules::export_bmi_and_interfaces
PROPERTY CXX_MODULE_SET_modules)
-if (NOT file_set_files STREQUAL "${expected_source_dir}/importable.cxx")
+set(expected_file_set_files
+ "${expected_source_dir}/importable.cxx"
+ "${expected_source_dir}/subdir/importable.cxx"
+ )
+if (NOT file_set_files STREQUAL "${expected_file_set_files}")
message(FATAL_ERROR
- "Incorrect exported file set paths in CXXModules::export_bmi_and_interfaces`: `${file_set_files}`")
+ "Incorrect exported file set paths in CXXModules::export_bmi_and_interfaces:\n ${file_set_files}")
endif ()
get_property(imported_modules TARGET CXXModules::export_bmi_and_interfaces
PROPERTY IMPORTED_CXX_MODULES_DEBUG)
-if (NOT imported_modules MATCHES "importable=${expected_source_dir}/importable.cxx,${expected_binary_dir}/CMakeFiles/export_bmi_and_interfaces.dir(/Debug)?/importable.(gcm|pcm|ifc)")
+set(expected_imported_modules
+ "importable=${expected_source_dir}/importable.cxx,${expected_binary_dir}/CMakeFiles/export_bmi_and_interfaces.dir(/Debug)?/importable.(gcm|pcm|ifc)"
+ "subdir_importable=${expected_source_dir}/subdir/importable.cxx,${expected_binary_dir}/CMakeFiles/export_bmi_and_interfaces.dir(/Debug)?/subdir_importable.(gcm|pcm|ifc)"
+ )
+if (NOT imported_modules MATCHES "^${expected_imported_modules}$")
message(FATAL_ERROR
- "Incorrect exported modules in CXXModules::export_bmi_and_interfaces`: `${imported_modules}`")
+ "Incorrect exported modules in CXXModules::export_bmi_and_interfaces:\n"
+ " ${imported_modules}\n"
+ "does not match:\n"
+ " ${expected_imported_modules}"
+ )
endif ()
diff --git a/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install-stderr.txt b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install-stderr.txt
index 5e4392a..c8dbdcf 100644
--- a/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install-stderr.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install-stderr.txt
@@ -1,4 +1,4 @@
-CMake Warning \(dev\) at CMakeLists.txt:7 \(target_sources\):
+CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.
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..e675507 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
@@ -18,10 +18,14 @@ target_sources(export_bmi_and_interfaces
BASE_DIRS
"${CMAKE_CURRENT_SOURCE_DIR}"
FILES
- importable.cxx)
+ importable.cxx
+ subdir/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-bmi-and-interface-install/subdir/importable.cxx b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/subdir/importable.cxx
new file mode 100644
index 0000000..07d6af6
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/subdir/importable.cxx
@@ -0,0 +1,6 @@
+export module subdir_importable;
+
+export int from_subdir()
+{
+ return 0;
+}
diff --git a/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/test/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/test/CMakeLists.txt
index 1adccb3..7b36f8c 100644
--- a/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/test/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-bmi-and-interface-install/test/CMakeLists.txt
@@ -14,19 +14,31 @@ get_property(file_sets TARGET CXXModules::export_bmi_and_interfaces
PROPERTY INTERFACE_CXX_MODULE_SETS)
if (NOT file_sets STREQUAL "modules")
message(FATAL_ERROR
- "Incorrect exported file sets in `CXXModules::export_bmi_and_interfaces`: `${file_sets}`")
+ "Incorrect exported file sets in CXXModules::export_bmi_and_interfaces:\n ${file_sets}")
endif ()
get_property(file_set_files TARGET CXXModules::export_bmi_and_interfaces
PROPERTY CXX_MODULE_SET_modules)
-if (NOT file_set_files STREQUAL "${expected_source_dir}/importable.cxx")
+set(expected_file_set_files
+ "${expected_source_dir}/importable.cxx"
+ "${expected_source_dir}/subdir/importable.cxx"
+ )
+if (NOT file_set_files STREQUAL "${expected_file_set_files}")
message(FATAL_ERROR
- "Incorrect exported file set paths in CXXModules::export_bmi_and_interfaces`: `${file_set_files}`")
+ "Incorrect exported file set paths in CXXModules::export_bmi_and_interfaces:\n ${file_set_files}")
endif ()
get_property(imported_modules TARGET CXXModules::export_bmi_and_interfaces
PROPERTY IMPORTED_CXX_MODULES_DEBUG)
-if (NOT imported_modules MATCHES "importable=${expected_source_dir}/importable.cxx,${expected_binary_dir}/importable.(gcm|pcm|ifc)")
+set(expected_imported_modules
+ "importable=${expected_source_dir}/importable.cxx,${expected_binary_dir}/importable.(gcm|pcm|ifc)"
+ "subdir_importable=${expected_source_dir}/subdir/importable.cxx,${expected_binary_dir}/subdir_importable.(gcm|pcm|ifc)"
+ )
+if (NOT imported_modules MATCHES "^${expected_imported_modules}$")
message(FATAL_ERROR
- "Incorrect exported modules in CXXModules::export_bmi_and_interfaces`: `${imported_modules}`")
+ "Incorrect exported modules in CXXModules::export_bmi_and_interfaces:\n"
+ " ${imported_modules}\n"
+ "does not match:\n"
+ " ${expected_imported_modules}"
+ )
endif ()
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-build-stderr.txt b/Tests/RunCMake/CXXModules/examples/export-interface-build-stderr.txt
index 5e4392a..e318a34 100644
--- a/Tests/RunCMake/CXXModules/examples/export-interface-build-stderr.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-build-stderr.txt
@@ -1,4 +1,4 @@
-CMake Warning \(dev\) at CMakeLists.txt:7 \(target_sources\):
+CMake Warning \(dev\) at CMakeLists.txt:[0-9] \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-build/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/export-interface-build/CMakeLists.txt
index 8584dce..136e885 100644
--- a/Tests/RunCMake/CXXModules/examples/export-interface-build/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-build/CMakeLists.txt
@@ -18,10 +18,14 @@ target_sources(export_interfaces
BASE_DIRS
"${CMAKE_CURRENT_SOURCE_DIR}"
FILES
- importable.cxx)
+ importable.cxx
+ subdir/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-build/subdir/importable.cxx b/Tests/RunCMake/CXXModules/examples/export-interface-build/subdir/importable.cxx
new file mode 100644
index 0000000..07d6af6
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-build/subdir/importable.cxx
@@ -0,0 +1,6 @@
+export module subdir_importable;
+
+export int from_subdir()
+{
+ return 0;
+}
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-build/test/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/export-interface-build/test/CMakeLists.txt
index 9949969..1874c97 100644
--- a/Tests/RunCMake/CXXModules/examples/export-interface-build/test/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-build/test/CMakeLists.txt
@@ -14,19 +14,31 @@ get_property(file_sets TARGET CXXModules::export_interfaces
PROPERTY INTERFACE_CXX_MODULE_SETS)
if (NOT file_sets STREQUAL "modules")
message(FATAL_ERROR
- "Incorrect exported file sets in `CXXModules::export_interfaces`: `${file_sets}`")
+ "Incorrect exported file sets in CXXModules::export_interfaces:\n ${file_sets}")
endif ()
get_property(file_set_files TARGET CXXModules::export_interfaces
PROPERTY CXX_MODULE_SET_modules)
-if (NOT file_set_files STREQUAL "${expected_source_dir}/importable.cxx")
+set(expected_file_set_files
+ "${expected_source_dir}/importable.cxx"
+ "${expected_source_dir}/subdir/importable.cxx"
+ )
+if (NOT file_set_files STREQUAL "${expected_file_set_files}")
message(FATAL_ERROR
- "Incorrect exported file set paths in CXXModules::export_interfaces`: `${file_set_files}`")
+ "Incorrect exported file set paths in CXXModules::export_interfaces:\n ${file_set_files}")
endif ()
get_property(imported_modules TARGET CXXModules::export_interfaces
PROPERTY IMPORTED_CXX_MODULES_DEBUG)
-if (NOT imported_modules MATCHES "importable=${expected_source_dir}/importable.cxx,${expected_binary_dir}/CMakeFiles/export_interfaces.dir(/Debug)?/importable.(gcm|pcm|ifc)")
+set(expected_imported_modules
+ "importable=${expected_source_dir}/importable.cxx,${expected_binary_dir}/CMakeFiles/export_interfaces.dir(/Debug)?/importable.(gcm|pcm|ifc)"
+ "subdir_importable=${expected_source_dir}/subdir/importable.cxx,${expected_binary_dir}/CMakeFiles/export_interfaces.dir(/Debug)?/subdir_importable.(gcm|pcm|ifc)"
+ )
+if (NOT imported_modules MATCHES "^${expected_imported_modules}$")
message(FATAL_ERROR
- "Incorrect exported modules in CXXModules::export_interfaces`: `${imported_modules}`\n`importable=${expected_source_dir}/importable.cxx,${expected_binary_dir}/CMakeFiles/export_interfaces.dir(/Debug)?/importable.(gcm|pcm|ifc)`")
+ "Incorrect exported modules in CXXModules::export_interfaces:\n"
+ " ${imported_modules}\n"
+ "does not match:\n"
+ " ${expected_imported_modules}"
+ )
endif ()
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-install-stderr.txt b/Tests/RunCMake/CXXModules/examples/export-interface-install-stderr.txt
index 5e4392a..c8dbdcf 100644
--- a/Tests/RunCMake/CXXModules/examples/export-interface-install-stderr.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-install-stderr.txt
@@ -1,4 +1,4 @@
-CMake Warning \(dev\) at CMakeLists.txt:7 \(target_sources\):
+CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-install/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/export-interface-install/CMakeLists.txt
index b5c6224..df87980 100644
--- a/Tests/RunCMake/CXXModules/examples/export-interface-install/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-install/CMakeLists.txt
@@ -18,10 +18,14 @@ target_sources(export_interfaces
BASE_DIRS
"${CMAKE_CURRENT_SOURCE_DIR}"
FILES
- importable.cxx)
+ importable.cxx
+ subdir/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-install/subdir/importable.cxx b/Tests/RunCMake/CXXModules/examples/export-interface-install/subdir/importable.cxx
new file mode 100644
index 0000000..07d6af6
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-install/subdir/importable.cxx
@@ -0,0 +1,6 @@
+export module subdir_importable;
+
+export int from_subdir()
+{
+ return 0;
+}
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-install/test/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/export-interface-install/test/CMakeLists.txt
index 7079256..78177ce 100644
--- a/Tests/RunCMake/CXXModules/examples/export-interface-install/test/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-install/test/CMakeLists.txt
@@ -14,19 +14,31 @@ get_property(file_sets TARGET CXXModules::export_interfaces
PROPERTY INTERFACE_CXX_MODULE_SETS)
if (NOT file_sets STREQUAL "modules")
message(FATAL_ERROR
- "Incorrect exported file sets in `CXXModules::export_interfaces`: `${file_sets}`")
+ "Incorrect exported file sets in CXXModules::export_interfaces:\n ${file_sets}")
endif ()
get_property(file_set_files TARGET CXXModules::export_interfaces
PROPERTY CXX_MODULE_SET_modules)
-if (NOT file_set_files STREQUAL "${expected_source_dir}/importable.cxx")
+set(expected_file_set_files
+ "${expected_source_dir}/importable.cxx"
+ "${expected_source_dir}/subdir/importable.cxx"
+ )
+if (NOT file_set_files STREQUAL "${expected_file_set_files}")
message(FATAL_ERROR
- "Incorrect exported file set paths in CXXModules::export_interfaces`: `${file_set_files}`")
+ "Incorrect exported file set paths in CXXModules::export_interfaces:\n ${file_set_files}")
endif ()
get_property(imported_modules TARGET CXXModules::export_interfaces
PROPERTY IMPORTED_CXX_MODULES_DEBUG)
-if (NOT imported_modules STREQUAL "importable=${expected_source_dir}/importable.cxx")
+set(expected_imported_modules
+ "importable=${expected_source_dir}/importable.cxx"
+ "subdir_importable=${expected_source_dir}/subdir/importable.cxx"
+ )
+if (NOT imported_modules STREQUAL "${expected_imported_modules}")
message(FATAL_ERROR
- "Incorrect exported modules in CXXModules::export_interfaces`: `${imported_modules}`")
+ "Incorrect exported modules in CXXModules::export_interfaces:\n"
+ " ${imported_modules}\n"
+ "does not match:\n"
+ " ${expected_imported_modules}"
+ )
endif ()
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build-stderr.txt b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build-stderr.txt
index 5e4392a..c8dbdcf 100644
--- a/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build-stderr.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build-stderr.txt
@@ -1,4 +1,4 @@
-CMake Warning \(dev\) at CMakeLists.txt:7 \(target_sources\):
+CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.
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..a93e3a4 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
@@ -18,10 +18,14 @@ target_sources(export_interfaces_no_properties
BASE_DIRS
"${CMAKE_CURRENT_SOURCE_DIR}"
FILES
- importable.cxx)
+ importable.cxx
+ subdir/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-build/subdir/importable.cxx b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build/subdir/importable.cxx
new file mode 100644
index 0000000..07d6af6
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build/subdir/importable.cxx
@@ -0,0 +1,6 @@
+export module subdir_importable;
+
+export int from_subdir()
+{
+ return 0;
+}
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build/test/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build/test/CMakeLists.txt
index 9cdc80a..18e933c 100644
--- a/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build/test/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-build/test/CMakeLists.txt
@@ -14,14 +14,18 @@ get_property(file_sets TARGET CXXModules::export_interfaces_no_properties
PROPERTY INTERFACE_CXX_MODULE_SETS)
if (NOT file_sets STREQUAL "modules")
message(FATAL_ERROR
- "Incorrect exported file sets in `CXXModules::export_interfaces_no_properties`: `${file_sets}`")
+ "Incorrect exported file sets in CXXModules::export_interfaces_no_properties:\n ${file_sets}")
endif ()
get_property(file_set_files TARGET CXXModules::export_interfaces_no_properties
PROPERTY CXX_MODULE_SET_modules)
-if (NOT file_set_files STREQUAL "${expected_dir}/importable.cxx")
+set(expected_file_set_files
+ "${expected_dir}/importable.cxx"
+ "${expected_dir}/subdir/importable.cxx"
+ )
+if (NOT file_set_files STREQUAL "${expected_file_set_files}")
message(FATAL_ERROR
- "Incorrect exported file set paths in CXXModules::export_interfaces_no_properties`: `${file_set_files}`")
+ "Incorrect exported file set paths in CXXModules::export_interfaces_no_properties:\n ${file_set_files}")
endif ()
get_property(imported_modules_set TARGET CXXModules::export_interfaces_no_properties
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install-stderr.txt b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install-stderr.txt
index 5e4392a..c8dbdcf 100644
--- a/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install-stderr.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install-stderr.txt
@@ -1,4 +1,4 @@
-CMake Warning \(dev\) at CMakeLists.txt:7 \(target_sources\):
+CMake Warning \(dev\) at CMakeLists.txt:[0-9]+ \(target_sources\):
CMake's C\+\+ module support is experimental. It is meant only for
experimentation and feedback to CMake developers.
This warning is for project developers. Use -Wno-dev to suppress it.
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..99e67e7 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
@@ -18,10 +18,14 @@ target_sources(export_interfaces_no_properties
BASE_DIRS
"${CMAKE_CURRENT_SOURCE_DIR}"
FILES
- importable.cxx)
+ importable.cxx
+ subdir/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()
+{
+}
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/subdir/importable.cxx b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/subdir/importable.cxx
new file mode 100644
index 0000000..07d6af6
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/subdir/importable.cxx
@@ -0,0 +1,6 @@
+export module subdir_importable;
+
+export int from_subdir()
+{
+ return 0;
+}
diff --git a/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/test/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/test/CMakeLists.txt
index 9cdc80a..18e933c 100644
--- a/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/test/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/export-interface-no-properties-install/test/CMakeLists.txt
@@ -14,14 +14,18 @@ get_property(file_sets TARGET CXXModules::export_interfaces_no_properties
PROPERTY INTERFACE_CXX_MODULE_SETS)
if (NOT file_sets STREQUAL "modules")
message(FATAL_ERROR
- "Incorrect exported file sets in `CXXModules::export_interfaces_no_properties`: `${file_sets}`")
+ "Incorrect exported file sets in CXXModules::export_interfaces_no_properties:\n ${file_sets}")
endif ()
get_property(file_set_files TARGET CXXModules::export_interfaces_no_properties
PROPERTY CXX_MODULE_SET_modules)
-if (NOT file_set_files STREQUAL "${expected_dir}/importable.cxx")
+set(expected_file_set_files
+ "${expected_dir}/importable.cxx"
+ "${expected_dir}/subdir/importable.cxx"
+ )
+if (NOT file_set_files STREQUAL "${expected_file_set_files}")
message(FATAL_ERROR
- "Incorrect exported file set paths in CXXModules::export_interfaces_no_properties`: `${file_set_files}`")
+ "Incorrect exported file set paths in CXXModules::export_interfaces_no_properties:\n ${file_set_files}")
endif ()
get_property(imported_modules_set TARGET CXXModules::export_interfaces_no_properties