Skip to content

Commit e160e23

Browse files
committed
[CMake] Connecting more flags and options
Making a more in-depth pass over the definition macros and flags in SwiftSource.cmake _add_target_variant_swift_compile_flags. These are only flags that actually matter for swiftCore though. This does not include concurrency flags.
1 parent 1701775 commit e160e23

File tree

5 files changed

+27
-2
lines changed

5 files changed

+27
-2
lines changed

Runtimes/Core/CMakeLists.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
# Catalyst Support
2929
# -- Will need shadow invocations to generate swiftmodules for Swift parts
3030
# Install *.abi.json, swiftdoc, and swiftsourceinfo
31+
# Pointer bounds (SWIFT_ENABLE_EXPERIMENTAL_POINTER_BOUNDS)
3132

3233
cmake_minimum_required(VERSION 3.26...3.29)
3334

@@ -78,22 +79,40 @@ defaulted_option(SwiftCore_ENABLE_VECTOR_TYPES "Enable vector support")
7879
defaulted_option(SwiftCore_ENABLE_REFLECTION "Enable runtime support for mirrors and reflection support")
7980
defaulted_option(SwiftCore_ENABLE_COMMANDLINE_SUPPORT "Enable command line argument support")
8081
defaulted_option(SwiftCore_ENABLE_RUNTIME_FUNCTION_COUNTERS "Enable runtime function counter support")
82+
defaulted_option(SwiftCore_ENABLE_STDIN "Enable functions that use stdin support")
83+
defaulted_option(SwiftCore_ENABLE_ENVIRONMENT "Enable environment variable support")
84+
defaulted_option(SwiftCore_ENABLE_OVERRIDABLE_RETAIN_RELEASE "Enable override hooks for retain/release")
85+
defaulted_option(SwiftCore_ENABLE_MALLOC_TYPE "Enable malloc type information")
86+
defaulted_option(SwiftCore_ENABLE_RUNTIME_OS_VERSIONING "Enable runtime OS version detection")
87+
defaulted_option(SwiftCore_ENABLE_STATIC_PRINT "Disable full print")
88+
defaulted_option(SwiftCore_ENABLE_UNICODE_DATA "Embed Unicode info in Swift Core")
89+
defaulted_option(SwiftCore_ENABLE_COMPACT_ABSOLUTE_FUNCTION_POINTERS "Resolve absolute function pointer as identity")
8190

8291
defaulted_option(SwiftCore_ENABLE_BACKTRACING "Enable backtracing runtime support")
8392
defaulted_set(SwiftCore_BACKTRACER_PATH STRING "Set a fixed path to the Swift backtracer")
8493

8594
option(SwiftCore_ENABLE_CLOBBER_FREED_OBJECTS "" OFF)
8695
option(SwiftCore_ENABLE_RUNTIME_LEAK_CHECKER "" OFF)
96+
option(SwiftCore_ENABLE_INTERNAL_CHECKS "" OFF)
8797

8898
defaulted_set(SwiftCore_OBJECT_FORMAT STRING "Object format: ELF COFF")
8999

100+
# TODO: Most of these should be attached to specific targets rather than applied
101+
# globally. They can be applied as part of the library interface if they
102+
# affect the behavior of libraries that build against a given target.
90103
add_compile_definitions(
91104
$<$<BOOL:${SwiftCore_ENABLE_OBJC_INTEROP}>:-DSWIFT_OBJC_INTEROP>
92105
$<$<BOOL:${SwiftCore_ENABLE_LIBRARY_EVOLUTION}>:-DSWIFT_LIBRARY_EVOLUTION>
93106
$<$<BOOL:${SwiftCore_ENABLE_CRASH_REPORTER_CLIENT}>:-DSWIFT_HAVE_CRASHREPORTERCLIENT>
94107
$<$<BOOL:${SwiftCore_ENABLE_VECTOR_TYPES}>:-DSWIFT_STDLIB_ENABLE_VECTOR_TYPES>
95108
$<$<BOOL:${SwiftCore_ENABLE_REFLECTION}>:-DSWIFT_ENABLE_REFLECTION>
96109
$<$<BOOL:${SwiftCore_ENABLE_RUNTIME_FUNCTION_COUNTERS}>:-DSWIFT_ENABLE_RUNTIME_FUNCTION_COUNTERS>
110+
$<$<BOOL:${SwiftCore_ENABLE_STDIN}>:-DSWIFT_STDLIB_HAS_STDIN> # core + stubs
111+
$<$<BOOL:${SwiftCore_ENABLE_RUNTIME_OS_VERSIONING}>:-DSWIFT_RUNTIME_OS_VERSIONING> # core + stubs
112+
$<$<BOOL:${SwiftCore_ENABLE_INTERNAL_CHECKS}>:-DINTERNAL_CHECKS_ENABLED> # core
113+
$<$<BOOL:${SwiftCore_ENABLE_STATIC_PRINT}>:-DSWIFT_STDLIB_STATIC_PRINT> # core + concurrency
114+
$<$<BOOL:${SwiftCore_ENABLE_UNICODE_DATA}>:-DSWIFT_STDLIB_ENABLE_UNICODE_DATA> # Stubs
115+
$<$<BOOL:${SwiftCore_ENABLE_ENVIRONMENT}>:-DSWIFT_STDLIB_HAS_ENVIRON> # Concurrency, runtime, shims, platform overlay
97116
$<$<COMPILE_LANGUAGE:C,CXX>:-DSWIFT_RUNTIME_ENABLE_LEAK_CHECKER=$<BOOL:${SwiftCore_ENABLE_RUNTIME_LEAK_CHECKER}>>
98117
$<$<COMPILE_LANGUAGE:C,CXX>:-DSWIFT_RUNTIME_CLOBBER_FREED_OBJECTS=$<BOOL:${SwiftCore_ENABLE_CLOBBER_FREED_OBJECTS}>>)
99118

