diff --git a/cmake/modules/AddSwift.cmake b/cmake/modules/AddSwift.cmake index 52e4273a0d92e..c9f11a2b1f019 100644 --- a/cmake/modules/AddSwift.cmake +++ b/cmake/modules/AddSwift.cmake @@ -97,17 +97,18 @@ function(_add_variant_c_compile_link_flags) "" ${ARGN}) - set(result - ${${CFLAGS_RESULT_VAR_NAME}} - "-target" "${SWIFT_SDK_${CFLAGS_SDK}_ARCH_${CFLAGS_ARCH}_TRIPLE}") + set(result ${${CFLAGS_RESULT_VAR_NAME}}) + + # MSVC and clang-cl dont't understand -target. + if (NOT SWIFT_COMPILER_IS_MSVC_LIKE) + list(APPEND result "-target" "${SWIFT_SDK_${CFLAGS_SDK}_ARCH_${CFLAGS_ARCH}_TRIPLE}") + endif() is_darwin_based_sdk("${CFLAGS_SDK}" IS_DARWIN) if(IS_DARWIN) list(APPEND result "-isysroot" "${SWIFT_SDK_${CFLAGS_SDK}_PATH}") - else() - if(NOT "${SWIFT_SDK_${CFLAGS_SDK}_PATH}" STREQUAL "/") - list(APPEND result "--sysroot=${SWIFT_SDK_${CFLAGS_SDK}_PATH}") - endif() + elseif(NOT SWIFT_COMPILER_IS_MSVC_LIKE AND NOT "${SWIFT_SDK_${CFLAGS_SDK}_PATH}" STREQUAL "/") + list(APPEND result "--sysroot=${SWIFT_SDK_${CFLAGS_SDK}_PATH}") endif() if("${CFLAGS_SDK}" STREQUAL "ANDROID")