Skip to content

Commit b3da2fc

Browse files
authored
Merge pull request #7404 from compnerd/59-builds
LLVM Support for Windows Macros
2 parents 3708b80 + d013aae commit b3da2fc

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

lldb/cmake/modules/AddLLDB.cmake

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -190,17 +190,27 @@ function(add_properties_for_swift_modules target reldir)
190190
# Workaround for a linker crash related to autolinking: rdar://77839981
191191
set_property(TARGET ${target} APPEND_STRING PROPERTY
192192
LINK_FLAGS " -lobjc ")
193+
194+
set_property(TARGET ${target} APPEND PROPERTY BUILD_RPATH "${SWIFT_BUILD_RPATH}")
195+
set_property(TARGET ${target} APPEND PROPERTY INSTALL_RPATH "${SWIFT_INSTALL_RPATH}")
193196
elseif (CMAKE_SYSTEM_NAME MATCHES "Linux|Android|OpenBSD|FreeBSD")
194197
string(REGEX MATCH "^[^-]*" arch ${LLVM_TARGET_TRIPLE})
195198
target_link_libraries(${target} PRIVATE swiftCore-linux-${arch})
196199
string(TOLOWER ${CMAKE_SYSTEM_NAME} platform)
197200
set(SWIFT_BUILD_RPATH "${LLDB_SWIFT_LIBS}/${platform}")
198201
set(SWIFT_INSTALL_RPATH "$ORIGIN/${reldir}lib/swift/${platform}")
202+
set_property(TARGET ${target} APPEND PROPERTY BUILD_RPATH "${SWIFT_BUILD_RPATH}")
203+
set_property(TARGET ${target} APPEND PROPERTY INSTALL_RPATH "${SWIFT_INSTALL_RPATH}")
204+
elseif(CMAKE_SYSTEM_NAME MATCHES Windows)
205+
if(CMAKE_SYSTEM_PROCESSOR MATCHES AMD64|amd64|x86_64)
206+
target_link_directories(${target} PRIVATE
207+
${SWIFT_PATH_TO_SWIFT_SDK}/usr/lib/swift/windows/x86_64)
208+
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES ARM64|arm64|aarch64)
209+
target_link_directories(${target} PRIVATE
210+
${SWIFT_PATH_TO_SWIFT_SDK}/usr/lib/swift/windows/aarch64)
211+
endif()
199212
endif()
200213

201-
set_property(TARGET ${target} APPEND PROPERTY BUILD_RPATH "${SWIFT_BUILD_RPATH}")
202-
set_property(TARGET ${target} APPEND PROPERTY INSTALL_RPATH "${SWIFT_INSTALL_RPATH}")
203-
204214
if (SWIFT_SWIFT_PARSER)
205215
if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
206216
set_property(TARGET ${target}

llvm/include/llvm/Support/DynamicLibrary.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ class DynamicLibrary {
4545
/// Returns true if the object refers to a valid library.
4646
bool isValid() const { return Data != &Invalid; }
4747

48+
/// Return the OS specific handle value.
49+
void *getOSSpecificHandle() const { return Data; }
50+
4851
/// Searches through the library for the symbol \p symbolName. If it is
4952
/// found, the address of that symbol is returned. If not, NULL is returned.
5053
/// Note that NULL will also be returned if the library failed to load.

llvm/lib/Support/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ endif( MSVC OR MINGW )
8181
# Delay load shell32.dll if possible to speed up process startup.
8282
set (delayload_flags)
8383
if (MSVC)
84-
set (delayload_flags delayimp -delayload:shell32.dll -delayload:ole32.dll)
84+
set (delayload_flags $<$<NOT:$<LINK_LANGUAGE:Swift>>:delayimp -delayload:shell32.dll -delayload:ole32.dll>)
8585
endif()
8686

8787
# Link Z3 if the user wants to build it.

0 commit comments

Comments
 (0)