@@ -8,48 +8,63 @@ project(SwiftDifferentiation
8
8
LANGUAGES Swift C
9
9
VERSION 6.1.0${BUILD_NUMBER} )
10
10
11
+ if (NOT PROJECT_IS_TOP_LEVEL )
12
+ message (SEND_ERROR "Swift Differentiation must build as a standalone project" )
13
+ endif ()
14
+
11
15
set (CMAKE_POSITION_INDEPENDENT_CODE YES )
12
16
set (CMAKE_Swift_LANGUAGE_VERSION 5 )
13
17
14
18
list (APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR} /../cmake/modules" )
15
19
16
- if (NOT PROJECT_IS_TOP_LEVEL )
17
- message (SEND_ERROR "Swift Differentiation must build as a standalone project" )
18
- endif ()
19
-
20
20
set (${PROJECT_NAME} _SWIFTC_SOURCE_DIR
21
21
"${PROJECT_SOURCE_DIR} /../../../"
22
22
CACHE FILEPATH "Path to the root source directory of the Swift compiler" )
23
23
24
- find_package (SwiftCore )
24
+ # Hook point for vendor-specific extensions to the build system
25
+ # Allowed extension points:
26
+ # - DefaultSettings.cmake
27
+ # - Settings.cmake
28
+ set (${PROJECT_NAME} _VENDOR_MODULE_DIR "${CMAKE_SOURCE_DIR} /../cmake/modules/vendor"
29
+ CACHE FILEPATH "Location for private build system extension" )
30
+
31
+ find_package (SwiftCore REQUIRED )
32
+ include (GNUInstallDirs )
25
33
26
- include (gyb )
27
34
include (AvailabilityMacros )
28
- include (CatalystSupport )
29
35
include (EmitSwiftInterface )
30
- include (ResourceEmbedding )
31
36
include (InstallSwiftInterface )
37
+ include (gyb )
38
+ include (ResourceEmbedding )
39
+ include (CatalystSupport )
40
+
41
+ option (${PROJECT_NAME} _INSTALL_NESTED_SUBDIR "Install libraries under a platform and architecture subdirectory" ON )
42
+ 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 "" )
43
+ 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 "" )
44
+
45
+ include ("${${PROJECT_NAME} _VENDOR_MODULE_DIR}/Settings.cmake" OPTIONAL )
46
+
47
+ option (${PROJECT_NAME} _ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime libraries"
48
+ ${SwiftCore_ENABLE_LIBRARY_EVOLUTION} )
32
49
33
50
option (${PROJECT_NAME} _ENABLE_VECTOR_TYPES "Enable vector support"
34
51
${SwiftCore_ENABLE_VECTOR_TYPES} )
35
52
36
- option (${PROJECT_NAME} _ENABLE_LIBRARY_EVOLUTION "Enable library evolution"
37
- ${SwiftCore_ENABLE_LIBRARY_EVOLUTION} )
38
53
39
54
add_compile_options (
40
55
$< $< COMPILE_LANGUAGE:Swift> :-explicit-module-build>
41
56
$< $< COMPILE_LANGUAGE:Swift> :-nostdlibimport>
42
57
$< $< COMPILE_LANGUAGE:Swift> :-parse-stdlib>
43
58
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-library-level api>"
44
- $< $< COMPILE_LANGUAGE:Swift> :-enforce-exclusivity=unchecked>
45
- "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-target-min-inlining-version min>"
46
59
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature NoncopyableGenerics2>"
47
60
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature SuppressedAssociatedTypes>"
48
61
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature SE427NoInferenceOnExtension>"
49
62
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature NonescapableTypes>"
50
63
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature LifetimeDependence>"
51
64
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature MemberImportVisibility>"
52
- $< $< AND:$< BOOL:${SwiftDifferentiation_ENABLE_LIBRARY_EVOLUTION} > ,$< COMPILE_LANGUAGE:Swift> > :-enable-library-evolution> )
65
+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enforce-exclusivity=unchecked>"
66
+ "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -target-min-inlining-version -Xfrontend min>"
67
+ $< $< AND:$< BOOL:${${PROJECT_NAME} _ENABLE_LIBRARY_EVOLUTION}> ,$< COMPILE_LANGUAGE:Swift> > :-enable-library-evolution> )
53
68
54
69
if (SwiftDifferentiation_ENABLE_VECTOR_TYPES )
55
70
gyb_expand (SIMDDifferentiation.swift.gyb SIMDDifferentiation.swift )
@@ -65,22 +80,22 @@ add_library(swift_Differentiation
65
80
DifferentialOperators.swift
66
81
DifferentiationUtilities.swift
67
82
OptionalDifferentiation.swift
68
- $< $< BOOL:${SwiftDifferentiation_ENABLE_VECTOR_TYPES } > :SIMDDifferentiation.swift>
83
+ $< $< BOOL:${${PROJECT_NAME} _ENABLE_VECTOR_TYPES }> :SIMDDifferentiation.swift>
69
84
TgmathDerivatives.swift
70
85
FloatingPointDifferentiation.swift
71
86
linker-support/magic-symbols-for-install-name.c )
72
87
73
- set_target_properties (swift_Differentiation PROPERTIES
74
- Swift_MODULE_NAME _Differentiation )
75
-
76
88
if (APPLE AND BUILD_SHARED_LIBS )
77
- target_link_options (swift_Differentiation PRIVATE "SHELL:-Xlinker -headerpad_max_install_names" )
89
+ target_link_options (swift_Differentiation PRIVATE
90
+ "SHELL:-Xlinker -headerpad_max_install_names" )
78
91
endif ()
79
92
80
- target_link_libraries (swift_Differentiation PRIVATE swiftCore )
93
+ set_target_properties (swift_Differentiation PROPERTIES
94
+ Swift_MODULE_NAME _Differentiation )
95
+
96
+ target_link_libraries (swift_Differentiation PRIVATE
97
+ swiftCore )
81
98
82
- 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 "" )
83
- 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 "" )
84
99
85
100
install (TARGETS swift_Differentiation
86
101
EXPORT SwiftSupplementalTargets
@@ -94,3 +109,5 @@ install_swift_interface(swift_Differentiation)
94
109
# Configure plist creation for Darwin platforms.
95
110
generate_plist ("${CMAKE_PROJECT_NAME} " "${CMAKE_PROJECT_VERSION} " swift_Differentiation )
96
111
embed_manifest (swift_Differentiation )
112
+
113
+ include ("${${PROJECT_NAME} _VENDOR_MODULE_DIR}/swift_Differentiation.cmake" OPTIONAL )
0 commit comments