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") const QString buildType = bt == BuildConfiguration::Release ? QString("Release")
: QString("Debug"); : QString("Debug");
CommandLine cmd(ConanPlugin::conanSettings()->conanFilePath()); CommandLine cmd(ConanPlugin::conanSettings()->conanFilePath.filePath());
cmd.addArgs({"install", "-s", "build_type=" + buildType}); cmd.addArgs({"install", "-s", "build_type=" + buildType});
if (buildMissing->value()) if (buildMissing->value())
cmd.addArg("--build=missing"); cmd.addArg("--build=missing");

View File

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

View File

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

View File

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