Skip to content

Commit c611d8e

Browse files
committed
build: be more clever about path to clang
Setup the clang build to use clang-cl on Windows and clang on other targets. This allows libdispatch to build on windows when building with cl. libdispatch requires clang-cl to build as it relies on clang features.
1 parent e71b2a5 commit c611d8e

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

CMakeLists.txt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -909,8 +909,18 @@ if(SWIFT_NEED_EXPLICIT_LIBDISPATCH)
909909
set(SWIFT_LIBDISPATCH_C_COMPILER ${CMAKE_C_COMPILER})
910910
set(SWIFT_LIBDISPATCH_CXX_COMPILER ${CMAKE_CXX_COMPILER})
911911
elseif(${CMAKE_SYSTEM_NAME} STREQUAL ${CMAKE_HOST_SYSTEM_NAME})
912-
set(SWIFT_LIBDISPATCH_C_COMPILER $<TARGET_PROPERTY:clang,LOCATION>)
913-
set(SWIFT_LIBDISPATCH_CXX_COMPILER $<TARGET_PROPERTY:clang,LOCATION>)
912+
get_target_property(CLANG_LOCATION clang LOCATION)
913+
get_filename_component(CLANG_LOCATION ${CLANG_LOCATION} DIRECTORY)
914+
915+
if(CMAKE_SYSTEM_NAME STREQUAL Windows)
916+
set(SWIFT_LIBDISPATCH_C_COMPILER
917+
${CLANG_LOCATION}/clang-cl${CMAKE_EXECUTABLE_SUFFIX})
918+
set(SWIFT_LIBDISPATCH_CXX_COMPILER
919+
${CLANG_LOCATION}/clang-cl${CMAKE_EXECUTABLE_SUFFIX})
920+
else()
921+
set(SWIFT_LIBDISPATCH_C_COMPILER ${CLANG_LOCATION}/clang)
922+
set(SWIFT_LIBDISPATCH_CXX_COMPILER ${CLANG_LOCATION}/clang++)
923+
endif()
914924
else()
915925
message(SEND_ERROR "libdispatch requires a newer clang compiler (${CMAKE_C_COMPILER_VERSION} < 3.9)")
916926
endif()

0 commit comments

Comments
 (0)