forked from qt-creator/qt-creator
Add some sanity to the clang detection code for qmake build
llvm-config can usually be found in PATH on systems which have standard paths at all. There is no need to specify LLVM_INSTALL_DIR then. Furthermore, llvm-config has an option --bindir which will tell us the directory where clang can be found (if installed). No need to apply strange heuristics based on LLVM_INSTALL_DIR. Finally, we can check within each .pro file for the conditions to be met using qmake's require() function. This way we don't need to fiddle with LLVM_INSTALL_DIR in unrelated places. Change-Id: I1a6ab092b06de40dfbfa4a9e7053451360fd24c8 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
@@ -31,7 +31,7 @@ The installed toolchains have to match the one Qt was compiled with.
|
|||||||
|
|
||||||
You can build Qt Creator with
|
You can build Qt Creator with
|
||||||
|
|
||||||
# Optional, needed for the Clang Code Model:
|
# Optional, needed for the Clang Code Model if llvm-config is not in PATH:
|
||||||
export LLVM_INSTALL_DIR=/path/to/llvm (or "set" on Windows)
|
export LLVM_INSTALL_DIR=/path/to/llvm (or "set" on Windows)
|
||||||
# Optional, needed to let the QbsProjectManager plugin use system Qbs:
|
# Optional, needed to let the QbsProjectManager plugin use system Qbs:
|
||||||
export QBS_INSTALL_DIR=/path/to/qbs
|
export QBS_INSTALL_DIR=/path/to/qbs
|
||||||
@@ -129,7 +129,7 @@ For detailed information on the supported compilers, see
|
|||||||
* Install LLVM/Clang - see the section "Get LLVM/Clang for the Clang
|
* Install LLVM/Clang - see the section "Get LLVM/Clang for the Clang
|
||||||
Code Model".
|
Code Model".
|
||||||
* Set the environment variable LLVM_INSTALL_DIR to the LLVM/Clang
|
* Set the environment variable LLVM_INSTALL_DIR to the LLVM/Clang
|
||||||
installation directory.
|
installation directory if llvm-config is not in PATH.
|
||||||
* When you launch Qt Creator, activate the Clang Code Model plugin as
|
* When you launch Qt Creator, activate the Clang Code Model plugin as
|
||||||
described in doc/src/editors/creator-clang-codemodel.qdoc.
|
described in doc/src/editors/creator-clang-codemodel.qdoc.
|
||||||
|
|
||||||
|
@@ -3,6 +3,8 @@ include(../../shared/clang/clang_installation.pri)
|
|||||||
|
|
||||||
include(../../shared/clang/clang_defines.pri)
|
include(../../shared/clang/clang_defines.pri)
|
||||||
|
|
||||||
|
requires(!isEmpty(LLVM_VERSION))
|
||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
clangactivationsequencecontextprocessor.cpp \
|
clangactivationsequencecontextprocessor.cpp \
|
||||||
clangactivationsequenceprocessor.cpp \
|
clangactivationsequenceprocessor.cpp \
|
||||||
|
@@ -96,21 +96,15 @@ exists(../shared/qbs/qbs.pro)|!isEmpty(QBS_INSTALL_DIR): \
|
|||||||
SUBDIRS += \
|
SUBDIRS += \
|
||||||
qbsprojectmanager
|
qbsprojectmanager
|
||||||
|
|
||||||
# prefer qmake variable set on command line over env var
|
SUBDIRS += \
|
||||||
isEmpty(LLVM_INSTALL_DIR):LLVM_INSTALL_DIR=$$(LLVM_INSTALL_DIR)
|
clangcodemodel
|
||||||
exists($$LLVM_INSTALL_DIR) {
|
|
||||||
SUBDIRS += clangcodemodel
|
|
||||||
|
|
||||||
QTC_NO_CLANG_LIBTOOLING=$$(QTC_NO_CLANG_LIBTOOLING)
|
QTC_NO_CLANG_LIBTOOLING=$$(QTC_NO_CLANG_LIBTOOLING)
|
||||||
isEmpty(QTC_NO_CLANG_LIBTOOLING) {
|
isEmpty(QTC_NO_CLANG_LIBTOOLING) {
|
||||||
SUBDIRS += clangrefactoring
|
SUBDIRS += clangrefactoring
|
||||||
SUBDIRS += clangpchmanager
|
SUBDIRS += clangpchmanager
|
||||||
} else {
|
|
||||||
warning("Building the Clang refactoring and the pch manager plugins are disabled.")
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
warning("Set LLVM_INSTALL_DIR to build the Clang Code Model. " \
|
warning("Building the Clang refactoring and the pch manager plugins are disabled.")
|
||||||
"For details, see doc/src/editors/creator-clang-codemodel.qdoc.")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
isEmpty(IDE_PACKAGE_MODE) {
|
isEmpty(IDE_PACKAGE_MODE) {
|
||||||
|
@@ -1,7 +1,18 @@
|
|||||||
isEmpty(LLVM_INSTALL_DIR):LLVM_INSTALL_DIR=$$(LLVM_INSTALL_DIR)
|
isEmpty(LLVM_INSTALL_DIR):LLVM_INSTALL_DIR=$$(LLVM_INSTALL_DIR)
|
||||||
LLVM_INSTALL_DIR = $$clean_path($$LLVM_INSTALL_DIR)
|
LLVM_INSTALL_DIR = $$clean_path($$LLVM_INSTALL_DIR)
|
||||||
isEmpty(LLVM_INSTALL_DIR): error("No LLVM_INSTALL_DIR provided")
|
|
||||||
!exists($$LLVM_INSTALL_DIR): error("LLVM_INSTALL_DIR does not exist: $$LLVM_INSTALL_DIR")
|
!isEmpty(LLVM_INSTALL_DIR):!exists($$LLVM_INSTALL_DIR) {
|
||||||
|
error("Explicitly given LLVM_INSTALL_DIR does not exist: $$LLVM_INSTALL_DIR")
|
||||||
|
}
|
||||||
|
|
||||||
|
defineReplace(llvmWarningOrError) {
|
||||||
|
warningText = $$1
|
||||||
|
errorText = $$2
|
||||||
|
isEmpty(errorText): errorText = $$warningText
|
||||||
|
isEmpty(LLVM_INSTALL_DIR): warning($$warningText)
|
||||||
|
else: error($$errorText)
|
||||||
|
return(false)
|
||||||
|
}
|
||||||
|
|
||||||
# Expected input: "3.9.1", "5.0.0svn", "5.0.1git-81029f14223"
|
# Expected input: "3.9.1", "5.0.0svn", "5.0.1git-81029f14223"
|
||||||
defineReplace(extractVersion) { return($$replace(1, ^(\\d+\\.\\d+\\.\\d+).*$, \\1)) }
|
defineReplace(extractVersion) { return($$replace(1, ^(\\d+\\.\\d+\\.\\d+).*$, \\1)) }
|
||||||
@@ -69,20 +80,6 @@ defineReplace(findClangLibInLibDir) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
defineReplace(findClangOnWindows) {
|
|
||||||
FILE_EXTS = a dll
|
|
||||||
msvc: FILE_EXTS = lib dll
|
|
||||||
for (suffix, $$list(lib bin)) {
|
|
||||||
for (libname, $$list(clang libclang)) {
|
|
||||||
for (ext, FILE_EXTS) {
|
|
||||||
exists("$${LLVM_INSTALL_DIR}/$${suffix}/$${libname}.$${ext}") {
|
|
||||||
return($${LLVM_INSTALL_DIR}/$${suffix}/)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CLANGTOOLING_LIBS=-lclangTooling -lclangIndex -lclangFrontend -lclangParse -lclangSerialization \
|
CLANGTOOLING_LIBS=-lclangTooling -lclangIndex -lclangFrontend -lclangParse -lclangSerialization \
|
||||||
-lclangSema -lclangEdit -lclangAnalysis -lclangDriver -lclangDynamicASTMatchers \
|
-lclangSema -lclangEdit -lclangAnalysis -lclangDriver -lclangDynamicASTMatchers \
|
||||||
-lclangASTMatchers -lclangToolingCore -lclangAST -lclangLex -lclangBasic
|
-lclangASTMatchers -lclangToolingCore -lclangAST -lclangLex -lclangBasic
|
||||||
@@ -91,33 +88,58 @@ win32:CLANGTOOLING_LIBS += -lversion
|
|||||||
BIN_EXTENSION =
|
BIN_EXTENSION =
|
||||||
win32: BIN_EXTENSION = .exe
|
win32: BIN_EXTENSION = .exe
|
||||||
|
|
||||||
llvm_config = $$system_quote($$LLVM_INSTALL_DIR/bin/llvm-config)
|
isEmpty(LLVM_INSTALL_DIR) {
|
||||||
requires(exists($$llvm_config$$BIN_EXTENSION))
|
llvm_config = llvm-config
|
||||||
#message("llvm-config found, querying it for paths and version")
|
} else {
|
||||||
LLVM_LIBDIR = $$quote($$system($$llvm_config --libdir, lines))
|
llvm_config = $$system_quote($$LLVM_INSTALL_DIR/bin/llvm-config)
|
||||||
LLVM_INCLUDEPATH = $$system($$llvm_config --includedir, lines)
|
requires(exists($$llvm_config$$BIN_EXTENSION))
|
||||||
|
}
|
||||||
|
|
||||||
output = $$system($$llvm_config --version, lines)
|
output = $$system($$llvm_config --version, lines)
|
||||||
LLVM_VERSION = $$extractVersion($$output)
|
LLVM_VERSION = $$extractVersion($$output)
|
||||||
msvc {
|
isEmpty(LLVM_VERSION) {
|
||||||
LLVM_STATIC_LIBS_STRING += $$system($$llvm_config --libnames, lines)
|
$$llvmWarningOrError(\
|
||||||
|
"Cannot determine clang version. Set LLVM_INSTALL_DIR to build the Clang Code Model",\
|
||||||
|
"LLVM_INSTALL_DIR does not contain a valid llvm-config, candidate: $$llvm_config")
|
||||||
|
} else:!versionIsAtLeast($$LLVM_VERSION, 5, 0, 0): {
|
||||||
|
# CLANG-UPGRADE-CHECK: Adapt minimum version numbers.
|
||||||
|
$$llvmWarningOrError(\
|
||||||
|
"LLVM/Clang version >= 5.0.0 required, version provided: $$LLVM_VERSION")
|
||||||
|
LLVM_VERSION =
|
||||||
} else {
|
} else {
|
||||||
|
LLVM_LIBDIR = $$quote($$system($$llvm_config --libdir, lines))
|
||||||
|
LLVM_BINDIR = $$quote($$system($$llvm_config --bindir, lines))
|
||||||
|
LLVM_INCLUDEPATH = $$system($$llvm_config --includedir, lines)
|
||||||
|
msvc {
|
||||||
|
LLVM_STATIC_LIBS_STRING += $$system($$llvm_config --libnames, lines)
|
||||||
|
} else {
|
||||||
LLVM_STATIC_LIBS_STRING += $$system($$llvm_config --libs, lines)
|
LLVM_STATIC_LIBS_STRING += $$system($$llvm_config --libs, lines)
|
||||||
}
|
}
|
||||||
LLVM_STATIC_LIBS_STRING += $$system($$llvm_config --system-libs, lines)
|
LLVM_STATIC_LIBS_STRING += $$system($$llvm_config --system-libs, lines)
|
||||||
|
|
||||||
LLVM_STATIC_LIBS = $$split(LLVM_STATIC_LIBS_STRING, " ")
|
LLVM_STATIC_LIBS = $$split(LLVM_STATIC_LIBS_STRING, " ")
|
||||||
|
|
||||||
LIBCLANG_MAIN_HEADER = $$LLVM_INCLUDEPATH/clang-c/Index.h
|
LIBCLANG_MAIN_HEADER = $$LLVM_INCLUDEPATH/clang-c/Index.h
|
||||||
!exists($$LIBCLANG_MAIN_HEADER): error("Cannot find libclang's main header file, candidate: $$LIBCLANG_MAIN_HEADER")
|
!exists($$LIBCLANG_MAIN_HEADER) {
|
||||||
!exists($$LLVM_LIBDIR): error("Cannot detect lib dir for clang, candidate: $$LLVM_LIBDIR")
|
$$llvmWarningOrError(\
|
||||||
CLANG_LIB = $$findClangLibInLibDir($$LLVM_LIBDIR)
|
"Cannot find libclang's main header file, candidate: $$LIBCLANG_MAIN_HEADER")
|
||||||
isEmpty(CLANG_LIB): error("Cannot find Clang shared library in $$LLVM_LIBDIR")
|
}
|
||||||
|
!exists($$LLVM_LIBDIR) {
|
||||||
|
$$llvmWarningOrError("Cannot detect lib dir for clang, candidate: $$LLVM_LIBDIR")
|
||||||
|
}
|
||||||
|
!exists($$LLVM_BINDIR) {
|
||||||
|
$$llvmWarningOrError("Cannot detect bin dir for clang, candidate: $$LLVM_BINDIR")
|
||||||
|
}
|
||||||
|
CLANG_LIB = $$findClangLibInLibDir($$LLVM_LIBDIR)
|
||||||
|
isEmpty(CLANG_LIB) {
|
||||||
|
$$llvmWarningOrError("Cannot find Clang shared library in $$LLVM_LIBDIR")
|
||||||
|
}
|
||||||
|
|
||||||
!contains(QMAKE_DEFAULT_LIBDIRS, $$LLVM_LIBDIR): LIBCLANG_LIBS = -L$${LLVM_LIBDIR}
|
!contains(QMAKE_DEFAULT_LIBDIRS, $$LLVM_LIBDIR): LIBCLANG_LIBS = -L$${LLVM_LIBDIR}
|
||||||
LIBCLANG_LIBS += $${CLANG_LIB}
|
LIBCLANG_LIBS += $${CLANG_LIB}
|
||||||
|
|
||||||
QTC_NO_CLANG_LIBTOOLING=$$(QTC_NO_CLANG_LIBTOOLING)
|
QTC_NO_CLANG_LIBTOOLING=$$(QTC_NO_CLANG_LIBTOOLING)
|
||||||
isEmpty(QTC_NO_CLANG_LIBTOOLING) {
|
isEmpty(QTC_NO_CLANG_LIBTOOLING) {
|
||||||
QTC_FORCE_CLANG_LIBTOOLING = $$(QTC_FORCE_CLANG_LIBTOOLING)
|
QTC_FORCE_CLANG_LIBTOOLING = $$(QTC_FORCE_CLANG_LIBTOOLING)
|
||||||
versionIsEqual($$LLVM_VERSION, 5, 0)|!isEmpty(QTC_FORCE_CLANG_LIBTOOLING) {
|
versionIsEqual($$LLVM_VERSION, 5, 0)|!isEmpty(QTC_FORCE_CLANG_LIBTOOLING) {
|
||||||
!contains(QMAKE_DEFAULT_LIBDIRS, $$LLVM_LIBDIR): LIBTOOLING_LIBS = -L$${LLVM_LIBDIR}
|
!contains(QMAKE_DEFAULT_LIBDIRS, $$LLVM_LIBDIR): LIBTOOLING_LIBS = -L$${LLVM_LIBDIR}
|
||||||
@@ -126,30 +148,27 @@ isEmpty(QTC_NO_CLANG_LIBTOOLING) {
|
|||||||
} else {
|
} else {
|
||||||
warning("Clang LibTooling is disabled because only version 5.0 is supported.")
|
warning("Clang LibTooling is disabled because only version 5.0 is supported.")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
warning("Clang LibTooling is disabled.")
|
warning("Clang LibTooling is disabled.")
|
||||||
|
}
|
||||||
|
|
||||||
|
# Remove unwanted flags. It is a workaround for linking.
|
||||||
|
# It is not intended for cross compiler linking.
|
||||||
|
LLVM_CXXFLAGS = $$system($$llvm_config --cxxflags, lines)
|
||||||
|
LLVM_CXXFLAGS ~= s,-fno-exceptions,
|
||||||
|
LLVM_CXXFLAGS ~= s,-std=c++11,
|
||||||
|
LLVM_CXXFLAGS ~= s,-std=c++0x,
|
||||||
|
LLVM_CXXFLAGS ~= s,-O\S*,
|
||||||
|
LLVM_CXXFLAGS ~= s,/O\S*,
|
||||||
|
LLVM_CXXFLAGS ~= s,/W4,
|
||||||
|
LLVM_CXXFLAGS ~= s,/EH\S*,
|
||||||
|
LLVM_CXXFLAGS ~= s,-Werror=date-time,
|
||||||
|
LLVM_CXXFLAGS ~= s,-Wcovered-switch-default,
|
||||||
|
LLVM_CXXFLAGS ~= s,-fPIC,
|
||||||
|
LLVM_CXXFLAGS ~= s,-pedantic,
|
||||||
|
LLVM_CXXFLAGS ~= s,-Wstring-conversion,
|
||||||
|
# split-dwarf needs objcopy which does not work via icecc out-of-the-box
|
||||||
|
LLVM_CXXFLAGS ~= s,-gsplit-dwarf,
|
||||||
|
|
||||||
|
LLVM_IS_COMPILED_WITH_RTTI = $$system($$llvm_config --has-rtti, lines)
|
||||||
}
|
}
|
||||||
|
|
||||||
isEmpty(LLVM_VERSION): error("Cannot determine clang version at $$LLVM_INSTALL_DIR")
|
|
||||||
!versionIsAtLeast($$LLVM_VERSION, 5, 0, 0): { # CLANG-UPGRADE-CHECK: Adapt minimum version numbers.
|
|
||||||
error("LLVM/Clang version >= 5.0.0 required, version provided: $$LLVM_VERSION")
|
|
||||||
}
|
|
||||||
|
|
||||||
# Remove unwanted flags. It is a workaround for linking. It is not intended for cross compiler linking.
|
|
||||||
LLVM_CXXFLAGS = $$system($$llvm_config --cxxflags, lines)
|
|
||||||
LLVM_CXXFLAGS ~= s,-fno-exceptions,
|
|
||||||
LLVM_CXXFLAGS ~= s,-std=c++11,
|
|
||||||
LLVM_CXXFLAGS ~= s,-std=c++0x,
|
|
||||||
LLVM_CXXFLAGS ~= s,-O\S*,
|
|
||||||
LLVM_CXXFLAGS ~= s,/O\S*,
|
|
||||||
LLVM_CXXFLAGS ~= s,/W4,
|
|
||||||
LLVM_CXXFLAGS ~= s,/EH\S*,
|
|
||||||
LLVM_CXXFLAGS ~= s,-Werror=date-time,
|
|
||||||
LLVM_CXXFLAGS ~= s,-Wcovered-switch-default,
|
|
||||||
LLVM_CXXFLAGS ~= s,-fPIC,
|
|
||||||
LLVM_CXXFLAGS ~= s,-pedantic,
|
|
||||||
LLVM_CXXFLAGS ~= s,-Wstring-conversion,
|
|
||||||
# split-dwarf needs objcopy which does not work via icecc out-of-the-box
|
|
||||||
LLVM_CXXFLAGS ~= s,-gsplit-dwarf,
|
|
||||||
|
|
||||||
LLVM_IS_COMPILED_WITH_RTTI = $$system($$llvm_config --has-rtti, lines)
|
|
||||||
|
@@ -6,6 +6,8 @@ include(../../qtcreatortool.pri)
|
|||||||
include(../../shared/clang/clang_installation.pri)
|
include(../../shared/clang/clang_installation.pri)
|
||||||
include(source/clangbackendclangipc-source.pri)
|
include(source/clangbackendclangipc-source.pri)
|
||||||
|
|
||||||
|
requires(!isEmpty(LLVM_VERSION))
|
||||||
|
|
||||||
QT += core network
|
QT += core network
|
||||||
QT -= gui
|
QT -= gui
|
||||||
|
|
||||||
|
@@ -33,4 +33,4 @@ unix {
|
|||||||
!disable_external_rpath: QMAKE_LFLAGS += -Wl,-rpath,$$shell_quote($${LLVM_LIBDIR})
|
!disable_external_rpath: QMAKE_LFLAGS += -Wl,-rpath,$$shell_quote($${LLVM_LIBDIR})
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFINES += CLANG_COMPILER_PATH=\"R\\\"xxx($$LLVM_INSTALL_DIR/bin/clang)xxx\\\"\"
|
DEFINES += CLANG_COMPILER_PATH=\"R\\\"xxx($${LLVM_BINDIR}/clang)xxx\\\"\"
|
||||||
|
@@ -20,17 +20,14 @@ mac {
|
|||||||
SUBDIRS += iostool
|
SUBDIRS += iostool
|
||||||
}
|
}
|
||||||
|
|
||||||
isEmpty(LLVM_INSTALL_DIR):LLVM_INSTALL_DIR=$$(LLVM_INSTALL_DIR)
|
SUBDIRS += clangbackend
|
||||||
exists($$LLVM_INSTALL_DIR) {
|
|
||||||
SUBDIRS += clangbackend
|
|
||||||
|
|
||||||
QTC_NO_CLANG_LIBTOOLING=$$(QTC_NO_CLANG_LIBTOOLING)
|
QTC_NO_CLANG_LIBTOOLING=$$(QTC_NO_CLANG_LIBTOOLING)
|
||||||
isEmpty(QTC_NO_CLANG_LIBTOOLING) {
|
isEmpty(QTC_NO_CLANG_LIBTOOLING) {
|
||||||
SUBDIRS += clangrefactoringbackend
|
SUBDIRS += clangrefactoringbackend
|
||||||
SUBDIRS += clangpchmanagerbackend
|
SUBDIRS += clangpchmanagerbackend
|
||||||
} else {
|
} else {
|
||||||
warning("Building the Clang refactoring back end and the pch manager plugins are disabled.")
|
warning("Building the Clang refactoring back end and the pch manager plugins are disabled.")
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
isEmpty(BUILD_CPLUSPLUS_TOOLS):BUILD_CPLUSPLUS_TOOLS=$$(BUILD_CPLUSPLUS_TOOLS)
|
isEmpty(BUILD_CPLUSPLUS_TOOLS):BUILD_CPLUSPLUS_TOOLS=$$(BUILD_CPLUSPLUS_TOOLS)
|
||||||
|
@@ -1,4 +1,2 @@
|
|||||||
TEMPLATE=subdirs
|
TEMPLATE=subdirs
|
||||||
SUBDIRS += auto manual tools
|
SUBDIRS += auto manual tools unit
|
||||||
isEmpty(LLVM_INSTALL_DIR):LLVM_INSTALL_DIR=$$(LLVM_INSTALL_DIR)
|
|
||||||
exists($$LLVM_INSTALL_DIR):SUBDIRS += unit
|
|
||||||
|
@@ -1,27 +1,26 @@
|
|||||||
isEmpty(LLVM_INSTALL_DIR):LLVM_INSTALL_DIR=$$(LLVM_INSTALL_DIR)
|
|
||||||
!isEmpty(LLVM_INSTALL_DIR) {
|
|
||||||
include(../../../src/shared/clang/clang_installation.pri)
|
include(../../../src/shared/clang/clang_installation.pri)
|
||||||
requires(!isEmpty(LIBCLANG_LIBS))
|
!isEmpty(LLVM_VERSION) {
|
||||||
equals(LLVM_IS_COMPILED_WITH_RTTI, "NO") : message("LLVM needs to be compiled with RTTI!")
|
requires(!isEmpty(LIBCLANG_LIBS))
|
||||||
requires(equals(LLVM_IS_COMPILED_WITH_RTTI, "YES"))
|
equals(LLVM_IS_COMPILED_WITH_RTTI, "NO") : message("LLVM needs to be compiled with RTTI!")
|
||||||
|
requires(equals(LLVM_IS_COMPILED_WITH_RTTI, "YES"))
|
||||||
|
|
||||||
DEFINES += CLANG_UNIT_TESTS
|
DEFINES += CLANG_UNIT_TESTS
|
||||||
INCLUDEPATH += $$LLVM_INCLUDEPATH
|
INCLUDEPATH += $$LLVM_INCLUDEPATH
|
||||||
win32 {
|
win32 {
|
||||||
LIBS += -lVersion
|
LIBS += -lVersion
|
||||||
|
|
||||||
# set run path for clang.dll dependency
|
# set run path for clang.dll dependency
|
||||||
bin_path = $$LLVM_INSTALL_DIR/bin
|
bin_path = $$LLVM_BINDIR
|
||||||
bin_path ~= s,/,\\,g
|
bin_path ~= s,/,\\,g
|
||||||
# the below gets added to later by testcase.prf
|
# the below gets added to later by testcase.prf
|
||||||
check.commands = cd . & set PATH=$$bin_path;%PATH%& cmd /c
|
check.commands = cd . & set PATH=$$bin_path;%PATH%& cmd /c
|
||||||
|
}
|
||||||
|
|
||||||
|
LIBS += $$LIBTOOLING_LIBS $$LIBCLANG_LIBS
|
||||||
|
QMAKE_RPATHDIR += $$LLVM_LIBDIR
|
||||||
|
|
||||||
|
LLVM_CXXFLAGS ~= s,-g\d?,
|
||||||
|
QMAKE_CXXFLAGS += $$LLVM_CXXFLAGS
|
||||||
|
|
||||||
|
DEFINES += CLANG_COMPILER_PATH=\"R\\\"xxx($$LLVM_BINDIR/clang)xxx\\\"\"
|
||||||
}
|
}
|
||||||
|
|
||||||
LIBS += $$LIBTOOLING_LIBS $$LIBCLANG_LIBS
|
|
||||||
QMAKE_RPATHDIR += $$LLVM_LIBDIR
|
|
||||||
|
|
||||||
LLVM_CXXFLAGS ~= s,-g\d?,
|
|
||||||
QMAKE_CXXFLAGS += $$LLVM_CXXFLAGS
|
|
||||||
}
|
|
||||||
|
|
||||||
DEFINES += CLANG_COMPILER_PATH=\"R\\\"xxx($$LLVM_INSTALL_DIR/bin/clang)xxx\\\"\"
|
|
||||||
|
@@ -14,7 +14,7 @@ include($$PWD/../../../src/plugins/clangrefactoring/clangrefactoring-source.pri)
|
|||||||
include($$PWD/../../../src/plugins/clangpchmanager/clangpchmanager-source.pri)
|
include($$PWD/../../../src/plugins/clangpchmanager/clangpchmanager-source.pri)
|
||||||
include($$PWD/../../../src/plugins/cpptools/cpptoolsunittestfiles.pri)
|
include($$PWD/../../../src/plugins/cpptools/cpptoolsunittestfiles.pri)
|
||||||
include(cplusplus.pri)
|
include(cplusplus.pri)
|
||||||
!isEmpty(LLVM_INSTALL_DIR) {
|
!isEmpty(LLVM_VERSION) {
|
||||||
include($$PWD/../../../src/shared/clang/clang_defines.pri)
|
include($$PWD/../../../src/shared/clang/clang_defines.pri)
|
||||||
include($$PWD/../../../src/tools/clangbackend/source/clangbackendclangipc-source.pri)
|
include($$PWD/../../../src/tools/clangbackend/source/clangbackendclangipc-source.pri)
|
||||||
include($$PWD/../../../src/plugins/clangcodemodel/clangcodemodelunittestfiles.pri)
|
include($$PWD/../../../src/plugins/clangcodemodel/clangcodemodelunittestfiles.pri)
|
||||||
|
Reference in New Issue
Block a user