@@ -15,12 +15,25 @@ project(SwiftSyntax LANGUAGES C Swift)
15
15
set (SWIFT_VERSION 5)
16
16
set (CMAKE_Swift_LANGUAGE_VERSION ${SWIFT_VERSION} )
17
17
18
+ if (CMAKE_VERSION VERSION_LESS 3.21)
19
+ get_property (parent_dir DIRECTORY PROPERTY PARENT_DIRECTORY )
20
+ if (NOT parent_dir)
21
+ set (PROJECT_IS_TOP_LEVEL TRUE )
22
+ endif ()
23
+ endif ()
24
+
18
25
# The subdirectory into which host libraries will be installed.
19
26
set (SWIFT_HOST_LIBRARIES_SUBDIRECTORY "swift/host" )
20
27
21
- set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /lib/${SWIFT_HOST_LIBRARIES_SUBDIRECTORY} " )
22
- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /lib/${SWIFT_HOST_LIBRARIES_SUBDIRECTORY} " )
23
- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /bin" )
28
+ if (NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY )
29
+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /lib/${SWIFT_HOST_LIBRARIES_SUBDIRECTORY} " )
30
+ endif ()
31
+ if (NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY )
32
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /lib/${SWIFT_HOST_LIBRARIES_SUBDIRECTORY} " )
33
+ endif ()
34
+ if (NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY )
35
+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /bin" )
36
+ endif ()
24
37
25
38
set (CMAKE_MACOSX_RPATH YES )
26
39
@@ -49,22 +62,25 @@ if (NOT SWIFT_SUPPORTS_DISABLE_IMPLICIT_STRING_PROCESSING_MODULE_IMPORT)
49
62
endif ()
50
63
51
64
# Determine the module triple.
52
- # FIXME: This is a hack. It's all a hack. Windows isn't setting
53
- # CMAKE_Swift_COMPILER_TARGET.
54
- if (CMAKE_Swift_COMPILER_TARGET)
55
- string (REGEX REPLACE "macosx[0-9]+([.][0-9]+)?" "macos" SWIFT_MODULE_TRIPLE
56
- ${CMAKE_Swift_COMPILER_TARGET} )
57
- elseif ("${CMAKE_SYSTEM_NAME} " STREQUAL "Windows" )
58
- if (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64" )
59
- set (SWIFT_MODULE_TRIPLE "x86_64-unknown-windows-msvc" )
60
- elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|ARM64|arm64" )
61
- set (SWIFT_MODULE_TRIPLE "aarch64-unknown-windows-msvc" )
65
+ if ("${SWIFT_HOST_MODULE_TRIPLE} " STREQUAL "" )
66
+ # FIXME: This is a hack. It's all a hack. Windows isn't setting
67
+ # CMAKE_Swift_COMPILER_TARGET.
68
+ if (CMAKE_Swift_COMPILER_TARGET)
69
+ string (REGEX REPLACE "macosx[0-9]+([.][0-9]+)?" "macos" SWIFT_HOST_MODULE_TRIPLE
70
+ ${CMAKE_Swift_COMPILER_TARGET} )
71
+ elseif ("${CMAKE_SYSTEM_NAME} " STREQUAL "Windows" )
72
+ if (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64" )
73
+ set (SWIFT_HOST_MODULE_TRIPLE "x86_64-unknown-windows-msvc" )
74
+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|ARM64|arm64" )
75
+ set (SWIFT_HOST_MODULE_TRIPLE "aarch64-unknown-windows-msvc" )
76
+ else ()
77
+ message (FATAL_ERROR "Unrecognized architecture for Windows host" )
78
+ endif ()
62
79
else ()
63
- message (FATAL_ERROR "Unrecognized architecture for Windows host " )
80
+ message (FATAL_ERROR "Host module triple required " )
64
81
endif ()
65
82
endif ()
66
-
67
- message (STATUS "Module triple: ${SWIFT_MODULE_TRIPLE} " )
83
+ message (STATUS "Module triple: ${SWIFT_HOST_MODULE_TRIPLE} " )
68
84
69
85
if (SWIFTSYNTAX_ENABLE_ASSERTIONS)
70
86
add_compile_definitions (
@@ -73,10 +89,4 @@ if (SWIFTSYNTAX_ENABLE_ASSERTIONS)
73
89
endif ()
74
90
75
91
add_subdirectory (Sources )
76
-
77
- export (EXPORT SwiftSyntaxTargets
78
- FILE "${CMAKE_CURRENT_BINARY_DIR} /cmake/SwiftSyntaxTargets.cmake"
79
- NAMESPACE SwiftSyntax::
80
- )
81
-
82
92
add_subdirectory (cmake/modules)
0 commit comments