[Lldb-commits] [lldb] r350391 - [CMake] Revised LLDB.framework builds
Stefan Granitz via lldb-commits
lldb-commits at lists.llvm.org
Fri Jan 4 04:46:50 PST 2019
Author: stefan.graenitz
Date: Fri Jan 4 04:46:50 2019
New Revision: 350391
URL: http://llvm.org/viewvc/llvm-project?rev=350391&view=rev
Log:
[CMake] Revised LLDB.framework builds
Summary:
Add features to LLDB CMake builds that have so far only been available in Xcode. Clean up a few inconveniences and prepare further improvements.
Options:
* `LLDB_FRAMEWORK_BUILD_DIR` determines target directory (in build-tree)
* `LLDB_FRAMEWORK_INSTALL_DIR` **only** determines target directory in install-tree
* `LLVM_EXTERNALIZE_DEBUGINFO` allows externalized debug info (dSYM on Darwin, emitted to `bin`)
* `LLDB_FRAMEWORK_TOOLS` determines which executables will be copied to the framework's Resources (dropped symlinking, removed INCLUDE_IN_SUITE, removed dummy targets)
Other changes:
* clean up `add_lldb_executable()`
* include `LLDBFramework.cmake` from `source/API/CMakeLists.txt`
* use `*.plist.in` files, which are typical for CMake and independent from Xcode
* add clang headers to the framework bundle
Reviewers: xiaobai, JDevlieghere, aprantl, davide, beanz, stella.stamenova, clayborg, labath
Reviewed By: aprantl
Subscribers: friss, mgorny, lldb-commits, #lldb
Differential Revision: https://reviews.llvm.org/D55328
Added:
lldb/trunk/resources/LLDB-Info.plist.in
Modified:
lldb/trunk/CMakeLists.txt
lldb/trunk/cmake/modules/AddLLDB.cmake
lldb/trunk/cmake/modules/LLDBConfig.cmake
lldb/trunk/cmake/modules/LLDBFramework.cmake
lldb/trunk/source/API/CMakeLists.txt
lldb/trunk/test/CMakeLists.txt
lldb/trunk/tools/argdumper/CMakeLists.txt
lldb/trunk/tools/darwin-debug/CMakeLists.txt
lldb/trunk/tools/debugserver/CMakeLists.txt
lldb/trunk/tools/debugserver/source/CMakeLists.txt
lldb/trunk/tools/driver/CMakeLists.txt
lldb/trunk/tools/lldb-server/CMakeLists.txt
Modified: lldb/trunk/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/CMakeLists.txt?rev=350391&r1=350390&r2=350391&view=diff
==============================================================================
--- lldb/trunk/CMakeLists.txt (original)
+++ lldb/trunk/CMakeLists.txt Fri Jan 4 04:46:50 2019
@@ -28,46 +28,18 @@ if(APPLE)
add_definitions(-DLLDB_USE_OS_LOG)
endif()
-# lldb-suite is a dummy target that encompasses all the necessary tools and
-# libraries for building a fully-functioning liblldb.
-add_custom_target(lldb-suite)
-set(LLDB_SUITE_TARGET lldb-suite)
-
-if(LLDB_BUILD_FRAMEWORK)
- add_custom_target(lldb-framework)
-
- # These are used to fill out LLDB-Info.plist. These are relevant when building
- # the framework, and must be defined before building liblldb.
- set(PRODUCT_NAME "LLDB")
- set(EXECUTABLE_NAME "LLDB")
- set(CURRENT_PROJECT_VERSION "${LLDB_VERSION_MAJOR}.${LLDB_VERSION_MINOR}.${LLDB_VERSION_PATCH}")
- set(LLDB_SUITE_TARGET lldb-framework)
-
- set(LLDB_FRAMEWORK_DIR
- ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${LLDB_FRAMEWORK_INSTALL_DIR})
- include(LLDBFramework)
-endif()
-
add_subdirectory(docs)
if (NOT LLDB_DISABLE_PYTHON)
- if(LLDB_USE_SYSTEM_SIX)
- set(SIX_EXTRA_ARGS "--useSystemSix")
- endif()
-
set(LLDB_PYTHON_TARGET_DIR ${LLDB_BINARY_DIR}/scripts)
set(LLDB_WRAP_PYTHON ${LLDB_BINARY_DIR}/scripts/LLDBWrapPython.cpp)
if(LLDB_BUILD_FRAMEWORK)
- set(LLDB_PYTHON_TARGET_DIR ${LLDB_FRAMEWORK_DIR})
+ set(LLDB_PYTHON_TARGET_DIR ${LLDB_FRAMEWORK_BUILD_DIR})
set(LLDB_WRAP_PYTHON ${LLDB_PYTHON_TARGET_DIR}/LLDBWrapPython.cpp)
- else()
- # Don't set -m when building the framework.
- set(FINISH_EXTRA_ARGS "-m")
endif()
add_subdirectory(scripts)
endif ()
-
add_subdirectory(source)
add_subdirectory(tools)
@@ -154,8 +126,14 @@ if(LLDB_INCLUDE_TESTS)
add_subdirectory(utils/lldb-dotest)
endif()
-
if (NOT LLDB_DISABLE_PYTHON)
+ if(NOT LLDB_BUILD_FRAMEWORK)
+ set(use_python_wrapper_from_src_dir -m)
+ endif()
+ if(LLDB_USE_SYSTEM_SIX)
+ set(use_six_py_from_system --useSystemSix)
+ endif()
+
# Add a Post-Build Event to copy over Python files and create the symlink
# to liblldb.so for the Python API(hardlink on Windows)
add_custom_target(finish_swig ALL
@@ -167,29 +145,24 @@ if (NOT LLDB_DISABLE_PYTHON)
--prefix=${CMAKE_BINARY_DIR}
--cmakeBuildConfiguration=${CMAKE_CFG_INTDIR}
--lldbLibDir=lib${LLVM_LIBDIR_SUFFIX}
- ${SIX_EXTRA_ARGS}
- ${FINISH_EXTRA_ARGS}
+ ${use_python_wrapper_from_src_dir}
+ ${use_six_py_from_system}
VERBATIM
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/scripts/finishSwigWrapperClasses.py
DEPENDS ${LLDB_PYTHON_TARGET_DIR}/lldb.py
COMMENT "Python script sym-linking LLDB Python API")
- # We depend on liblldb and lldb-argdumper being built before we can do this step.
- add_dependencies(finish_swig ${LLDB_SUITE_TARGET})
- # If we build the readline module, we depend on that happening
- # first.
if (TARGET readline)
- add_dependencies(finish_swig readline)
+ set(readline_dep readline)
endif()
+ add_dependencies(finish_swig swig_wrapper liblldb lldb-argdumper ${readline_dep})
# Ensure we do the python post-build step when building lldb.
add_dependencies(lldb finish_swig)
- if (LLDB_BUILD_FRAMEWORK)
- # The target to install libLLDB needs to depend on finish_swig so that the
- # framework build properly copies over the Python files.
- add_dependencies(install-liblldb finish_swig)
+ if(LLDB_BUILD_FRAMEWORK)
+ add_dependencies(lldb-framework finish_swig)
endif()
# Add a Post-Build Event to copy the custom Python DLL to the lldb binaries dir so that Windows can find it when launching
Modified: lldb/trunk/cmake/modules/AddLLDB.cmake
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/modules/AddLLDB.cmake?rev=350391&r1=350390&r2=350391&view=diff
==============================================================================
--- lldb/trunk/cmake/modules/AddLLDB.cmake (original)
+++ lldb/trunk/cmake/modules/AddLLDB.cmake Fri Jan 4 04:46:50 2019
@@ -50,20 +50,20 @@ function(add_lldb_library name)
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "liblldb")
if (PARAM_SHARED)
- set(out_dir lib${LLVM_LIBDIR_SUFFIX})
if(${name} STREQUAL "liblldb" AND LLDB_BUILD_FRAMEWORK)
- set(out_dir ${LLDB_FRAMEWORK_INSTALL_DIR})
- # The framework that is generated will install with install-liblldb
- # because we enable CMake's framework support. CMake will copy all the
- # headers and resources for us.
- add_dependencies(install-lldb-framework install-${name})
- add_dependencies(install-lldb-framework-stripped install-${name}-stripped)
+ if(LLDB_FRAMEWORK_INSTALL_DIR)
+ set(install_dir ${LLDB_FRAMEWORK_INSTALL_DIR})
+ else()
+ set(install_dir ".")
+ endif()
+ else()
+ set(install_dir lib${LLVM_LIBDIR_SUFFIX})
endif()
install(TARGETS ${name}
COMPONENT ${name}
RUNTIME DESTINATION bin
- LIBRARY DESTINATION ${out_dir}
- ARCHIVE DESTINATION ${out_dir})
+ LIBRARY DESTINATION ${install_dir}
+ ARCHIVE DESTINATION ${install_dir})
else()
install(TARGETS ${name}
COMPONENT ${name}
@@ -74,13 +74,6 @@ function(add_lldb_library name)
add_llvm_install_targets(install-${name}
DEPENDS $<TARGET_FILE:${name}>
COMPONENT ${name})
-
- # install-liblldb{,-stripped} is the actual target that will install the
- # framework, so it must rely on the framework being fully built first.
- if (LLDB_BUILD_FRAMEWORK AND ${name} STREQUAL "liblldb")
- add_dependencies(install-${name} lldb-framework)
- add_dependencies(install-${name}-stripped lldb-framework)
- endif()
endif()
endif()
endif()
@@ -99,7 +92,7 @@ endfunction(add_lldb_library)
function(add_lldb_executable name)
cmake_parse_arguments(ARG
- "INCLUDE_IN_SUITE;GENERATE_INSTALL"
+ "GENERATE_INSTALL"
"ENTITLEMENTS"
"LINK_LIBS;LINK_COMPONENTS"
${ARGN}
@@ -109,53 +102,18 @@ function(add_lldb_executable name)
add_llvm_executable(${name} ${ARG_UNPARSED_ARGUMENTS} ENTITLEMENTS ${ARG_ENTITLEMENTS})
target_link_libraries(${name} PRIVATE ${ARG_LINK_LIBS})
- set_target_properties(${name} PROPERTIES
- FOLDER "lldb executables")
-
- if(ARG_INCLUDE_IN_SUITE)
- add_dependencies(lldb-suite ${name})
- if(LLDB_BUILD_FRAMEWORK)
- if(NOT IOS)
- set(resource_dir "/Resources")
- set(resource_dots "../")
- endif()
- string(REGEX REPLACE "[^/]+" ".." _dots ${LLDB_FRAMEWORK_INSTALL_DIR})
- set_target_properties(${name} PROPERTIES
- RUNTIME_OUTPUT_DIRECTORY $<TARGET_FILE_DIR:liblldb>${resource_dir}
- BUILD_WITH_INSTALL_RPATH On
- INSTALL_RPATH "@loader_path/../../../${resource_dots}${_dots}/${LLDB_FRAMEWORK_INSTALL_DIR}")
- endif()
- endif()
-
- if(LLDB_BUILD_FRAMEWORK AND NOT ARG_INCLUDE_IN_SUITE)
- set_target_properties(${name} PROPERTIES
- BUILD_WITH_INSTALL_RPATH On
- INSTALL_RPATH "@loader_path/../${LLDB_FRAMEWORK_INSTALL_DIR}")
- endif()
+ set_target_properties(${name} PROPERTIES FOLDER "lldb executables")
if(ARG_GENERATE_INSTALL)
- set(out_dir "bin")
- if (LLDB_BUILD_FRAMEWORK AND ARG_INCLUDE_IN_SUITE)
- set(out_dir ${LLDB_FRAMEWORK_INSTALL_DIR}/${LLDB_FRAMEWORK_RESOURCE_DIR})
- # While install-liblldb-stripped will handle copying the tools, it will
- # not strip them. We depend on this target to guarantee a stripped version
- # will get installed in the framework.
- add_dependencies(install-lldb-framework-stripped install-${name}-stripped)
- endif()
install(TARGETS ${name}
- COMPONENT ${name}
- RUNTIME DESTINATION ${out_dir})
+ COMPONENT ${name}
+ RUNTIME DESTINATION bin)
if (NOT CMAKE_CONFIGURATION_TYPES)
add_llvm_install_targets(install-${name}
DEPENDS ${name}
COMPONENT ${name})
endif()
endif()
-
- if(ARG_INCLUDE_IN_SUITE AND LLDB_BUILD_FRAMEWORK)
- add_llvm_tool_symlink(${name} ${name} ALWAYS_GENERATE SKIP_INSTALL
- OUTPUT_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
- endif()
endfunction(add_lldb_executable)
function(add_lldb_tool name)
Modified: lldb/trunk/cmake/modules/LLDBConfig.cmake
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/modules/LLDBConfig.cmake?rev=350391&r1=350390&r2=350391&view=diff
==============================================================================
--- lldb/trunk/cmake/modules/LLDBConfig.cmake (original)
+++ lldb/trunk/cmake/modules/LLDBConfig.cmake Fri Jan 4 04:46:50 2019
@@ -4,6 +4,18 @@ set(LLDB_PROJECT_ROOT ${CMAKE_CURRENT_SO
set(LLDB_SOURCE_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/source")
set(LLDB_INCLUDE_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/include")
+set(LLDB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
+set(LLDB_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
+
+if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
+ message(FATAL_ERROR
+ "In-source builds are not allowed. CMake would overwrite the makefiles "
+ "distributed with LLDB. Please create a directory and run cmake from "
+ "there, passing the path to this source directory as the last argument. "
+ "This process created the file `CMakeCache.txt' and the directory "
+ "`CMakeFiles'. Please delete them.")
+endif()
+
set(LLDB_LINKER_SUPPORTS_GROUPS OFF)
if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND NOT "${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
# The Darwin linker doesn't understand --start-group/--end-group.
@@ -45,6 +57,19 @@ if(LLDB_BUILD_FRAMEWORK)
if(CMAKE_VERSION VERSION_LESS 3.7)
message(FATAL_ERROR "LLDB_BUILD_FRAMEWORK is not supported on CMake < 3.7")
endif()
+
+ set(LLDB_FRAMEWORK_VERSION A CACHE STRING "LLDB.framework version (default is A)")
+ set(LLDB_FRAMEWORK_BUILD_DIR bin CACHE STRING "Output directory for LLDB.framework")
+ set(LLDB_FRAMEWORK_INSTALL_DIR Library/Frameworks CACHE STRING "Install directory for LLDB.framework")
+ set(LLDB_FRAMEWORK_TOOLS darwin-debug;debugserver;lldb-argdumper;lldb-server CACHE INTERNAL
+ "List of tools to include in LLDB.framework/Resources")
+
+ # Set designated directory for all dSYMs. Essentially, this emits the
+ # framework's dSYM outside of the framework directory.
+ if(LLVM_EXTERNALIZE_DEBUGINFO)
+ set(LLVM_EXTERNALIZE_DEBUGINFO_OUTPUT_DIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin CACHE STRING
+ "Directory to emit dSYM files stripped from executables and libraries (Darwin Only)")
+ endif()
endif()
if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
@@ -269,17 +294,6 @@ if (CMAKE_SYSTEM_NAME MATCHES "Windows")
add_definitions( -D_UNICODE -DUNICODE )
endif()
-set(LLDB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
-set(LLDB_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
-
-if (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
- message(FATAL_ERROR "In-source builds are not allowed. CMake would overwrite "
-"the makefiles distributed with LLDB. Please create a directory and run cmake "
-"from there, passing the path to this source directory as the last argument. "
-"This process created the file `CMakeCache.txt' and the directory "
-"`CMakeFiles'. Please delete them.")
-endif()
-
# If LLDB_VERSION_* is specified, use it, if not use LLVM_VERSION_*.
if(NOT DEFINED LLDB_VERSION_MAJOR)
set(LLDB_VERSION_MAJOR ${LLVM_VERSION_MAJOR})
@@ -345,11 +359,6 @@ if (APPLE)
find_library(CORE_FOUNDATION_LIBRARY CoreFoundation)
find_library(SECURITY_LIBRARY Security)
- set(LLDB_FRAMEWORK_INSTALL_DIR Library/Frameworks CACHE STRING "Output directory for LLDB.framework")
- set(LLDB_FRAMEWORK_VERSION A CACHE STRING "LLDB.framework version (default is A)")
- set(LLDB_FRAMEWORK_RESOURCE_DIR
- LLDB.framework/Versions/${LLDB_FRAMEWORK_VERSION}/Resources)
-
add_definitions( -DLIBXML2_DEFINED )
list(APPEND system_libs xml2
${CURSES_LIBRARIES}
Modified: lldb/trunk/cmake/modules/LLDBFramework.cmake
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/modules/LLDBFramework.cmake?rev=350391&r1=350390&r2=350391&view=diff
==============================================================================
--- lldb/trunk/cmake/modules/LLDBFramework.cmake (original)
+++ lldb/trunk/cmake/modules/LLDBFramework.cmake Fri Jan 4 04:46:50 2019
@@ -1,39 +1,107 @@
+# Path relative to the root binary directory
+get_filename_component(
+ framework_target_dir ${LLDB_FRAMEWORK_BUILD_DIR} ABSOLUTE
+ BASE_DIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}
+)
+
+message(STATUS "LLDB.framework: build path is '${framework_target_dir}'")
+message(STATUS "LLDB.framework: install path is '${LLDB_FRAMEWORK_INSTALL_DIR}'")
+message(STATUS "LLDB.framework: resources subdirectory is 'Versions/${LLDB_FRAMEWORK_VERSION}/Resources'")
+
+# Configure liblldb as a framework bundle
+set_target_properties(liblldb PROPERTIES
+ FRAMEWORK ON
+ FRAMEWORK_VERSION ${LLDB_FRAMEWORK_VERSION}
+
+ OUTPUT_NAME LLDB
+ VERSION ${LLDB_VERSION}
+ LIBRARY_OUTPUT_DIRECTORY ${framework_target_dir}
+
+ # Compatibility version
+ SOVERSION "1.0.0"
+
+ MACOSX_FRAMEWORK_IDENTIFIER com.apple.LLDB.framework
+ MACOSX_FRAMEWORK_BUNDLE_VERSION ${LLDB_VERSION}
+ MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${LLDB_VERSION}
+ MACOSX_FRAMEWORK_INFO_PLIST ${LLDB_SOURCE_DIR}/resources/LLDB-Info.plist.in
+)
+
+# Affects the layout of the framework bundle (default is macOS layout).
+if(IOS)
+ set_target_properties(liblldb PROPERTIES
+ XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "${IPHONEOS_DEPLOYMENT_TARGET}")
+else()
+ set_target_properties(liblldb PROPERTIES
+ XCODE_ATTRIBUTE_MACOSX_DEPLOYMENT_TARGET "${MACOSX_DEPLOYMENT_TARGET}")
+endif()
+
+# Target to capture extra steps for a fully functional framework bundle.
+add_custom_target(lldb-framework)
+add_dependencies(lldb-framework liblldb)
+
+# Dependencies are defined once tools are added (see AddLLDB.cmake)
+if(LLDB_FRAMEWORK_TOOLS)
+ foreach(tool ${LLDB_FRAMEWORK_TOOLS})
+ add_custom_command(TARGET lldb-framework POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${tool}> $<TARGET_FILE_DIR:liblldb>/Resources
+ COMMENT "LLDB.framework: copy additional tool ${tool}"
+ )
+ endforeach()
+else()
+ message(WARNING "LLDB.framework: no additional tools configured (set via LLDB_FRAMEWORK_TOOLS)")
+endif()
+
+# Apart from this one, CMake creates all required symlinks in the framework bundle.
+add_custom_command(TARGET lldb-framework POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E create_symlink
+ Versions/Current/Headers
+ ${framework_target_dir}/LLDB.framework/Headers
+ COMMENT "LLDB.framework: create Headers symlink"
+)
+
+# At configuration time, collect headers for the framework bundle and copy them
+# into a staging directory. Later we can copy over the entire folder.
file(GLOB public_headers ${LLDB_SOURCE_DIR}/include/lldb/API/*.h)
file(GLOB root_public_headers ${LLDB_SOURCE_DIR}/include/lldb/lldb-*.h)
file(GLOB root_private_headers ${LLDB_SOURCE_DIR}/include/lldb/lldb-private*.h)
list(REMOVE_ITEM root_public_headers ${root_private_headers})
+
+set(lldb_header_staging ${CMAKE_CURRENT_BINARY_DIR}/FrameworkHeaders)
foreach(header
${public_headers}
${root_public_headers}
${LLDB_SOURCE_DIR}/include/lldb/Utility/SharingPtr.h)
+
get_filename_component(basename ${header} NAME)
- add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/FrameworkHeaders/${basename}
- DEPENDS ${header}
- COMMAND ${CMAKE_COMMAND} -E copy ${header} ${CMAKE_CURRENT_BINARY_DIR}/FrameworkHeaders/${basename})
- list(APPEND framework_headers ${CMAKE_CURRENT_BINARY_DIR}/FrameworkHeaders/${basename})
+ set(staged_header ${lldb_header_staging}/${basename})
+
+ add_custom_command(
+ DEPENDS ${header} OUTPUT ${staged_header}
+ COMMAND ${CMAKE_COMMAND} -E copy ${header} ${staged_header}
+ COMMENT "LLDB.framework: collect framework header")
+
+ list(APPEND lldb_staged_headers ${staged_header})
endforeach()
-add_custom_target(lldb-framework-headers DEPENDS ${framework_headers})
+# Wrap output in a target, so lldb-framework can depend on it.
+add_custom_target(lldb-framework-headers DEPENDS ${lldb_staged_headers})
+add_dependencies(lldb-framework lldb-framework-headers)
-add_custom_command(TARGET lldb-framework POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_BINARY_DIR}/FrameworkHeaders $<TARGET_FILE_DIR:liblldb>/Headers
+# At build time, copy the staged headers into the framework bundle (and do
+# some post-processing in-place).
+add_custom_command(TARGET lldb-framework-headers POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${lldb_header_staging} $<TARGET_FILE_DIR:liblldb>/Headers
COMMAND ${LLDB_SOURCE_DIR}/scripts/framework-header-fix.sh $<TARGET_FILE_DIR:liblldb>/Headers ${LLDB_VERSION}
+ COMMENT "LLDB.framework: copy framework headers"
)
-if (NOT IOS)
- if (NOT LLDB_BUILT_STANDALONE)
- add_dependencies(lldb-framework clang-headers)
- endif()
+# Copy vendor-specific headers from clang (without staging).
+if(NOT IOS AND NOT LLDB_BUILT_STANDALONE)
+ add_dependencies(lldb-framework clang-headers)
add_custom_command(TARGET lldb-framework POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E create_symlink Versions/Current/Headers ${LLDB_FRAMEWORK_DIR}/LLDB.framework/Headers
- COMMAND ${CMAKE_COMMAND} -E create_symlink ${LLDB_FRAMEWORK_VERSION} ${LLDB_FRAMEWORK_DIR}/LLDB.framework/Versions/Current
- COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/clang/${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH} $<TARGET_FILE_DIR:liblldb>/Resources/Clang
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ $<TARGET_PROPERTY:clang-headers,RUNTIME_OUTPUT_DIRECTORY>
+ $<TARGET_FILE_DIR:liblldb>/Resources/Clang/include
+ COMMENT "LLDB.framework: copy clang vendor-specific headers"
)
endif()
-
-add_dependencies(lldb-framework
- lldb-framework-headers
- lldb-suite)
-
-add_custom_target(install-lldb-framework)
-add_custom_target(install-lldb-framework-stripped)
Added: lldb/trunk/resources/LLDB-Info.plist.in
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/resources/LLDB-Info.plist.in?rev=350391&view=auto
==============================================================================
--- lldb/trunk/resources/LLDB-Info.plist.in (added)
+++ lldb/trunk/resources/LLDB-Info.plist.in Fri Jan 4 04:46:50 2019
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>LLDB</string>
+ <key>CFBundleIdentifier</key>
+ <string>${MACOSX_FRAMEWORK_IDENTIFIER}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleShortVersionString</key>
+ <string>${MACOSX_FRAMEWORK_SHORT_VERSION_STRING}</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>${MACOSX_FRAMEWORK_BUNDLE_VERSION}</string>
+ <key>CFBundleName</key>
+ <string>LLDB</string>
+</dict>
+</plist>
Modified: lldb/trunk/source/API/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/CMakeLists.txt?rev=350391&r1=350390&r2=350391&view=diff
==============================================================================
--- lldb/trunk/source/API/CMakeLists.txt (original)
+++ lldb/trunk/source/API/CMakeLists.txt Fri Jan 4 04:46:50 2019
@@ -92,24 +92,26 @@ add_lldb_library(liblldb SHARED
Support
)
-add_dependencies(lldb-suite liblldb)
+if(LLDB_WRAP_PYTHON)
+ add_dependencies(liblldb swig_wrapper)
-if (MSVC)
- set_property(SOURCE ${LLDB_WRAP_PYTHON} APPEND_STRING PROPERTY COMPILE_FLAGS " /W0")
-else()
- set_property(SOURCE ${LLDB_WRAP_PYTHON} APPEND_STRING PROPERTY COMPILE_FLAGS " -w")
-endif()
+ if (MSVC)
+ set_property(SOURCE ${LLDB_WRAP_PYTHON} APPEND_STRING PROPERTY COMPILE_FLAGS " /W0")
+ else()
+ set_property(SOURCE ${LLDB_WRAP_PYTHON} APPEND_STRING PROPERTY COMPILE_FLAGS " -w")
+ endif()
-set_source_files_properties(${LLDB_WRAP_PYTHON} PROPERTIES GENERATED 1)
-if (CLANG_CL)
- set_property(SOURCE ${LLDB_WRAP_PYTHON} APPEND_STRING
- PROPERTY COMPILE_FLAGS " -Wno-unused-function")
+ set_source_files_properties(${LLDB_WRAP_PYTHON} PROPERTIES GENERATED 1)
+ if (CLANG_CL)
+ set_property(SOURCE ${LLDB_WRAP_PYTHON} APPEND_STRING
+ PROPERTY COMPILE_FLAGS " -Wno-unused-function")
+ endif()
+ if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND
+ NOT "${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
+ set_property(SOURCE ${LLDB_WRAP_PYTHON} APPEND_STRING
+ PROPERTY COMPILE_FLAGS " -Wno-sequence-point -Wno-cast-qual")
+ endif ()
endif()
-if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND
- NOT "${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
- set_property(SOURCE ${LLDB_WRAP_PYTHON} APPEND_STRING
- PROPERTY COMPILE_FLAGS " -Wno-sequence-point -Wno-cast-qual")
-endif ()
set_target_properties(liblldb
PROPERTIES
@@ -144,18 +146,6 @@ else()
)
endif()
-if (LLDB_BUILD_FRAMEWORK)
- set_target_properties(liblldb
- PROPERTIES
- SOVERSION "1.0.0"
- OUTPUT_NAME LLDB
- FRAMEWORK On
- FRAMEWORK_VERSION ${LLDB_FRAMEWORK_VERSION}
- MACOSX_FRAMEWORK_INFO_PLIST ${LLDB_SOURCE_DIR}/resources/LLDB-Info.plist
- LIBRARY_OUTPUT_DIRECTORY ${LLDB_FRAMEWORK_DIR}
- )
-endif()
-
-if (LLDB_WRAP_PYTHON)
- add_dependencies(liblldb swig_wrapper)
+if(LLDB_BUILD_FRAMEWORK)
+ include(LLDBFramework)
endif()
Modified: lldb/trunk/test/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/CMakeLists.txt?rev=350391&r1=350390&r2=350391&view=diff
==============================================================================
--- lldb/trunk/test/CMakeLists.txt (original)
+++ lldb/trunk/test/CMakeLists.txt Fri Jan 4 04:46:50 2019
@@ -79,7 +79,8 @@ if(LLDB_CODESIGN_IDENTITY_USED)
endif()
if(LLDB_BUILD_FRAMEWORK)
- list(APPEND LLDB_TEST_COMMON_ARGS --framework ${LLDB_FRAMEWORK_DIR}/LLDB.framework)
+ get_target_property(framework_target_dir liblldb LIBRARY_OUTPUT_DIRECTORY)
+ list(APPEND LLDB_TEST_COMMON_ARGS --framework ${framework_target_dir}/LLDB.framework)
endif()
if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows|Darwin")
Modified: lldb/trunk/tools/argdumper/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/argdumper/CMakeLists.txt?rev=350391&r1=350390&r2=350391&view=diff
==============================================================================
--- lldb/trunk/tools/argdumper/CMakeLists.txt (original)
+++ lldb/trunk/tools/argdumper/CMakeLists.txt Fri Jan 4 04:46:50 2019
@@ -1,4 +1,4 @@
-add_lldb_tool(lldb-argdumper INCLUDE_IN_SUITE
+add_lldb_tool(lldb-argdumper
argdumper.cpp
LINK_LIBS
Modified: lldb/trunk/tools/darwin-debug/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/darwin-debug/CMakeLists.txt?rev=350391&r1=350390&r2=350391&view=diff
==============================================================================
--- lldb/trunk/tools/darwin-debug/CMakeLists.txt (original)
+++ lldb/trunk/tools/darwin-debug/CMakeLists.txt Fri Jan 4 04:46:50 2019
@@ -1,3 +1,3 @@
-add_lldb_tool(darwin-debug INCLUDE_IN_SUITE
+add_lldb_tool(darwin-debug
darwin-debug.cpp
)
Modified: lldb/trunk/tools/debugserver/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/CMakeLists.txt?rev=350391&r1=350390&r2=350391&view=diff
==============================================================================
--- lldb/trunk/tools/debugserver/CMakeLists.txt (original)
+++ lldb/trunk/tools/debugserver/CMakeLists.txt Fri Jan 4 04:46:50 2019
@@ -15,11 +15,6 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURR
set(LLDB_SOURCE_DIR "${CMAKE_SOURCE_DIR}/../../")
include_directories(${LLDB_SOURCE_DIR}/include)
-
- # lldb-suite is a dummy target that encompasses all the necessary tools and
- # libraries for building a fully-functioning liblldb.
- add_custom_target(lldb-suite)
- set(LLDB_SUITE_TARGET lldb-suite)
endif()
add_subdirectory(source)
Modified: lldb/trunk/tools/debugserver/source/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/CMakeLists.txt?rev=350391&r1=350390&r2=350391&view=diff
==============================================================================
--- lldb/trunk/tools/debugserver/source/CMakeLists.txt (original)
+++ lldb/trunk/tools/debugserver/source/CMakeLists.txt Fri Jan 4 04:46:50 2019
@@ -259,7 +259,7 @@ if(build_and_sign_debugserver)
COMPILE_DEFINITIONS HAVE_LIBCOMPRESSION)
endif()
set(LLVM_OPTIONAL_SOURCES ${lldbDebugserverCommonSources})
- add_lldb_tool(debugserver INCLUDE_IN_SUITE
+ add_lldb_tool(debugserver
debugserver.cpp
LINK_LIBS
Modified: lldb/trunk/tools/driver/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/driver/CMakeLists.txt?rev=350391&r1=350390&r2=350391&view=diff
==============================================================================
--- lldb/trunk/tools/driver/CMakeLists.txt (original)
+++ lldb/trunk/tools/driver/CMakeLists.txt Fri Jan 4 04:46:50 2019
@@ -19,7 +19,6 @@ if ( CMAKE_SYSTEM_NAME MATCHES "Windows"
endif()
add_dependencies(lldb
- ${LLDB_SUITE_TARGET}
LLDBOptionsTableGen
${tablegen_deps}
)
Modified: lldb/trunk/tools/lldb-server/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-server/CMakeLists.txt?rev=350391&r1=350390&r2=350391&view=diff
==============================================================================
--- lldb/trunk/tools/lldb-server/CMakeLists.txt (original)
+++ lldb/trunk/tools/lldb-server/CMakeLists.txt Fri Jan 4 04:46:50 2019
@@ -42,7 +42,7 @@ else()
list(APPEND LLDB_PLUGINS lldbPluginObjectFileELF)
endif()
-add_lldb_tool(lldb-server INCLUDE_IN_SUITE
+add_lldb_tool(lldb-server
Acceptor.cpp
lldb-gdbserver.cpp
lldb-platform.cpp
More information about the lldb-commits
mailing list