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:
|
||||
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<FilePathAspect>();
|
||||
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<StringAspect>();
|
||||
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<BoolAspect>();
|
||||
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;
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user