mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
If you use SwiftStdlibCurrentOS availability, you will be able to use new types and functions from within the implementation. This works by, when appropriate, building with the CurrentOS availability set to the current deployment target. rdar://150944675
76 lines
3.2 KiB
CMake
76 lines
3.2 KiB
CMake
# This file is designed to setup reasonable defaults for the various settings so
|
|
# that configuring a build for a given platform is likely to build
|
|
# out-of-the-box without customization. This does not mean that it is the only
|
|
# way that will work, or that it represents a shipping configuration.
|
|
# User-specified configurations should be done through cache files or by setting
|
|
# the variable with `-DSwiftCore_*` on the commandline.
|
|
|
|
set(SwiftCore_ENABLE_BACKTRACING_default OFF) # TODO: enable this by default
|
|
set(SwiftCore_ENABLE_COMMANDLINE_SUPPORT_default OFF) # TODO: enable this by default
|
|
|
|
set(SwiftCore_ENABLE_STDIN_default ON)
|
|
set(SwiftCore_ENABLE_TYPE_PRINTING_default ON)
|
|
|
|
set(SwiftCore_ENABLE_STRICT_AVAILABILITY_default OFF)
|
|
|
|
set(SwiftCore_BACKTRACER_PATH_default "")
|
|
|
|
# Provide a boolean option that a user can optionally enable.
|
|
# Variables are defaulted based on the value of `<variable>_default`.
|
|
# If no such default variable exists, the option is defaults to `OFF`.
|
|
macro(defaulted_option variable helptext)
|
|
if(NOT DEFINED ${variable}_default)
|
|
set(${variable}_default OFF)
|
|
endif()
|
|
option(${variable} "${helptext}" ${${variable}_default})
|
|
endmacro()
|
|
|
|
# Create a defaulted cache entry
|
|
# Entries are defaulted on the value of `<variable>_default`.
|
|
# If no such default variable exists, the variable is not created.
|
|
macro(defaulted_set variable type helptext)
|
|
if(DEFINED ${variable}_default)
|
|
set(${variable} ${${variable}_default} CACHE ${type} ${helptext})
|
|
endif()
|
|
endmacro()
|
|
|
|
if(APPLE)
|
|
set(SwiftCore_ENABLE_LIBRARY_EVOLUTION_default ON)
|
|
set(SwiftCore_ENABLE_CRASH_REPORTER_CLIENT_default ON)
|
|
set(SwiftCore_ENABLE_OBJC_INTEROP_default ON)
|
|
set(SwiftCore_ENABLE_REFLECTION_default ON)
|
|
set(SwiftCore_ENABLE_FATALERROR_BACKTRACE_default ON)
|
|
set(SwiftCore_ENABLE_RUNTIME_OS_VERSIONING_default ON)
|
|
set(SwiftCore_ENABLE_OVERRIDABLE_RETAIN_RELEASE_default ON)
|
|
set(SwiftCore_ENABLE_CONCURRENCY_default NO)
|
|
set(SwiftCore_THREADING_PACKAGE_default "DARWIN")
|
|
set(SwiftCore_ENABLE_PRESPECIALIZATION_default ON)
|
|
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "dispatch")
|
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "WASM")
|
|
set(SwiftCore_OBJECT_FORMAT_default "elf")
|
|
set(SwiftCore_THREADING_PACKAGE_default "NONE")
|
|
set(SwiftCore_ENABLE_CONCURRENCY_default NO)
|
|
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "none")
|
|
elseif(LINUX OR ANDROID OR BSD)
|
|
set(SwiftCore_OBJECT_FORMAT_default "elf")
|
|
set(SwiftCore_ENABLE_FATALERROR_BACKTRACE_default ON)
|
|
if(LINUX)
|
|
set(SwiftCore_THREADING_PACKAGE_default "LINUX")
|
|
set(SwiftCore_ENABLE_PRESPECIALIZATION_default ON)
|
|
else()
|
|
set(SwiftCore_THREADING_PACKAGE_default "PTHREADS")
|
|
endif()
|
|
set(SwiftCore_ENABLE_CONCURRENCY_default NO)
|
|
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "dispatch")
|
|
elseif(WIN32)
|
|
set(SwiftCore_OBJECT_FORMAT_default "coff")
|
|
set(SwiftCore_ENABLE_REFLECTION_default ON)
|
|
set(SwiftCore_ENABLE_FATALERROR_BACKTRACE_default ON)
|
|
set(SwiftCore_ENABLE_CONCURRENCY_default NO)
|
|
set(SwiftCore_THREADING_PACKAGE_default "WIN32")
|
|
set(SwiftCore_ENABLE_PRESPECIALIZATION_default ON)
|
|
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "dispatch")
|
|
endif()
|
|
|
|
include("${SwiftCore_VENDOR_MODULE_DIR}/DefaultSettings.cmake" OPTIONAL)
|