Skip to content

Commit 99f9581

Browse files
authored
Merge pull request #5904 from hughbe/windows-cmake
Add support for building Swift on Windows with clang-cl and MSVC
2 parents 2f9a332 + 3d53967 commit 99f9581

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

cmake/modules/AddSwift.cmake

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,17 +97,18 @@ function(_add_variant_c_compile_link_flags)
9797
""
9898
${ARGN})
9999

100-
set(result
101-
${${CFLAGS_RESULT_VAR_NAME}}
102-
"-target" "${SWIFT_SDK_${CFLAGS_SDK}_ARCH_${CFLAGS_ARCH}_TRIPLE}")
100+
set(result ${${CFLAGS_RESULT_VAR_NAME}})
101+
102+
# MSVC and clang-cl dont't understand -target.
103+
if (NOT SWIFT_COMPILER_IS_MSVC_LIKE)
104+
list(APPEND result "-target" "${SWIFT_SDK_${CFLAGS_SDK}_ARCH_${CFLAGS_ARCH}_TRIPLE}")
105+
endif()
103106

104107
is_darwin_based_sdk("${CFLAGS_SDK}" IS_DARWIN)
105108
if(IS_DARWIN)
106109
list(APPEND result "-isysroot" "${SWIFT_SDK_${CFLAGS_SDK}_PATH}")
107-
else()
108-
if(NOT "${SWIFT_SDK_${CFLAGS_SDK}_PATH}" STREQUAL "/")
109-
list(APPEND result "--sysroot=${SWIFT_SDK_${CFLAGS_SDK}_PATH}")
110-
endif()
110+
elseif(NOT SWIFT_COMPILER_IS_MSVC_LIKE AND NOT "${SWIFT_SDK_${CFLAGS_SDK}_PATH}" STREQUAL "/")
111+
list(APPEND result "--sysroot=${SWIFT_SDK_${CFLAGS_SDK}_PATH}")
111112
endif()
112113

113114
if("${CFLAGS_SDK}" STREQUAL "ANDROID")

0 commit comments

Comments
 (0)