Conan: Move closer to now-default settings construction

Change-Id: I04078070de9831c1de94d400a7723f4efe0e0a8d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2021-03-26 17:50:14 +01:00
parent 283ef97384
commit 0c5036e307
4 changed files with 21 additions and 30 deletions

View File

@@ -91,7 +91,7 @@ ConanInstallStep::ConanInstallStep(BuildStepList *bsl, Id id)
const QString buildType = bt == BuildConfiguration::Release ? QString("Release")
: QString("Debug");
CommandLine cmd(ConanPlugin::conanSettings()->conanFilePath());
CommandLine cmd(ConanPlugin::conanSettings()->conanFilePath.filePath());
cmd.addArgs({"install", "-s", "build_type=" + buildType});
if (buildMissing->value())
cmd.addArg("--build=missing");

View File

@@ -65,7 +65,7 @@ bool ConanPlugin::initialize(const QStringList &arguments, QString *errorString)
Q_UNUSED(errorString)
m_runData = new ConanPluginRunData;
conanSettings()->fromSettings(ICore::settings());
conanSettings()->readSettings(ICore::settings());
connect(SessionManager::instance(), &SessionManager::projectAdded,
this, &ConanPlugin::projectAdded);

View File

@@ -24,30 +24,25 @@
****************************************************************************/
#include "conansettings.h"
#include <utils/hostosinfo.h>
using namespace Utils;
namespace ConanPackageManager {
namespace Internal {
namespace {
static const char SETTINGS_KEY[] = "ConanSettings";
static const char CONAN_FILE_PATH[] = "ConanFilePath";
}
void ConanSettings::fromSettings(QSettings *settings)
ConanSettings::ConanSettings()
{
const QString rootKey = QString(SETTINGS_KEY) + '/';
setSettingsGroup("ConanSettings");
setAutoApply(false);
const QString defaultExe = Utils::HostOsInfo::withExecutableSuffix(QString("conan"));
m_conanFilePath = Utils::FilePath::fromUserInput(
settings->value(rootKey + CONAN_FILE_PATH, defaultExe).toString());
registerAspect(&conanFilePath);
conanFilePath.setSettingsKey("ConanFilePath");
conanFilePath.setDisplayStyle(StringAspect::PathChooserDisplay);
conanFilePath.setExpectedKind(PathChooser::ExistingCommand);
conanFilePath.setDefaultValue(HostOsInfo::withExecutableSuffix("conan"));
}
void ConanSettings::toSettings(QSettings *settings) const
{
settings->beginGroup(QString(SETTINGS_KEY));
settings->endGroup();
}
}
}
} // Internal
} // ConanPackageManager

View File

@@ -25,6 +25,7 @@
#pragma once
#include <utils/aspects.h>
#include <utils/fileutils.h>
#include <QSettings>
@@ -32,18 +33,13 @@
namespace ConanPackageManager {
namespace Internal {
class ConanSettings
class ConanSettings : public Utils::AspectContainer
{
public:
ConanSettings() = default;
void fromSettings(QSettings *settings);
void toSettings(QSettings *settings) const;
ConanSettings();
Utils::FilePath conanFilePath() const { return m_conanFilePath; }
private:
Utils::FilePath m_conanFilePath;
Utils::StringAspect conanFilePath;
};
}
}
} // Internal
} // ConanPackageManager