diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2020-02-03 09:45:11 +0200 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2020-02-03 13:45:59 +0000 |
commit | 7daa9642fef7e77e1dd564ad22904032de0f89b3 (patch) | |
tree | 420cdbd9ee3632d969a4cd67d1c1f2fba9cfcb1b /src/sdk/installerbase.cpp | |
parent | c7524d53054d6051e335b552a54f8ee9d0b16ce0 (diff) |
Enable command line default components installation
Add --installDefault option to install components that are set to be
checked by default and their respective dependencies. Do not do anything
if the component tree does not have anything checked by default.
Task-number: QTIFW-1583
Change-Id: I3825c7e797b102a8d6a65ae0e57bfe82fafef5e9
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'src/sdk/installerbase.cpp')
-rw-r--r-- | src/sdk/installerbase.cpp | 43 |
1 files changed, 28 insertions, 15 deletions
diff --git a/src/sdk/installerbase.cpp b/src/sdk/installerbase.cpp index e32b4f127..320a247a2 100644 --- a/src/sdk/installerbase.cpp +++ b/src/sdk/installerbase.cpp @@ -345,22 +345,8 @@ int InstallerBase::run() checkLicense(); m_core->autoRejectMessageBoxes(); if (m_core->isInstaller()) { - if (parser.isSet(QLatin1String(CommandLineOptions::TargetDir))) { - const QString &value = parser.value(QLatin1String(CommandLineOptions::TargetDir)); - if (m_core->checkTargetDir(value)) { - QString targetDirWarning = m_core->targetDirWarning(value); - if (!targetDirWarning.isEmpty()) { - qDebug() << m_core->targetDirWarning(value); - return EXIT_FAILURE; - } - m_core->setValue(QLatin1String("TargetDir"), value); - } else { - return EXIT_FAILURE; - } - } else { - qWarning() << "Please specify target directory."; + if (!setTargetDirFromCommandLine(parser)) return EXIT_FAILURE; - } } QStringList packages; @@ -368,6 +354,14 @@ int InstallerBase::run() if (!value.isEmpty()) packages = value.split(QLatin1Char(','), QString::SkipEmptyParts); m_core->installSelectedComponentsSilently(packages); + } else if (parser.isSet(QLatin1String(CommandLineOptions::InstallDefault))) { + if (!m_core->isInstaller()) + throw QInstaller::Error(QLatin1String("Cannot start installer binary as installer.")); + checkLicense(); + m_core->autoRejectMessageBoxes(); + if (!setTargetDirFromCommandLine(parser)) + return EXIT_FAILURE; + m_core->installDefaultComponentsSilently(); } else { //create the wizard GUI TabController controller(nullptr); @@ -451,3 +445,22 @@ void InstallerBase::checkLicense() throw QInstaller::Error(QLatin1String("No valid license found.")); } } + +bool InstallerBase::setTargetDirFromCommandLine(CommandLineParser &parser) +{ + if (parser.isSet(QLatin1String(CommandLineOptions::TargetDir))) { + const QString &value = parser.value(QLatin1String(CommandLineOptions::TargetDir)); + if (m_core->checkTargetDir(value)) { + QString targetDirWarning = m_core->targetDirWarning(value); + if (!targetDirWarning.isEmpty()) { + qDebug() << m_core->targetDirWarning(value); + } else { + m_core->setValue(QLatin1String("TargetDir"), value); + return true; + } + } + } else { + qWarning() << "Please specify target directory."; + } + return false; +} |