-
Notifications
You must be signed in to change notification settings - Fork 10.5k
/
Copy pathCMakeLists.txt
142 lines (138 loc) · 4.89 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
add_subdirectory(InternalShims)
gyb_expand(Task+init.swift.gyb Task+init.swift)
gyb_expand(TaskGroup+addTask.swift.gyb TaskGroup+addTask.swift)
gyb_expand(Task+startSynchronously.swift.gyb Task+startSynchronously.swift)
add_library(swift_Concurrency
Actor.cpp
AsyncLet.cpp
AsyncStream.cpp
Clock.cpp
ConcurrencyHooks.cpp
EmbeddedSupport.cpp
Error.cpp
ExecutorBridge.cpp
ExecutorImpl.cpp
ExecutorChecks.cpp
GlobalExecutor.cpp
Setup.cpp
Task.cpp
TaskAlloc.cpp
TaskGroup.cpp
TaskLocal.cpp
TaskStatus.cpp
ThreadingError.cpp
TracingSignpost.cpp
"${PROJECT_SOURCE_DIR}/CompatibilityOverride/CompatibilityOverride.cpp"
"${PROJECT_SOURCE_DIR}/linker-support/magic-symbols-for-install-name.c"
Actor.swift
AsyncCompactMapSequence.swift
AsyncDropFirstSequence.swift
AsyncDropWhileSequence.swift
AsyncFilterSequence.swift
AsyncFlatMapSequence.swift
AsyncIteratorProtocol.swift
AsyncLet.swift
AsyncMapSequence.swift
AsyncPrefixSequence.swift
AsyncPrefixWhileSequence.swift
AsyncSequence.swift
AsyncStream.swift
AsyncStreamBuffer.swift
AsyncThrowingCompactMapSequence.swift
AsyncThrowingDropWhileSequence.swift
AsyncThrowingFilterSequence.swift
AsyncThrowingFlatMapSequence.swift
AsyncThrowingMapSequence.swift
AsyncThrowingPrefixWhileSequence.swift
AsyncThrowingStream.swift
CheckedContinuation.swift
Clock.swift
ContinuousClock.swift
CooperativeExecutor.swift
Deque/_DequeBuffer.swift
Deque/_DequeBufferHeader.swift
Deque/_DequeSlot.swift
Deque/_UnsafeWrappedBuffer.swift
Deque/Compatibility.swift
Deque/Deque.swift
Deque/Deque+Codable.swift
Deque/Deque+Collection.swift
Deque/Deque+CustomDebugStringConvertible.swift
Deque/Deque+CustomReflectable.swift
Deque/Deque+CustomStringConvertible.swift
Deque/Deque+Equatable.swift
Deque/Deque+ExpressibleByArrayLiteral.swift
Deque/Deque+Extras.swift
Deque/Deque+Hashable.swift
Deque/Deque+Storage.swift
Deque/Deque+Testing.swift
Deque/Deque+UnsafeHandle.swift
Deque/UnsafeMutableBufferPointer+Utilities.swift
DiscardingTaskGroup.swift
DummyExecutor.swift
Errors.swift
Executor.swift
ExecutorAssertions.swift
ExecutorBridge.swift
GlobalActor.swift
GlobalConcurrentExecutor.swift
MainActor.swift
PartialAsyncTask.swift
PlatformExecutorDarwin.swift
PlatformExecutorLinux.swift
PlatformExecutorWindows.swift
PriorityQueue.swift
SourceCompatibilityShims.swift
SuspendingClock.swift
Task.swift
Task+PriorityEscalation.swift
Task+TaskExecutor.swift
TaskCancellation.swift
TaskGroup.swift
TaskLocal.swift
TaskSleep.swift
TaskSleepDuration.swift
"${CMAKE_CURRENT_BINARY_DIR}/Task+init.swift"
"${CMAKE_CURRENT_BINARY_DIR}/TaskGroup+addTask.swift"
"${CMAKE_CURRENT_BINARY_DIR}/Task+startSynchronously.swift")
include(${SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR}.cmake)
target_compile_definitions(swift_Concurrency PRIVATE
$<$<COMPILE_LANGUAGE:C,CXX>:-DSWIFT_TARGET_LIBRARY_NAME=swift_Concurrency>
# NOTE: VS2017 <15.8 would round clamp alignment to alignof(max_align_t) which
# was non-conformant. Indicate that we wish to use extended alignment.
$<$<AND:$<PLATFORM_ID:Windows>,$<COMPILE_LANGUAGE:C,CXX>>:-D_ENABLE_EXTENDED_ALIGNED_STORAGE=1>
$<$<COMPILE_LANGUAGE:C,CXX>:-D__STDC_WANT_LIB_EXT1__=1>)
target_compile_options(swift_Concurrency PRIVATE
$<$<COMPILE_LANGUAGE:Swift>:-parse-stdlib>
# NOTE: do not remove until `IsolatedAny` is on by default in all supported
# compilers.
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature IsolatedAny>"
# NOTE: enable the async frame pointer on Darwin to faciliate debugging.
$<$<AND:$<PLATFORM_ID:Darwin>,$<COMPILE_LANGUAGE:C,CXX>>:-fswift-async-fp=always>
"$<$<AND:$<PLATFORM_ID:Darwin>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -swift-async-frame-pointer=always>"
"$<$<AND:$<BOOL:${BUILD_SHARED_LIBS}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xcc -Dswift_Concurrency_EXPORTS>")
target_include_directories(swift_Concurrency PRIVATE
# FIXME: Use of `swift/Runtime/...`, `swift/ABI/...`, and `swift/Demangling/...`
"${SwiftCore_SWIFTC_SOURCE_DIR}/include"
# FIXME: grant access to `runtime/CMakeConfig.h` which should be available
# through the swiftRuntime target.
"${PROJECT_BINARY_DIR}/include")
target_link_libraries(swift_Concurrency PRIVATE
swiftShims
swiftConcurrencyInternalShims
$<$<BOOL:${BUILD_SHARED_LIBS}>:swiftThreading>
$<$<PLATFORM_ID:Windows>:Synchronization>
$<$<PLATFORM_ID:Windows>:mincore>
# Link to the runtime that we are just building.
swiftCore)
set_target_properties(swift_Concurrency PROPERTIES
Swift_MODULE_NAME _Concurrency
LINKER_LANGUAGE CXX)
install(TARGETS swift_Concurrency
EXPORT SwiftCoreTargets
COMPONENT SwiftCore_runtime
ARCHIVE DESTINATION "${SwiftCore_INSTALL_LIBDIR}"
LIBRARY DESTINATION "${SwiftCore_INSTALL_LIBDIR}"
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
emit_swift_interface(swift_Concurrency)
install_swift_interface(swift_Concurrency)