diff --git a/CMakeLists.txt b/CMakeLists.txt index eac397f7781d787380801e43f6bbb470cdaf8ff8..4c760d0fdb97984e75cbc9ce051a7093eb83d464 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -241,9 +241,14 @@ if (NOT WIN32 AND NOT libcxx) list(GET __libcpp_full_paths_list 0 __libcpp_full_path) configure_file(${CMAKE_SOURCE_DIR}/build/unix/modulemap.overlay.yaml.in ${CMAKE_BINARY_DIR}/include/modulemap.overlay.yaml @ONLY) + configure_file(${CMAKE_SOURCE_DIR}/build/unix/modulemap-installed.overlay.yaml.in ${CMAKE_BINARY_DIR}/build/modulemap.overlay.yaml @ONLY) + install(FILES "${CMAKE_BINARY_DIR}/build/modulemap.overlay.yaml" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT headers) configure_file(${CMAKE_SOURCE_DIR}/build/unix/stl.modulemap ${CMAKE_BINARY_DIR}/include/stl.modulemap) + install(FILES "${CMAKE_BINARY_DIR}/include/stl.modulemap" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT headers) configure_file(${CMAKE_SOURCE_DIR}/build/unix/libc.modulemap ${CMAKE_BINARY_DIR}/include/libc.modulemap) + install(FILES "${CMAKE_BINARY_DIR}/include/libc.modulemap" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT headers) + else() message(SEND_ERROR "Couldn't find c++ library paths, no modulemap overlay will be installed! (__libcpp_full_paths = '${__libcpp_full_paths}')") endif() diff --git a/build/unix/modulemap-installed.overlay.yaml.in b/build/unix/modulemap-installed.overlay.yaml.in new file mode 100644 index 0000000000000000000000000000000000000000..b367b01839aeca73e8f8c38ae07ec1ccbcf4c0d0 --- /dev/null +++ b/build/unix/modulemap-installed.overlay.yaml.in @@ -0,0 +1,19 @@ +{ + 'version': 0, + 'roots': [ + { 'name': '@__libcpp_full_path@', 'type': 'directory', + 'contents': [ + { 'name': 'module.modulemap', 'type': 'file', + 'external-contents': '@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@/stl.modulemap' + } + ] + }, + { 'name': '/usr/include/', 'type': 'directory', + 'contents': [ + { 'name': 'module.modulemap', 'type': 'file', + 'external-contents': '@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@/libc.modulemap' + } + ] + } + ] +}