Commit Graph

42 Commits

Author SHA1 Message Date
Christiaan Janssen
3e08210998 McuSupport: Detect dependency versions when building MCU kits
Task-number: QTCREATORBUG-25261
Change-Id: I79d24aa2e26a3f647bd2251c0407c7d09eea73b3
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Dawid Śliwa <dawid.sliwa@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2021-03-02 14:36:40 +00:00
Alessandro Portale
72d91dc94a Use qAsConst with non-const Qt containers in range-loops
... in various places

Change-Id: Ic6c0c1b9437a1ed402105c7a14a1f5f9454a68d4
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2021-02-17 14:43:29 +00:00
Christiaan Janssen
5b7a3fba27 McuSupport: Display errors when configuring Qt for MCUs SDK
Fixes: QTCREATORBUG-25258
Change-Id: I6f445bddb51f3bc1850793966f049c4b7ce7889f
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Erik Verbruggen <erik.verbruggen@me.com>
2021-02-09 13:10:07 +00:00
Christiaan Janssen
9cd5fb927d McuSupport: generate kits automatically on plugin initialization
Fixes: QTCREATORBUG-24354
Change-Id: I26587102bd24d1678707ca1d9160c84149e77c8e
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-10-30 11:07:27 +00:00
Eike Ziller
b18711da91 Merge remote-tracking branch 'origin/4.12' into 4.13
Conflicts:
	share/qtcreator/debugger/lldbbridge.py

Change-Id: Ia444f6424fb35b9a539e157afcee868161535272
2020-07-06 16:23:13 +02:00
hjk
e1c88116b3 Core/Utils: Migrate further to Utils::Id
The coreplugin/id.h header is kept for downstream for now.

Change-Id: I8c44590f7b988b3770ecdc177c40783e12353e66
(cherry picked from commit 430a33dcd9)
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-07-06 11:15:18 +00:00
Alessandro Portale
dccdd41ab9 McuSupport: Adjust license headers
Change-Id: I00ce0c63c59f6d20f8244ea9c693259044d0f7b8
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2020-07-03 07:48:51 +00:00
Eike Ziller
5b364de168 Use dialogParent() instead of mainWindow()
There are very few reasons to use mainWindow() directly.
Especially for modal dialogs, using dialogParent() is important, since
that guarantees the stacking order in case of other dialogs currently
being open.

Change-Id: I7ad2c23c5034b43195eb35cfe405932a7ea003e6
Reviewed-by: hjk <hjk@qt.io>
2020-06-02 11:44:53 +00:00
Eike Ziller
52b7ec058b Merge remote-tracking branch 'origin/4.12'
Conflicts:
	src/plugins/mcusupport/mcusupportsdk.cpp

Change-Id: I1583fa81adc0218ad4657baa347c08e9e29f88e6
2020-05-15 14:49:11 +02:00
Alessandro Portale
ed9918a41c McuSupport: Let user explicitly create or remove MCU target kits
So far, the user had to press "Apply" to generate a kit for the
currently selected target. The kit got silently added, there was no
immediate UI feedback that something happened.
Also, there was no possibility to remove a specific Qt for MCUs kit once
it was added, becoause it is under the "Auto-dected" kit category.

This change modifies the UI interaction so, that there is a specific
"Create Kit" button, and in case that the kit already exists, there is a
"Remove Kit" button.

Task-number: QTCREATORBUG-23929
Change-Id: I334ed75f86905ac762e0293bd3aa70b3433acf28
Reviewed-by: hjk <hjk@qt.io>
2020-05-11 14:45:47 +00:00
Eike Ziller
bf490b62e0 Merge remote-tracking branch 'origin/4.12'
Change-Id: I11936ad9e4515c3c6c9df1d949cc8116aeccd4c4
2020-05-06 09:43:20 +02:00
Alessandro Portale
ff925d85e9 McuSupport: Remove outdated kits on KitManager::kitsLoaded
... instead while creating other kits.

Task-number: QTCREATORBUG-23891
Change-Id: I7ef3a6c92d94d8e6dd7499490a694be1d91ed35e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-05-05 07:09:40 +00:00
Eike Ziller
e9661e43cb Merge remote-tracking branch 'origin/4.12'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/libs/qtcreatorcdbext/qtcreatorcdbextension.cpp

Change-Id: If6963d1ef7b5a1ea6343f68c8e7ce6fb5f482f21
2020-04-28 15:48:36 +02:00
Alessandro Portale
db0d7a2669 McuSupport: Make some functions in McuSupportOptions static
There is no good enough reason to have them non-static, and upcoming
changes will have it a bit easier with static calls.

Additionally, make McuTarget::m_toolChainPackage const.

Change-Id: I002d5d56606d3b43c4c7a2f63c59e97a81342c69
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-04-27 10:26:36 +00:00
Alessandro Portale
5795ce2aae McuSupport: Remove outdated Qt for MCUs kits
Add a version to the generated Qt for MCUs kits. That version will
increase with every change to the way Qt for MCUs kits get generated.

