3
3
# a top-level build of the CMAKE_SOURCE_DIR. Otherwise, define a guard variable
4
4
# and return.
5
5
if (DEFINED SWIFT_MASTER_LOADED
6
- OR NOT ${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_SOURCE_DIR} )
6
+ OR NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
7
7
set (SWIFT_MASTER_LOADED TRUE )
8
8
return ()
9
9
endif ()
10
10
11
- set (CMAKE_INSTALL_PREFIX "${SWIFT_DEST_ROOT}${TOOLCHAIN_DIR} /usr" )
12
11
13
- set (SWIFT_STDLIB_BUILD_TYPE "Release" CACHE STRING
14
- "Build type for the Swift standard library and SDK overlays [Debug, RelWithDebInfo, Release, MinSizeRel]" )
12
+ # -----------------------------------------------------------------------------
13
+ # Preconditions
14
+
15
+ include (SwiftUtils )
16
+
17
+ precondition (CMAKE_INSTALL_PREFIX )
18
+ precondition (SWIFT_DEST_ROOT )
19
+ precondition (SWIFT_HOST_VARIANT_SDK )
20
+ precondition (SWIFT_SOURCE_ROOT )
21
+ precondition (TOOLCHAIN_DIR )
22
+
23
+
24
+ # -----------------------------------------------------------------------------
25
+ # Cache Variables and Options
26
+
27
+ set (SWIFT_SOURCE_DIR "${SWIFT_SOURCE_ROOT} /swift" CACHE PATH
28
+ "Path to the directory containing the Swift sources." )
29
+
30
+ set (SWIFT_DARWIN_XCRUN_TOOLCHAIN "XcodeDefault" CACHE STRING
31
+ "The name of the toolchain to pass to 'xcrun'." )
32
+
33
+ set (SWIFT_DARWIN_DEPLOYMENT_VERSION_OSX "10.9" CACHE STRING
34
+ "Minimum deployment target version for macOS." )
35
+ set (SWIFT_DARWIN_DEPLOYMENT_VERSION_IOS "7.0" CACHE STRING
36
+ "Minimum deployment target version for iOS." )
37
+ set (SWIFT_DARWIN_DEPLOYMENT_VERSION_TVOS "9.0" CACHE STRING
38
+ "Minimum deployment target version for tvOS." )
39
+ set (SWIFT_DARWIN_DEPLOYMENT_VERSION_WATCHOS "2.0" CACHE STRING
40
+ "Minimum deployment target version for watchOS." )
41
+
42
+ set (SWIFT_INSTALL_COMPONENTS "sdk-overlay" CACHE STRING
43
+ "A semicolon-separated list of install components." )
44
+
45
+ set (SWIFT_SDKS "${SWIFT_HOST_VARIANT_SDK} " CACHE STRING
46
+ "List of Swift SDKs to build." )
47
+
48
+ set (SWIFT_NATIVE_LLVM_TOOLS_PATH "${TOOLCHAIN_DIR} /usr/bin" CACHE STRING
49
+ "Path to LLVM tools that are executable on the build machine." )
50
+ set (SWIFT_NATIVE_CLANG_TOOLS_PATH "${TOOLCHAIN_DIR} /usr/bin" CACHE STRING
51
+ "Path to Clang tools that are executable on the build machine." )
52
+ set (SWIFT_NATIVE_SWIFT_TOOLS_PATH "${TOOLCHAIN_DIR} /usr/bin" CACHE STRING
53
+ "Path to Swift tools that are executable on the build machine." )
54
+
55
+ option (SWIFT_ENABLE_PARSEABLE_MODULE_INTERFACES
56
+ "Generate .swiftinterface files alongside .swiftmodule files."
57
+ TRUE )
58
+
59
+ set (SWIFT_STDLIB_BUILD_TYPE "${CMAKE_BUILD_TYPE} " CACHE STRING
60
+ "Build type for the Swift standard library and SDK overlays." )
61
+
15
62
set_property (CACHE SWIFT_STDLIB_BUILD_TYPE PROPERTY
16
- STRINGS "Debug" "RelWithDebInfo" "Release" "MinSizeRel" )
63
+ STRINGS
64
+ "Debug" "RelWithDebInfo" "Release" "MinSizeRel" )
17
65
18
- # Only happens if it's called from a top-level cmake invocation.
19
- set (BUILD_STANDALONE TRUE )
20
- set (SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES "SHARED" )
21
- set (SWIFT_INSTALL_COMPONENTS "sdk-overlay" CACHE STRING "" )
22
- set (SWIFT_DARWIN_DEPLOYMENT_VERSION_OSX "10.9" CACHE STRING "" )
23
- set (SWIFT_DARWIN_DEPLOYMENT_VERSION_IOS "7.0" CACHE STRING "" )
24
- set (SWIFT_DARWIN_DEPLOYMENT_VERSION_TVOS "9.0" CACHE STRING "" )
25
- set (SWIFT_DARWIN_DEPLOYMENT_VERSION_WATCHOS "2.0" CACHE STRING "" )
26
- set (SWIFT_ENABLE_PARSEABLE_MODULE_INTERFACES TRUE )
66
+ # -----------------------------------------------------------------------------
67
+ # Constants
27
68
28
- set (SWIFT_SOURCE_DIR "${SWIFT_SOURCE_ROOT} /swift" CACHE PATH "" )
29
- set (SWIFT_NATIVE_SWIFT_TOOLS_PATH "${TOOLCHAIN_DIR} /usr/bin" CACHE PATH "" )
30
- set (SWIFT_SDKS ${SWIFT_HOST_VARIANT_SDK} )
69
+ set (CMAKE_INSTALL_PREFIX
70
+ "${SWIFT_DEST_ROOT}${TOOLCHAIN_DIR} /usr" )
31
71
32
72
list (APPEND CMAKE_MODULE_PATH
33
73
"${SWIFT_SOURCE_ROOT} /llvm/cmake/modules"
34
- "${PROJECT_SOURCE_DIR} /../../../../cmake/modules" )
74
+ "${PROJECT_SOURCE_DIR} /../../../../cmake/modules"
75
+ "${PROJECT_SOURCE_DIR} /../../../cmake/modules" )
35
76
36
- set (SWIFT_DARWIN_XCRUN_TOOLCHAIN "XcodeDefault" CACHE STRING
37
- "The name of the toolchain to pass to 'xcrun'" )
77
+
78
+ set (SWIFT_APPLE_PLATFORMS
79
+ OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR )
80
+
81
+ # Flags used to indicate we are building a standalone overlay.
82
+ # FIXME: We should cut this down to a single flag.
83
+ set (BUILD_STANDALONE TRUE )
84
+ set (SWIFT_BUILD_STANDALONE_OVERLAY TRUE )
85
+
86
+ set (SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES "SHARED" )
87
+
88
+
89
+ # -----------------------------------------------------------------------------
38
90
39
91
include (SwiftToolchainUtils )
40
92
if (NOT SWIFT_LIPO )
41
93
find_toolchain_tool (SWIFT_LIPO "${SWIFT_DARWIN_XCRUN_TOOLCHAIN} " lipo )
42
94
endif ()
43
95
44
96
include (AddLLVM )
45
- include (SwiftUtils )
46
97
include (SwiftSharedCMakeConfig )
47
98
include (AddSwift )
48
99
include (SwiftHandleGybSources )
@@ -51,25 +102,22 @@ include(SwiftSource)
51
102
include (SwiftComponents )
52
103
include (DarwinSDKs )
53
104
54
- # These variables should be passed as -D variables to cmake.
55
- # e.g. cmake -G Ninja -DSWIFT_HOST_VARIANT_SDK=OSX ..
56
- precondition (CMAKE_INSTALL_PREFIX )
57
- precondition (SWIFT_SOURCE_ROOT )
58
- precondition (SWIFT_DEST_ROOT )
59
- precondition (SWIFT_HOST_VARIANT_SDK )
60
- precondition (TOOLCHAIN_DIR )
61
105
62
106
# Without this line, installing components is broken. This needs refactoring.
63
107
swift_configure_components ()
64
108
65
- # Some overlays include the runtime's headers,
66
- # and some of those headers are generated at build time.
67
- add_subdirectory ("${SWIFT_SOURCE_DIR} /include" "${SWIFT_SOURCE_DIR} /include" )
68
- add_subdirectory ("${SWIFT_SOURCE_DIR} /apinotes" "${SWIFT_SOURCE_DIR} /apinotes" )
69
109
70
- precondition (unknown_sdks NEGATE MESSAGE "Unknown SDKs: ${unknown_sdks} " )
71
- precondition (SWIFT_CONFIGURED_SDKS MESSAGE "No SDKs selected." )
72
- precondition (SWIFT_HOST_VARIANT_SDK MESSAGE "No SDK for host tools." )
110
+ list_subtract (
111
+ "${SWIFT_SDKS} "
112
+ "${SWIFT_CONFIGURED_SDKS} "
113
+ unknown_sdks )
114
+
115
+ precondition (unknown_sdks NEGATE
116
+ MESSAGE
117
+ "Unknown SDKs: ${unknown_sdks} " )
118
+
73
119
74
- # ARCH is set somewhere later.
75
- #precondition(SWIFT_HOST_VARIANT_ARCH MESSAGE "No arch for host tools")
120
+ # Some overlays include the runtime's headers, and some of those headers are
121
+ # generated at build time.
122
+ add_subdirectory ("${SWIFT_SOURCE_DIR} /include" "${SWIFT_SOURCE_DIR} /include" )
123
+ add_subdirectory ("${SWIFT_SOURCE_DIR} /apinotes" "${SWIFT_SOURCE_DIR} /apinotes" )
0 commit comments