Skip to content

Commit fdb2819

Browse files
committed
Differentiation: re-order to make it homogeneous
This makes the rules ordering similar to facilitate diffing the CMakeLists.txt.
1 parent 933b351 commit fdb2819

File tree

1 file changed

+38
-21
lines changed

1 file changed

+38
-21
lines changed

Runtimes/Supplemental/Differentiation/CMakeLists.txt

Lines changed: 38 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
1115
set(CMAKE_POSITION_INDEPENDENT_CODE YES)
1216
set(CMAKE_Swift_LANGUAGE_VERSION 5)
1317

1418
list(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-
2020
set(${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)
2734
include(AvailabilityMacros)
28-
include(CatalystSupport)
2935
include(EmitSwiftInterface)
30-
include(ResourceEmbedding)
3136
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})
3249

3350
option(${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

3954
add_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

5469
if(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-
7688
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")
7891
endif()
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

85100
install(TARGETS swift_Differentiation
86101
EXPORT SwiftSupplementalTargets
@@ -94,3 +109,5 @@ install_swift_interface(swift_Differentiation)
94109
# Configure plist creation for Darwin platforms.
95110
generate_plist("${CMAKE_PROJECT_NAME}" "${CMAKE_PROJECT_VERSION}" swift_Differentiation)
96111
embed_manifest(swift_Differentiation)
112+
113+
include("${${PROJECT_NAME}_VENDOR_MODULE_DIR}/swift_Differentiation.cmake" OPTIONAL)

0 commit comments

Comments
 (0)