diff --git a/src/plugins/projectexplorer/msvctoolchain.h b/src/plugins/projectexplorer/msvctoolchain.h index 608a1743c8b..310893c1831 100644 --- a/src/plugins/projectexplorer/msvctoolchain.h +++ b/src/plugins/projectexplorer/msvctoolchain.h @@ -176,7 +176,7 @@ protected: QString m_varsBatArg; // Argument }; -class ClangClToolChain : public MsvcToolChain +class PROJECTEXPLORER_EXPORT ClangClToolChain : public MsvcToolChain { public: ClangClToolChain(const QString &name, const QString &llvmDir, Detection d); diff --git a/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp b/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp index 189125a648e..07ac4ade388 100644 --- a/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp +++ b/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include #include @@ -133,6 +134,8 @@ static QStringList toolchainList(const ProjectExplorer::ToolChain *tc) list << QLatin1String("gcc"); // TODO: Detect llvm-gcc } else if (tc->typeId() == ProjectExplorer::Constants::MINGW_TOOLCHAIN_TYPEID) { 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) { list << QLatin1String("msvc"); } else if (tc->typeId() == BareMetal::Constants::IAREW_TOOLCHAIN_TYPEID) { @@ -320,7 +323,12 @@ QVariantMap DefaultPropertyProvider::autoGeneratedProperties(const ProjectExplor if (!mainToolchainPrefix.isEmpty()) 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(mainTc); + data.insert(QLatin1String(CPP_VCVARSALLPATH), clangClToolchain->varsBat()); + } else if (toolchain.contains(QLatin1String("msvc"))) { data.insert(QLatin1String(CPP_COMPILERNAME), mainCompilerName); } else { if (!mainCompilerName.isEmpty()) diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h b/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h index 8fe5f9170e1..43cf1ce722a 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h +++ b/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h @@ -88,6 +88,7 @@ const char CPP_CCOMPILERNAME[] = "cpp.cCompilerName"; const char CPP_CXXCOMPILERNAME[] = "cpp.cxxCompilerName"; const char CPP_PLATFORMCOMMONCOMPILERFLAGS[] = "cpp.platformCommonCompilerFlags"; const char CPP_PLATFORMLINKERFLAGS[] = "cpp.platformLinkerFlags"; +const char CPP_VCVARSALLPATH[] = "cpp.vcvarsallPath"; const char XCODE_DEVELOPERPATH[] = "xcode.developerPath"; const char XCODE_SDK[] = "xcode.sdk";