diff options
Diffstat (limited to 'lldb/cmake/modules/AddLLDB.cmake')
| -rw-r--r-- | lldb/cmake/modules/AddLLDB.cmake | 44 |
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 |

