mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
68 lines
2.3 KiB
CMake
68 lines
2.3 KiB
CMake
set(SWIFT_RUNTIME_CXX_FLAGS)
|
|
set(SWIFT_RUNTIME_LINK_FLAGS)
|
|
set(SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS)
|
|
set(SWIFT_RUNTIME_SWIFT_LINK_FLAGS)
|
|
|
|
if(SWIFT_RUNTIME_USE_SANITIZERS)
|
|
# TODO: Refactor this
|
|
if("Thread" IN_LIST SWIFT_RUNTIME_USE_SANITIZERS)
|
|
list(APPEND SWIFT_RUNTIME_CXX_FLAGS "-fsanitize=thread")
|
|
list(APPEND SWIFT_RUNTIME_LINK_FLAGS "-fsanitize=thread")
|
|
list(APPEND SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS "-sanitize=thread")
|
|
list(APPEND SWIFT_RUNTIME_SWIFT_LINK_FLAGS "-fsanitize=thread")
|
|
endif()
|
|
endif()
|
|
|
|
set(SWIFT_RUNTIME_CORE_CXX_FLAGS "${SWIFT_RUNTIME_CXX_FLAGS}")
|
|
set(SWIFT_RUNTIME_CORE_LINK_FLAGS "${SWIFT_RUNTIME_LINK_FLAGS}")
|
|
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "CYGWIN")
|
|
list(APPEND SWIFT_RUNTIME_CORE_CXX_FLAGS "-mcmodel=large")
|
|
endif()
|
|
|
|
# C++ code in the runtime and standard library should generally avoid
|
|
# introducing static constructors or destructors.
|
|
check_cxx_compiler_flag("-Werror -Wglobal-constructors" CXX_SUPPORTS_GLOBAL_CONSTRUCTORS_WARNING)
|
|
if(CXX_SUPPORTS_GLOBAL_CONSTRUCTORS_WARNING)
|
|
list(APPEND SWIFT_RUNTIME_CORE_CXX_FLAGS "-Wglobal-constructors")
|
|
endif()
|
|
|
|
# C++ code in the runtime and standard library should generally avoid
|
|
# introducing static constructors or destructors.
|
|
check_cxx_compiler_flag("-Wexit-time-destructors" CXX_SUPPORTS_EXIT_TIME_DESTRUCTORS_WARNING)
|
|
if(CXX_SUPPORTS_EXIT_TIME_DESTRUCTORS_WARNING)
|
|
list(APPEND SWIFT_RUNTIME_CORE_CXX_FLAGS "-Wexit-time-destructors")
|
|
endif()
|
|
|
|
# We don't want runtime C++ code to export symbols we didn't explicitly
|
|
# choose to.
|
|
check_cxx_compiler_flag("-fvisibility=hidden" CXX_SUPPORTS_DEFAULT_HIDDEN_VISIBILITY)
|
|
if(CXX_SUPPORTS_DEFAULT_HIDDEN_VISIBILITY)
|
|
list(APPEND SWIFT_RUNTIME_CORE_CXX_FLAGS "-fvisibility=hidden")
|
|
endif()
|
|
|
|
if(SWIFT_BUILD_STDLIB)
|
|
# These must be kept in dependency order so that any referenced targets
|
|
# exist at the time we look for them in add_swift_*.
|
|
add_subdirectory(SwiftShims)
|
|
add_subdirectory(runtime)
|
|
add_subdirectory(stubs)
|
|
add_subdirectory(core)
|
|
add_subdirectory(SwiftOnoneSupport)
|
|
endif()
|
|
|
|
if(SWIFT_BUILD_STDLIB OR SWIFT_BUILD_REMOTE_MIRROR)
|
|
add_subdirectory(Reflection)
|
|
add_subdirectory(SwiftRemoteMirror)
|
|
endif()
|
|
|
|
if(SWIFT_BUILD_SDK_OVERLAY)
|
|
add_subdirectory(Platform)
|
|
endif()
|
|
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
|
if(SWIFT_BUILD_SDK_OVERLAY)
|
|
add_subdirectory(SDK)
|
|
endif()
|
|
endif()
|