forked from qt-creator/qt-creator
qbs: add support for the clang-cl compiler
Task-nubmer: QBS-1316 Change-Id: I10d6ec2f425a990191aaf0974782c7e02d70bb93 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -176,7 +176,7 @@ protected:
|
|||||||
QString m_varsBatArg; // Argument
|
QString m_varsBatArg; // Argument
|
||||||
};
|
};
|
||||||
|
|
||||||
class ClangClToolChain : public MsvcToolChain
|
class PROJECTEXPLORER_EXPORT ClangClToolChain : public MsvcToolChain
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ClangClToolChain(const QString &name, const QString &llvmDir, Detection d);
|
ClangClToolChain(const QString &name, const QString &llvmDir, Detection d);
|
||||||
|
@@ -36,6 +36,7 @@
|
|||||||
#include <projectexplorer/kitinformation.h>
|
#include <projectexplorer/kitinformation.h>
|
||||||
#include <projectexplorer/toolchain.h>
|
#include <projectexplorer/toolchain.h>
|
||||||
#include <projectexplorer/projectexplorerconstants.h>
|
#include <projectexplorer/projectexplorerconstants.h>
|
||||||
|
#include <projectexplorer/msvctoolchain.h>
|
||||||
|
|
||||||
#include <utils/hostosinfo.h>
|
#include <utils/hostosinfo.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
@@ -133,6 +134,8 @@ static QStringList toolchainList(const ProjectExplorer::ToolChain *tc)
|
|||||||
list << QLatin1String("gcc"); // TODO: Detect llvm-gcc
|
list << QLatin1String("gcc"); // TODO: Detect llvm-gcc
|
||||||
} else if (tc->typeId() == ProjectExplorer::Constants::MINGW_TOOLCHAIN_TYPEID) {
|
} else if (tc->typeId() == ProjectExplorer::Constants::MINGW_TOOLCHAIN_TYPEID) {
|
||||||
list << QLatin1String("mingw") << QLatin1String("gcc");
|
list << QLatin1String("mingw") << QLatin1String("gcc");
|
||||||
|
} else if (tc->typeId() == ProjectExplorer::Constants::CLANG_CL_TOOLCHAIN_TYPEID) {
|
||||||
|
list << QLatin1String("clang-cl") << QLatin1String("msvc");
|
||||||
} else if (tc->typeId() == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID) {
|
} else if (tc->typeId() == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID) {
|
||||||
list << QLatin1String("msvc");
|
list << QLatin1String("msvc");
|
||||||
} else if (tc->typeId() == BareMetal::Constants::IAREW_TOOLCHAIN_TYPEID) {
|
} else if (tc->typeId() == BareMetal::Constants::IAREW_TOOLCHAIN_TYPEID) {
|
||||||
@@ -320,7 +323,12 @@ QVariantMap DefaultPropertyProvider::autoGeneratedProperties(const ProjectExplor
|
|||||||
if (!mainToolchainPrefix.isEmpty())
|
if (!mainToolchainPrefix.isEmpty())
|
||||||
data.insert(QLatin1String(CPP_TOOLCHAINPREFIX), mainToolchainPrefix);
|
data.insert(QLatin1String(CPP_TOOLCHAINPREFIX), mainToolchainPrefix);
|
||||||
|
|
||||||
if (toolchain.contains(QLatin1String("msvc"))) {
|
if (toolchain.contains(QLatin1String("clang-cl"))) {
|
||||||
|
data.insert(QLatin1String(CPP_COMPILERNAME), mainCompilerName);
|
||||||
|
const auto clangClToolchain =
|
||||||
|
static_cast<ProjectExplorer::Internal::ClangClToolChain *>(mainTc);
|
||||||
|
data.insert(QLatin1String(CPP_VCVARSALLPATH), clangClToolchain->varsBat());
|
||||||
|
} else if (toolchain.contains(QLatin1String("msvc"))) {
|
||||||
data.insert(QLatin1String(CPP_COMPILERNAME), mainCompilerName);
|
data.insert(QLatin1String(CPP_COMPILERNAME), mainCompilerName);
|
||||||
} else {
|
} else {
|
||||||
if (!mainCompilerName.isEmpty())
|
if (!mainCompilerName.isEmpty())
|
||||||
|
@@ -88,6 +88,7 @@ const char CPP_CCOMPILERNAME[] = "cpp.cCompilerName";
|
|||||||
const char CPP_CXXCOMPILERNAME[] = "cpp.cxxCompilerName";
|
const char CPP_CXXCOMPILERNAME[] = "cpp.cxxCompilerName";
|
||||||
const char CPP_PLATFORMCOMMONCOMPILERFLAGS[] = "cpp.platformCommonCompilerFlags";
|
const char CPP_PLATFORMCOMMONCOMPILERFLAGS[] = "cpp.platformCommonCompilerFlags";
|
||||||
const char CPP_PLATFORMLINKERFLAGS[] = "cpp.platformLinkerFlags";
|
const char CPP_PLATFORMLINKERFLAGS[] = "cpp.platformLinkerFlags";
|
||||||
|
const char CPP_VCVARSALLPATH[] = "cpp.vcvarsallPath";
|
||||||
const char XCODE_DEVELOPERPATH[] = "xcode.developerPath";
|
const char XCODE_DEVELOPERPATH[] = "xcode.developerPath";
|
||||||
const char XCODE_SDK[] = "xcode.sdk";
|
const char XCODE_SDK[] = "xcode.sdk";
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user