mirror of
https://codeberg.org/guix/guix.git
synced 2026-01-25 03:55:08 -06:00
* 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
50 lines
3.3 KiB
Diff
50 lines
3.3 KiB
Diff
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")
|