1 # Fake out that we have dyndep; we only need to generate, not actually build
3 set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP 1)
4 set(CMAKE_EXPERIMENTAL_CXX_SCANDEP_SOURCE "")
8 if (NOT CMAKE_GENERATOR MATCHES "Ninja")
10 "This test requires a 'Ninja' generator to be used.")
13 add_library(ninja-bmi-install-public)
14 target_sources(ninja-bmi-install-public
16 sources/module-impl.cxx
17 sources/module-internal-part-impl.cxx
18 sources/module-part-impl.cxx
19 sources/module-use.cxx
21 FILE_SET modules TYPE CXX_MODULES
23 "${CMAKE_CURRENT_SOURCE_DIR}/sources"
26 sources/module-part.cxx
27 FILE_SET internal_partitions TYPE CXX_MODULES FILES
28 sources/module-internal-part.cxx)
29 target_compile_features(ninja-bmi-install-public
32 set_property(TARGET ninja-bmi-install-public
33 PROPERTY EXPORT_NAME "with-public")
35 install(TARGETS ninja-bmi-install-public
39 FILE_SET internal_partitions
40 DESTINATION "lib/cxx/internals"
41 COMPONENT "modules-internal"
43 DESTINATION "lib/cxx/modules/$<CONFIG>"
46 add_library(ninja-bmi-install-private)
47 target_sources(ninja-bmi-install-private
49 sources/module-impl.cxx
50 sources/module-internal-part-impl.cxx
51 sources/module-part-impl.cxx
52 sources/module-use.cxx
54 FILE_SET modules TYPE CXX_MODULES
56 "${CMAKE_CURRENT_SOURCE_DIR}/sources"
59 sources/module-part.cxx
60 FILE_SET internal_partitions TYPE CXX_MODULES FILES
61 sources/module-internal-part.cxx)
62 target_compile_features(ninja-bmi-install-private
65 set_property(TARGET ninja-bmi-install-private
66 PROPERTY EXPORT_NAME "with-private")
68 set(CMAKE_INSTALL_MESSAGE LAZY)
69 install(TARGETS ninja-bmi-install-private
71 DESTINATION "lib/cxx/modules/private/$<CONFIG>"
73 OWNER_READ OWNER_WRITE