forked from qt-creator/qt-creator
Docker: Improve Kit setup
- Use toolchain bundles, ensuring compatible C/C++ toolchains - Try harder to match Qt and toolchains Change-Id: I8739a5e1e75d08df4346d51cb0ee7704ca072489 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
@@ -620,6 +620,13 @@ void ToolchainKitAspect::setToolchain(Kit *k, Toolchain *tc)
|
||||
k->setValue(id(), variantFromStore(result));
|
||||
}
|
||||
|
||||
void ToolchainKitAspect::setBundle(Kit *k, const ToolchainBundle &bundle)
|
||||
{
|
||||
bundle.forEach<Toolchain>([k](Toolchain &tc) {
|
||||
setToolchain(k, &tc);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief ToolchainKitAspect::setAllToolchainsToMatch
|
||||
*
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
#include <utils/environment.h>
|
||||
|
||||
namespace ProjectExplorer {
|
||||
|
||||
class Toolchain;
|
||||
class ToolchainBundle;
|
||||
|
||||
// SysRootKitAspect
|
||||
|
||||
@@ -36,6 +36,7 @@ public:
|
||||
static Toolchain *cxxToolchain(const Kit *k);
|
||||
static QList<Toolchain *> toolChains(const Kit *k);
|
||||
static void setToolchain(Kit *k, Toolchain *tc);
|
||||
static void setBundle(Kit *k, const ToolchainBundle &bundle);
|
||||
static void setAllToolchainsToMatch(Kit *k, Toolchain *tc);
|
||||
static void clearToolchain(Kit *k, Utils::Id language);
|
||||
static Abi targetAbi(const Kit *k);
|
||||
|
||||
@@ -246,7 +246,7 @@ public:
|
||||
std::invoke(setter, static_cast<T &>(*tc), args...);
|
||||
}
|
||||
|
||||
template<typename T> void forEach(const std::function<void(T &toolchain)> &modifier)
|
||||
template<typename T> void forEach(const std::function<void(T &toolchain)> &modifier) const
|
||||
{
|
||||
for (Toolchain * const tc : std::as_const(m_toolchains))
|
||||
modifier(static_cast<T &>(*tc));
|
||||
|
||||
Reference in New Issue
Block a user