Imported Upstream version 3.25.0
[platform/upstream/cmake.git] / Tests / RunCMake / CXXModules / examples / export-bmi-and-interface-install / 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 install(EXPORT CXXModules
29   NAMESPACE CXXModules::
30   DESTINATION "lib/cmake/export_bmi_and_interfaces"
31   FILE "export_bmi_and_interfaces-targets.cmake"
32   CXX_MODULES_DIRECTORY "export_bmi_and_interfaces-cxx-modules")
33 file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/export_bmi_and_interfaces-config.cmake"
34   "include(\"\${CMAKE_CURRENT_LIST_DIR}/export_bmi_and_interfaces-targets.cmake\")
35 set(\${CMAKE_FIND_PACKAGE_NAME}_FOUND 1)
36 ")
37 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/export_bmi_and_interfaces-config.cmake"
38   DESTINATION "lib/cmake/export_bmi_and_interfaces")
39
40 set(generator
41   -G "${CMAKE_GENERATOR}")
42 if (CMAKE_GENERATOR_TOOLSET)
43   list(APPEND generator
44     -T "${CMAKE_GENERATOR_TOOLSET}")
45 endif ()
46 if (CMAKE_GENERATOR_PLATFORM)
47   list(APPEND generator
48     -A "${CMAKE_GENERATOR_PLATFORM}")
49 endif ()
50
51 add_test(NAME export_bmi_and_interfaces_build
52   COMMAND
53     "${CMAKE_COMMAND}"
54     "-Dexpected_source_dir=${CMAKE_INSTALL_PREFIX}/lib/cxx/miu"
55     "-Dexpected_binary_dir=${CMAKE_INSTALL_PREFIX}/lib/cxx/bmi"
56     "-Dexport_bmi_and_interfaces_DIR=${CMAKE_INSTALL_PREFIX}/lib/cmake/export_bmi_and_interfaces"
57     ${generator}
58     -S "${CMAKE_CURRENT_SOURCE_DIR}/test"
59     -B "${CMAKE_CURRENT_BINARY_DIR}/test")