@@ -157,6 +157,8 @@ else()
157157 set (SWIFT_HOST_VARIANT_SDK_default "OSX" )
158158 elseif ("${CMAKE_SYSTEM_NAME} " STREQUAL "WASI" )
159159 set (SWIFT_HOST_VARIANT_SDK_default "WASI" )
160+ elseif ("${CMAKE_SYSTEM_NAME} " STREQUAL "Emscripten" )
161+ set (SWIFT_HOST_VARIANT_SDK_default "EMSCRIPTEN" )
160162 else ()
161163 message (FATAL_ERROR "Unable to detect SDK for host system: ${CMAKE_SYSTEM_NAME} " )
162164 endif ()
@@ -695,10 +697,6 @@ option(SWIFT_IMPLICIT_CONCURRENCY_IMPORT
695697 "Implicitly import the Swift concurrency module"
696698 TRUE )
697699
698- option (SWIFT_IMPLICIT_BACKTRACING_IMPORT
699- "Implicitly import the Swift backtracing module"
700- FALSE )
701-
702700option (SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY
703701 "Enable build of the Swift concurrency module"
704702 FALSE )
@@ -731,6 +729,10 @@ option(SWIFT_ENABLE_SYNCHRONIZATION
731729 "Enable build of the Swift Synchronization module"
732730 FALSE )
733731
732+ option (SWIFT_ENABLE_RUNTIME_MODULE
733+ "Build the Swift Runtime module"
734+ FALSE )
735+
734736option (SWIFT_ENABLE_VOLATILE
735737 "Enable build of the Swift Volatile module"
736738 FALSE )
@@ -747,10 +749,6 @@ option(SWIFT_ENABLE_EXPERIMENTAL_PARSER_VALIDATION
747749 "Enable experimental SwiftParser validation by default"
748750 FALSE )
749751
750- option (SWIFT_ENABLE_EXPERIMENTAL_POINTER_BOUNDS
751- "Enable experimental safe wrappers around external functions"
752- FALSE )
753-
754752cmake_dependent_option(SWIFT_BUILD_SOURCEKIT
755753 "Build SourceKit" TRUE
756754 "SWIFT_ENABLE_DISPATCH" FALSE )
@@ -869,11 +867,6 @@ if (CMAKE_Swift_COMPILER)
869867 SWIFT_SUPPORTS_DISABLE_IMPLICIT_STRING_PROCESSING_MODULE_IMPORT)
870868 message (STATUS " Implicit 'string-processing' import: ${SWIFT_SUPPORTS_DISABLE_IMPLICIT_STRING_PROCESSING_MODULE_IMPORT} " )
871869
872- # Same for _Backtracing.
873- swift_supports_implicit_module("backtracing"
874- SWIFT_SUPPORTS_DISABLE_IMPLICIT_BACKTRACING_MODULE_IMPORT)
875- message (STATUS " Implicit 'backtracing' import: ${SWIFT_SUPPORTS_DISABLE_IMPLICIT_BACKTRACING_MODULE_IMPORT} " )
876-
877870 swift_get_package_cmo_support(
878871 Swift_COMPILER_PACKAGE_CMO_SUPPORT)
879872 message (STATUS " Package CMO: ${Swift_COMPILER_PACKAGE_CMO_SUPPORT} " )
@@ -1032,11 +1025,6 @@ set(SWIFT_GYB_FLAGS
10321025set (SWIFT_MODULE_CACHE_PATH
10331026 "${CMAKE_BINARY_DIR} /${CMAKE_CFG_INTDIR} /module-cache" )
10341027
1035- # Xcode: use libc++ and c++11 using proper build settings.
1036- if (XCODE)
1037- swift_common_xcode_cxx_config()
1038- endif ()
1039-
10401028# Check what linux distribution is being used.
10411029# This can be used to determine the default linker to use.
10421030if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.22" )
@@ -1091,6 +1079,9 @@ endif()
10911079#
10921080swift_common_cxx_warnings()
10931081
1082+ # Set sanitizer options for Swift compiler.
1083+ swift_common_sanitizer_config()
1084+
10941085# Check if we're build with MSVC or Clang-cl, as these compilers have similar command line arguments.
10951086if ("${CMAKE_C_COMPILER_ID} " STREQUAL "MSVC" OR "${CMAKE_CXX_SIMULATE_ID} " STREQUAL "MSVC" )
10961087 set (SWIFT_COMPILER_IS_MSVC_LIKE TRUE )
@@ -1252,6 +1243,15 @@ elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "WASI")
12521243 set (SWIFT_PRIMARY_VARIANT_SDK_default "${SWIFT_HOST_VARIANT_SDK} " )
12531244 set (SWIFT_PRIMARY_VARIANT_ARCH_default "${SWIFT_HOST_VARIANT_ARCH} " )
12541245
1246+ elseif ("${SWIFT_HOST_VARIANT_SDK} " STREQUAL "EMSCRIPTEN" )
1247+
1248+ set (SWIFT_HOST_VARIANT "emscripten" CACHE STRING
1249+ "Deployment OS for Swift host tools (the compiler) [emscripten]" )
1250+
1251+ configure_sdk_unix("Emscripten" "wasm32" )
1252+ set (SWIFT_PRIMARY_VARIANT_SDK_default "${SWIFT_HOST_VARIANT_SDK} " )
1253+ set (SWIFT_PRIMARY_VARIANT_ARCH_default "${SWIFT_HOST_VARIANT_ARCH} " )
1254+
12551255elseif ("${SWIFT_HOST_VARIANT_SDK} " MATCHES "(OSX|IOS*|TVOS*|WATCHOS*|XROS*)" )
12561256
12571257 set (SWIFT_HOST_VARIANT "macosx" CACHE STRING
@@ -1398,6 +1398,7 @@ if(SWIFT_BUILD_STDLIB OR SWIFT_BUILD_SDK_OVERLAY)
13981398 message (STATUS "Synchronization Support: ${SWIFT_ENABLE_SYNCHRONIZATION} " )
13991399 message (STATUS "Volatile Support: ${SWIFT_ENABLE_VOLATILE} " )
14001400 message (STATUS "Pointer Bounds Support: ${SWIFT_ENABLE_EXPERIMENTAL_POINTER_BOUNDS} " )
1401+ message (STATUS "Runtime Support: ${SWIFT_ENABLE_RUNTIME_MODULE} " )
14011402 message (STATUS "" )
14021403else ()
14031404 message (STATUS "Not building Swift standard library, SDK overlays, and runtime" )
@@ -1582,6 +1583,7 @@ endif()
15821583# New standard library build
15831584option (SWIFT_ENABLE_NEW_RUNTIME_BUILD "Build Swift runtimes with new build system" OFF )
15841585if (SWIFT_ENABLE_NEW_RUNTIME_BUILD)
1586+ message (STATUS "New runtime build enabled" )
15851587
15861588 add_custom_target (PopulateRuntimeSourceDir
15871589 COMMAND "${CMAKE_COMMAND} " -P "${CMAKE_CURRENT_SOURCE_DIR} /Runtimes/Resync.cmake"
@@ -1598,6 +1600,13 @@ if(SWIFT_ENABLE_NEW_RUNTIME_BUILD)
15981600 if (${SWIFT_SDK_${sdk} _${arch} _CACHE})
15991601 set (stdlib_cache_file_flag -C ${SWIFT_SDK_${sdk} _${arch} _CACHE})
16001602 endif ()
1603+
1604+ set (stdlib_target_triple ${SWIFT_SDK_${sdk} _ARCH_${arch} _TRIPLE})
1605+ if (SWIFT_SDK_${sdk} _DEPLOYMENT_VERSION)
1606+ string (APPEND stdlib_target_triple ${SWIFT_SDK_${sdk} _DEPLOYMENT_VERSION})
1607+ set (stdlib_deployment_version_flag -DCMAKE_OSX_DEPLOYMENT_TARGET=${SWIFT_SDK_${sdk} _DEPLOYMENT_VERSION})
1608+ endif ()
1609+
16011610 ExternalProject_Add("${stdlib_target} -core"
16021611 SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR} /Runtimes/Core"
16031612 # TODO: Add this once we're ready to start swapping out the libraries
@@ -1611,12 +1620,19 @@ if(SWIFT_ENABLE_NEW_RUNTIME_BUILD)
16111620 -DCMAKE_Swift_COMPILER_WORKS:BOOLEAN=YES
16121621 -DBUILD_SHARED_LIBS:BOOLEAN=YES # TODO: Make this configurable
16131622 ${stdlib_cache_file_flag}
1623+ ${stdlib_deployment_version_flag}
16141624 -DCMAKE_BUILD_TYPE:STRING =${CMAKE_BUILD_TYPE}
16151625 -DCMAKE_INSTALL_PREFIX:FILEPATH =<INSTALL_DIR>
16161626 -DCMAKE_Swift_COMPILER:FILEPATH =$<IF:$<BOOL :${CMAKE_CROSSCOMPILING} >,${CMAKE_Swift_COMPILER} ,$<PATH :REPLACE_FILENAME,$<TARGET_FILE:swift-frontend>,swiftc>>
16171627 -DCMAKE_C_COMPILER:FILEPATH =${CMAKE_C_COMPILER}
16181628 -DCMAKE_CXX_COMPILER:FILEPATH =${CMAKE_CXX_COMPILER}
1619- -DCMAKE_COLOR_DIAGNOSTICS:BOOLEAN=${CMAKE_COLOR_DIAGNOSTICS} )
1629+ -DCMAKE_Swift_COMPILER_TARGET:STRING =${stdlib_target_triple}
1630+ -DCMAKE_C_COMPILER_TARGET:STRING =${stdlib_target_triple}
1631+ -DCMAKE_CXX_COMPILER_TARGET:STRING =${stdlib_target_triple}
1632+ -DCMAKE_COLOR_DIAGNOSTICS:BOOLEAN=${CMAKE_COLOR_DIAGNOSTICS}
1633+ -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
1634+ -DSwiftCore_PLATFORM_SUBDIR=${SWIFT_SDK_${sdk} _LIB_SUBDIR}
1635+ -DSwiftCore_ARCH_SUBDIR=${arch} )
16201636 if (NOT ${CMAKE_CROSSCOMPILING} )
16211637 add_dependencies ("${stdlib_target} " swift-frontend)
16221638 endif ()
0 commit comments