aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken2/CMakeLists.txt')
-rw-r--r--sources/shiboken2/CMakeLists.txt41
1 files changed, 41 insertions, 0 deletions
diff --git a/sources/shiboken2/CMakeLists.txt b/sources/shiboken2/CMakeLists.txt
index 96d4ec5cc..ddba62df8 100644
--- a/sources/shiboken2/CMakeLists.txt
+++ b/sources/shiboken2/CMakeLists.txt
@@ -27,6 +27,47 @@ else()
find_package(PythonLibs 2.6)
endif()
+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 ("${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")
+if(MSVC)
+ set(CLANG_LIB_NAME "libclang")
+endif()
+
+find_library(CLANG_LIBRARY ${CLANG_LIB_NAME} HINTS ${CLANG_DIR}/lib)
+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} detected by ${CLANG_DIR_SOURCE}")
+
+set(CLANG_EXTRA_INCLUDES ${CLANG_DIR}/include)
+set(CLANG_EXTRA_LIBRARIES ${CLANG_LIBRARY})
+
## For debugging the PYTHON* variables
message("PYTHONLIBS_FOUND: " ${PYTHONLIBS_FOUND})
message("PYTHON_LIBRARIES: " ${PYTHON_LIBRARIES})