-
Notifications
You must be signed in to change notification settings - Fork 10.4k
/
Copy pathCMakeLists.txt
44 lines (35 loc) · 1.77 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
add_library(swiftSwiftOnoneSupport
SwiftOnoneSupport.swift
"${PROJECT_SOURCE_DIR}/linker-support/magic-symbols-for-install-name.c")
set_target_properties(swiftSwiftOnoneSupport PROPERTIES
Swift_MODULE_NAME SwiftOnoneSupport)
if(APPLE AND BUILD_SHARED_LIBS)
target_link_options(swiftSwiftOnoneSupport PRIVATE "SHELL:-Xlinker -headerpad_max_install_names")
endif()
target_compile_options(swiftSwiftOnoneSupport PRIVATE
$<$<COMPILE_LANGUAGE:Swift>:-parse-stdlib>
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xllvm -sil-inline-generics=false>"
# We have to disable validation of TBD files, because this module is
# _explicitly_ special-cased to result in extra symbols generated by the
# optimizer, meaning TBDGen can't (and shouldn't: it has to run
# pre-optimization for performance) list them.
# See also caa3dd4d291ec93c1a59f1db62604e703bff8468
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -validate-tbd-against-ir=none>"
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -check-onone-completeness>"
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -disable-access-control>")
target_compile_definitions(swiftSwiftOnoneSupport PRIVATE
$<$<COMPILE_LANGUAGE:C,CXX>:-DSWIFT_TARGET_LIBRARY_NAME=swiftSwiftOnoneSupport>)
target_link_libraries(swiftSwiftOnoneSupport
PRIVATE
swiftShims
swiftCore)
install(TARGETS swiftSwiftOnoneSupport
EXPORT SwiftCoreTargets
COMPONENT SwiftCore_runtime
ARCHIVE DESTINATION "${SwiftCore_INSTALL_LIBDIR}"
LIBRARY DESTINATION "${SwiftCore_INSTALL_LIBDIR}"
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
emit_swift_interface(swiftSwiftOnoneSupport)
install_swift_interface(swiftSwiftOnoneSupport)
# Configure plist creation for Darwin platforms.
generate_plist("${CMAKE_PROJECT_NAME}" "${CMAKE_PROJECT_VERSION}" swiftSwiftOnoneSupport)