Imported Upstream version 3.25.0
[platform/upstream/cmake.git] / Tests / RunCMake / CXXModules / examples / export-bmi-and-interface-build / CMakeLists.txt
1 cmake_minimum_required(VERSION 3.24)
2 project(cxx_modules_export_bmi_and_interfaces CXX)
3
4 include("${CMAKE_SOURCE_DIR}/../cxx-modules-rules.cmake")
5
6 add_library(export_bmi_and_interfaces STATIC)
7 target_sources(export_bmi_and_interfaces
8   PRIVATE
9     forward.cxx
10   PRIVATE
11     FILE_SET modules_private TYPE CXX_MODULES
12       BASE_DIRS
13         "${CMAKE_CURRENT_SOURCE_DIR}"
14       FILES
15         private.cxx
16   PUBLIC
17     FILE_SET modules TYPE CXX_MODULES
18       BASE_DIRS
19         "${CMAKE_CURRENT_SOURCE_DIR}"
20       FILES
21         importable.cxx)
22 target_compile_features(export_bmi_and_interfaces PUBLIC cxx_std_20)
23
24 install(TARGETS export_bmi_and_interfaces
25   EXPORT CXXModules
26   FILE_SET modules DESTINATION "lib/cxx/miu"
27   CXX_MODULES_BMI DESTINATION "lib/cxx/bmi")
28 export(EXPORT CXXModules
29   NAMESPACE CXXModules::
30   FILE "${CMAKE_CURRENT_BINARY_DIR}/export_bmi_and_interfaces-targets.cmake"
31   CXX_MODULES_DIRECTORY "export_bmi_and_interfaces-cxx-modules")
32 file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/export_bmi_and_interfaces-config.cmake"
33   "include(\"\${CMAKE_CURRENT_LIST_DIR}/export_bmi_and_interfaces-targets.cmake\")
34 set(\${CMAKE_FIND_PACKAGE_NAME}_FOUND 1)
35 ")
36
37 set(generator
38   -G "${CMAKE_GENERATOR}")
39 if (CMAKE_GENERATOR_TOOLSET)
40   list(APPEND generator
41     -T "${CMAKE_GENERATOR_TOOLSET}")
42 endif ()
43 if (CMAKE_GENERATOR_PLATFORM)
44   list(APPEND generator
45     -A "${CMAKE_GENERATOR_PLATFORM}")
46 endif ()
47
48 add_test(NAME export_bmi_and_interfaces_build
49   COMMAND
50     "${CMAKE_COMMAND}"
51     "-Dexpected_source_dir=${CMAKE_CURRENT_SOURCE_DIR}"
52     "-Dexpected_binary_dir=${CMAKE_CURRENT_BINARY_DIR}"
53     "-Dexport_bmi_and_interfaces_DIR=${CMAKE_CURRENT_BINARY_DIR}"
54     ${generator}
55     -S "${CMAKE_CURRENT_SOURCE_DIR}/test"
56     -B "${CMAKE_CURRENT_BINARY_DIR}/test")