From 3b6ac9e24fae88e09558524d3d9bd023a753defc Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Mon, 20 Jul 2020 21:05:08 +0200 Subject: Make a switch to choose between dynamic library to clang-cpp or static linking against clangTooling --- CMakeLists.txt | 1 + addon/doxyapp/CMakeLists.txt | 6 +++++- addon/doxyparse/CMakeLists.txt | 6 +++++- src/CMakeLists.txt | 9 +++++++-- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 88b99d6..e76a745 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,7 @@ option(build_doc "Build user manual (HTML and PDF)" OFF) option(build_doc_chm "Build user manual (CHM)" OFF) option(use_sqlite3 "Add support for sqlite3 output [experimental]." OFF) option(use_libclang "Add support for libclang parsing." OFF) +option(static_libclang "Link to a statically compiled version of LLVM/libclang." OFF) option(win_static "Link with /MT in stead of /MD on windows" OFF) option(english_only "Only compile in support for the English language" OFF) option(force_qt4 "Forces doxywizard to build using Qt4 even if Qt5 is installed" OFF) diff --git a/addon/doxyapp/CMakeLists.txt b/addon/doxyapp/CMakeLists.txt index 808eee9..a6a776a 100644 --- a/addon/doxyapp/CMakeLists.txt +++ b/addon/doxyapp/CMakeLists.txt @@ -15,7 +15,11 @@ doxyapp.cpp add_sanitizers(doxyapp) if (use_libclang) - set(CLANG_LIBS libclang clang-cpp ${llvm_libs}) + if (static_libclang) + set(CLANG_LIBS libclang clangTooling ${llvm_libs}) + else() + set(CLANG_LIBS libclang clang-cpp ${llvm_libs}) + endif() endif() target_link_libraries(doxyapp diff --git a/addon/doxyparse/CMakeLists.txt b/addon/doxyparse/CMakeLists.txt index bfef0ab..8df99ab 100644 --- a/addon/doxyparse/CMakeLists.txt +++ b/addon/doxyparse/CMakeLists.txt @@ -15,7 +15,11 @@ doxyparse.cpp add_sanitizers(doxyparse) if (use_libclang) - set(CLANG_LIBS libclang clang-cpp ${llvm_libs}) + if (static_libclang) + set(CLANG_LIBS libclang clangTooling ${llvm_libs}) + else() + set(CLANG_LIBS libclang clang-cpp ${llvm_libs}) + endif() endif() target_link_libraries(doxyparse diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index dc90eb0..5ba80b7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -330,9 +330,14 @@ if (use_libclang) endif() include_directories(${LLVM_INCLUDE_DIRS}) add_definitions(${LLVM_DEFINITIONS}) - llvm_map_components_to_libnames(llvm_libs support) + if (static_libclang) + llvm_map_components_to_libnames(llvm_libs support core option) + set(CLANG_LIBS libclang clangTooling ${llvm_libs}) + else() # dynamically linked version of clang + llvm_map_components_to_libnames(llvm_libs support) + set(CLANG_LIBS libclang clang-cpp ${llvm_libs}) + endif() target_compile_definitions(doxygen PRIVATE ${LLVM_DEFINITIONS}) - set(CLANG_LIBS libclang clang-cpp ${llvm_libs}) endif() target_link_libraries(doxygen -- cgit v0.12