2013-12-10 14:37:32 +01:00
|
|
|
isEmpty(LLVM_INSTALL_DIR):LLVM_INSTALL_DIR=$$(LLVM_INSTALL_DIR)
|
2014-01-21 14:57:00 +01:00
|
|
|
LLVM_INSTALL_DIR ~= s,\\\\,/,g
|
2013-12-10 14:37:32 +01:00
|
|
|
|
|
|
|
|
DEFINES += CLANG_COMPLETION
|
|
|
|
|
DEFINES += CLANG_HIGHLIGHTING
|
|
|
|
|
#DEFINES += CLANG_INDEXING
|
|
|
|
|
|
|
|
|
|
defineReplace(findLLVMConfig) {
|
|
|
|
|
LLVM_CONFIG_VARIANTS = \
|
|
|
|
|
llvm-config llvm-config-3.2 llvm-config-3.3 llvm-config-3.4 \
|
|
|
|
|
llvm-config-3.5 llvm-config-3.6 llvm-config-4.0 llvm-config-4.1
|
|
|
|
|
|
2014-01-03 13:37:16 +01:00
|
|
|
# Prefer llvm-config* from LLVM_INSTALL_DIR
|
|
|
|
|
!isEmpty(LLVM_INSTALL_DIR) {
|
2014-04-10 16:57:24 +02:00
|
|
|
for(variant, LLVM_CONFIG_VARIANTS) {
|
2014-01-03 13:37:16 +01:00
|
|
|
variant=$$LLVM_INSTALL_DIR/bin/$$variant
|
|
|
|
|
exists($$variant) {
|
|
|
|
|
return($$variant)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Find llvm-config* in PATH
|
2013-12-10 14:37:32 +01:00
|
|
|
ENV_PATH = $$(PATH)
|
|
|
|
|
win32 {
|
2014-04-11 17:06:01 +02:00
|
|
|
ENV_PATH = $$split(ENV_PATH, ;)
|
2013-12-10 14:37:32 +01:00
|
|
|
} else {
|
2014-04-11 17:06:01 +02:00
|
|
|
ENV_PATH = $$split(ENV_PATH, :)
|
2013-12-10 14:37:32 +01:00
|
|
|
}
|
2014-04-10 16:57:24 +02:00
|
|
|
for(variant, LLVM_CONFIG_VARIANTS) {
|
|
|
|
|
for(path, ENV_PATH) {
|
2014-01-03 13:37:16 +01:00
|
|
|
subvariant = $$path/$$variant
|
|
|
|
|
exists($$subvariant) {
|
|
|
|
|
return($$subvariant)
|
2013-12-10 14:37:32 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2014-01-03 13:37:16 +01:00
|
|
|
|
|
|
|
|
# Fallback
|
2013-12-10 14:37:32 +01:00
|
|
|
return(llvm-config)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
win32 {
|
|
|
|
|
LLVM_INCLUDEPATH = $$LLVM_INSTALL_DIR/include
|
2014-01-03 09:03:40 +01:00
|
|
|
exists ($${LLVM_INSTALL_DIR}/lib/clang.*) {
|
|
|
|
|
CLANG_LIB = clang
|
|
|
|
|
} else {
|
|
|
|
|
exists ($${LLVM_INSTALL_DIR}/lib/libclang.*) {
|
|
|
|
|
CLANG_LIB = libclang
|
|
|
|
|
} else {
|
|
|
|
|
error("Cannot find Clang shared library!")
|
|
|
|
|
}
|
|
|
|
|
}
|
2014-01-21 14:57:00 +01:00
|
|
|
LLVM_LIBDIR = $$LLVM_INSTALL_DIR/lib
|
2014-01-03 09:03:40 +01:00
|
|
|
LLVM_LIBS = \
|
|
|
|
|
-L$$LLVM_INSTALL_DIR/bin \
|
2014-01-21 14:57:00 +01:00
|
|
|
-L$$LLVM_LIBDIR \
|
2014-01-03 09:03:40 +01:00
|
|
|
-l$${CLANG_LIB}
|
2013-12-10 14:37:32 +01:00
|
|
|
LLVM_LIBS += -ladvapi32 -lshell32
|
2014-01-21 14:57:00 +01:00
|
|
|
LLVM_VERSION = 3.4
|
2013-12-10 14:37:32 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
unix {
|
|
|
|
|
LLVM_CONFIG = $$findLLVMConfig()
|
|
|
|
|
|
2014-01-21 14:57:00 +01:00
|
|
|
LLVM_VERSION = $$system($$LLVM_CONFIG --version)
|
|
|
|
|
LLVM_VERSION = $$replace(LLVM_VERSION, ^(\\d+\\.\\d+).*$, \\1)
|
2014-04-10 16:56:56 +02:00
|
|
|
message("... version $$LLVM_VERSION")
|
2014-01-21 14:57:00 +01:00
|
|
|
|
2013-12-10 14:37:32 +01:00
|
|
|
LLVM_INCLUDEPATH = $$system($$LLVM_CONFIG --includedir)
|
|
|
|
|
isEmpty(LLVM_INCLUDEPATH):LLVM_INCLUDEPATH=$$LLVM_INSTALL_DIR/include
|
|
|
|
|
LLVM_LIBDIR = $$system($$LLVM_CONFIG --libdir)
|
|
|
|
|
isEmpty(LLVM_LIBDIR):LLVM_LIBDIR=$$LLVM_INSTALL_DIR/lib
|
|
|
|
|
|
|
|
|
|
exists ($${LLVM_LIBDIR}/libclang.*) {
|
|
|
|
|
#message("LLVM was build with autotools")
|
|
|
|
|
CLANG_LIB = clang
|
|
|
|
|
} else {
|
|
|
|
|
exists ($${LLVM_LIBDIR}/liblibclang.*) {
|
|
|
|
|
#message("LLVM was build with CMake")
|
|
|
|
|
CLANG_LIB = libclang
|
|
|
|
|
} else {
|
|
|
|
|
exists ($${LLVM_INSTALL_DIR}/lib/libclang.*) {
|
|
|
|
|
#message("libclang placed separately from LLVM")
|
|
|
|
|
CLANG_LIB = clang
|
|
|
|
|
LLVM_LIBDIR = $${LLVM_INSTALL_DIR}/lib
|
|
|
|
|
LLVM_INCLUDEPATH=$${LLVM_INSTALL_DIR}/include
|
|
|
|
|
} else {
|
|
|
|
|
error("Cannot find Clang shared library!")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
LLVM_LIBS = -L$${LLVM_LIBDIR}
|
|
|
|
|
LLVM_LIBS += -l$${CLANG_LIB}
|
|
|
|
|
}
|
2014-01-21 14:57:00 +01:00
|
|
|
|
|
|
|
|
DEFINES += CLANG_VERSION=\\\"$${LLVM_VERSION}\\\"
|
|
|
|
|
DEFINES += "\"CLANG_RESOURCE_DIR=\\\"$${LLVM_LIBDIR}/clang/$${LLVM_VERSION}/include\\\"\""
|