projects/guix·blob python-team · refs

50 lines · 3.3 KiB

1Author: Danny Milosavljevic <[email protected]>
2Date: 2025-10-20
3Subject: Fix module.modulemap to use build directory instead of src directory
4
5Swift corelibs-libdispatch 5.7.3 tries to copy module.modulemap files into the
6source directory, which fails when the source is in the read-only /gnu/store.
7This patch changes the output paths to use PROJECT_BINARY_DIR instead.
8
9--- a/CMakeLists.txt
10+++ b/CMakeLists.txt
11@@ -262,25 +262,29 @@
12
13 if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
14 add_custom_command(OUTPUT
15- "${PROJECT_SOURCE_DIR}/dispatch/module.modulemap"
16- "${PROJECT_SOURCE_DIR}/private/module.modulemap"
17+ "${PROJECT_BINARY_DIR}/dispatch/module.modulemap"
18+ "${PROJECT_BINARY_DIR}/private/module.modulemap"
19 COMMAND
20- ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/dispatch/darwin/module.modulemap" "${PROJECT_SOURCE_DIR}/dispatch/module.modulemap"
21+ ${CMAKE_COMMAND} -E make_directory "${PROJECT_BINARY_DIR}/dispatch" "${PROJECT_BINARY_DIR}/private"
22 COMMAND
23- ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/private/darwin/module.modulemap" "${PROJECT_SOURCE_DIR}/private/module.modulemap")
24+ ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/dispatch/darwin/module.modulemap" "${PROJECT_BINARY_DIR}/dispatch/module.modulemap"
25+ COMMAND
26+ ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/private/darwin/module.modulemap" "${PROJECT_BINARY_DIR}/private/module.modulemap")
27 else()
28 add_custom_command(OUTPUT
29- "${PROJECT_SOURCE_DIR}/dispatch/module.modulemap"
30- "${PROJECT_SOURCE_DIR}/private/module.modulemap"
31+ "${PROJECT_BINARY_DIR}/dispatch/module.modulemap"
32+ "${PROJECT_BINARY_DIR}/private/module.modulemap"
33+ COMMAND
34+ ${CMAKE_COMMAND} -E make_directory "${PROJECT_BINARY_DIR}/dispatch" "${PROJECT_BINARY_DIR}/private"
35 COMMAND
36- ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/dispatch/generic/module.modulemap" "${PROJECT_SOURCE_DIR}/dispatch/module.modulemap"
37+ ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/dispatch/generic/module.modulemap" "${PROJECT_BINARY_DIR}/dispatch/module.modulemap"
38 COMMAND
39- ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/private/generic/module.modulemap" "${PROJECT_SOURCE_DIR}/private/module.modulemap")
40+ ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/private/generic/module.modulemap" "${PROJECT_BINARY_DIR}/private/module.modulemap")
41 endif()
42 add_custom_target(module-maps ALL
43 DEPENDS
44- "${PROJECT_SOURCE_DIR}/dispatch/module.modulemap"
45- "${PROJECT_SOURCE_DIR}/private/module.modulemap")
46+ "${PROJECT_BINARY_DIR}/dispatch/module.modulemap"
47+ "${PROJECT_BINARY_DIR}/private/module.modulemap")
48
49 configure_file("${PROJECT_SOURCE_DIR}/cmake/config.h.in"
50 "${PROJECT_BINARY_DIR}/config/config_ac.h")