Skip to content

Commit 0b080ac

Browse files
committed
Runtimes: adjust the synchronization module build
Disable CMP0157 with the old driver as this breaks on Windows. Adjust the Windows platform ID spelling to repair the Windows build. Take the opportunity to re-order some of the structure so that it is similar to the other modules.
1 parent 50e3070 commit 0b080ac

File tree

1 file changed

+31
-24
lines changed

1 file changed

+31
-24
lines changed

Runtimes/Supplemental/Synchronization/CMakeLists.txt

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
cmake_minimum_required(VERSION 3.29)
22

3+
if(POLICY CMP0157 AND CMAKE_Swift_COMPILER_USE_OLD_DRIVER)
4+
cmake_policy(SET CMP0157 OLD)
5+
endif()
6+
37
if($ENV{BUILD_NUMBER})
48
math(EXPR BUILD_NUMBER "$ENV{BUILD_NUMBER} % 65535")
59
set(BUILD_NUMBER ".${BUILD_NUMBER}")
610
endif()
7-
811
project(SwiftSynchronization
912
LANGUAGES Swift
1013
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)
1117

1218
if(NOT PROJECT_IS_TOP_LEVEL)
1319
message(SEND_ERROR "Swift Synchronization must build as a standalone project")
@@ -17,23 +23,32 @@ set(CMAKE_POSITION_INDEPENDENT_CODE YES)
1723

1824
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake/modules")
1925

20-
set(CMAKE_Swift_LANGUAGE_VERSION 5)
21-
22-
include(GNUInstallDirs)
23-
2426
set(${PROJECT_NAME}_SWIFTC_SOURCE_DIR
2527
"${PROJECT_SOURCE_DIR}/../../../"
2628
CACHE FILEPATH "Path to the root source directory of the Swift compiler")
2729

30+
# Hook point for vendor-specific extensions to the build system
31+
# Allowed extension points:
32+
# - DefaultSettings.cmake
33+
# - Settings.cmake
2834
set(${PROJECT_NAME}_VENDOR_MODULE_DIR "${CMAKE_SOURCE_DIR}/../cmake/modules/vendor"
2935
CACHE FILEPATH "Location for private build system extension")
3036

31-
find_package(SwiftCore QUIET REQUIRED)
37+
find_package(SwiftCore REQUIRED)
38+
39+
include(GNUInstallDirs)
3240

33-
include(gyb)
34-
include(ResourceEmbedding)
3541
include(AvailabilityMacros)
42+
include(EmitSwiftInterface)
43+
include(InstallSwiftInterface)
3644
include(PlatformInfo)
45+
include(gyb)
46+
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 "")
3752

3853
include("${${PROJECT_NAME}_VENDOR_MODULE_DIR}/Settings.cmake" OPTIONAL)
3954

@@ -43,20 +58,16 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
4358
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
4459
${SwiftCore_ENABLE_PRESPECIALIZATION})
4560

46-
include(CatalystSupport)
47-
include(EmitSwiftInterface)
48-
include(InstallSwiftInterface)
49-
5061
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>"
5462
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
63+
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
5564
$<$<COMPILE_LANGUAGE:Swift>:-enable-builtin-module>
5665
$<$<COMPILE_LANGUAGE:Swift>:-strict-memory-safety>
5766
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature RawLayout>"
5867
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature StaticExclusiveOnly>"
59-
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature Extern>")
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>")
6071

6172
gyb_expand(Atomics/AtomicIntegers.swift.gyb Atomics/AtomicIntegers.swift)
6273
gyb_expand(Atomics/AtomicStorage.swift.gyb Atomics/AtomicStorage.swift)
@@ -78,18 +89,14 @@ add_library(swiftSynchronization
7889
$<$<PLATFORM_ID:Darwin>:Mutex/DarwinImpl.swift>
7990
$<$<PLATFORM_ID:Linux>:Mutex/LinuxImpl.swift>
8091
$<$<PLATFORM_ID:WASI>:Mutex/SpinLoopHint.swift>
81-
$<$<PLATFORM_ID:WINDOWS>:Mutex/WindowsImpl.swift>)
92+
$<$<PLATFORM_ID:Windows>:Mutex/WindowsImpl.swift>)
8293

8394
set_target_properties(swiftSynchronization PROPERTIES
8495
Swift_MODULE_NAME Synchronization)
8596

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 "")
97+
target_link_libraries(swiftSynchronization PRIVATE
98+
swiftCore
99+
$<$<PLATFORM_ID:Darwin>:swiftDarwin>)
93100

94101
install(TARGETS swiftSynchronization
95102
EXPORT SwiftSynchronizationTargets

0 commit comments

Comments
 (0)