File tree Expand file tree Collapse file tree 2 files changed +27
-21
lines changed
Expand file tree Collapse file tree 2 files changed +27
-21
lines changed Original file line number Diff line number Diff line change @@ -80,3 +80,28 @@ function(swift_windows_cache_VCVARS)
8080 set (UCRTVersion $ENV{UCRTVersion} CACHE STRING "" )
8181endfunction ()
8282
83+ # NOTE(compnerd) we use a macro here as this modifies global variables
84+ macro (swift_swap_compiler_if_needed target )
85+ if (NOT CMAKE_C_COMPILER_ID MATCHES Clang)
86+ if (CMAKE_SYSTEM_NAME STREQUAL CMAKE_HOST_SYSTEM_NAME )
87+ get_target_property (CLANG_LOCATION clang LOCATION )
88+ get_filename_component (CLANG_LOCATION ${CLANG_LOCATION} DIRECTORY )
89+
90+ if ("${CMAKE_C_COMPILER_ID} " STREQUAL "MSVC" OR
91+ "${CMAKE_C_SIMULATE_ID} " STREQUAL "MSVC" )
92+ set (CMAKE_C_COMPILER
93+ ${CLANG_LOCATION} /clang-cl${CMAKE_EXECUTABLE_SUFFIX} )
94+ set (CMAKE_CXX_COMPILER
95+ ${CLANG_LOCATION} /clang-cl${CMAKE_EXECUTABLE_SUFFIX} )
96+ else ()
97+ set (CMAKE_C_COMPILER
98+ ${CLANG_LOCATION} /clang${CMAKE_EXECUTABLE_SUFFIX} )
99+ set (CMAKE_CXX_COMPILER
100+ ${CLANG_LOCATION} /clang++${CMAKE_EXECUTABLE_SUFFIX} )
101+ endif ()
102+ else ()
103+ message (SEND_ERROR "${target} requires a clang based compiler" )
104+ endif ()
105+ endif ()
106+ endmacro ()
107+
Original file line number Diff line number Diff line change @@ -8,27 +8,8 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
88 message (SEND_ERROR "SourceKit cannot be built standalone" )
99endif ()
1010
11- if (NOT CMAKE_C_COMPILER_ID MATCHES Clang)
12- if (CMAKE_SYSTEM_NAME STREQUAL CMAKE_HOST_SYSTEM_NAME )
13- get_target_property (CLANG_LOCATION clang LOCATION )
14- get_filename_component (CLANG_LOCATION ${CLANG_LOCATION} DIRECTORY )
15-
16- if ("${CMAKE_C_COMPILER_ID} " STREQUAL "MSVC" OR
17- "${CMAKE_C_SIMULATE_ID} " STREQUAL "MSVC" )
18- set (CMAKE_C_COMPILER
19- ${CLANG_LOCATION} /clang-cl${CMAKE_EXECUTABLE_SUFFIX} )
20- set (CMAKE_CXX_COMPILER
21- ${CLANG_LOCATION} /clang-cl${CMAKE_EXECUTABLE_SUFFIX} )
22- else ()
23- set (CMAKE_C_COMPILER
24- ${CLANG_LOCATION} /clang${CMAKE_EXECUTABLE_SUFFIX} )
25- set (CMAKE_CXX_COMPILER
26- ${CLANG_LOCATION} /clang++${CMAKE_EXECUTABLE_SUFFIX} )
27- endif ()
28- else ()
29- message (SEND_ERROR "SourceKit requires a clang based compiler" )
30- endif ()
31- endif ()
11+ include (SwiftWindowsSupport)
12+ swift_swap_compiler_if_needed("SourceKit" )
3213
3314if (DARWIN_TOOLCHAIN_VERSION)
3415 set (SOURCEKIT_VERSION_STRING "${DARWIN_TOOLCHAIN_VERSION} " )
You can’t perform that action at this time.
0 commit comments