forked from qt-creator/qt-creator
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: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -62,6 +62,10 @@ public:
|
|||||||
private:
|
private:
|
||||||
bool init() final;
|
bool init() final;
|
||||||
void setupOutputFormatter(OutputFormatter *formatter) final;
|
void setupOutputFormatter(OutputFormatter *formatter) final;
|
||||||
|
|
||||||
|
FilePathAspect conanFile{this};
|
||||||
|
StringAspect additionalArguments{this};
|
||||||
|
BoolAspect buildMissing{this};
|
||||||
};
|
};
|
||||||
|
|
||||||
ConanInstallStep::ConanInstallStep(BuildStepList *bsl, Id id)
|
ConanInstallStep::ConanInstallStep(BuildStepList *bsl, Id id)
|
||||||
@@ -70,36 +74,32 @@ ConanInstallStep::ConanInstallStep(BuildStepList *bsl, Id id)
|
|||||||
setUseEnglishOutput();
|
setUseEnglishOutput();
|
||||||
setDisplayName(Tr::tr("Conan install"));
|
setDisplayName(Tr::tr("Conan install"));
|
||||||
|
|
||||||
auto conanFile = addAspect<FilePathAspect>();
|
conanFile.setSettingsKey("ConanPackageManager.InstallStep.ConanFile");
|
||||||
conanFile->setSettingsKey("ConanPackageManager.InstallStep.ConanFile");
|
conanFile.setValue(conanFilePath(project(), project()->projectDirectory() / "conanfile.txt"));
|
||||||
conanFile->setValue(conanFilePath(project(),
|
conanFile.setLabelText(Tr::tr("Conan file:"));
|
||||||
project()->projectDirectory() / "conanfile.txt"));
|
conanFile.setToolTip(Tr::tr("Enter location of conanfile.txt or conanfile.py."));
|
||||||
conanFile->setLabelText(Tr::tr("Conan file:"));
|
conanFile.setExpectedKind(PathChooser::File);
|
||||||
conanFile->setToolTip(Tr::tr("Enter location of conanfile.txt or conanfile.py."));
|
|
||||||
conanFile->setExpectedKind(PathChooser::File);
|
|
||||||
|
|
||||||
auto additionalArguments = addAspect<StringAspect>();
|
additionalArguments.setSettingsKey("ConanPackageManager.InstallStep.AdditionalArguments");
|
||||||
additionalArguments->setSettingsKey("ConanPackageManager.InstallStep.AdditionalArguments");
|
additionalArguments.setLabelText(Tr::tr("Additional arguments:"));
|
||||||
additionalArguments->setLabelText(Tr::tr("Additional arguments:"));
|
additionalArguments.setDisplayStyle(StringAspect::LineEditDisplay);
|
||||||
additionalArguments->setDisplayStyle(StringAspect::LineEditDisplay);
|
|
||||||
|
|
||||||
auto buildMissing = addAspect<BoolAspect>();
|
buildMissing.setSettingsKey("ConanPackageManager.InstallStep.BuildMissing");
|
||||||
buildMissing->setSettingsKey("ConanPackageManager.InstallStep.BuildMissing");
|
buildMissing.setLabel("Build missing:", BoolAspect::LabelPlacement::InExtraLabel);
|
||||||
buildMissing->setLabel("Build missing:", BoolAspect::LabelPlacement::InExtraLabel);
|
buildMissing.setDefaultValue(true);
|
||||||
buildMissing->setDefaultValue(true);
|
buildMissing.setValue(true);
|
||||||
buildMissing->setValue(true);
|
|
||||||
|
|
||||||
setCommandLineProvider([=] {
|
setCommandLineProvider([this] {
|
||||||
BuildConfiguration::BuildType bt = buildConfiguration()->buildType();
|
BuildConfiguration::BuildType bt = buildConfiguration()->buildType();
|
||||||
const QString buildType = bt == BuildConfiguration::Release ? QString("Release")
|
const QString buildType = bt == BuildConfiguration::Release ? QString("Release")
|
||||||
: QString("Debug");
|
: QString("Debug");
|
||||||
|
|
||||||
CommandLine cmd(settings().conanFilePath());
|
CommandLine cmd(settings().conanFilePath());
|
||||||
cmd.addArgs({"install", "-s", "build_type=" + buildType});
|
cmd.addArgs({"install", "-s", "build_type=" + buildType});
|
||||||
if (buildMissing->value())
|
if (buildMissing())
|
||||||
cmd.addArg("--build=missing");
|
cmd.addArg("--build=missing");
|
||||||
cmd.addArg(conanFile->value());
|
cmd.addArg(conanFile().path());
|
||||||
cmd.addArgs(additionalArguments->value(), CommandLine::Raw);
|
cmd.addArgs(additionalArguments(), CommandLine::Raw);
|
||||||
return cmd;
|
return cmd;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user