If there are auto-detected Qt for MCUs kits with a different version
than the current, remove these kits when a "fresh" gets generated.

Task-number: QTCREATORBUG-23891
Change-Id: Iafcd2342d458f9c77ada47180cb61b3b4b090598
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-04-27 10:26:23 +00:00
Tobias Hunger
74a07f906f CMake: Rename some constants
Rename some constants to get a bit more consistency into the
naming scheme. I am so tiered of missing a constant due to it
not having _ in the expected places!

Change-Id: Ibb5e82ea4e25ccb559352839b96c8a64394f3085
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-04-17 13:24:43 +00:00
Alessandro Portale
23dc065327 McuSupport: Register Qt for MCUs .qch files
At plugin initialization and along with the creation of a Qt for MCUs
Kit (which currently happens when the user presses "Apply"), these .qch
files get registered:

  <Qul_DIR>/docs/quickultralite.qch
  <Qul_DIR>/docs/quickultralitecmake.qch

In order not to duplicate the code for retrieving package paths (e.g.
the one for "QtForMCUsSdk") from the settings, some refactoring was
done.
As a result McuSupportOptions::qulDirFromSettings() has been introduced.
It will be also used in further changes.

Task-number: UL-1685
Change-Id: I82e638e129120cdadcf2f4812f467fce34b32ec9
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-03-25 12:05:02 +00:00
Alessandro Portale
7675296fcf McuSupport: Make hardcoded target list "semi data-driven"
This change pushes the hard-coded list a bit towards a "data-driven"
approach. That way, the planned switch to the .json files based apporach
(see UL-2012) becomes less of a change.

Some target entries are added to match the current target list in Qt
for MCUs packages.

If we don't manage to get the .json-based target listing in place, this
could even serve as fall-back.

Task-number: UL-2012
Change-Id: If39e5d581ac19468b6f52ed221ec2d39bfab9f80
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2020-03-19 08:42:04 +00:00
Alessandro Portale
4e4b8965a9 McuSupport: Introduce a separate status label
The status label will notify about missing CMake, etc.

The Kit Creation info label should only inform about the kit options for
the currently selected target.

Change-Id: I8786fe287f5fa28b46bb0e6d2d88517ec2593e05
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-03-10 15:23:34 +00:00
Alessandro Portale
8652188ac9 McuSupport: Restructure UI to reflect the data hierarchy
1) User selects the Qt for MCUs sdk dir
2) User chooses which board to configure
3) User provides paths for dependencies
4) User creates Kit

Change-Id: Ia30ca7e245e2500c7650d12ea6768ab6e60d99c7
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-03-09 18:51:05 +00:00
Alessandro Portale
daa9804699 McuSupport: Prepare support for more toolchains than GNU Arm Embedded
Move all hardcoded arm-specific strings and code into the new
McuToolChainPackage class (which will later support IAR and KEIL).

In the same change: Adjust paths in CMake options to latest Qul path
changes in the master branch.

Change-Id: Iefa205729588a3efa783eb9eaaa339ed9f8e2813
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-03-03 11:23:29 +00:00
hjk
3818b44fde De-Q_OBJECT-ify some more settings pages
Change-Id: I4700c9749c12c3fbe3adc9dc702283c8ce545ab2
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-01-17 09:26:12 +00:00
hjk
c75923756a Core: Provide empty implementation for IOptionPageWidget::finish()
Having it pure virtual only lead to a lot of unnecessary
re-implementation.

Change-Id: I37f71d1a160e21b93c7c73a6304b0eb6d5f0441d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-01-15 12:28:29 +00:00
hjk
11c9062cb2 McuSupport: Use new settings page convenience
Change-Id: Id0c525a32b1c8b9e0d8d04da7bcd37c4f1958508
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-01-08 09:49:27 +00:00
Alessandro Portale
8ee93c3a46 McuSupport: Use Utils::InfoLabel in McuSupportOptionsPage
Task-number: QTCREATORBUG-23346
Change-Id: I75cd156db4715b3d55b11e665f46a2f31bbb6b1a
Reviewed-by: hjk <hjk@qt.io>
2019-12-19 16:16:21 +00:00
Alessandro Portale
a44562f676 McuSupport: Check for presence of CMake
If no CMake tool is present, direct the user to the CMake settings,
insted of creating non-functional kits.

Change-Id: I0326b1fd37a0475a3a2983ad6108729b0c54d87c
Reviewed-by: hjk <hjk@qt.io>
2019-12-06 13:38:07 +00:00
Alessandro Portale
2a7a908233 McuSupport: Only (re-)generate kits when on Mcu options page
... less surprises, like for example user is on the Kits page, edits an
existing kit, and that gets overwritten when pressing "Apply"

