Imported Upstream version 3.25.0
[platform/upstream/cmake.git] / Tests / RunCMake / CXXModules / examples / export-interface-install / test / CMakeLists.txt
1 cmake_minimum_required(VERSION 3.24)
2 project(cxx_modules_library NONE)
3
4 set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "3c375311-a3c9-4396-a187-3227ef642046")
5
6 find_package(export_interfaces REQUIRED)
7
8 if (NOT TARGET CXXModules::export_interfaces)
9   message(FATAL_ERROR
10     "Missing imported target")
11 endif ()
12
13 get_property(file_sets TARGET CXXModules::export_interfaces
14   PROPERTY INTERFACE_CXX_MODULE_SETS)
15 if (NOT file_sets STREQUAL "modules")
16   message(FATAL_ERROR
17     "Incorrect exported file sets in `CXXModules::export_interfaces`: `${file_sets}`")
18 endif ()
19
20 get_property(file_set_files TARGET CXXModules::export_interfaces
21   PROPERTY CXX_MODULE_SET_modules)
22 if (NOT file_set_files STREQUAL "${expected_dir}/importable.cxx")
23   message(FATAL_ERROR
24     "Incorrect exported file set paths in CXXModules::export_interfaces`: `${file_set_files}`")
25 endif ()
26
27 get_property(imported_modules_set TARGET CXXModules::export_interfaces
28   PROPERTY IMPORTED_CXX_MODULES_DEBUG SET)
29 if (imported_modules_set)
30   message(FATAL_ERROR
31     "Unexpected C++ modules specified.")
32 endif ()