Skip to content

Commit abd4164

Browse files
committed
[Windows] Link host tools with 'swiftrt.obj'
swiftrt.obj is required for making things work
1 parent 47f18d4 commit abd4164

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

cmake/modules/AddSwift.cmake

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -538,20 +538,26 @@ function(_add_swift_runtime_link_flags target relpath_to_lib_dir bootstrapping)
538538
set_property(TARGET ${target} APPEND_STRING PROPERTY
539539
LINK_FLAGS " -lobjc ")
540540
541-
elseif(SWIFT_HOST_VARIANT_SDK MATCHES "LINUX|ANDROID|OPENBSD|FREEBSD")
541+
elseif(SWIFT_HOST_VARIANT_SDK MATCHES "LINUX|ANDROID|OPENBSD|FREEBSD|WINDOWS")
542542
set(swiftrt "swiftImageRegistrationObject${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_OBJECT_FORMAT}-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}")
543543
if(ASRLF_BOOTSTRAPPING_MODE MATCHES "HOSTTOOLS|CROSSCOMPILE")
544544
# At build time and run time, link against the swift libraries in the
545545
# installed host toolchain.
546-
get_filename_component(swift_bin_dir ${SWIFT_EXEC_FOR_SWIFT_MODULES} DIRECTORY)
547-
get_filename_component(swift_dir ${swift_bin_dir} DIRECTORY)
546+
if(SWIFT_PATH_TO_SWIFT_SDK)
547+
set(swift_dir "${SWIFT_PATH_TO_SWIFT_SDK}/usr")
548+
else()
549+
get_filename_component(swift_bin_dir ${SWIFT_EXEC_FOR_SWIFT_MODULES} DIRECTORY)
550+
get_filename_component(swift_dir ${swift_bin_dir} DIRECTORY)
551+
endif()
548552
set(host_lib_dir "${swift_dir}/lib/swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
549-
set(swiftrt "${host_lib_dir}/${SWIFT_HOST_VARIANT_ARCH}/swiftrt.o")
553+
set(host_lib_arch_dir "${host_lib_dir}/${SWIFT_HOST_VARIANT_ARCH}")
550554
555+
set(swiftrt "${host_lib_arch_dir}/swiftrt${CMAKE_C_OUTPUT_EXTENSION}")
551556
target_link_libraries(${target} PRIVATE ${swiftrt})
552557
target_link_libraries(${target} PRIVATE "swiftCore")
553558
554559
target_link_directories(${target} PRIVATE ${host_lib_dir})
560+
target_link_directories(${target} PRIVATE ${host_lib_arch_dir})
555561
556562
# At runtime, use swiftCore in the current toolchain.
557563
# For building stdlib, LD_LIBRARY_PATH will be set to builder's stdlib

0 commit comments

Comments
 (0)