summaryrefslogtreecommitdiff
path: root/gnu/packages/patches/swift-corelibs-libdispatch-5.7.3-modulemap.patch
diff options
context:
space:
mode:
authorDanny Milosavljevic <dannym@friendly-machines.com>2025-10-20 08:25:07 +0000
committerDanny Milosavljevic <dannym@friendly-machines.com>2025-11-02 16:13:35 +0100
commit335c424a3d4496907c756d3c3f4c5bf35d9580f9 (patch)
treee870bcf562defdb87b84ecdca98c345c15af9232 /gnu/packages/patches/swift-corelibs-libdispatch-5.7.3-modulemap.patch
parent3aa493477c9d271aeb8a6c75647a9dd00cbfb508 (diff)
gnu: Add swift-bootstrap.
* gnu/packages/swift.scm (swift-bootstrap): New variable. (%swift-bootstrap-source): New variable. (%swift-libdispatch-source): New variable. * gnu/local.mk (dist_patch_DATA): Add swift-5.7.3-sdk-path.patch, swift-5.7.3-sourcekit-rpath.patch, swift-corelibs-libdispatch-5.6.3-lock-cpp.patch, swift-corelibs-libdispatch-5.7.3-modulemap.patch. * gnu/packages/patches/swift-5.7.3-sdk-path.patch: New file. * gnu/packages/patches/swift-5.7.3-sourcekit-rpath.patch: New file. * gnu/packages/patches/swift-corelibs-libdispatch-5.6.3-lock-cpp.patch: New file. * gnu/packages/patches/swift-corelibs-libdispatch-5.7.3-modulemap.patch: New file. Change-Id: Ibcab88d88be0cc9634f297d17174ca99060e4d98
Diffstat (limited to 'gnu/packages/patches/swift-corelibs-libdispatch-5.7.3-modulemap.patch')
-rw-r--r--gnu/packages/patches/swift-corelibs-libdispatch-5.7.3-modulemap.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/gnu/packages/patches/swift-corelibs-libdispatch-5.7.3-modulemap.patch b/gnu/packages/patches/swift-corelibs-libdispatch-5.7.3-modulemap.patch
new file mode 100644
index 00000000000..6084a1cfdef
--- /dev/null
+++ b/gnu/packages/patches/swift-corelibs-libdispatch-5.7.3-modulemap.patch
@@ -0,0 +1,50 @@
+Author: Danny Milosavljevic <dannym@friendly-machines.com>
+Date: 2025-10-20
+Subject: Fix module.modulemap to use build directory instead of src directory
+
+Swift corelibs-libdispatch 5.7.3 tries to copy module.modulemap files into the
+source directory, which fails when the source is in the read-only /gnu/store.
+This patch changes the output paths to use PROJECT_BINARY_DIR instead.
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -262,25 +262,29 @@
+
+ if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
+ add_custom_command(OUTPUT
+- "${PROJECT_SOURCE_DIR}/dispatch/module.modulemap"
+- "${PROJECT_SOURCE_DIR}/private/module.modulemap"
++ "${PROJECT_BINARY_DIR}/dispatch/module.modulemap"
++ "${PROJECT_BINARY_DIR}/private/module.modulemap"
+ COMMAND
+- ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/dispatch/darwin/module.modulemap" "${PROJECT_SOURCE_DIR}/dispatch/module.modulemap"
++ ${CMAKE_COMMAND} -E make_directory "${PROJECT_BINARY_DIR}/dispatch" "${PROJECT_BINARY_DIR}/private"
+ COMMAND
+- ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/private/darwin/module.modulemap" "${PROJECT_SOURCE_DIR}/private/module.modulemap")
++ ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/dispatch/darwin/module.modulemap" "${PROJECT_BINARY_DIR}/dispatch/module.modulemap"
++ COMMAND
++ ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/private/darwin/module.modulemap" "${PROJECT_BINARY_DIR}/private/module.modulemap")
+ else()
+ add_custom_command(OUTPUT
+- "${PROJECT_SOURCE_DIR}/dispatch/module.modulemap"
+- "${PROJECT_SOURCE_DIR}/private/module.modulemap"
++ "${PROJECT_BINARY_DIR}/dispatch/module.modulemap"
++ "${PROJECT_BINARY_DIR}/private/module.modulemap"
++ COMMAND
++ ${CMAKE_COMMAND} -E make_directory "${PROJECT_BINARY_DIR}/dispatch" "${PROJECT_BINARY_DIR}/private"
+ COMMAND
+- ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/dispatch/generic/module.modulemap" "${PROJECT_SOURCE_DIR}/dispatch/module.modulemap"
++ ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/dispatch/generic/module.modulemap" "${PROJECT_BINARY_DIR}/dispatch/module.modulemap"
+ COMMAND
+- ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/private/generic/module.modulemap" "${PROJECT_SOURCE_DIR}/private/module.modulemap")
++ ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/private/generic/module.modulemap" "${PROJECT_BINARY_DIR}/private/module.modulemap")
+ endif()
+ add_custom_target(module-maps ALL
+ DEPENDS
+- "${PROJECT_SOURCE_DIR}/dispatch/module.modulemap"
+- "${PROJECT_SOURCE_DIR}/private/module.modulemap")
++ "${PROJECT_BINARY_DIR}/dispatch/module.modulemap"
++ "${PROJECT_BINARY_DIR}/private/module.modulemap")
+
+ configure_file("${PROJECT_SOURCE_DIR}/cmake/config.h.in"
+ "${PROJECT_BINARY_DIR}/config/config_ac.h")