1
1
cmake_minimum_required (VERSION 3.29 )
2
2
3
- if (POLICY CMP0157 AND CMAKE_Swift_COMPILER_USE_OLD_DRIVER )
4
- cmake_policy (SET CMP0157 OLD )
5
- endif ()
6
-
7
3
if ($ENV{BUILD_NUMBER} )
8
4
math (EXPR BUILD_NUMBER "$ENV{BUILD_NUMBER} % 65535" )
9
5
set (BUILD_NUMBER ".${BUILD_NUMBER} " )
10
6
endif ()
7
+
11
8
project (SwiftSynchronization
12
9
LANGUAGES Swift
13
10
VERSION 6.1.0${BUILD_NUMBER} )
14
- # FIXME(compnerd) this is a workaround for `GNUInstallDirs` which cannot be used
15
- # with a pure Swift project.
16
- enable_language (C )
17
11
18
12
if (NOT PROJECT_IS_TOP_LEVEL )
19
13
message (SEND_ERROR "Swift Synchronization must build as a standalone project" )
@@ -23,32 +17,23 @@ set(CMAKE_POSITION_INDEPENDENT_CODE YES)
23
17
24
18
list (APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR} /../cmake/modules" )
25
19
20
+ set (CMAKE_Swift_LANGUAGE_VERSION 5 )
21
+
22
+ include (GNUInstallDirs )
23
+
26
24
set (${PROJECT_NAME} _SWIFTC_SOURCE_DIR
27
25
"${PROJECT_SOURCE_DIR} /../../../"
28
26
CACHE FILEPATH "Path to the root source directory of the Swift compiler" )
29
27
30
- # Hook point for vendor-specific extensions to the build system
31
- # Allowed extension points:
32
- # - DefaultSettings.cmake
33
- # - Settings.cmake
34
28
set (${PROJECT_NAME} _VENDOR_MODULE_DIR "${CMAKE_SOURCE_DIR} /../cmake/modules/vendor"
35
29
CACHE FILEPATH "Location for private build system extension" )
36
30
37
- find_package (SwiftCore REQUIRED )
31
+ find_package (SwiftCore QUIET REQUIRED )
38
32
39
- include (GNUInstallDirs )
40
-
41
- include (AvailabilityMacros )
42
- include (EmitSwiftInterface )
43
- include (InstallSwiftInterface )
44
- include (PlatformInfo )
45
33
include (gyb )
46
34
include (ResourceEmbedding )
47
- include (CatalystSupport )
48
-
49
- option (${PROJECT_NAME} _INSTALL_NESTED_SUBDIR "Install libraries under a platform and architecture subdirectory" ON )
50
- 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 "" )
51
- set (${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 "" )
35
+ include (AvailabilityMacros )
36
+ include (PlatformInfo )
52
37
53
38
include ("${${PROJECT_NAME} _VENDOR_MODULE_DIR}/Settings.cmake" OPTIONAL )
54
39
@@ -58,16 +43,20 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
58
43
option (${PROJECT_NAME} _ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
59
44
${SwiftCore_ENABLE_PRESPECIALIZATION} )
60
45
46
+ include (CatalystSupport )
47
+ include (EmitSwiftInterface )
48
+ include (InstallSwiftInterface )
49
+
61
50
add_compile_options (
51
+ "$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>"
52
+ "$<$<AND:$<BOOL:${${PROJECT_NAME} _ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
53
+ "$<$<AND:$<BOOL:${${PROJECT_NAME} _ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>"
62
54
$< $< COMPILE_LANGUAGE:Swift> :-explicit-module-build>
63
- $< $< COMPILE_LANGUAGE:Swift> :-nostdlibimport>
64
55
$< $< COMPILE_LANGUAGE:Swift> :-enable-builtin-module>
65
56
$< $< COMPILE_LANGUAGE:Swift> :-strict-memory-safety>
66
57
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature RawLayout>"
67
58
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature StaticExclusiveOnly>"
68
- "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature Extern>"
69
- "$<$<AND:$<BOOL:${${PROJECT_NAME} _ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
70
- "$<$<AND:$<BOOL:${${PROJECT_NAME} _ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>" )
59
+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature Extern>" )
71
60
72
61
gyb_expand (Atomics/AtomicIntegers.swift.gyb Atomics/AtomicIntegers.swift )
73
62
gyb_expand (Atomics/AtomicStorage.swift.gyb Atomics/AtomicStorage.swift )
@@ -89,14 +78,18 @@ add_library(swiftSynchronization
89
78
$< $< PLATFORM_ID:Darwin> :Mutex/DarwinImpl.swift>
90
79
$< $< PLATFORM_ID:Linux> :Mutex/LinuxImpl.swift>
91
80
$< $< PLATFORM_ID:WASI> :Mutex/SpinLoopHint.swift>
92
- $< $< PLATFORM_ID:Windows > :Mutex/WindowsImpl.swift> )
81
+ $< $< PLATFORM_ID:WINDOWS > :Mutex/WindowsImpl.swift> )
93
82
94
83
set_target_properties (swiftSynchronization PROPERTIES
95
84
Swift_MODULE_NAME Synchronization )
96
85
97
- target_link_libraries (swiftSynchronization PRIVATE
98
- swiftCore
99
- $< $< PLATFORM_ID:Darwin> :swiftDarwin> )
86
+ target_link_libraries (swiftSynchronization
87
+ PRIVATE
88
+ swiftCore
89
+ $< $< PLATFORM_ID:Darwin> :swiftDarwin> )
90
+
91
+ set (${PROJECT_NAME} _INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR} /swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS} >>:_static>$<$<BOOL:${Supplemental_INSTALL_NESTED_SUBDIR} >:/${Supplemental_PLATFORM_SUBDIR} /${Supplemental_ARCH_SUBDIR} >" CACHE STRING "" )
92
+ set (${PROJECT_NAME} _INSTALL_SWIFTMODULEDIR "${CMAKE_INSTALL_LIBDIR} /swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS} >>:_static>$<$<BOOL:${Supplemental_INSTALL_NESTED_SUBDIR} >:/${Supplemental_PLATFORM_SUBDIR} >" CACHE STRING "" )
100
93
101
94
install (TARGETS swiftSynchronization
102
95
EXPORT SwiftSynchronizationTargets
0 commit comments