1 cmake_minimum_required(VERSION 3.24)
2 project(cxx_modules_library NONE)
4 set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "3c375311-a3c9-4396-a187-3227ef642046")
6 find_package(export_bmi_and_interfaces REQUIRED)
8 if (NOT TARGET CXXModules::export_bmi_and_interfaces)
10 "Missing imported target")
13 get_property(file_sets TARGET CXXModules::export_bmi_and_interfaces
14 PROPERTY INTERFACE_CXX_MODULE_SETS)
15 if (NOT file_sets STREQUAL "modules")
17 "Incorrect exported file sets in `CXXModules::export_bmi_and_interfaces`: `${file_sets}`")
20 get_property(file_set_files TARGET CXXModules::export_bmi_and_interfaces
21 PROPERTY CXX_MODULE_SET_modules)
22 if (NOT file_set_files STREQUAL "${expected_source_dir}/importable.cxx")
24 "Incorrect exported file set paths in CXXModules::export_bmi_and_interfaces`: `${file_set_files}`")
27 get_property(imported_modules TARGET CXXModules::export_bmi_and_interfaces
28 PROPERTY IMPORTED_CXX_MODULES_DEBUG)
29 if (NOT imported_modules MATCHES "importable=${expected_source_dir}/importable.cxx,${expected_binary_dir}/importable.(gcm|pcm|ifc)")
31 "Incorrect exported modules in CXXModules::export_bmi_and_interfaces`: `${imported_modules}`")