aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/conan
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2021-01-25 14:40:18 +0100
committerJarek Kobus <jaroslaw.kobus@qt.io>2021-01-28 16:34:10 +0000
commitaf61c47c107e0fe9086dc691a55f05e8733e0c80 (patch)
treef52de0e14f5d836af8d87e674c3086d228307e97 /src/plugins/conan
parentf0cb3e3365f0e83229802d49465b851a3975c9f3 (diff)
Conan: Add "Build missing" option to conan install step
By default this option is set to true. Task-number: QTCREATORBUG-25275 Change-Id: Ia7d628026e4ff7d20cf4b22db89d9b5b6ff5a9ca Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Diffstat (limited to 'src/plugins/conan')
-rw-r--r--src/plugins/conan/conaninstallstep.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/plugins/conan/conaninstallstep.cpp b/src/plugins/conan/conaninstallstep.cpp
index 66a095aaa22..9f3e22575b9 100644
--- a/src/plugins/conan/conaninstallstep.cpp
+++ b/src/plugins/conan/conaninstallstep.cpp
@@ -78,13 +78,21 @@ ConanInstallStep::ConanInstallStep(BuildStepList *bsl, Id id)
additionalArguments->setLabelText(tr("Additional arguments:"));
additionalArguments->setDisplayStyle(StringAspect::LineEditDisplay);
- setCommandLineProvider([this, conanFile, additionalArguments] {
+ auto buildMissing = addAspect<BoolAspect>();
+ buildMissing->setSettingsKey("ConanPackageManager.InstallStep.BuildMissing");
+ buildMissing->setLabel("Build missing:", BoolAspect::LabelPlacement::InExtraLabel);
+ buildMissing->setDefaultValue(true);
+
+ setCommandLineProvider([=] {
BuildConfiguration::BuildType bt = buildConfiguration()->buildType();
const QString buildType = bt == BuildConfiguration::Release ? QString("Release")
: QString("Debug");
CommandLine cmd(ConanPlugin::conanSettings()->conanFilePath());
- cmd.addArgs({"install", "-s", "build_type=" + buildType, conanFile->value()});
+ cmd.addArgs({"install", "-s", "build_type=" + buildType});
+ if (buildMissing->value())
+ cmd.addArg("--build=missing");
+ cmd.addArg(conanFile->value());
cmd.addArgs(additionalArguments->value(), CommandLine::Raw);
return cmd;
});