@@ -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 "SHELL:${CMAKE_INCLUDE_SYSTEM_FLAG_C}${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)
@@ -910,11 +893,9 @@ function(_add_swift_library_single target name)
910
893
911
894
if ("${SWIFTLIB_SINGLE_SDK} " STREQUAL "WINDOWS" )
912
895
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} )
918
899
endif ()
919
900
swift_windows_include_for_arch(${SWIFTLIB_SINGLE_ARCHITECTURE} SWIFTLIB_INCLUDE)
920
901
foreach (directory ${SWIFTLIB_INCLUDE} )
@@ -1390,6 +1371,25 @@ function(_add_swift_library_single target name)
1390
1371
endif ()
1391
1372
1392
1373
# 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 ()
1393
1393
target_include_directories (${target} SYSTEM PRIVATE
1394
1394
${SWIFT_${SWIFTLIB_SINGLE_SDK} _${SWIFTLIB_SINGLE_ARCHITECTURE} _ICU_UC_INCLUDE}
1395
1395
${SWIFT_${SWIFTLIB_SINGLE_SDK} _${SWIFTLIB_SINGLE_ARCHITECTURE} _ICU_I18N_INCLUDE})
@@ -2575,6 +2575,21 @@ function(_add_swift_executable_single name)
2575
2575
${SWIFTEXE_SINGLE_DEPENDS} )
2576
2576
llvm_update_compile_flags("${name} " )
2577
2577
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 ()
2578
2593
target_compile_options (${name} PRIVATE
2579
2594
${c_compile_flags} )
2580
2595
target_link_directories (${name} PRIVATE
0 commit comments