@@ -8,48 +8,63 @@ project(SwiftDifferentiation
88 LANGUAGES Swift C
99 VERSION 6.1.0${BUILD_NUMBER} )
1010
11+ if (NOT PROJECT_IS_TOP_LEVEL)
12+ message (SEND_ERROR "Swift Differentiation must build as a standalone project" )
13+ endif ()
14+
1115set (CMAKE_POSITION_INDEPENDENT_CODE YES )
1216set (CMAKE_Swift_LANGUAGE_VERSION 5)
1317
1418list (APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR} /../cmake/modules" )
1519
16- if (NOT PROJECT_IS_TOP_LEVEL)
17- message (SEND_ERROR "Swift Differentiation must build as a standalone project" )
18- endif ()
19-
2020set (${PROJECT_NAME} _SWIFTC_SOURCE_DIR
2121 "${PROJECT_SOURCE_DIR} /../../../"
2222 CACHE FILEPATH "Path to the root source directory of the Swift compiler" )
2323
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)
2533
26- include (gyb)
2734include (AvailabilityMacros)
28- include (CatalystSupport)
2935include (EmitSwiftInterface)
30- include (ResourceEmbedding)
3136include (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} )
3249
3350option (${PROJECT_NAME} _ENABLE_VECTOR_TYPES "Enable vector support"
3451 ${SwiftCore_ENABLE_VECTOR_TYPES} )
3552
36- option (${PROJECT_NAME} _ENABLE_LIBRARY_EVOLUTION "Enable library evolution"
37- ${SwiftCore_ENABLE_LIBRARY_EVOLUTION} )
3853
3954add_compile_options (
4055 $<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build >
4156 $<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
4257 $<$<COMPILE_LANGUAGE:Swift>:-parse-stdlib>
4358 "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-library-level api>"
44- $<$<COMPILE_LANGUAGE:Swift>:-enforce-exclusivity=unchecked>
45- "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-target-min-inlining-version min>"
4659 "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature NoncopyableGenerics2>"
4760 "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature SuppressedAssociatedTypes>"
4861 "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature SE427NoInferenceOnExtension>"
4962 "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature NonescapableTypes>"
5063 "$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature LifetimeDependence>"
5164 "$<$<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>)
5368
5469if (SwiftDifferentiation_ENABLE_VECTOR_TYPES)
5570 gyb_expand(SIMDDifferentiation.swift.gyb SIMDDifferentiation.swift)
@@ -65,22 +80,22 @@ add_library(swift_Differentiation
6580 DifferentialOperators.swift
6681 DifferentiationUtilities.swift
6782 OptionalDifferentiation.swift
68- $<$<BOOL :${SwiftDifferentiation_ENABLE_VECTOR_TYPES } >:SIMDDifferentiation.swift>
83+ $<$<BOOL :${${PROJECT_NAME} _ENABLE_VECTOR_TYPES }>:SIMDDifferentiation.swift>
6984 TgmathDerivatives.swift
7085 FloatingPointDifferentiation.swift
7186 linker-support/magic-symbols-for-install -name .c)
7287
73- set_target_properties (swift_Differentiation PROPERTIES
74- Swift_MODULE_NAME _Differentiation)
75-
7688if (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" )
7891endif ()
7992
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)
8198
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 "" )
8499
85100install (TARGETS swift_Differentiation
86101 EXPORT SwiftSupplementalTargets
@@ -94,3 +109,5 @@ install_swift_interface(swift_Differentiation)
94109# Configure plist creation for Darwin platforms.
95110generate_plist("${CMAKE_PROJECT_NAME} " "${CMAKE_PROJECT_VERSION} " swift_Differentiation)
96111embed_manifest(swift_Differentiation)
112+
113+ include ("${${PROJECT_NAME} _VENDOR_MODULE_DIR}/swift_Differentiation.cmake" OPTIONAL )
0 commit comments