11cmake_minimum_required (VERSION 3.29)
2+ # TODO before requiring CMake 4.1 or later
3+ # and/or enforcing CMP0195, please check/update
4+ # the implementation of `emit_swift_interface`
5+ # in `EmitSwiftInterface.cmake`
6+ # to ensure it keeps laying down nested swiftmodule folders
27
38if (POLICY CMP0157 AND CMAKE_Swift_COMPILER_USE_OLD_DRIVER)
49 cmake_policy (SET CMP0157 OLD)
@@ -19,23 +24,33 @@ endif()
1924set (CMAKE_Swift_LANGUAGE_VERSION 5)
2025
2126set (CMAKE_POSITION_INDEPENDENT_CODE YES )
27+
2228set (CMAKE_C_VISIBILITY_PRESET "hidden" )
23- set (CMAKE_CXX_VISIBILITY_PRESET "hidden" )
24- set (CMAKE_VISIBILITY_INLINES_HIDDEN YES )
29+
30+ set (CMAKE_CXX_EXTENSIONS NO )
2531set (CMAKE_CXX_STANDARD 17 CACHE STRING "C++ standard to conform to" )
2632set (CMAKE_CXX_STANDARD_REQUIRED YES )
27- set (CMAKE_CXX_EXTENSIONS NO )
33+ set (CMAKE_CXX_VISIBILITY_PRESET "hidden" )
34+
35+ set (CMAKE_VISIBILITY_INLINES_HIDDEN YES )
2836
2937list (APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR} /../cmake/modules" )
3038
3139set (${PROJECT_NAME} _SWIFTC_SOURCE_DIR
3240 "${PROJECT_SOURCE_DIR} /../../../"
3341 CACHE FILEPATH "Path to the root source directory of the Swift compiler" )
3442
43+ # Hook point for vendor-specific extensions to the build system
44+ # Allowed extension points:
45+ # - DefaultSettings.cmake
46+ # - Settings.cmake
3547set (${PROJECT_NAME} _VENDOR_MODULE_DIR "${CMAKE_SOURCE_DIR} /../cmake/modules/vendor"
3648 CACHE FILEPATH "Location for private build system extension" )
3749
3850find_package (SwiftCore REQUIRED)
51+ find_package (SwiftOverlay REQUIRED)
52+
53+ include (GNUInstallDirs)
3954
4055include (AvailabilityMacros)
4156include (EmitSwiftInterface)
@@ -46,7 +61,7 @@ include(CatalystSupport)
4661include (SwiftCallingConventions)
4762
4863option (${PROJECT_NAME} _INSTALL_NESTED_SUBDIR "Install libraries under a platform and architecture subdirectory" ON )
49- set (${PROJECT_NAME} _INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR} /swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS} >>:_static>$<$<BOOL:${${PROJECT_NAME} _INSTALL_NESTED_SUBDIR}>:/${${PROJECT_NAME} _PLATFORM_SUBDIR}/${Supplemental_ARCH_SUBDIR } >" CACHE STRING "" )
64+ set (${PROJECT_NAME} _INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR} /swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS} >>:_static>$<$<BOOL:${${PROJECT_NAME} _INSTALL_NESTED_SUBDIR}>:/${${PROJECT_NAME} _PLATFORM_SUBDIR}/${${PROJECT_NAME} _ARCH_SUBDIR }>" CACHE STRING "" )
5065set (${PROJECT_NAME} _INSTALL_SWIFTMODULEDIR "${CMAKE_INSTALL_LIBDIR} /swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS} >>:_static>$<$<BOOL:${${PROJECT_NAME} _INSTALL_NESTED_SUBDIR}>:/${${PROJECT_NAME} _PLATFORM_SUBDIR}>" CACHE STRING "" )
5166
5267include ("${${PROJECT_NAME} _VENDOR_MODULE_DIR}/Settings.cmake" OPTIONAL )
@@ -57,47 +72,53 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
5772option (${PROJECT_NAME} _ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
5873 ${SwiftCore_ENABLE_PRESPECIALIZATION} )
5974
60- add_library (swiftDistributed
61- DistributedActor.cpp
62- DistributedActor.swift
63- DistributedActorSystem.swift
64- DistributedAssertions.swift
65- DistributedDefaultExecutor.swift
66- DistributedMacros.swift
67- DistributedMetadata.swift
68- LocalTestingDistributedActorSystem.swift)
69-
70- target_compile_options (swiftDistributed PRIVATE
75+ add_compile_options (
7176 $<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build >
7277 $<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
73- $<$<COMPILE_LANGUAGE:Swift>:-parse-stdlib>
74- $<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature AllowUnsafeAttribute>
7578 $<$<COMPILE_LANGUAGE:Swift>:-strict-memory-safety>
76- "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-library-level api>"
77- $<$<COMPILE_LANGUAGE:Swift>:-enforce-exclusivity=unchecked>
78- "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -target-min-inlining-version -Xfrontend min>"
79- "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-lexical-lifetimes=false>"
8079 "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature NoncopyableGenerics2>"
8180 "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature SuppressedAssociatedTypes>"
8281 "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature SE427NoInferenceOnExtension>"
8382 "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature NonescapableTypes>"
8483 "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature LifetimeDependence>"
84+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature InoutLifetimeDependence>"
8585 "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature LifetimeDependenceMutableAccessors>"
8686 "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-upcoming-feature MemberImportVisibility>"
87- "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature InoutLifetimeDependence>"
87+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enforce-exclusivity=unchecked>"
88+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -target-min-inlining-version -Xfrontend min>"
89+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-lexical-lifetimes=false>"
8890 "$<$<AND:$<BOOL:${${PROJECT_NAME} _ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
8991 "$<$<AND:$<BOOL:${${PROJECT_NAME} _ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>" )
9092
91- set_target_properties (swiftDistributed PROPERTIES
92- Swift_MODULE_NAME Distributed
93- LINKER_LANGUAGE CXX)
9493
95- if (APPLE AND BUILD_SHARED_LIBS )
96- target_link_options (swiftDistributed PRIVATE "SHELL:-Xlinker -headerpad_max_install_names" )
94+ add_library (swiftDistributed
95+ DistributedActor.cpp
96+ DistributedActor.swift
97+ DistributedActorSystem.swift
98+ DistributedAssertions.swift
99+ DistributedDefaultExecutor.swift
100+ DistributedMacros.swift
101+ DistributedMetadata.swift
102+ LocalTestingDistributedActorSystem.swift)
103+
104+ set_target_properties (swiftDistributed PROPERTIES
105+ Swift_MODULE_NAME Distributed)
106+ cmake_policy (GET CMP0157 Policy157Enabled)
107+ if (Policy157Enabled STREQUAL NEW)
108+ set_target_properties (swiftDistributed PROPERTIES
109+ LINKER_LANGUAGE CXX)
97110endif ()
98111
99112target_compile_definitions (swiftDistributed PRIVATE
100113 $<$<COMPILE_LANGUAGE:C,CXX>:-DSWIFT_TARGET_LIBRARY_NAME=swiftDistributed>)
114+ target_compile_options (swiftDistributed PRIVATE
115+ $<$<COMPILE_LANGUAGE:Swift>:-parse-stdlib>
116+ $<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature AllowUnsafeAttribute>)
117+
118+ if (APPLE AND BUILD_SHARED_LIBS )
119+ target_link_options (swiftDistributed PRIVATE
120+ "SHELL:-Xlinker -headerpad_max_install_names" )
121+ endif ()
101122
102123target_include_directories (swiftDistributed PRIVATE
103124 # FIXME: Use of `swift/Runtime/...`, `swift/ABI/...`, and `swift/Demangling/...`
@@ -111,9 +132,9 @@ target_include_directories(swiftDistributed PRIVATE
111132target_link_libraries (swiftDistributed PRIVATE
112133 swiftShims
113134 swiftCore
114- swift_Concurrency)
135+ swift_Concurrency
136+ builtin_float)
115137 # swiftDarwin/Libc/Platform
116- # builtin_float
117138
118139install (TARGETS swiftDistributed
119140 EXPORT SwiftDistributedTargets
0 commit comments