aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2017-05-17 10:29:03 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2017-05-18 10:41:32 +0000
commit35d5adf8ad14e7d62a1359ce4b8e198e33152ad9 (patch)
treee5212aa2cba7bd1df65a4f6da34cec89b1958f10
parent0b83c85f4468547d3680dddc9ab12ad42a5c43f9 (diff)
Improve Clang detection
Check LLVM_INSTALL_DIR, CLANG_INSTALL_DIR and llvm-config and make messages more verbose. Task-number: PYSIDE-323 Change-Id: Iaff24d7c80853f381d227ebdccbb3abc4497a199 Reviewed-by: Christian Tismer <tismer@stackless.com>
-rw-r--r--CMakeLists.txt29
1 files changed, 24 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7695df5..ddba62d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -27,11 +27,30 @@ else()
find_package(PythonLibs 2.6)
endif()
-set(CLANG_DIR $ENV{CLANG_INSTALL_DIR})
+set(CLANG_DIR "")
+set(CLANG_DIR_SOURCE "")
+
+if (DEFINED ENV{LLVM_INSTALL_DIR})
+ set(CLANG_DIR $ENV{LLVM_INSTALL_DIR})
+ set(CLANG_DIR_SOURCE "LLVM_INSTALL_DIR")
+elseif (DEFINED ENV{CLANG_INSTALL_DIR})
+ set(CLANG_DIR $ENV{CLANG_INSTALL_DIR})
+ set(CLANG_DIR_SOURCE "CLANG_INSTALL_DIR")
+else ()
+ EXEC_PROGRAM("llvm-config" ARGS "--prefix" OUTPUT_VARIABLE CLANG_DIR)
+ set(CLANG_DIR_SOURCE "llvm-config")
+ if (NOT "${CLANG_DIR}" STREQUAL "")
+ EXEC_PROGRAM("llvm-config" ARGS "--version" OUTPUT_VARIABLE CLANG_VERSION)
+ if (CLANG_VERSION VERSION_LESS 3.9)
+ message(FATAL_ERROR "LLVM version 3.9 is required (llvm-config detected ${CLANG_VERSION} at ${CLANG_DIR}).")
+ endif()
+ endif()
+endif()
-if (NOT IS_DIRECTORY ${CLANG_DIR})
- message(FATAL_ERROR "CLANG_INSTALL_DIR is not set or does not point to a valid directory.")
-else()
+if ("${CLANG_DIR}" STREQUAL "")
+ message(FATAL_ERROR "Unable to detect CLANG location by checking LLVM_INSTALL_DIR, CLANG_INSTALL_DIR or running llvm-config.")
+elseif (NOT IS_DIRECTORY ${CLANG_DIR})
+ message(FATAL_ERROR "${CLANG_DIR} detected by ${CLANG_DIR_SOURCE} does not exist.")
endif()
set(CLANG_LIB_NAME "clang")
@@ -44,7 +63,7 @@ if (NOT EXISTS ${CLANG_LIBRARY})
message(FATAL_ERROR "Unable to find Clang library ${CLANG_LIB_NAME} in ${CLANG_DIR}.")
endif()
-message(STATUS "CLANG: ${CLANG_DIR}, ${CLANG_LIBRARY}")
+message(STATUS "CLANG: ${CLANG_DIR}, ${CLANG_LIBRARY} detected by ${CLANG_DIR_SOURCE}")
set(CLANG_EXTRA_INCLUDES ${CLANG_DIR}/include)
set(CLANG_EXTRA_LIBRARIES ${CLANG_LIBRARY})