We've been requiring C++17 since Qt 6.0, and our qAsConst use finally
starts to bother us (QTBUG-99313), so time to port away from it
now.
Since qAsConst has exactly the same semantics as std::as_const (down
to rvalue treatment, constexpr'ness and noexcept'ness), there's really
nothing more to it than a global search-and-replace.
Task-number: QTBUG-99313
Change-Id: I88edd91395849574436299b8badda21bb93bea39
Reviewed-by: hjk <hjk@qt.io>
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Task-number: QTBUG-67283
Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
CMake settings were split in two places, which complicates things.
Now they are both into one settings category, just like other build
systems Qbs, Meson.
Change-Id: I55f434d83604c9b3be111fc89014b720ee72b513
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
qtc9 will use new implementation for qtForMCUs 2.3 and newer.
Legacy implementation will be used for older versions.
Change-Id: Ibb2919f25d03d6445b8328e20316d4f88203a463
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Fix crash while automatically restoring kits during startup.
Change packages container to set to avoid duplicates.
Use RAII for McuSdkRepository.
Change-Id: I4b3f4156f0bc770c8a5ea8a171b1f22f6ffb8f96
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
New/legacy implementation will be chosen based on contents
of input json file.
Change-Id: I989fa667c43123f831cc77320684413cab7652df
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Starting with Qt For MCUs 2.0, environment variables are not
used to track dependencies any more, but cmake variables are.
Due to time constraints, we implemented a env-to-cmake mapper
to cover that gap at the moment. This patch removes that hack
and implements tracking dependencies through cmake variables.
Task-number: QTCREATORBUG-26904
Change-Id: Id8553a764d212d9b12e4adc54fc56233bfeb9a5b
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
rename 'type' to 'toolChainType' in McuToolChainPackage
'addToPath' and 'relativePath' set in McuPackage constructor
put McuToolChainPackage methods together in same source file
'detectionPath' type changed from QString to FilePath
renamed boolean getters
Task-number: QTCREATORBUG-26897
Change-Id: If59c299901a169d08efa8f39614ef7c6d48d44ed
Reviewed-by: Piotr Mućko <piotr.mucko@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
It was part of McuPackage, and only used by the SDK instance.
Task-number: QTCREATORBUG-27093
Change-Id: I9d9eaac621e9997129c227fae3ac88b502ba4340
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Several independent classes were mashed together in mcusupportoptions.cpp
This patch moves McuToolChainPackage together with McuPackage,
McuTarget to its own header+source pair, and
McuKitManager to its own header+source pair.
Task-number: QTCREATORBUG-26890
Change-Id: I0b51da4e1cae5a976201dffd290a665eaa318b33
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Introduced Package interface for mocking purposes.
Made some functions visible in headers for testing.
Added basic test skeleton for mcu plugin.
run cmd: `qtcreator -test McuSupport`
Change-Id: I1011d49052bd8c894da393d8a285b241682f1f94
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Also move `packagePathFromSettings` so it can be used from multiple
places. This function will probably move into a separate utility file
in future changes.
Change-Id: I208a5a7bc8aa689829178809a1f4053a961d93be
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: <piotr.mucko@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This is a quick fix for the current situation. Proper
support will need a rewrite of part of the plugin code.
QtQuickUltralite SDK 1.x relies on environment variables
for the dependencies. SDK 2.x uses CMake variables for that purpose.
Some of the variables have been renamed, others grouped together.
Here a mapping between those is hardcoded as an urgent solution.
A proper implementation should make the plugin independent of
the existence or lack of specific environment variables. Also,
all the hardcoded information needs to be moved to the json kit
files in the SDK. Otherwise, compatibility breaks between versions
every time the built-in assumptions relating to that information change.
Task-number: UL-4396
Change-Id: I7f40a694a773881f20b29bae9d02c7c1c8bd747b
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Kits are marked as 'manual', so that user has individual control of each one.
'Remove' button replaced with 'Update' button for manual update.
Task-number: QTCREATORBUG-25259
Change-Id: Iadf5f2da3ef7bee7fb051516ffda7fcefe8b56d8
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>