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:
Ivan Komissarov
2019-05-05 17:57:00 +02:00
parent 88c495976c
commit af622b0110
3 changed files with 11 additions and 2 deletions

View File

@@ -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);

View File

@@ -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())

View File

@@ -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";