@@ -117,7 +117,7 @@ endif()
117117option (SWIFT_STDLIB_ENABLE_PRESPECIALIZATION
118118 "Should stdlib be built with generic metadata prespecialization enabled. Defaults to On on Darwin and on Linux."
119119 "${SWIFT_STDLIB_ENABLE_PRESPECIALIZATION_default} " )
120-
120+
121121option (SWIFT_STDLIB_ENABLE_UNICODE_DATA
122122 "Should stdlib be built with full unicode support"
123123 TRUE )
@@ -198,12 +198,6 @@ option(SWIFT_ENABLE_REFLECTION
198198set (SWIFT_STDLIB_REFLECTION_METADATA "enabled" CACHE STRING
199199 "Build stdlib with runtime metadata (valid options are 'enabled', 'disabled' and 'debugger-only')." )
200200
201- if (SWIFT_FREESTANDING_FLAVOR STREQUAL "apple" AND NOT SWIFT_FREESTANDING_IS_DARWIN)
202- set (SWIFT_STDLIB_TASK_TO_THREAD_MODEL_CONCURRENCY_default TRUE )
203- else ()
204- set (SWIFT_STDLIB_TASK_TO_THREAD_MODEL_CONCURRENCY_default FALSE )
205- endif ()
206-
207201option (SWIFT_STDLIB_TASK_TO_THREAD_MODEL_CONCURRENCY
208202 "Should concurrency use the task-to-thread model."
209203 "${SWIFT_STDLIB_TASK_TO_THREAD_MODEL_CONCURRENCY_default} " )
@@ -220,13 +214,28 @@ option(SWIFT_STDLIB_SINGLE_THREADED_CONCURRENCY
220214 "Build the standard libraries assuming that they will be used in an environment with only a single thread."
221215 FALSE )
222216
223- if (SWIFT_STDLIB_TASK_TO_THREAD_MODEL_CONCURRENCY)
224- set (SWIFT_CONCURRENCY_GLOBAL_EXECUTOR_default "none" )
225- elseif (SWIFT_STDLIB_SINGLE_THREADED_CONCURRENCY)
226- set (SWIFT_CONCURRENCY_GLOBAL_EXECUTOR_default "singlethreaded" )
227- else ()
228- set (SWIFT_CONCURRENCY_GLOBAL_EXECUTOR_default "dispatch" )
229- endif ()
217+ # Use dispatch as the system scheduler by default.
218+ # For convenience, we set this to false when concurrency is disabled.
219+ set (SWIFT_CONCURRENCY_USES_DISPATCH FALSE )
220+ if (SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY)
221+
222+ if (SWIFT_ENABLE_DISPATCH)
223+ set (SWIFT_CONCURRENCY_USES_DISPATCH TRUE )
224+ if (NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT EXISTS "${SWIFT_PATH_TO_LIBDISPATCH_SOURCE} " )
225+ message (SEND_ERROR "Concurrency requires libdispatch on non-Darwin hosts. Please specify SWIFT_PATH_TO_LIBDISPATCH_SOURCE" )
226+ endif ()
227+ endif ()
228+
229+ if (SWIFT_CONCURRENCY_USES_DISPATCH)
230+ set (SWIFT_CONCURRENCY_GLOBAL_EXECUTOR_default "dispatch" )
231+ elseif (SWIFT_STDLIB_TASK_TO_THREAD_MODEL_CONCURRENCY)
232+ set (SWIFT_CONCURRENCY_GLOBAL_EXECUTOR_default "none" )
233+ elseif (SWIFT_STDLIB_SINGLE_THREADED_CONCURRENCY)
234+ set (SWIFT_CONCURRENCY_GLOBAL_EXECUTOR_default "singlethreaded" )
235+ else ()
236+ set (SWIFT_CONCURRENCY_GLOBAL_EXECUTOR_default "hooked" )
237+ endif ()
238+ endif () # SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY
230239
231240set (SWIFT_CONCURRENCY_GLOBAL_EXECUTOR
232241 "${SWIFT_CONCURRENCY_GLOBAL_EXECUTOR_default} " CACHE STRING
@@ -283,16 +292,3 @@ set(SWIFT_RUNTIME_FIXED_BACKTRACER_PATH "" CACHE STRING
283292 "If set, provides a fixed path to the swift-backtrace binary. This
284293 will disable dynamic determination of the path and will also disable
285294 the setting in SWIFT_BACKTRACE." )
286-
287- # Use dispatch as the system scheduler by default.
288- # For convenience, we set this to false when concurrency is disabled.
289- set (SWIFT_CONCURRENCY_USES_DISPATCH FALSE )
290- if (SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY AND "${SWIFT_CONCURRENCY_GLOBAL_EXECUTOR} " STREQUAL "dispatch" )
291- set (SWIFT_CONCURRENCY_USES_DISPATCH TRUE )
292- endif ()
293-
294- if (SWIFT_CONCURRENCY_USES_DISPATCH AND NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin" )
295- if (NOT EXISTS "${SWIFT_PATH_TO_LIBDISPATCH_SOURCE} " )
296- message (SEND_ERROR "Concurrency requires libdispatch on non-Darwin hosts. Please specify SWIFT_PATH_TO_LIBDISPATCH_SOURCE" )
297- endif ()
298- endif ()
0 commit comments