From 6579505b4bbdc2f724730d8d74769767e1fc5153 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Wed, 15 Apr 2020 17:07:37 +0200 Subject: [PATCH 1/6] Doc: Update info about build settings Task-number: QTCREATORBUG-23364 Change-Id: I0b929771ca0d11d5ab0eaa19d99f4003783480e3 Reviewed-by: Christian Kandeler --- .../images/creator-qbs-build-clean.png | Bin 12512 -> 8831 bytes .../images/qtcreator-build-steps-custom.png | Bin 4598 -> 5595 bytes .../images/qtcreator-clean-steps.png | Bin 8826 -> 13299 bytes .../creator-projects-settings-build.qdoc | 8 +++++++- 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/qtcreator/images/creator-qbs-build-clean.png b/doc/qtcreator/images/creator-qbs-build-clean.png index 1ced6632727bd897944bdfe0e590f9e1a617fb25..5a4d859a827c96af755617d24880a0e65e9cd000 100644 GIT binary patch literal 8831 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 literal 12512 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 literal 4598 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 diff --git a/doc/qtcreator/images/qtcreator-clean-steps.png b/doc/qtcreator/images/qtcreator-clean-steps.png index 6d2ad4f0cc86edc5d283f1bfa8ec766fda589802..28086d10d46efe9cd741e71572b87b9aeab92b04 100644 GIT binary patch literal 13299 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 diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build.qdoc index 142671563a4..c898b337ee2 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build.qdoc @@ -47,10 +47,16 @@ build that is delivered with separate debug information. It is best suited for analyzing applications. + \section1 Managing Build Configurations + You specify build settings in the \uicontrol Projects mode. To add a new build configuration, click \uicontrol Add and select the type of configuration you would like to add. You can add as many build - configurations as you need. + configurations as you need. You can also select \uicontrol Clone to + add a build configuration that is based on the currently selected one. + + Select \uicontrol Rename to give the currently selected build configuration + a new name. To delete the build configuration currently selected, click \uicontrol Remove. From f9fb5d7e886c8919924e147fc445fd5d9c2f72a6 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 15 Apr 2020 19:27:01 +0200 Subject: [PATCH 2/6] QmlDesigner: Fix crash Change-Id: Iaabc04e97fb7e06d462e7716be27a24471be2bd2 Reviewed-by: Aleksei German Reviewed-by: Thomas Hartmann --- src/plugins/qmldesigner/designercore/model/modelnode.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/plugins/qmldesigner/designercore/model/modelnode.cpp b/src/plugins/qmldesigner/designercore/model/modelnode.cpp index e8283c4b4c6..61d0f93cf56 100644 --- a/src/plugins/qmldesigner/designercore/model/modelnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/modelnode.cpp @@ -944,6 +944,9 @@ bool ModelNode::hasNodeListProperty(const PropertyName &name) const static bool recursiveAncestor(const ModelNode &possibleAncestor, const ModelNode &node) { + if (!node.isValid()) + return false; + if (node.hasParentProperty()) { if (node.parentProperty().parentModelNode() == possibleAncestor) return true; From f671d46c1dc41c7ecefe2b83f3af115a7e30ea90 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 8 Apr 2020 19:21:18 +0200 Subject: [PATCH 3/6] QmlDesigner: Add extra check for invalid node Change-Id: Id3cb9b6a2eb8230f0e3403fad30c57a67227fa5e Reviewed-by: Aleksei German Reviewed-by: Thomas Hartmann --- .../qmldesigner/designercore/model/qmlvisualnode.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/model/qmlvisualnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlvisualnode.cpp index ab9acc25e8c..9fa5ef8e42d 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlvisualnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlvisualnode.cpp @@ -327,17 +327,23 @@ NodeListProperty QmlVisualNode::findSceneNodeProperty(AbstractView *view, qint32 bool QmlVisualNode::isFlowTransition(const ModelNode &node) { - return node.metaInfo().isValid() && node.metaInfo().isSubclassOf("FlowView.FlowTransition"); + return node.isValid() + && node.metaInfo().isValid() + && node.metaInfo().isSubclassOf("FlowView.FlowTransition"); } bool QmlVisualNode::isFlowDecision(const ModelNode &node) { - return node.metaInfo().isValid() && node.metaInfo().isSubclassOf("FlowView.FlowDecision"); + return node.isValid() + && node.metaInfo().isValid() + && node.metaInfo().isSubclassOf("FlowView.FlowDecision"); } bool QmlVisualNode::isFlowWildcard(const ModelNode &node) { - return node.metaInfo().isValid() && node.metaInfo().isSubclassOf("FlowView.FlowWildcard"); + return node.isValid() + && node.metaInfo().isValid() + && node.metaInfo().isSubclassOf("FlowView.FlowWildcard"); } bool QmlVisualNode::isFlowTransition() const From fdb0cf0f6b45f25016e6f91685fb57304baddb8e Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Fri, 17 Apr 2020 14:23:21 +0300 Subject: [PATCH 4/6] Update openSslPath when we change the android sdk path Change-Id: I39bd02d4f5bba8d03d4606b0de89b50778c7aa01 Reviewed-by: Assam Boudjelthia --- src/plugins/android/androidsettingswidget.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/plugins/android/androidsettingswidget.cpp b/src/plugins/android/androidsettingswidget.cpp index 3d6d4d6f40a..95c67ae2645 100644 --- a/src/plugins/android/androidsettingswidget.cpp +++ b/src/plugins/android/androidsettingswidget.cpp @@ -57,6 +57,7 @@ #include #include #include +#include #include #include #include @@ -67,6 +68,10 @@ #include +namespace { +static Q_LOGGING_CATEGORY(androidsettingswidget, "qtc.android.androidsettingswidget", QtWarningMsg); +} + namespace Android { namespace Internal { @@ -719,6 +724,10 @@ void AndroidSettingsWidget::onSdkPathChanged() { auto sdkPath = Utils::FilePath::fromUserInput(m_ui->SDKLocationPathChooser->rawPath()); m_androidConfig.setSdkLocation(sdkPath); + Utils::FilePath currentOpenSslPath = m_androidConfig.openSslLocation(); + if (currentOpenSslPath.isEmpty() || !currentOpenSslPath.exists()) + currentOpenSslPath = sdkPath.pathAppended("android_openssl"); + m_ui->openSslPathChooser->setFileName(currentOpenSslPath); // Package reload will trigger validateSdk. m_sdkManager->reloadPackages(); } @@ -800,8 +809,12 @@ void AndroidSettingsWidget::downloadOpenSslRepo(const bool silent) const QString openSslRepo("https://github.com/KDAB/android_openssl.git"); Utils::QtcProcess *gitCloner = new Utils::QtcProcess(this); - gitCloner->setCommand(Utils::CommandLine("git", {"clone", "--depth=1", openSslRepo, openSslPath.fileName()})); - gitCloner->setWorkingDirectory(openSslPath.parentDir().toString()); + Utils::CommandLine gitCloneCommand("git", + {"clone", "--depth=1", openSslRepo, openSslPath.toString()}); + gitCloner->setCommand(gitCloneCommand); + + qCDebug(androidsettingswidget) << "Cloning OpenSSL repo: " << + gitCloneCommand.toUserOutput(); QDir openSslDir(openSslPath.toString()); if (openSslDir.exists()) { From 9e057a55368286058023510efc328f68250ecb5e Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Thu, 16 Apr 2020 16:44:06 +0300 Subject: [PATCH 5/6] Android: add support for new SDK Tools package cmdline-tools The newly added cmdline-tools is not used by Qt Creator. So QC Android settings will be broken for users who have an Android SDK installed from Android Studio, or who updated their SDK package (i.e. tools -> cmdline-tools). This patch fixes both of the following issues: 1- QC looks for sdkmanager tools under /tools/bin/sdkmanager, and with the new SDK it's under /cmdline-tools/latest/sdkmanger. 2- QC checks the version of the SDK tools and opens the old SDK Manager for SDK tools version 25.3.0 or less. However, since cmdline-tools is now version 1.0, it causes QC to think this is an old version. Fixes: QTCREATORBUG-23726 Change-Id: I7e6bbc6840d24d358f68dfa3e229799394ace950 Reviewed-by: BogDan Vatra --- src/plugins/android/androidbuildapkstep.cpp | 3 +- src/plugins/android/androidconfigurations.cpp | 55 ++++++++++++++----- src/plugins/android/androidconfigurations.h | 1 + src/plugins/android/androidsdkmanager.cpp | 10 +++- 4 files changed, 53 insertions(+), 16 deletions(-) diff --git a/src/plugins/android/androidbuildapkstep.cpp b/src/plugins/android/androidbuildapkstep.cpp index 5f31ca86207..94cb986b19c 100644 --- a/src/plugins/android/androidbuildapkstep.cpp +++ b/src/plugins/android/androidbuildapkstep.cpp @@ -172,7 +172,8 @@ bool AndroidBuildApkStep::init() return false; const QVersionNumber sdkToolsVersion = AndroidConfigurations::currentConfig().sdkToolsVersion(); - if (sdkToolsVersion >= gradleScriptRevokedSdkVersion) { + if (sdkToolsVersion >= gradleScriptRevokedSdkVersion + || AndroidConfigurations::currentConfig().isCmdlineSdkToolsInstalled()) { if (!version->sourcePath().pathAppended("src/3rdparty/gradle").exists()) { emit addOutput(tr("The installed SDK tools version (%1) does not include Gradle " "scripts. The minimum Qt version required for Gradle build to work " diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index 14cf58f2f59..a574c4c1239 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -428,6 +428,15 @@ QString AndroidConfig::apiLevelNameFor(const SdkPlatform *platform) QString("android-%1").arg(platform->apiLevel()) : ""; } +bool AndroidConfig::isCmdlineSdkToolsInstalled() const +{ + QString toolPath("cmdline-tools/latest/bin/sdkmanager"); + if (HostOsInfo::isWindowsHost()) + toolPath += ANDROID_BAT_SUFFIX; + + return m_sdkLocation.pathAppended(toolPath).exists(); +} + FilePath AndroidConfig::adbToolPath() const { return m_sdkLocation.pathAppended("platform-tools/adb" QTC_HOST_EXE_SUFFIX); @@ -449,25 +458,43 @@ FilePath AndroidConfig::androidToolPath() const FilePath AndroidConfig::emulatorToolPath() const { QString relativePath = "emulator/emulator"; - if (sdkToolsVersion() < QVersionNumber(25, 3, 0)) + if (sdkToolsVersion() < QVersionNumber(25, 3, 0) && !isCmdlineSdkToolsInstalled()) relativePath = "tools/emulator"; return m_sdkLocation.pathAppended(relativePath + QTC_HOST_EXE_SUFFIX); } FilePath AndroidConfig::sdkManagerToolPath() const { - QString toolPath = "tools/bin/sdkmanager"; - if (HostOsInfo::isWindowsHost()) - toolPath += ANDROID_BAT_SUFFIX; - return m_sdkLocation.pathAppended(toolPath); + QStringList sdkmanagerPaths = {"cmdline-tools/latest/bin/sdkmanager", + "tools/bin/sdkmanager"}; + + for (QString &toolPath : sdkmanagerPaths) { + if (HostOsInfo::isWindowsHost()) + toolPath += ANDROID_BAT_SUFFIX; + + const FilePath sdkmanagerPath = m_sdkLocation.pathAppended(toolPath); + if (sdkmanagerPath.exists()) + return sdkmanagerPath; + } + + return FilePath(); } FilePath AndroidConfig::avdManagerToolPath() const { - QString toolPath = "tools/bin/avdmanager"; - if (HostOsInfo::isWindowsHost()) - toolPath += ANDROID_BAT_SUFFIX; - return m_sdkLocation.pathAppended(toolPath); + QStringList sdkmanagerPaths = {"cmdline-tools/latest/bin/avdmanager", + "tools/bin/avdmanager"}; + + for (QString &toolPath : sdkmanagerPaths) { + if (HostOsInfo::isWindowsHost()) + toolPath += ANDROID_BAT_SUFFIX; + + const FilePath sdkmanagerPath = m_sdkLocation.pathAppended(toolPath); + if (sdkmanagerPath.exists()) + return sdkmanagerPath; + } + + return FilePath(); } FilePath AndroidConfig::aaptToolPath() const @@ -812,7 +839,7 @@ QStringList AndroidConfig::getAbis(const FilePath &adbToolPath, const QString &d bool AndroidConfig::useNativeUiTools() const { const QVersionNumber version = sdkToolsVersion(); - return !version.isNull() && version <= QVersionNumber(25, 3 ,0); + return !version.isNull() && version <= QVersionNumber(25, 3, 0) && !isCmdlineSdkToolsInstalled(); } bool AndroidConfig::isValidNdk(const QString &ndkLocation) const @@ -849,8 +876,11 @@ QVersionNumber AndroidConfig::sdkToolsVersion() const { QVersionNumber version; if (m_sdkLocation.exists()) { - const Utils::FilePath sdkToolsPropertiesPath - = m_sdkLocation.pathAppended("tools/source.properties"); + FilePath sdkToolsPropertiesPath; + if (isCmdlineSdkToolsInstalled()) + sdkToolsPropertiesPath = m_sdkLocation.pathAppended("cmdline-tools/latest/source.properties"); + else + sdkToolsPropertiesPath = m_sdkLocation.pathAppended("tools/source.properties"); QSettings settings(sdkToolsPropertiesPath.toString(), QSettings::IniFormat); auto versionStr = settings.value(sdkToolsVersionKey).toString(); version = QVersionNumber::fromString(versionStr); @@ -868,7 +898,6 @@ QVersionNumber AndroidConfig::buildToolsVersion() const return maxVersion; } - QStringList AndroidConfig::sdkManagerToolArgs() const { return m_sdkManagerToolArgs; diff --git a/src/plugins/android/androidconfigurations.h b/src/plugins/android/androidconfigurations.h index f10d86bf006..a6f6c5d4a2e 100644 --- a/src/plugins/android/androidconfigurations.h +++ b/src/plugins/android/androidconfigurations.h @@ -186,6 +186,7 @@ public: bool isConnected(const QString &serialNumber) const; bool useNativeUiTools() const; + bool isCmdlineSdkToolsInstalled() const; bool sdkFullyConfigured() const { return m_sdkFullyConfigured; } void setSdkFullyConfigured(bool allEssentialsInstalled) { m_sdkFullyConfigured = allEssentialsInstalled; } diff --git a/src/plugins/android/androidsdkmanager.cpp b/src/plugins/android/androidsdkmanager.cpp index e3ea6860890..3b58d81ad20 100644 --- a/src/plugins/android/androidsdkmanager.cpp +++ b/src/plugins/android/androidsdkmanager.cpp @@ -1,4 +1,4 @@ -/**************************************************************************** +/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ @@ -277,6 +277,7 @@ public: EmulatorToolsMarker = 0x400, NdkMarker = 0x800, ExtrasMarker = 0x1000, + CmdlineSdkToolsMarker = 0x2000, SectionMarkers = InstalledPackagesMarker | AvailablePackagesMarkers | AvailableUpdatesMarker }; @@ -313,6 +314,7 @@ const std::map markerTags { {SdkManagerOutputParser::MarkerTag::SystemImageMarker, "system-images"}, {SdkManagerOutputParser::MarkerTag::BuildToolsMarker, "build-tools"}, {SdkManagerOutputParser::MarkerTag::SdkToolsMarker, "tools"}, + {SdkManagerOutputParser::MarkerTag::CmdlineSdkToolsMarker, "cmdline-tools"}, {SdkManagerOutputParser::MarkerTag::PlatformToolsMarker, "platform-tools"}, {SdkManagerOutputParser::MarkerTag::EmulatorToolsMarker, "emulator"}, {SdkManagerOutputParser::MarkerTag::NdkMarker, "ndk"}, @@ -597,6 +599,10 @@ void SdkManagerOutputParser::parsePackageData(MarkerTag packageMarker, const QSt createPackage(&SdkManagerOutputParser::parseSdkToolsPackage); break; + case MarkerTag::CmdlineSdkToolsMarker: + createPackage(&SdkManagerOutputParser::parseSdkToolsPackage); + break; + case MarkerTag::PlatformToolsMarker: createPackage(&SdkManagerOutputParser::parsePlatformToolsPackage); break; @@ -882,7 +888,7 @@ void AndroidSdkManagerPrivate::reloadSdkPackages() return; } - if (m_config.sdkToolsVersion() < sdkManagerIntroVersion) { + if (m_config.sdkToolsVersion() < sdkManagerIntroVersion && !m_config.isCmdlineSdkToolsInstalled()) { // Old Sdk tools. m_packageListingSuccessful = true; AndroidToolManager toolManager(m_config); From 9e84724c538eb878ac62b864ae101986245c5ed7 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 17 Apr 2020 10:50:33 +0200 Subject: [PATCH 6/6] Fix "Link with Qt" for Qt offline installers The Qt offline installers do not necessarily write a QtCreator.ini. Check for qtversion.xml as well. Change-Id: Ib7fd9f39444a8eec817646dd495fdc94696906e8 Reviewed-by: hjk --- src/plugins/qtsupport/qtoptionspage.cpp | 26 +++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp index a53fb57c9db..95c3b84d50c 100644 --- a/src/plugins/qtsupport/qtoptionspage.cpp +++ b/src/plugins/qtsupport/qtoptionspage.cpp @@ -796,6 +796,12 @@ static QString settingsFile(const QString &baseDir) + Core::Constants::IDE_CASED_ID + ".ini"; } +static QString qtVersionsFile(const QString &baseDir) +{ + return baseDir + (baseDir.isEmpty() ? "" : "/") + Core::Constants::IDE_SETTINGSVARIANT_STR + '/' + + Core::Constants::IDE_ID + '/' + "qtversion.xml"; +} + static Utils::optional currentlyLinkedQtDir(bool *hasInstallSettings) { const QString installSettingsFilePath = settingsFile(Core::ICore::resourcePath()); @@ -883,7 +889,18 @@ void QtOptionsPageWidget::apply() const QStringList kSubdirsToCheck = {"", "Qt Creator.app/Contents/Resources", "Contents/Resources", - "Tools/QtCreator/share/qtcreator"}; + "Tools/QtCreator/share/qtcreator", + "share/qtcreator"}; + +static QStringList settingsFilesToCheck() +{ + return Utils::transform(kSubdirsToCheck, [](const QString &dir) { return settingsFile(dir); }); +} + +static QStringList qtversionFilesToCheck() +{ + return Utils::transform(kSubdirsToCheck, [](const QString &dir) { return qtVersionsFile(dir); }); +} static Utils::optional settingsDirForQtDir(const QString &qtDir) { @@ -891,7 +908,7 @@ static Utils::optional settingsDirForQtDir(const QString &qtDir) return QString(qtDir + '/' + dir); }); const QString validDir = Utils::findOrDefault(dirsToCheck, [](const QString &dir) { - return QFile::exists(settingsFile(dir)); + return QFile::exists(settingsFile(dir)) || QFile::exists(qtVersionsFile(dir)); }); if (!validDir.isEmpty()) return validDir; @@ -903,10 +920,7 @@ static bool validateQtInstallDir(FancyLineEdit *input, QString *errorString) const QString qtDir = input->text(); if (!settingsDirForQtDir(qtDir)) { if (errorString) { - const QStringList filesToCheck = Utils::transform(kSubdirsToCheck, - [](const QString &dir) { - return settingsFile(dir); - }); + const QStringList filesToCheck = settingsFilesToCheck() + qtversionFilesToCheck(); *errorString = QtOptionsPageWidget::tr( "Qt installation information was not found in \"%1\". " "Choose a directory that contains one of the files
%2
")