@@ -264,18 +264,6 @@ function(_add_variant_c_compile_flags)
264264 endif ()
265265
266266 if ("${CFLAGS_SDK} " STREQUAL "WINDOWS" )
267- # MSVC doesn't support -Xclang. We don't need to manually specify
268- # the dependent libraries as `cl` does so.
269- if (NOT "${CMAKE_C_COMPILER_ID} " STREQUAL "MSVC" )
270- list (APPEND result -Xclang;--dependent-lib=oldnames)
271- # TODO(compnerd) handle /MT, /MTd
272- if ("${CFLAGS_BUILD_TYPE} " STREQUAL "Debug" )
273- list (APPEND result -Xclang;--dependent-lib=msvcrtd)
274- else ()
275- list (APPEND result -Xclang;--dependent-lib=msvcrt)
276- endif ()
277- endif ()
278-
279267 # MSVC/clang-cl don't support -fno-pic or -fms-compatibility-version.
280268 if (NOT SWIFT_COMPILER_IS_MSVC_LIKE)
281269 list (APPEND result -fno-pic)
@@ -366,11 +354,6 @@ function(_add_variant_c_compile_flags)
366354 list (APPEND result "SHELL:${CMAKE_INCLUDE_SYSTEM_FLAG_C}${path} " )
367355 endforeach ()
368356 list (APPEND result "-D__ANDROID_API__=${SWIFT_ANDROID_API_LEVEL} " )
369- elseif (CFLAGS_SDK STREQUAL WINDOWS)
370- swift_windows_include_for_arch(${CFLAGS_ARCH} ${CFLAGS_ARCH} _INCLUDE)
371- foreach (path ${${CFLAGS_ARCH} _INCLUDE})
372- list (APPEND result "\" ${CMAKE_INCLUDE_FLAG_C}${path} \" " )
373- endforeach ()
374357 endif ()
375358
376359 set ("${CFLAGS_RESULT_VAR_NAME} " "${result} " PARENT_SCOPE)
@@ -910,11 +893,9 @@ function(_add_swift_library_single target name)
910893
911894 if ("${SWIFTLIB_SINGLE_SDK} " STREQUAL "WINDOWS" )
912895 if (NOT "${CMAKE_C_COMPILER_ID} " STREQUAL "MSVC" )
913- swift_windows_generate_sdk_vfs_overlay(SWIFTLIB_SINGLE_VFS_OVERLAY_FLAGS)
914- foreach (flag ${SWIFTLIB_SINGLE_VFS_OVERLAY_FLAGS} )
915- list (APPEND SWIFTLIB_SINGLE_SWIFT_COMPILE_FLAGS -Xcc;${flag} )
916- list (APPEND SWIFTLIB_SINGLE_C_COMPILE_FLAGS ${flag} )
917- endforeach ()
896+ swift_windows_get_sdk_vfs_overlay(SWIFTLIB_SINGLE_VFS_OVERLAY)
897+ list (APPEND SWIFTLIB_SINGLE_SWIFT_COMPILE_FLAGS
898+ -Xcc;-Xclang;-Xcc;-ivfsoverlay;-Xcc;-Xclang;-Xcc;${SWIFTLIB_SINGLE_VFS_OVERLAY} )
918899 endif ()
919900 swift_windows_include_for_arch(${SWIFTLIB_SINGLE_ARCHITECTURE} SWIFTLIB_INCLUDE)
920901 foreach (directory ${SWIFTLIB_INCLUDE} )
@@ -1390,6 +1371,25 @@ function(_add_swift_library_single target name)
13901371 endif ()
13911372
13921373 # Set compilation and link flags.
1374+ if (SWIFTLIB_SINGLE_SDK STREQUAL WINDOWS)
1375+ swift_windows_include_for_arch(${SWIFTLIB_SINGLE_ARCHITECTURE}
1376+ ${SWIFTLIB_SINGLE_ARCHITECTURE} _INCLUDE)
1377+ target_include_directories (${target} SYSTEM PRIVATE
1378+ ${${SWIFTLIB_SINGLE_ARCHITECTURE} _INCLUDE})
1379+
1380+ if (NOT ${CMAKE_C_COMPILER_ID} STREQUAL MSVC )
1381+ swift_windows_get_sdk_vfs_overlay(SWIFTLIB_SINGLE_VFS_OVERLAY)
1382+ target_compile_options (${target} PRIVATE
1383+ "SHELL:-Xclang -ivfsoverlay -Xclang ${SWIFTLIB_SINGLE_VFS_OVERLAY} " )
1384+
1385+ # MSVC doesn't support -Xclang. We don't need to manually specify
1386+ # the dependent libraries as `cl` does so.
1387+ target_compile_options (${target} PRIVATE
1388+ "SHELL:-Xclang --dependent-lib=oldnames"
1389+ # TODO(compnerd) handle /MT, /MTd
1390+ "SHELL:-Xclang --dependent-lib=msvcrt$<$<CONFIG:Debug>:d>" )
1391+ endif ()
1392+ endif ()
13931393 target_include_directories (${target} SYSTEM PRIVATE
13941394 ${SWIFT_${SWIFTLIB_SINGLE_SDK} _${SWIFTLIB_SINGLE_ARCHITECTURE} _ICU_UC_INCLUDE}
13951395 ${SWIFT_${SWIFTLIB_SINGLE_SDK} _${SWIFTLIB_SINGLE_ARCHITECTURE} _ICU_I18N_INCLUDE})
@@ -2575,6 +2575,21 @@ function(_add_swift_executable_single name)
25752575 ${SWIFTEXE_SINGLE_DEPENDS} )
25762576 llvm_update_compile_flags("${name} " )
25772577
2578+ if (SWIFTEXE_SINGLE_SDK STREQUAL WINDOWS)
2579+ swift_windows_include_for_arch(${SWIFTEXE_SINGLE_ARCHITECTURE}
2580+ ${SWIFTEXE_SINGLE_ARCHITECTURE} _INCLUDE)
2581+ target_include_directories (${name} SYSTEM PRIVATE
2582+ ${${SWIFTEXE_SINGLE_ARCHITECTURE} _INCLUDE})
2583+
2584+ if (NOT ${CMAKE_C_COMPILER_ID} STREQUAL MSVC )
2585+ # MSVC doesn't support -Xclang. We don't need to manually specify
2586+ # the dependent libraries as `cl` does so.
2587+ target_compile_options (${name} PRIVATE
2588+ "SHELL:-Xclang --dependent-lib=oldnames"
2589+ # TODO(compnerd) handle /MT, /MTd
2590+ "SHELL:-Xclang --dependent-lib=msvcrt$<$<CONFIG:Debug>:d>" )
2591+ endif ()
2592+ endif ()
25782593 target_compile_options (${name} PRIVATE
25792594 ${c_compile_flags} )
25802595 target_link_directories (${name} PRIVATE
0 commit comments