Runtimes/Core/cmake/modules/DefaultSettings.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
set(SwiftCore_ENABLE_BACKTRACING_default OFF) # TODO: enable this by default
99
set(SwiftCore_ENABLE_COMMANDLINE_SUPPORT_default OFF) # TODO: enable this by default
1010

11+
set(SwiftCore_ENABLE_STDIN_default ON)
1112
set(SwiftCore_ENABLE_TYPE_PRINTING_default ON)
1213

1314
set(SwiftCore_BACKTRACER_PATH_default "")
@@ -36,6 +37,8 @@ if(APPLE)
3637
set(SwiftCore_ENABLE_CRASH_REPORTER_CLIENT_default ON)
3738
set(SwiftCore_ENABLE_OBJC_INTEROP_default ON)
3839
set(SwiftCore_ENABLE_REFLECTION_default ON)
40+
set(SwiftCore_ENABLE_RUNTIME_OS_VERSIONING ON)
41+
set(SwiftCore_ENABLE_OVERRIDABLE_RETAIN_RELEASE ON)
3942
elseif(CMAKE_SYSTEM_NAME STREQUAL "WASM")
4043
set(SwiftCore_OBJECT_FORMAT_default "elf")
4144
elseif(LINUX OR ANDROID OR BSD)

Runtimes/Core/core/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,8 @@ target_compile_options(swiftCore PRIVATE
299299
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xllvm -sil-partial-specialization>")
300300

301301
target_compile_definitions(swiftCore PRIVATE
302-
$<$<BOOL:${SwiftCore_ENABLE_REFLECTION}>:-DSWIFT_ENABLE_REFLECTION>)
302+
$<$<BOOL:${SwiftCore_ENABLE_REFLECTION}>:-DSWIFT_ENABLE_REFLECTION>
303+
$<$<BOOL:${SwiftCore_ENABLE_COMPACT_ABSOLUTE_FUNCTION_POINTERS}>:-DSWIFT_COMPACT_ABSOLUTE_FUNCTION_POINTER>)
303304
target_compile_options(swiftCore PRIVATE
304305
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xcc -DswiftCore_EXPORTS>")
305306

Runtimes/Core/runtime/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ target_compile_definitions(swiftRuntime
8080
-DSWIFT_RUNTIME
8181
-DSWIFT_TARGET_LIBRARY_NAME=swiftRuntime
8282
$<$<BOOL:${SwiftCore_ENABLE_BACKTRACING}>:-DSWIFT_ENABLE_BACKTRACING>
83+
$<$<BOOL:${SwiftCore_ENABLE_OVERRIDABLE_RETAIN_RELEASE}>:-DSWIFT_STDLIB_OVERRIDABLE_RETAIN_RELEASE>
84+
$<$<BOOL:${SwiftCore_ENABLE_MALLOC_TYPE}>:-DSWIFT_STDLIB_HAS_MALLOC_TYPE>
8385
$<$<BOOL:${SwiftCore_BACKTRACER_PATH}>:-DSWIFT_RUNTIME_FIXED_BACKTRACER_PATH="${SwiftCore_BACKTRACER_PATH}">)
8486

8587
target_include_directories(swiftRuntime PRIVATE

stdlib/public/runtime/HeapObject.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1113,7 +1113,7 @@ WeakReference *swift::swift_weakTakeAssign(WeakReference *dest,
11131113
return dest;
11141114
}
11151115

1116-
#ifndef NDEBUG
1116+
#ifndef NDEBUG // "not not debug", or "debug-able configurations"
11171117

11181118
/// Returns true if the "immutable" flag is set on \p object.
11191119
///

0 commit comments

Comments
 (0)