From 2764e96e33e549adb817488c472ec9fb6e267041 Mon Sep 17 00:00:00 2001 From: Eugene Shalygin Date: Thu, 24 Jun 2021 18:22:52 +0200 Subject: [PATCH] Fix build with Clang 12 on Linux and install the native lib --- sources/libClangSharp/CMakeLists.txt | 33 +++++++++++++++++----------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/sources/libClangSharp/CMakeLists.txt b/sources/libClangSharp/CMakeLists.txt index c91c5f92..a7ae962e 100644 --- a/sources/libClangSharp/CMakeLists.txt +++ b/sources/libClangSharp/CMakeLists.txt @@ -18,12 +18,6 @@ set(SOURCES CXType.h ) -set(LIBS - clangAST - clangFrontend - libclang -) - set(LLVM_SEARCH_PATHS ${PATH_TO_LLVM} ${PATH_TO_LLVM}/lib/cmake @@ -37,12 +31,25 @@ find_package(Clang REQUIRED CONFIG PATHS ${LLVM_SEARCH_PATHS} NO_DEFAULT_PATH) -if(WIN32) - add_library(libClangSharp SHARED ${SOURCES}) - target_include_directories(libClangSharp PUBLIC ${LLVM_INCLUDE_DIRS}) - target_link_libraries(libClangSharp ${LIBS}) +add_library(ClangSharp SHARED ${SOURCES}) + +if (TARGET clang-cpp) # Linux packages install libclang and clang-cpp + target_link_libraries(ClangSharp PRIVATE clang-cpp libclang) else() - add_library(ClangSharp SHARED ${SOURCES}) - target_include_directories(ClangSharp PUBLIC ${LLVM_INCLUDE_DIRS}) - target_link_libraries(ClangSharp ${LIBS}) + target_link_libraries(ClangSharp PRIVATE clangAST clangFrontend libclang) endif() + +target_include_directories(ClangSharp PRIVATE ${CLANG_INCLUDE_DIRS}) +set_target_properties(ClangSharp PROPERTIES + PREFIX lib + VERSION ${PROJECT_VERSION} + SOVERSION ${PROJECT_VERSION} +) + +include(GNUInstallDirs) + +install(TARGETS ClangSharp + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT runtime + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT development + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime +)