HomePhabricator

[CMake] Revised RPATH handling

Description

[CMake] Revised RPATH handling

Summary:
If we build LLDB.framework, dependant tools need appropriate RPATHs in both locations, the build-tree (for testing) and the install-tree (for deployment). Luckily, CMake can handle it for us: https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/RPATH-handling.

  • In the build-tree, tools use the absolute path to the framework's actual output location.
  • In the install-tree, tools get a list of RPATHs to look for the framework when deployed.

LLDB_FRAMEWORK_INSTALL_DIR is added to the CMAKE_INSTALL_PREFIX to change the relative location of LLDB.framework in the install-tree.
If it is not empty, it will be added as an additional RPATH to all dependant tools (so they are functional in the install-tree).
If it is empty, LLDB.framework goes to the root and tools will not be functional in the directory structure of the LLVM install-tree.
For historical reasons LLDB_FRAMEWORK_INSTALL_DIR defaults to "Library/Frameworks".

Reviewers: xiaobai, JDevlieghere, aprantl, clayborg

Reviewed By: JDevlieghere

Subscribers: ki.stfu, mgorny, lldb-commits, #lldb

Differential Revision: https://reviews.llvm.org/D55330

Details

Committed
stefan.graenitzJan 4 2019, 4:46 AM
Reviewer
JDevlieghere
Differential Revision
D55330: [CMake] Revised RPATH handling
Parents
rL350391: [CMake] Revised LLDB.framework builds
Branches
Unknown
Tags
Unknown

Event Timeline