summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt3
-rw-r--r--cmake/FindLibClang.cmake55
-rw-r--r--src/CMakeLists.txt17
-rw-r--r--src/portable.cpp1
4 files changed, 15 insertions, 61 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d8337d4..ed63320 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,7 +39,8 @@ endif()
set(MACOS_VERSION_MIN 10.5)
if (use_libclang)
set(clang "1" CACHE INTERNAL "used in settings.h")
- find_package(LibClang REQUIRED)
+ find_package(LLVM CONFIG REQUIRED)
+ find_package(Clang CONFIG REQUIRED)
if (${CMAKE_SYSTEM} MATCHES "Darwin")
set(MACOS_VERSION_MIN 10.11)
endif()
diff --git a/cmake/FindLibClang.cmake b/cmake/FindLibClang.cmake
deleted file mode 100644
index e7462d4..0000000
--- a/cmake/FindLibClang.cmake
+++ /dev/null
@@ -1,55 +0,0 @@
-if (NOT CLANG_ROOT)
- set(CLANG_ROOT $ENV{CLANG_ROOT})
-endif ()
-
-if (NOT LLVM_CONFIG)
- set(LLVM_CONFIG $ENV{LLVM_CONFIG})
- if (NOT LLVM_CONFIG)
- set(llvm_config_names llvm-config)
- foreach(minor RANGE 9 1)
- list(APPEND llvm_config_names "llvm-config3${minor}" "llvm-config-3.${minor}" "llvm-config-mp-3.${minor}")
- endforeach ()
- find_program(LLVM_CONFIG NAMES ${llvm_config_names})
- endif ()
-endif ()
-
-if (LLVM_CONFIG)
- message(STATUS "llvm-config found at: ${LLVM_CONFIG}")
-else ()
- message(FATAL_ERROR "Could NOT find llvm-config executable.")
-endif ()
-
-if (NOT EXISTS ${CLANG_INCLUDEDIR})
- execute_process(COMMAND ${LLVM_CONFIG} --includedir OUTPUT_VARIABLE CLANG_INCLUDEDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (NOT EXISTS ${CLANG_INCLUDEDIR})
- message(FATAL_ERROR "Could NOT find clang includedir. You can fix this by setting CLANG_INCLUDEDIR in your shell or as a cmake variable.")
- endif ()
-endif ()
-
-if (NOT EXISTS ${CLANG_LIBDIR})
- execute_process(COMMAND ${LLVM_CONFIG} --libdir OUTPUT_VARIABLE CLANG_LIBDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (NOT EXISTS ${CLANG_LIBDIR})
- message(FATAL_ERROR "Could NOT find clang libdir. You can fix this by setting CLANG_LIBDIR in your shell or as a cmake variable.")
- endif ()
-endif ()
-
-if (NOT CLANG_LIBS)
- find_library(CLANG_LIB_HACK_CMAKECACHE_DOT_TEXT_BULLSHIT NAMES clang libclang ${CLANG_ROOT}/lib ${CLANG_LIBDIR} NO_DEFAULT_PATH)
- if (NOT EXISTS ${CLANG_CLANG_LIB_HACK_CMAKECACHE_DOT_TEXT_BULLSHIT})
- find_library(CLANG_LIBS NAMES clang libclang)
- if (NOT EXISTS ${CLANG_LIBS})
- if (MSVC)
- set (CLANG_LIBS "${CLANG_LIBDIR}/libclang.lib")
- else()
- set (CLANG_LIBS "-L${CLANG_LIBDIR}" "-lclang" "-Wl,-rpath,${CLANG_LIBDIR}")
- endif()
- endif ()
- else ()
- set(CLANG_LIBS "${CLANG_LIB_HACK_CMAKECACHE_DOT_TEXT_BULLSHIT}")
- endif ()
-endif ()
-
-execute_process(COMMAND ${LLVM_CONFIG} --version OUTPUT_VARIABLE CLANG_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
-message("-- Using Clang ${CLANG_VERSION} from ${CLANG_LIBDIR} with LIBS ${CLANG_LIBS} and CXXFLAGS ${CLANG_CXXFLAGS}")
-
-
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index df76cb0..be395f4 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -248,13 +248,20 @@ add_executable(doxygen main.cpp)
if (use_libclang)
find_package(LLVM REQUIRED CONFIG)
find_package(Clang REQUIRED CONFIG)
- target_compile_features(_doxygen PRIVATE cxx_alignof)
- target_compile_options(_doxygen PRIVATE -stdlib=libc++ -std=c++11)
- target_compile_features(doxygen PRIVATE cxx_alignof)
- target_compile_options(doxygen PRIVATE -stdlib=libc++ -std=c++11)
+ if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
+ target_compile_features(_doxygen PRIVATE cxx_alignof)
+ target_compile_features(doxygen PRIVATE cxx_alignof)
+ target_compile_options(_doxygen PRIVATE -stdlib=libc++ -std=c++11)
+ target_compile_options(doxygen PRIVATE -stdlib=libc++ -std=c++11)
+ elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
+ target_compile_options(_doxygen PRIVATE -std=c++11)
+ target_compile_options(doxygen PRIVATE -std=c++11)
+ endif()
+ include_directories(${LLVM_INCLUDE_DIRS})
+ add_definitions(${LLVM_DEFINITIONS})
llvm_map_components_to_libnames(llvm_libs support core option)
target_compile_definitions(doxygen PRIVATE ${LLVM_DEFINITIONS})
- set(CLANG_LIBS ${llvm_libs} ${CLANG_LIBS} clangTooling)
+ set(CLANG_LIBS libclang clangTooling ${llvm_libs})
endif()
target_link_libraries(doxygen
diff --git a/src/portable.cpp b/src/portable.cpp
index 1983fe7..4ad88a4 100644
--- a/src/portable.cpp
+++ b/src/portable.cpp
@@ -180,6 +180,7 @@ int portable_system(const char *command,const char *args,bool commandHasConsole)
}
}
#endif
+ return 1; // we should never get here
}