From e053d443097f8d9374e5bbbd988eff9bdb575c12 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Thu, 12 Nov 2015 00:46:57 +0000 Subject: [PATCH] [CMake] Setup an install component for libclang and c-index-test. Also don't create libclang dylib symlinks on darwin. llvm-svn: 252836 --- clang/CMakeLists.txt | 17 +++++++++++++++-- clang/tools/c-index-test/CMakeLists.txt | 9 +++++++++ clang/tools/libclang/CMakeLists.txt | 14 ++++++-------- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt index 3aa0baeffae5..2a78c6ca909b 100644 --- a/clang/CMakeLists.txt +++ b/clang/CMakeLists.txt @@ -354,7 +354,7 @@ endmacro() macro(add_clang_library name) cmake_parse_arguments(ARG - "" + "SHARED" "" "ADDITIONAL_HEADERS" ${ARGN}) @@ -390,17 +390,29 @@ macro(add_clang_library name) ${ARG_ADDITIONAL_HEADERS} # It may contain unparsed unknown args. ) endif() - llvm_add_library(${name} ${ARG_UNPARSED_ARGUMENTS} ${srcs}) + if(ARG_SHARED) + set(ARG_ENABLE_SHARED SHARED) + endif() + llvm_add_library(${name} ${ARG_ENABLE_SHARED} ${ARG_UNPARSED_ARGUMENTS} ${srcs}) if(TARGET ${name}) target_link_libraries(${name} ${cmake_2_8_12_INTERFACE} ${LLVM_COMMON_LIBS}) if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "libclang") install(TARGETS ${name} + COMPONENT ${name} EXPORT ClangTargets LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} RUNTIME DESTINATION bin) + + if (${ARG_SHARED} AND 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() set_property(GLOBAL APPEND PROPERTY CLANG_EXPORTS ${name}) else() @@ -451,6 +463,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) endif() install(DIRECTORY include/clang-c + COMPONENT libclang DESTINATION include FILES_MATCHING PATTERN "*.h" diff --git a/clang/tools/c-index-test/CMakeLists.txt b/clang/tools/c-index-test/CMakeLists.txt index d0872fd2eff3..7183854b39ff 100644 --- a/clang/tools/c-index-test/CMakeLists.txt +++ b/clang/tools/c-index-test/CMakeLists.txt @@ -28,3 +28,12 @@ if (CLANG_HAVE_LIBXML) include_directories(SYSTEM ${LIBXML2_INCLUDE_DIR}) target_link_libraries(c-index-test ${LIBXML2_LIBRARIES}) endif() + +install(TARGETS c-index-test + RUNTIME DESTINATION local/bin + COMPONENT c-index-test) +add_custom_target(install-c-index-test + DEPENDS c-index-test + COMMAND "${CMAKE_COMMAND}" + -DCMAKE_INSTALL_COMPONENT=c-index-test + -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") diff --git a/clang/tools/libclang/CMakeLists.txt b/clang/tools/libclang/CMakeLists.txt index e8c247bf4264..5267c02db5f4 100644 --- a/clang/tools/libclang/CMakeLists.txt +++ b/clang/tools/libclang/CMakeLists.txt @@ -102,18 +102,16 @@ if(ENABLE_SHARED) PROPERTIES VERSION ${LIBCLANG_LIBRARY_VERSION} DEFINE_SYMBOL _CINDEX_LIB_) + elseif(APPLE) + set(LIBCLANG_LINK_FLAGS " -Wl,-compatibility_version -Wl,1") + set(LIBCLANG_LINK_FLAGS "${LIBCLANG_LINK_FLAGS} -Wl,-current_version -Wl,${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}") + + set_property(TARGET libclang APPEND_STRING PROPERTY + LINK_FLAGS ${LIBCLANG_LINK_FLAGS}) else() set_target_properties(libclang PROPERTIES VERSION ${LIBCLANG_LIBRARY_VERSION} DEFINE_SYMBOL _CINDEX_LIB_) endif() - - if(APPLE) - set(LIBCLANG_LINK_FLAGS " -Wl,-compatibility_version -Wl,1") - set(LIBCLANG_LINK_FLAGS "${LIBCLANG_LINK_FLAGS} -Wl,-current_version -Wl,${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}") - - set_property(TARGET libclang APPEND_STRING PROPERTY - LINK_FLAGS ${LIBCLANG_LINK_FLAGS}) - endif() endif()