Change-Id: I2d936b757cb5c891a087854805fa2f056834185f
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-11-22 11:05:53 +00:00
Alessandro Portale
a2355841f5 McuSupport: Rename internal types
"PackageOptions" -> "McuPackage"
"BoardOptions" -> "McuTarget"
"qul" -> "qtForMCUs"

Change-Id: I209cc82c7516fbf6a960b26c440159dbab02a4db
Reviewed-by: hjk <hjk@qt.io>
2019-11-15 08:07:37 +00:00
Alessandro Portale
7f8576d49f McuSupport: Improve kit creation UX
Create a kit only for the currently selected target.
Kits are listed as auto-detected. Extisting, auto-detected kits with
same name get replaced with new ones.

Less text in the UI.

Change-Id: I89f952cc6ff694dc5c2750ebf9a7698d7839ec3a
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-11-13 22:09:21 +00:00
Alessandro Portale
1d1dde0f9b McuSupport: Avoid mix of dir separator styles for CMake parameter
Qt Creator's CMake plugin would otherwise (since recently) open that
"sync" dialog if a configuration path contains back slashes.

Change-Id: I2e333604e22158bdb61c2ca8eb65911295383b52
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-11-12 18:27:54 +00:00
Alessandro Portale
9641de2007 McuSupport: Distinguish "Evaluation" and "Engineering" roles
"Evaluation" and "Engineering" kits need to be set up differently.

Change-Id: I649fed9cbdff248c5cbc69e65a095ced1f25326e
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-11-12 18:14:46 +00:00
Alessandro Portale
ce83b2a93c McuSupport: Unify, simplify and improve kit name creation
Change-Id: I27ffa3d89226eedc8396c37249e124f846a630d3
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-11-12 17:51:05 +00:00
Alessandro Portale
7d14132c8c McuSupport: Create a Qul-Desktop kit
First, hacky step towards supporting the "Qt" target. Such a target now
gets created with correct environment variables and CMake options.

Device type is for now Desktop, but portale thinks we will have a Qul/
Desktop target at some point.

Compiler and Qt version are randomly preselected and certainly need to
be adjusted by the user (for now).

Change-Id: Ie3f6a6e3ce1a46c35687e20a7550ff51b6b1b7c7
Reviewed-by: Aurindam Jana <aurindam.jana@qt.io>
2019-11-04 13:53:38 +00:00
Alessandro Portale
985cd447ab McuSupport: Change "MCU board:" => "Target:" in options page
There is also a (Qt-based) target, which is not a board.

Change-Id: Ib35b1e823a7a1c5e1f578face9fa4953b7a6d89e
Reviewed-by: Aurindam Jana <aurindam.jana@qt.io>
2019-10-30 18:33:03 +00:00
hjk
8d03546d6b Mcu: Compile fix
Change-Id: I45134ffc02adfe770127bd6648ed378fdd616264
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-10-22 14:52:51 +00:00
Alessandro Portale
6bdc6c1584 McuSupport: Split up McuSupportOptionsPage
Move the non-OptionsPage code into a new file for comprehensibility.

Change-Id: I306ae669ec9fdd941f777426420859ee2eb89e95
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-10-22 14:35:34 +00:00
Christian Kandeler
79aedfbb7a McuSupport: Fix warning about unused variable
Change-Id: If0905e2937b02806cf000d9f9d270d87f0a0a370
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-10-21 12:20:43 +00:00
Alessandro Portale
b5942847e2 McuSupport: Set ARM debugger in MCU kits
... create one if necessary.

Change-Id: I0b89d54429834db7b76be0a76d260152efd1ad03
Reviewed-by: hjk <hjk@qt.io>
2019-10-18 10:56:25 +00:00
Alessandro Portale
5b2ca680a7 McuSupport: add /bin path of "stm32CubeProgrammer" to Path
... and make the detection a bit more explicit.

Change-Id: I8dc4f6dbdcc44e4e3cd56e332dd6d5ca6fa12021
Reviewed-by: hjk <hjk@qt.io>
2019-10-17 16:53:30 +00:00
Alessandro Portale
17354cebad McuSupport: Allow PackageOptions to return different path than selected one
... by adding a relativePathModifier property

Change-Id: I5e4a13ffb43566f7ed221dfc926731abc0460853
Reviewed-by: hjk <hjk@qt.io>
2019-10-17 16:53:15 +00:00
Alessandro Portale
c5bcac1cdd McuSupport: Split up package creation in options page
Shorter functions.

Change-Id: Ia984c13d2d6810f194975fa905d0a019415053ea
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-10-14 15:38:15 +00:00
hjk
b0ea4311e8 Short live McuSupport
Medium term to be merged with BareMetal/RemoteLinux/...

Change-Id: I444c65bcfa8e3cf8642ff64e964459720814860a
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-09-30 15:04:32 +00:00