summaryrefslogtreecommitdiffstats
path: root/lldb/cmake/modules/AddLLDB.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/cmake/modules/AddLLDB.cmake')
-rw-r--r--lldb/cmake/modules/AddLLDB.cmake44
1 files changed, 36 insertions, 8 deletions
diff --git a/lldb/cmake/modules/AddLLDB.cmake b/lldb/cmake/modules/AddLLDB.cmake
index bf2a9aaa91b..1ca6f3e661b 100644
--- a/lldb/cmake/modules/AddLLDB.cmake
+++ b/lldb/cmake/modules/AddLLDB.cmake
@@ -17,7 +17,7 @@ function(lldb_link_common_libs name targetkind)
endif()
endfunction(lldb_link_common_libs)
-macro(add_lldb_library name)
+function(add_lldb_library name)
# only supported parameters to this macro are the optional
# MODULE;SHARED;STATIC library type and source files
cmake_parse_arguments(PARAM
@@ -80,14 +80,23 @@ macro(add_lldb_library name)
set(out_dir ${LLDB_FRAMEWORK_INSTALL_DIR})
endif()
install(TARGETS ${name}
+ COMPONENT ${name}
RUNTIME DESTINATION bin
LIBRARY DESTINATION ${out_dir}
ARCHIVE DESTINATION ${out_dir})
else()
install(TARGETS ${name}
+ COMPONENT ${name}
LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
endif()
+ if (NOT CMAKE_CONFIGURATION_TYPES)
+ add_custom_target(install-${name}
+ DEPENDS ${name}
+ COMMAND "${CMAKE_COMMAND}"
+ -DCMAKE_INSTALL_COMPONENT=${name}
+ -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
+ endif()
endif()
endif()
@@ -100,14 +109,15 @@ macro(add_lldb_library name)
endif()
set_target_properties(${name} PROPERTIES FOLDER "lldb libraries")
-endmacro(add_lldb_library)
+endfunction(add_lldb_library)
-macro(add_lldb_executable name)
- cmake_parse_arguments(ARG "INCLUDE_IN_FRAMEWORK" "" "" ${ARGN})
+function(add_lldb_executable name)
+ cmake_parse_arguments(ARG "INCLUDE_IN_FRAMEWORK;GENERATE_INSTALL" "" "" ${ARGN})
add_llvm_executable(${name} ${ARG_UNPARSED_ARGUMENTS})
set_target_properties(${name} PROPERTIES
FOLDER "lldb executables")
+ set(install_dir bin)
if(LLDB_BUILD_FRAMEWORK)
if(ARG_INCLUDE_IN_FRAMEWORK)
string(REGEX REPLACE "[^/]+" ".." _dots ${LLDB_FRAMEWORK_INSTALL_DIR})
@@ -115,16 +125,34 @@ macro(add_lldb_executable name)
RUNTIME_OUTPUT_DIRECTORY $<TARGET_FILE_DIR:liblldb>/Resources
BUILD_WITH_INSTALL_RPATH On
INSTALL_RPATH "@loader_path/../../../../${_dots}/${LLDB_FRAMEWORK_INSTALL_DIR}")
-
- add_llvm_tool_symlink(${name} ${name} ARG_ALWAYS_GENERATE
- OUTPUT_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
else()
set_target_properties(${name} PROPERTIES
BUILD_WITH_INSTALL_RPATH On
INSTALL_RPATH "@loader_path/../${LLDB_FRAMEWORK_INSTALL_DIR}")
+ if(ARG_GENERATE_INSTALL)
+ install(TARGETS ${name}
+ COMPONENT ${name}
+ RUNTIME DESTINATION ${install_dir})
+ if (NOT CMAKE_CONFIGURATION_TYPES)
+ add_custom_target(install-${name}
+ DEPENDS ${name}
+ COMMAND "${CMAKE_COMMAND}"
+ -DCMAKE_INSTALL_COMPONENT=${name}
+ -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
+ endif()
+ endif()
endif()
endif()
-endmacro(add_lldb_executable)
+
+ if(ARG_INCLUDE_IN_FRAMEWORK 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)
+ add_lldb_executable(${name} GENERATE_INSTALL ${ARGN})
+endfunction()
# Support appending linker flags to an existing target.
# This will preserve the existing linker flags on the
OpenPOWER on IntegriCloud