
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 llvm-svn: 350392
29 lines
489 B
CMake
29 lines
489 B
CMake
set(LLVM_TARGET_DEFINITIONS Options.td)
|
|
tablegen(LLVM Options.inc -gen-opt-parser-defs)
|
|
add_public_tablegen_target(LLDBOptionsTableGen)
|
|
|
|
add_lldb_tool(lldb
|
|
Driver.cpp
|
|
Platform.cpp
|
|
|
|
LINK_LIBS
|
|
liblldb
|
|
|
|
LINK_COMPONENTS
|
|
Option
|
|
Support
|
|
)
|
|
|
|
if ( CMAKE_SYSTEM_NAME MATCHES "Windows" )
|
|
add_definitions( -DIMPORT_LIBLLDB )
|
|
endif()
|
|
|
|
add_dependencies(lldb
|
|
LLDBOptionsTableGen
|
|
${tablegen_deps}
|
|
)
|
|
|
|
if(LLDB_BUILD_FRAMEWORK)
|
|
lldb_setup_framework_rpaths_in_tool(lldb)
|
|
endif()
|