@@ -45,21 +45,25 @@ if(SWIFT_HOST_VARIANT_SDK MATCHES "LINUX|ANDROID|OPENBSD|FREEBSD" AND BOOTSTRAPP
4545endif ()
4646
4747if (SWIFT_BUILD_SWIFT_SYNTAX)
48+ # Ensure that we can find the shared swift-syntax libraries.
4849 if (SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_DARWIN_PLATFORMS)
49- # Ensure that we can find the shared swift-syntax libraries.
5050 set_property (
5151 TARGET libSwiftScan
5252 APPEND PROPERTY INSTALL_RPATH "@loader_path/swift/host/compiler" )
5353 set_property (
5454 TARGET libSwiftScan
55- APPEND PROPERTY INSTALL_RPATH "@loader_path/../host/compiler " )
55+ APPEND PROPERTY INSTALL_RPATH "@loader_path" )
5656 elseif (SWIFT_HOST_VARIANT_SDK MATCHES "LINUX|ANDROID|OPENBSD|FREEBSD" )
5757 set_property (
5858 TARGET libSwiftScan
5959 APPEND PROPERTY INSTALL_RPATH "$ORIGIN/swift/host/compiler" )
6060 set_property (
6161 TARGET libSwiftScan
62- APPEND PROPERTY INSTALL_RPATH "$ORIGIN/../host/compiler" )
62+ APPEND PROPERTY INSTALL_RPATH "$ORIGIN" )
63+ # $ORIGIN can be the parent of the symbolic link inside swift/host on Linux
64+ set_property (
65+ TARGET libSwiftScan
66+ APPEND PROPERTY INSTALL_RPATH "$ORIGIN/compiler" )
6367 endif ()
6468endif ()
6569
@@ -77,28 +81,25 @@ swift_install_in_component(TARGETS libSwiftScan
7781 LIBRARY DESTINATION "lib${LLVM_LIBDIR_SUFFIX} /swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK} _LIB_SUBDIR}" COMPONENT compiler
7882 RUNTIME DESTINATION "bin" COMPONENT compiler)
7983else ()
80- # On other platforms, instead install the library into 'lib/swift/host' and symlink to it from 'lib/swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR} '
84+ # On other platforms, instead install the library into 'lib/swift/host/compiler ' and symlink to it from its legacy location 'lib/swift/host '
8185 swift_install_in_component(TARGETS libSwiftScan
82- ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX} /swift/host" COMPONENT compiler
83- LIBRARY DESTINATION "lib${LLVM_LIBDIR_SUFFIX} /swift/host" COMPONENT compiler
86+ ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX} /swift/host/compiler " COMPONENT compiler
87+ LIBRARY DESTINATION "lib${LLVM_LIBDIR_SUFFIX} /swift/host/compiler " COMPONENT compiler
8488 RUNTIME DESTINATION "bin" COMPONENT compiler)
8589
86- # Create a symlink to previously-used path of 'lib/swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}'
87- # to the new location under 'lib/swift/host' for clients of the legacy path.
8890 if (EXISTS ${LLVM_CMAKE_DIR} /LLVMInstallSymlink.cmake)
8991 set (INSTALL_SYMLINK ${LLVM_CMAKE_DIR} /LLVMInstallSymlink.cmake)
9092 endif ()
9193 precondition(INSTALL_SYMLINK
9294 MESSAGE "LLVMInstallSymlink script must be available." )
93- file (RELATIVE_PATH target_install_relative_path
94- ${CMAKE_INSTALL_PREFIX} /lib${LLVM_LIBDIR_SUFFIX} /swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK} _LIB_SUBDIR}
95- ${CMAKE_INSTALL_PREFIX} /lib${LLVM_LIBDIR_SUFFIX} /swift/host/lib${SWIFT_SCAN_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} )
96- message (STATUS "Installing symlink (${target_install_relative_path} ) to lib${LLVM_LIBDIR_SUFFIX} /swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK} _LIB_SUBDIR}/lib${SWIFT_SCAN_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} " )
9795
96+ # 'lib/swift/host' -> 'lib/swift/host/compiler'
97+ set (FULL_LIB_NAME "lib${SWIFT_SCAN_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} " )
98+ message (STATUS "Installing symlink (compiler/${FULL_LIB_NAME} ) to lib${LLVM_LIBDIR_SUFFIX} /swift/host/${FULL_LIB_NAME} " )
9899 install (SCRIPT ${INSTALL_SYMLINK}
99- CODE "install_symlink(lib ${SWIFT_SCAN_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX }
100- ${target_install_relative_path }
101- lib${LLVM_LIBDIR_SUFFIX} /swift/${SWIFT_SDK_ ${SWIFT_HOST_VARIANT_SDK} _LIB_SUBDIR}
100+ CODE "install_symlink(${FULL_LIB_NAME }
101+ compiler/ ${FULL_LIB_NAME }
102+ lib${LLVM_LIBDIR_SUFFIX} /swift/host
102103 ${SWIFT_COPY_OR_SYMLINK} )"
103104 COMPONENT compiler)
104105endif ()
0 commit comments