@@ -264,18 +264,6 @@ function(_add_variant_c_compile_flags)
264
264
endif ()
265
265
266
266
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
-
279
267
# MSVC/clang-cl don't support -fno-pic or -fms-compatibility-version.
280
268
if (NOT SWIFT_COMPILER_IS_MSVC_LIKE)
281
269
list (APPEND result -fno-pic)
@@ -366,11 +354,6 @@ function(_add_variant_c_compile_flags)
366
354
list (APPEND result -isystem;${path} )
367
355
endforeach ()
368
356
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 ()
374
357
endif ()
375
358
376
359
set ("${CFLAGS_RESULT_VAR_NAME} " "${result} " PARENT_SCOPE)
@@ -921,11 +904,9 @@ function(_add_swift_library_single target name)
921
904
922
905
if ("${SWIFTLIB_SINGLE_SDK} " STREQUAL "WINDOWS" )
923
906
if (NOT "${CMAKE_C_COMPILER_ID} " STREQUAL "MSVC" )
924
- swift_windows_generate_sdk_vfs_overlay(SWIFTLIB_SINGLE_VFS_OVERLAY_FLAGS)
925
- foreach (flag ${SWIFTLIB_SINGLE_VFS_OVERLAY_FLAGS} )
926
- list (APPEND SWIFTLIB_SINGLE_SWIFT_COMPILE_FLAGS -Xcc;${flag} )
927
- list (APPEND SWIFTLIB_SINGLE_C_COMPILE_FLAGS ${flag} )
928
- endforeach ()
907
+ swift_windows_get_sdk_vfs_overlay(SWIFTLIB_SINGLE_VFS_OVERLAY)
908
+ list (APPEND SWIFTLIB_SINGLE_SWIFT_COMPILE_FLAGS
909
+ -Xcc;-Xclang;-Xcc;-ivfsoverlay;-Xcc;-Xclang;-Xcc;${SWIFTLIB_SINGLE_VFS_OVERLAY} )
929
910
endif ()
930
911
swift_windows_include_for_arch(${SWIFTLIB_SINGLE_ARCHITECTURE} SWIFTLIB_INCLUDE)
931
912
foreach (directory ${SWIFTLIB_INCLUDE} )
@@ -1423,6 +1404,25 @@ function(_add_swift_library_single target name)
1423
1404
endif ()
1424
1405
1425
1406
# Set compilation and link flags.
1407
+ if (SWIFTLIB_SINGLE_SDK STREQUAL WINDOWS)
1408
+ swift_windows_include_for_arch(${SWIFTLIB_SINGLE_ARCHITECTURE}
1409
+ ${SWIFTLIB_SINGLE_ARCHITECTURE} _INCLUDE)
1410
+ target_include_directories (${target} SYSTEM PRIVATE
1411
+ ${${SWIFTLIB_SINGLE_ARCHITECTURE} _INCLUDE})
1412
+
1413
+ if (NOT ${CMAKE_C_COMPILER_ID} STREQUAL MSVC )
1414
+ swift_windows_get_sdk_vfs_overlay(SWIFTLIB_SINGLE_VFS_OVERLAY)
1415
+ target_compile_options (${target} PRIVATE
1416
+ "SHELL:-Xclang -ivfsoverlay -Xclang ${SWIFTLIB_SINGLE_VFS_OVERLAY} " )
1417
+
1418
+ # MSVC doesn't support -Xclang. We don't need to manually specify
1419
+ # the dependent libraries as `cl` does so.
1420
+ target_compile_options (${target} PRIVATE
1421
+ "SHELL:-Xclang --dependent-lib=oldnames"
1422
+ # TODO(compnerd) handle /MT, /MTd
1423
+ "SHELL:-Xclang --dependent-lib=msvcrt$<$<CONFIG:Debug>:d>" )
1424
+ endif ()
1425
+ endif ()
1426
1426
target_include_directories (${target} SYSTEM PRIVATE
1427
1427
${SWIFT_${SWIFTLIB_SINGLE_SDK} _${SWIFTLIB_SINGLE_ARCHITECTURE} _ICU_UC_INCLUDE}
1428
1428
${SWIFT_${SWIFTLIB_SINGLE_SDK} _${SWIFTLIB_SINGLE_ARCHITECTURE} _ICU_I18N_INCLUDE})
@@ -2625,6 +2625,21 @@ function(_add_swift_executable_single name)
2625
2625
${SWIFTEXE_SINGLE_DEPENDS} )
2626
2626
llvm_update_compile_flags("${name} " )
2627
2627
2628
+ if (SWIFTEXE_SINGLE_SDK STREQUAL WINDOWS)
2629
+ swift_windows_include_for_arch(${SWIFTEXE_SINGLE_ARCHITECTURE}
2630
+ ${SWIFTEXE_SINGLE_ARCHITECTURE} _INCLUDE)
2631
+ target_include_directories (${name} SYSTEM PRIVATE
2632
+ ${${SWIFTEXE_SINGLE_ARCHITECTURE} _INCLUDE})
2633
+
2634
+ if (NOT ${CMAKE_C_COMPILER_ID} STREQUAL MSVC )
2635
+ # MSVC doesn't support -Xclang. We don't need to manually specify
2636
+ # the dependent libraries as `cl` does so.
2637
+ target_compile_options (${name} PRIVATE
2638
+ "SHELL:-Xclang --dependent-lib=oldnames"
2639
+ # TODO(compnerd) handle /MT, /MTd
2640
+ "SHELL:-Xclang --dependent-lib=msvcrt$<$<CONFIG:Debug>:d>" )
2641
+ endif ()
2642
+ endif ()
2628
2643
target_compile_options (${name} PRIVATE
2629
2644
${c_compile_flags} )
2630
2645
target_link_directories (${name} PRIVATE
0 commit comments