Skip to content

Commit 387b87f

Browse files
committed
dispatch: attempt to use a VFS overlay
Use a VFS overlay to avoid polluting the source tree.
1 parent 4fa1a30 commit 387b87f

File tree

3 files changed

+18
-10
lines changed

3 files changed

+18
-10
lines changed

.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,3 @@ config
2929
configure
3030
libtool
3131
.dirstamp
32-
/dispatch/module.modulemap

dispatch/dispatch-vfs.yaml.in

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
version: 0
3+
case-sensitive: false
4+
use-external-names: false
5+
roots:
6+
- name: "@CMAKE_CURRENT_SOURCE_DIR@"
7+
type: directory
8+
contents:
9+
- name: module.modulemap
10+
type: file
11+
external-contents: "@DISPATCH_MODULE_MAP@"

src/swift/CMakeLists.txt

+7-9
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,14 @@ target_include_directories(DispatchStubs PRIVATE
1818
set_target_properties(DispatchStubs PROPERTIES
1919
POSITION_INDEPENDENT_CODE YES)
2020

21-
2221
if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
23-
add_custom_command(OUTPUT ${PROJECT_SOURCE_DIR}/dispatch/module.modulemap
24-
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/dispatch/darwin/module.modulemap ${PROJECT_SOURCE_DIR}/dispatch/module.modulemap)
22+
set(DISPATCH_MODULE_MAP ${PROJECT_SOURCE_DIR}/dispatch/darwin/module.modulemap)
2523
else()
26-
add_custom_command(OUTPUT ${PROJECT_SOURCE_DIR}/dispatch/module.modulemap
27-
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/dispatch/generic/module.modulemap ${PROJECT_SOURCE_DIR}/dispatch/module.modulemap)
24+
set(DISPATCH_MODULE_MAP ${PROJECT_SOURCE_DIR}/dispatch/generic/module.modulemap)
2825
endif()
29-
add_custom_target(module-map ALL
30-
DEPENDS ${PROJECT_SOURCE_DIR}/dispatch/module.modulemap)
31-
26+
configure_file(dispatch-vfs.yaml.in
27+
${CMAKE_CURRENT_BINARY_DIR}/dispatch-vfs-overlay.yaml
28+
@ONLY)
3229

3330
add_library(swiftDispatch
3431
Block.swift
@@ -44,7 +41,8 @@ target_compile_options(swiftDispatch PRIVATE
4441
"SHELL:-Xcc -fblocks"
4542
"SHELL:-Xcc -fmodule-map-file=${PROJECT_SOURCE_DIR}/dispatch/module.modulemap"
4643
"SHELL:-Xcc -I${PROJECT_SOURCE_DIR}"
47-
"SHELL:-Xcc -I${PROJECT_SOURCE_DIR}/src/swift/shims")
44+
"SHELL:-Xcc -I${PROJECT_SOURCE_DIR}/src/swift/shims"
45+
"SHELL:-vfsoverlay ${CMAKE_CURRENT_BINARY_DIR}/dispatch-vfs-overlay.yaml")
4846
set_target_properties(swiftDispatch PROPERTIES
4947
Swift_MODULE_NAME Dispatch
5048
Swift_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/swift

0 commit comments

Comments
 (0)