summaryrefslogtreecommitdiff
path: root/CMake
diff options
context:
space:
mode:
authorFeng, Boqun <boqun.feng@intel.com>2013-03-01 13:30:19 +0800
committerZhigang Gong <zhigang.gong@linux.intel.com>2013-04-10 14:51:30 +0800
commit02939d201352f5a5cf2b1335c7abcfbfee496d90 (patch)
treeebc0ebb579d1c800b624f13e6f498666ba31853d /CMake
parentaf5a1f00b47588a44f1d864d0b58458002b12e10 (diff)
backend: Add LLVM stable version support
support current llvm stable version 3.2 modify cmake file to check the version of llvm provided by system or configured by LLVM_INSTALL_DIR, and add a macro define in the format LLVM_<MAJOR><MINOR> according the version, this macro can be used for llvm version-specific code. Signed-off-by: Feng, Boqun <boqun.feng@intel.com> Reviewed-by: Homer Hsing <homer.xing@intel.com>
Diffstat (limited to 'CMake')
-rw-r--r--CMake/FindLLVM.cmake17
1 files changed, 14 insertions, 3 deletions
diff --git a/CMake/FindLLVM.cmake b/CMake/FindLLVM.cmake
index 391e2626..702c6282 100644
--- a/CMake/FindLLVM.cmake
+++ b/CMake/FindLLVM.cmake
@@ -6,12 +6,16 @@
# LLVM_LFLAGS - llvm linker flags
# LLVM_MODULE_LIBS - list of llvm libs for working with modules.
# LLVM_FOUND - True if llvm found.
-find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config llvm-config-32 llvm-config-3.0 DOC "llvm-config executable")
+if (LLVM_INSTALL_DIR)
+ find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config llvm-config-32 llvm-config-3.0 DOC "llvm-config executable" PATHS ${LLVM_INSTALL_DIR} NO_DEFAULT_PATH)
+else (LLVM_INSTALL_DIR)
+ find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config llvm-config-32 llvm-config-3.0 DOC "llvm-config executable")
+endif (LLVM_INSTALL_DIR)
if (LLVM_CONFIG_EXECUTABLE)
message(STATUS "LLVM llvm-config found at: ${LLVM_CONFIG_EXECUTABLE}")
else (LLVM_CONFIG_EXECUTABLE)
- message(FATAL_ERROR "Could NOT find LLVM executable")
+ message(FATAL_ERROR "Could NOT find LLVM executable, please add -DLLVM_INSTALL_DIR=/path/to/llvm-config/ in cmake command")
endif (LLVM_CONFIG_EXECUTABLE)
if (LLVM_FIND_VERSION_MAJOR AND LLVM_FIND_VERSION_MINOR)
@@ -22,7 +26,14 @@ if (LLVM_FIND_VERSION_MAJOR AND LLVM_FIND_VERSION_MINOR)
)
string(REGEX REPLACE "([0-9]*)\\.([0-9]*)[^0-9]*" "\\1\\2 " LLVM_VERSION_NODOT ${LLVM_VERSION})
if (LLVM_VERSION_NODOT VERSION_LESS LLVM_FIND_VERSION_NODOT)
- message(FATAL_ERROR "imcompatible LLVM version ${LLVM_VERSION_NODOT} required ${LLVM_FIND_VERSION}")
+ message(FATAL_ERROR "imcompatible LLVM version ${LLVM_VERSION} required ${LLVM_FIND_VERSION}")
+ else (LLVM_VERSION_NODOT VERSION_LESS LLVM_FIND_VERSION_NODOT)
+ if (LLVM_VERSION_NODOT VERSION_EQUAL LLVM_FIND_VERSION_NODOT)
+ message(STATUS "find stable LLVM version ${LLVM_VERSION}")
+ else (LLVM_VERSION_NODOT VERSION_EQUAL LLVM_FIND_VERSION_NODOT)
+ message(STATUS "find untable LLVM version ${LLVM_VERSION}")
+ endif (LLVM_VERSION_NODOT VERSION_EQUAL LLVM_FIND_VERSION_NODOT)
+ add_definitions("-DLLVM_${LLVM_VERSION_NODOT}")
endif (LLVM_VERSION_NODOT VERSION_LESS LLVM_FIND_VERSION_NODOT)
endif (LLVM_FIND_VERSION_MAJOR AND LLVM_FIND_VERSION_MINOR)