Skip to content

[SourceKit] RPATH 'lib/swift/host' should be added without BOOTSTRAPPING #68273

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 5, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 7 additions & 12 deletions tools/SourceKit/cmake/modules/AddSwiftSourceKit.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -115,12 +115,6 @@ function(add_sourcekit_swift_runtime_link_flags target path HAS_SWIFT_MODULES)
LINK_FLAGS " -lobjc ")

endif() # HAS_SWIFT_MODULES AND ASKD_BOOTSTRAPPING_MODE

if(SWIFT_SWIFT_PARSER)
# Add rpath to the host Swift libraries.
file(RELATIVE_PATH relative_hostlib_path "${path}" "${SWIFTLIB_DIR}/host")
list(APPEND RPATH_LIST "@loader_path/${relative_hostlib_path}")
endif()
elseif(SWIFT_HOST_VARIANT_SDK MATCHES "LINUX|ANDROID|OPENBSD" AND HAS_SWIFT_MODULES AND ASKD_BOOTSTRAPPING_MODE)
set(swiftrt "swiftImageRegistrationObject${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_OBJECT_FORMAT}-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}")
if(ASKD_BOOTSTRAPPING_MODE MATCHES "HOSTTOOLS|CROSSCOMPILE")
Expand Down Expand Up @@ -156,15 +150,19 @@ function(add_sourcekit_swift_runtime_link_flags target path HAS_SWIFT_MODULES)
else()
message(FATAL_ERROR "Unknown ASKD_BOOTSTRAPPING_MODE '${ASKD_BOOTSTRAPPING_MODE}'")
endif()
endif()

if(SWIFT_SWIFT_PARSER)
if(SWIFT_SWIFT_PARSER)
if(SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_DARWIN_PLATFORMS)
# Add rpath to the host Swift libraries.
file(RELATIVE_PATH relative_hostlib_path "${path}" "${SWIFTLIB_DIR}/host")
list(APPEND RPATH_LIST "@loader_path/${relative_hostlib_path}")
elseif(SWIFT_HOST_VARIANT_SDK MATCHES "LINUX|ANDROID|OPENBSD")
# Add rpath to the host Swift libraries.
file(RELATIVE_PATH relative_hostlib_path "${path}" "${SWIFTLIB_DIR}/host")
list(APPEND RPATH_LIST "$ORIGIN/${relative_hostlib_path}")
endif()
endif()

if(SWIFT_SWIFT_PARSER)
# For the "end step" of bootstrapping configurations on Darwin, need to be
# able to fall back to the SDK directory for libswiftCore et al.
if (BOOTSTRAPPING_MODE MATCHES "BOOTSTRAPPING.*")
Expand Down Expand Up @@ -436,7 +434,6 @@ macro(add_sourcekit_framework name)
file(RELATIVE_PATH relative_lib_path
"${framework_location}/Versions/A" "${SOURCEKIT_LIBRARY_OUTPUT_INTDIR}")
list(APPEND RPATH_LIST "@loader_path/${relative_lib_path}")
list(APPEND RPATH_LIST "@loader_path/${relative_lib_path}/swift/host")

set_target_properties(${name} PROPERTIES
BUILD_WITH_INSTALL_RPATH TRUE
Expand Down Expand Up @@ -472,7 +469,6 @@ macro(add_sourcekit_framework name)
file(RELATIVE_PATH relative_lib_path
"${framework_location}" "${SOURCEKIT_LIBRARY_OUTPUT_INTDIR}")
list(APPEND RPATH_LIST "@loader_path/${relative_lib_path}")
list(APPEND RPATH_LIST "@loader_path/${relative_lib_path}/swift/host")

set_target_properties(${name} PROPERTIES
BUILD_WITH_INSTALL_RPATH TRUE
Expand Down Expand Up @@ -564,7 +560,6 @@ macro(add_sourcekit_xpc_service name framework_target)

file(RELATIVE_PATH relative_lib_path "${xpc_bin_dir}" "${lib_dir}")
list(APPEND RPATH_LIST "@loader_path/${relative_lib_path}")
list(APPEND RPATH_LIST "@loader_path/${relative_lib_path}/swift/host")

# Add rpath for sourcekitdInProc
# lib/${framework_target}.framework/Versions/A/XPCServices/${name}.xpc/Contents/MacOS/${name}
Expand Down