From ecf834533b6803c8397e35bf3b2d2d132f2a7f95 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Fri, 1 Sep 2023 10:07:06 -0700 Subject: [PATCH 1/4] build: adjust the build to wire up the library search path This is needed to support Swift macros on Windows. (cherry picked from commit 90601d8be7db65f29ee7954cbed90da020bf9da8) --- lldb/cmake/modules/AddLLDB.cmake | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lldb/cmake/modules/AddLLDB.cmake b/lldb/cmake/modules/AddLLDB.cmake index c28d61b9c3f5c..7197fe77f3c49 100644 --- a/lldb/cmake/modules/AddLLDB.cmake +++ b/lldb/cmake/modules/AddLLDB.cmake @@ -217,17 +217,22 @@ function(add_properties_for_swift_modules target reldir) # Workaround for a linker crash related to autolinking: rdar://77839981 set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS " -lobjc ") + + set_property(TARGET ${target} APPEND PROPERTY BUILD_RPATH "${SWIFT_BUILD_RPATH}") + set_property(TARGET ${target} APPEND PROPERTY INSTALL_RPATH "${SWIFT_INSTALL_RPATH}") elseif (CMAKE_SYSTEM_NAME MATCHES "Linux|Android|OpenBSD|FreeBSD") string(REGEX MATCH "^[^-]*" arch ${LLVM_TARGET_TRIPLE}) target_link_libraries(${target} PRIVATE swiftCore-linux-${arch}) string(TOLOWER ${CMAKE_SYSTEM_NAME} platform) set(SWIFT_BUILD_RPATH "${LLDB_SWIFT_LIBS}/${platform}") set(SWIFT_INSTALL_RPATH "$ORIGIN/${reldir}lib/swift/${platform}") + set_property(TARGET ${target} APPEND PROPERTY BUILD_RPATH "${SWIFT_BUILD_RPATH}") + set_property(TARGET ${target} APPEND PROPERTY INSTALL_RPATH "${SWIFT_INSTALL_RPATH}") + elseif(CMAKE_SYSTEM_NAME MATCHES Windows) + target_link_directories(${target} PRIVATE + ${SWIFT_PATH_TO_SWIFT_SDK}/usr/lib/swift/Windows/x86_64) endif() - set_property(TARGET ${target} APPEND PROPERTY BUILD_RPATH "${SWIFT_BUILD_RPATH}") - set_property(TARGET ${target} APPEND PROPERTY INSTALL_RPATH "${SWIFT_INSTALL_RPATH}") - if (SWIFT_SWIFT_PARSER) if (CMAKE_SYSTEM_NAME MATCHES "Darwin") set_property(TARGET ${target} From 0644700bfa1c87c4ab9f3d2c71fed8109674b136 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Thu, 7 Sep 2023 09:33:02 -0700 Subject: [PATCH 2/4] build: support multiple architectures on Windows Swift on Windows only supports 64-bit hosts. Add support for x64 and ARM64 toolchains to be built. (cherry picked from commit c9c5cbd60ca0cd3d4bf5c86aec8fb921a7da9a33) --- lldb/cmake/modules/AddLLDB.cmake | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lldb/cmake/modules/AddLLDB.cmake b/lldb/cmake/modules/AddLLDB.cmake index 7197fe77f3c49..68a3afc58b890 100644 --- a/lldb/cmake/modules/AddLLDB.cmake +++ b/lldb/cmake/modules/AddLLDB.cmake @@ -229,8 +229,13 @@ function(add_properties_for_swift_modules target reldir) set_property(TARGET ${target} APPEND PROPERTY BUILD_RPATH "${SWIFT_BUILD_RPATH}") set_property(TARGET ${target} APPEND PROPERTY INSTALL_RPATH "${SWIFT_INSTALL_RPATH}") elseif(CMAKE_SYSTEM_NAME MATCHES Windows) - target_link_directories(${target} PRIVATE - ${SWIFT_PATH_TO_SWIFT_SDK}/usr/lib/swift/Windows/x86_64) + if(CMAKE_SYSTEM_PROCESSOR MATCHES AMD64|amd64|x86_64) + target_link_directories(${target} PRIVATE + ${SWIFT_PATH_TO_SWIFT_SDK}/usr/lib/swift/windows/x86_64) + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES ARM64|arm64|aarch64) + target_link_directories(${target} PRIVATE + ${SWIFT_PATH_TO_SWIFT_SDK}/usr/lib/swift/windows/aarch64) + endif() endif() if (SWIFT_SWIFT_PARSER) From 3d0c9d3076a37e2a649a2d0d54e0ebd3fe5c6deb Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Fri, 15 Sep 2023 16:21:27 -0700 Subject: [PATCH 3/4] Update AddLDDB.cmake Fix indentation (cherry picked from commit 38da8e1278ae25506e9cd1b4cc0cb8cb16414ae4) --- lldb/cmake/modules/AddLLDB.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lldb/cmake/modules/AddLLDB.cmake b/lldb/cmake/modules/AddLLDB.cmake index 68a3afc58b890..c1436ef359283 100644 --- a/lldb/cmake/modules/AddLLDB.cmake +++ b/lldb/cmake/modules/AddLLDB.cmake @@ -218,8 +218,8 @@ function(add_properties_for_swift_modules target reldir) set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS " -lobjc ") - set_property(TARGET ${target} APPEND PROPERTY BUILD_RPATH "${SWIFT_BUILD_RPATH}") - set_property(TARGET ${target} APPEND PROPERTY INSTALL_RPATH "${SWIFT_INSTALL_RPATH}") + set_property(TARGET ${target} APPEND PROPERTY BUILD_RPATH "${SWIFT_BUILD_RPATH}") + set_property(TARGET ${target} APPEND PROPERTY INSTALL_RPATH "${SWIFT_INSTALL_RPATH}") elseif (CMAKE_SYSTEM_NAME MATCHES "Linux|Android|OpenBSD|FreeBSD") string(REGEX MATCH "^[^-]*" arch ${LLVM_TARGET_TRIPLE}) target_link_libraries(${target} PRIVATE swiftCore-linux-${arch}) From 7c8484dc6a325104aa6965d03d7002095935a9bc Mon Sep 17 00:00:00 2001 From: Rintaro Ishizaki Date: Fri, 1 Sep 2023 10:36:39 -0700 Subject: [PATCH 4/4] [lldb][CMake] Update for swift-syntax FetchContent changes Rename SWIFT_SWIFT_PARSER with SWIFT_BUILD_SWIFT_SYNTAX (cherry picked from commit 68b541d58358d0b4f05f2aff47384458e86b0303) --- lldb/CMakeLists.txt | 15 --------------- lldb/cmake/modules/AddLLDB.cmake | 4 ++-- lldb/tools/lldb-server/CMakeLists.txt | 2 +- lldb/unittests/CMakeLists.txt | 2 +- 4 files changed, 4 insertions(+), 19 deletions(-) diff --git a/lldb/CMakeLists.txt b/lldb/CMakeLists.txt index e87fa4142f302..cea468768e577 100644 --- a/lldb/CMakeLists.txt +++ b/lldb/CMakeLists.txt @@ -62,21 +62,6 @@ if (LLDB_ENABLE_SWIFT_SUPPORT) endif() endif() -# When we have the early SwiftSyntax build, we can include its parser. -if (LLDB_ENABLE_SWIFT_SUPPORT) - if(SWIFT_PATH_TO_EARLYSWIFTSYNTAX_BUILD_DIR) - set(SWIFT_PATH_TO_EARLYSWIFTSYNTAX_TARGETS - ${SWIFT_PATH_TO_EARLYSWIFTSYNTAX_BUILD_DIR}/cmake/SwiftSyntaxTargets.cmake) - if(NOT EXISTS "${SWIFT_PATH_TO_EARLYSWIFTSYNTAX_TARGETS}") - message(STATUS "Skipping Swift Swift parser integration due to missing early SwiftSyntax") - else() - set(SWIFT_SWIFT_PARSER TRUE) - include(${SWIFT_PATH_TO_EARLYSWIFTSYNTAX_TARGETS}) - endif() - endif() -endif() -# END - Swift Mods - # Define the LLDB_CONFIGURATION_xxx matching the build type. if(uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG" ) add_definitions(-DLLDB_CONFIGURATION_DEBUG) diff --git a/lldb/cmake/modules/AddLLDB.cmake b/lldb/cmake/modules/AddLLDB.cmake index c1436ef359283..574d4406b6c10 100644 --- a/lldb/cmake/modules/AddLLDB.cmake +++ b/lldb/cmake/modules/AddLLDB.cmake @@ -191,7 +191,7 @@ function(add_properties_for_swift_modules target reldir) endif() if (NOT BOOTSTRAPPING_MODE) - if (SWIFT_SWIFT_PARSER) + if (SWIFT_BUILD_SWIFT_SYNTAX) set(APSM_BOOTSTRAPPING_MODE "HOSTTOOLS") endif() else() @@ -238,7 +238,7 @@ function(add_properties_for_swift_modules target reldir) endif() endif() - if (SWIFT_SWIFT_PARSER) + if (SWIFT_BUILD_SWIFT_SYNTAX) if (CMAKE_SYSTEM_NAME MATCHES "Darwin") set_property(TARGET ${target} APPEND PROPERTY BUILD_RPATH "@loader_path/${build_reldir}lib/swift/host") diff --git a/lldb/tools/lldb-server/CMakeLists.txt b/lldb/tools/lldb-server/CMakeLists.txt index a3c6aca6cfa67..33e755e402a78 100644 --- a/lldb/tools/lldb-server/CMakeLists.txt +++ b/lldb/tools/lldb-server/CMakeLists.txt @@ -70,7 +70,7 @@ target_include_directories(lldb-server PRIVATE "${LLDB_SOURCE_DIR}/source") target_link_libraries(lldb-server PRIVATE ${LLDB_SYSTEM_LIBS}) # BEGIN Swift Mods -if(SWIFT_SWIFT_PARSER) +if(SWIFT_BUILD_SWIFT_SYNTAX) add_properties_for_swift_modules(lldb-server "../") endif() # END Swift Mods diff --git a/lldb/unittests/CMakeLists.txt b/lldb/unittests/CMakeLists.txt index 24f1d02c67957..d7fa3eda85d3a 100644 --- a/lldb/unittests/CMakeLists.txt +++ b/lldb/unittests/CMakeLists.txt @@ -36,7 +36,7 @@ function(add_lldb_unittest test_name) target_link_libraries(${test_name} PRIVATE ${ARG_LINK_LIBS}) # BEGIN Swift Mods - if(SWIFT_SWIFT_PARSER) + if(SWIFT_BUILD_SWIFT_SYNTAX) add_properties_for_swift_modules(${test_name} "../") endif() # END Swift Mods