diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-09-26 11:37:47 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2017-11-03 10:31:26 +0000 |
commit | 13874d8c67a4d4b2cca08fb2f4c96173a6c0c512 (patch) | |
tree | c7a417a12a4757eacfab7c044e4fd8ae3bf4fa06 /sources/shiboken2/CMakeLists.txt | |
parent | 25f899e276c00b8d7f334819d6cd7927ed67093a (diff) |
Use latest version of llvm-config
When falling back to llvm-config, try to determine
the most recent version by using a glob pattern
to find the executable (llvm-config-3.8/3.9...)
and checking the version it reports.
Change-Id: I13b5aff09a6a2f8b95def0041176c1487749be1a
Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken2/CMakeLists.txt')
-rw-r--r-- | sources/shiboken2/CMakeLists.txt | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/sources/shiboken2/CMakeLists.txt b/sources/shiboken2/CMakeLists.txt index 06b951767..288de8117 100644 --- a/sources/shiboken2/CMakeLists.txt +++ b/sources/shiboken2/CMakeLists.txt @@ -42,6 +42,22 @@ if (NOT PYTHON_ARCH) get_python_arch() endif() +macro(get_llvm_config) + execute_process( + COMMAND ${PYTHON_EXECUTABLE} -c "if True: + import os + import sys + sys.path.append(os.path.realpath(os.path.join('${CMAKE_CURRENT_LIST_DIR}', '..', '..'))) + from utils import findLlvmConfig + llvmConfig = findLlvmConfig() + if llvmConfig: + print(llvmConfig) + " + OUTPUT_VARIABLE LLVM_CONFIG + OUTPUT_STRIP_TRAILING_WHITESPACE) + message("LLMV_CONFIG: " ${LLVM_CONFIG}) +endmacro() + set(CLANG_DIR "") set(CLANG_DIR_SOURCE "") @@ -54,12 +70,15 @@ elseif (DEFINED ENV{CLANG_INSTALL_DIR}) string(REPLACE "_ARCH_" "${PYTHON_ARCH}" CLANG_DIR "${CLANG_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 LLVM_CONFIG) + get_llvm_config() + endif() + set(CLANG_DIR_SOURCE "${LLVM_CONFIG}") + EXEC_PROGRAM("${LLVM_CONFIG}" ARGS "--prefix" OUTPUT_VARIABLE CLANG_DIR) if (NOT "${CLANG_DIR}" STREQUAL "") - EXEC_PROGRAM("llvm-config" ARGS "--version" OUTPUT_VARIABLE CLANG_VERSION) + 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}).") + message(FATAL_ERROR "LLVM version 3.9 is required (${LLVM_CONFIG} detected ${CLANG_VERSION} at ${CLANG_DIR}).") endif() endif() endif() |