-
Notifications
You must be signed in to change notification settings - Fork 146
Expand file tree
/
Copy pathCompilerSettings.cmake
More file actions
66 lines (61 loc) · 2.94 KB
/
CompilerSettings.cmake
File metadata and controls
66 lines (61 loc) · 2.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
##
## This source file is part of the Swift.org open source project
##
## Copyright (c) 2024 Apple Inc. and the Swift project authors
## Licensed under Apache License v2.0 with Runtime Library Exception
##
## See https://swift.org/LICENSE.txt for license information
## See https://swift.org/CONTRIBUTORS.txt for Swift project authors
##
# Settings intended to be applied to every Swift target in this project.
# Analogous to project-level build settings in an Xcode project.
add_compile_options(
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-package-name org.swift.testing>")
add_compile_options(
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -require-explicit-sendable>")
add_compile_options(
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend AccessLevelOnImport>"
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend Lifetimes>")
add_compile_options(
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-upcoming-feature -Xfrontend ExistentialAny>"
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-upcoming-feature -Xfrontend InternalImportsByDefault>"
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-upcoming-feature -Xfrontend MemberImportVisibility>"
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-upcoming-feature -Xfrontend InferIsolatedConformances>")
# We don't build test targets with CMake, so everything is content.
add_compile_definitions("SWT_BUILDING_SWIFT_TESTING_CONTENT")
# Platform-specific definitions.
if(APPLE)
add_compile_definitions("SWT_TARGET_OS_APPLE")
endif()
set(SWT_NO_EXIT_TESTS_LIST "iOS" "watchOS" "tvOS" "visionOS" "WASI" "Android")
if(CMAKE_SYSTEM_NAME IN_LIST SWT_NO_EXIT_TESTS_LIST)
add_compile_definitions("SWT_NO_EXIT_TESTS")
endif()
set(SWT_NO_PROCESS_SPAWNING_LIST "iOS" "watchOS" "tvOS" "visionOS" "WASI" "Android")
if(CMAKE_SYSTEM_NAME IN_LIST SWT_NO_PROCESS_SPAWNING_LIST)
add_compile_definitions("SWT_NO_PROCESS_SPAWNING")
endif()
if(NOT APPLE)
add_compile_definitions("SWT_NO_SNAPSHOT_TYPES")
add_compile_definitions("SWT_NO_FOUNDATION_FILE_COORDINATION")
endif()
if(WASI)
add_compile_definitions("SWT_NO_DYNAMIC_LINKING")
add_compile_definitions("SWT_NO_PIPES")
endif()
if (NOT (APPLE OR CMAKE_SYSTEM_NAME STREQUAL "Windows"))
add_compile_definitions("SWT_NO_IMAGE_ATTACHMENTS")
endif()
set(SWT_NO_FILE_CLONING_LIST "OpenBSD" "WASI" "Android")
if(CMAKE_SYSTEM_NAME IN_LIST SWT_NO_FILE_CLONING_LIST)
add_compile_definitions("SWT_NO_FILE_CLONING")
endif()
file(STRINGS "${SWT_SOURCE_ROOT_DIR}/VERSION.txt" SWT_TESTING_LIBRARY_VERSION LIMIT_COUNT 1)
if(SWT_TESTING_LIBRARY_VERSION)
message(STATUS "Swift Testing version: ${SWT_TESTING_LIBRARY_VERSION}")
add_compile_definitions("$<$<COMPILE_LANGUAGE:CXX>:SWT_TESTING_LIBRARY_VERSION=\"${SWT_TESTING_LIBRARY_VERSION}\">")
endif()
if((NOT BUILD_SHARED_LIBS) AND NOT WASI)
# When building a static library, Interop is not supported at this time
add_compile_definitions("SWT_NO_INTEROP")
endif()