From f1a6135c1e465adba616e33d5827a8ee94f54310 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 10 Jul 2023 13:05:36 +0200 Subject: [PATCH] Conan: More direct aspect use in ConanInstallStep Also fix use of a the potentially remote conanfile by using only the .path() when passing to the (remote) install step. Change-Id: If588dc8e2777a9c6515845886d9f3a9ab881c97f Reviewed-by: Reviewed-by: Alessandro Portale --- src/plugins/conan/conaninstallstep.cpp | 40 +++++++++++++------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/plugins/conan/conaninstallstep.cpp b/src/plugins/conan/conaninstallstep.cpp index 7d03398205d..839261304d0 100644 --- a/src/plugins/conan/conaninstallstep.cpp +++ b/src/plugins/conan/conaninstallstep.cpp @@ -62,6 +62,10 @@ public: private: bool init() final; void setupOutputFormatter(OutputFormatter *formatter) final; + + FilePathAspect conanFile{this}; + StringAspect additionalArguments{this}; + BoolAspect buildMissing{this}; }; ConanInstallStep::ConanInstallStep(BuildStepList *bsl, Id id) @@ -70,36 +74,32 @@ ConanInstallStep::ConanInstallStep(BuildStepList *bsl, Id id) setUseEnglishOutput(); setDisplayName(Tr::tr("Conan install")); - auto conanFile = addAspect(); - conanFile->setSettingsKey("ConanPackageManager.InstallStep.ConanFile"); - conanFile->setValue(conanFilePath(project(), - project()->projectDirectory() / "conanfile.txt")); - conanFile->setLabelText(Tr::tr("Conan file:")); - conanFile->setToolTip(Tr::tr("Enter location of conanfile.txt or conanfile.py.")); - conanFile->setExpectedKind(PathChooser::File); + conanFile.setSettingsKey("ConanPackageManager.InstallStep.ConanFile"); + conanFile.setValue(conanFilePath(project(), project()->projectDirectory() / "conanfile.txt")); + conanFile.setLabelText(Tr::tr("Conan file:")); + conanFile.setToolTip(Tr::tr("Enter location of conanfile.txt or conanfile.py.")); + conanFile.setExpectedKind(PathChooser::File); - auto additionalArguments = addAspect(); - additionalArguments->setSettingsKey("ConanPackageManager.InstallStep.AdditionalArguments"); - additionalArguments->setLabelText(Tr::tr("Additional arguments:")); - additionalArguments->setDisplayStyle(StringAspect::LineEditDisplay); + additionalArguments.setSettingsKey("ConanPackageManager.InstallStep.AdditionalArguments"); + additionalArguments.setLabelText(Tr::tr("Additional arguments:")); + additionalArguments.setDisplayStyle(StringAspect::LineEditDisplay); - auto buildMissing = addAspect(); - buildMissing->setSettingsKey("ConanPackageManager.InstallStep.BuildMissing"); - buildMissing->setLabel("Build missing:", BoolAspect::LabelPlacement::InExtraLabel); - buildMissing->setDefaultValue(true); - buildMissing->setValue(true); + buildMissing.setSettingsKey("ConanPackageManager.InstallStep.BuildMissing"); + buildMissing.setLabel("Build missing:", BoolAspect::LabelPlacement::InExtraLabel); + buildMissing.setDefaultValue(true); + buildMissing.setValue(true); - setCommandLineProvider([=] { + setCommandLineProvider([this] { BuildConfiguration::BuildType bt = buildConfiguration()->buildType(); const QString buildType = bt == BuildConfiguration::Release ? QString("Release") : QString("Debug"); CommandLine cmd(settings().conanFilePath()); cmd.addArgs({"install", "-s", "build_type=" + buildType}); - if (buildMissing->value()) + if (buildMissing()) cmd.addArg("--build=missing"); - cmd.addArg(conanFile->value()); - cmd.addArgs(additionalArguments->value(), CommandLine::Raw); + cmd.addArg(conanFile().path()); + cmd.addArgs(additionalArguments(), CommandLine::Raw); return cmd; });