Commit Graph

56 Commits

Author SHA1 Message Date
Eike Ziller
8b8ecfa28f Merge remote-tracking branch 'origin/4.12'
Conflicts:
	src/plugins/cmakeprojectmanager/fileapiparser.cpp

Change-Id: I39f8c2be859be043f506bef77de9bb5b42d38165
2020-06-15 11:30:34 +02:00
Alessandro Portale
e4ded6a08f McuSupport: Enable resetting of path choosers to the default path
This change adds a "reset" button to the path choosers. Pressing it
sets the path to the default path.

The default path is now overwritable by the system settings value (if
present). This way, there is only one and only default path, which
allows us to again simplify McuPackage::writeToSettings().

Task-number: QTCREATORBUG-23860
Change-Id: I192663f3487250b9eba4773d2510abf3f9e66127
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-06-11 09:47:04 +00:00
Eike Ziller
623e607b23 Merge remote-tracking branch 'origin/4.12'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri

Change-Id: I19a7406f7e387b53f1e7b3f08a0b4c89a377ab82
2020-06-08 08:22:10 +02:00
Alessandro Portale
81e0d9da11 McuSupport: Fix a bug in the writing of settings
The plugin wants to only store settings if they differ from the defaults
(e.g. a path was edited by the user).
The original attempt failed. If the user changed the path, stored it,
and then changed the path back to the default, the last change was not
stored.

Therefore, this change actually removes the settings entry if it equals
either the default or the install settings value.

Task-number: QTCREATORBUG-24048
Change-Id: I6ab11f276ae270bb8bbf50ad6d2bc7ea3dba2d7b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-06-04 06:59:57 +00:00
Eike Ziller
aa2aa9bf2a Merge remote-tracking branch 'origin/4.12'
Change-Id: Id1c063ae716c3acf5e6201c15663637040aa9a35
2020-06-03 12:22:18 +02:00
Alessandro Portale
2ba2a0d1d4 McuSupport: Qul v1.2 adjustments
- Bump supported version from 1.1 to 1.2
- Look in Qul_DIR/kits for boards json files (UL-2390)
- Remove "pragma main;" from app template main qml (UL-1708)
- Add a main.cpp for BareMetal and FreeRTOS each (QTCREATORBUG-24063)
- Removed ambiguous armgcc download link (QTCREATORBUG-24052)

Task-number: UL-1708
Task-number: UL-2390
Task-number: QTCREATORBUG-24063
Task-number: QTCREATORBUG-24052
Task-number: QTCREATORBUG-24079
Change-Id: Ieb3d0c22b9099b12f91096b5a90c6e84698be788
Reviewed-by: Christian Kamm <mail@ckamm.de>
2020-05-27 11:47:57 +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
f08fe165ab McuSupport: Read supported targets from SDK .json files
... Replace the current hard-coded list of supported (non-Desktop)
targets.

Task-number: UL-2012
Change-Id: I65851d11eea9f62635d56c42788caeae8a77a4f3
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-05-14 13:37:46 +00:00
Eike Ziller
20ef5c6de3 Merge remote-tracking branch 'origin/4.12'
Change-Id: Ibbf9f16677a58bdcdd3ce63701ffa34db6f44916
2020-05-11 11:36:22 +02:00
Alessandro Portale
eccf1269ac McuSupport: Add support for creating FreeRTOS kits
Besides Baremetal, Qt for MCUs also supports FreeRTOS for a few targets.
This change:

- shows the FreeRTOS source path chooser
- set the FreeRTOS source path as kit environment variable
- sets OS=FreeRTOS in the kit CMake configuration and kit meta data

Task-number: QTCREATORBUG-23938
Change-Id: I69cbd4f9b6b4a842788a8dad57905ef517b8b1d5
Reviewed-by: Rainer Keller <Rainer.Keller@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-05-06 16:36:24 +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
185f03cb33 McuSupport: Identify existing Kits for MCU Targets via meta data
... instead of just by kit name.

Although the Kit name is quite verbose, it is missing some of the
information needed to realiably identify Kits for MCU Targets. Use the
Kit meta data for that, instead.

This adds the color depth to the kit meta data.

Change-Id: I39bc9a681a423a4309290b0f47298dbcb83b2e54
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-04-28 08:51:41 +00: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
Eike Ziller
602d690bab Merge remote-tracking branch 'origin/4.12'
Change-Id: Ie35e9959693b6f6f78509eea5b259d6493ef87f2
2020-04-17 08:09:55 +02:00
Alessandro Portale
f2f65be346 McuSupport: Fix RH850 kit issues
- Let user provide Green Hills Software Compiler and
  Renesas Graphics Library
- Set GHS_COMPILER_DIR and RGL_DIR instead of ARMGCC_DIR and
  SEGGER_JLINK_SOFTWARE_AND_DOCUMENTATION_PATH
- Don't set Kit compilers
- Do not set CMAKE_CXX_COMPILER and CMAKE_C_COMPILER
- Set ghs.cmake as CMake toolchain file

For the RGL package, McuPackage::updateStatus() was extended to be able
to work without a provided "detection path".

Task-number: QTCREATORBUG-23822
Change-Id: I5b666c258a965ce55047111fbbeca80271170892
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-04-14 12:51:40 +00:00
Alessandro Portale
f0f12fabd6 McuSupport: Fix Desktop kit issues
- Use "Desktop" instead of "Qt" in kit name
- Set the right kit toolchain (and debugger)
- Unset Qt Version (and hide it from kit)
- Prepend Qul_DIR/bin to environment PATH (if no CMake fileApi)

This also gets rid of the ugly mcuTargetIsDesktop() function
in favor of the new McuToolChainPackage::TypeDesktop

Task-number: QTCREATORBUG-23820
Change-Id: I5af61d5b0f414b4441239494e99b0b15088eee76
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2020-04-14 12:45:03 +00:00
Eike Ziller
deb0eaf795 Merge remote-tracking branch 'origin/4.12'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp

Change-Id: I34c3d1fd5be90537e37d15e00b1a0d455d1bf81d
2020-04-14 09:47:38 +02:00
hjk
68c539bb9d Utils: Replace FileChooser::path() by filePath().toString()
Keep the old method for now to ease downstream porting.

The change is kept mechanical, there's a lot of cleanup possible now
on the user code side.

Change-Id: I936baedd45b7ba057f1c789a1bec896886f48eff
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2020-04-09 17:45:06 +00:00
Alessandro Portale
c1f08cca86 McuSupport: Add SDK version to kit name (and to kit data)
First step towards Qt for MCUs SDK version handling.

Task-number: QTCREATORBUG-23823
Change-Id: I125fe841d9355aa26b4e4701ac9a5fec31987e08
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-04-07 08:26:16 +00:00
Alessandro Portale
a02b6e3e7d McuSupport: Register Qt for MCUs examples
This change introduces the registration of examples (or rather demos) of
the Qt for MCUs SDK at the launch time of Qt Creator.

This presumes that either the SDK installer set the Qt for MCUs SDK path
(which is the default use-case) or that the user selected/changed the
SDK path in a prior run of Qt Creator.

Task-number: UL-1218
Change-Id: I6484d3e3065f501da4cd6faccfe02605003f6cbf
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-04-06 14:12:46 +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
Eike Ziller
9e0009803c Fix lupdate issues
Change-Id: I26f08ae82354c178f6d26f9138796328b50bfba8
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2020-03-18 10:45:15 +00:00
Alessandro Portale
550e4bb98c McuSupport: Prepare for dynamic targets detection of SDK
Move around some code to keep the following changes understandable.

Task-number: UL-2012
Change-Id: Ib05699b893d2f7d1cf846507adb198b893187954
Reviewed-by: hjk <hjk@qt.io>
2020-03-17 09:29:21 +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
Alessandro Portale
888d804826 McuSupport: Adjust Kit parameters to changes for Qul 1.1
Qt for MCUs 1.1 gets a new directory and build system structure. Sha
807a3d2 in the Qt for MCUs repository introduces the change.

This patch adjusts the parameters of the generated kits accordingly,
which means that Qt Creator (master/4.12-beta1) will from this commit on
not support Qt for MCUs 1.0.1, anymore.

Change-Id: I20ded1bc28a2ffe30b59e8bce4a17bc38bb76a79
Reviewed-by: hjk <hjk@qt.io>
2020-02-10 12:32:43 +00:00
Alessandro Portale
fcfb0fbf80 McuSupport: Remove Engineering packages/targets
The resulting kits are at the moment not functional. They will be revamped
as soon as the new QUL 1.1 package structure is in place, the plugin is
able to parse the upcoming meta data and when I am understanding how
exactly an engineering kit needs to look like.

Change-Id: If21bc6f5301369e4bba077faad32d934c04409a2
Reviewed-by: hjk <hjk@qt.io>
2020-02-06 17:33:00 +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
9eed77fe86 McuSupport: Set jom via CMAKE_MAKE_PROGRAM instead of adding it to Path
Let's add less to the Path variable of the Kit's build environment. If
jom.exe is present, define it via CMAKE_MAKE_PROGRAM, set the CMake
Generator to Jom and hide the CMake Generator setting.

Change-Id: I58de73dc631f753d3e5c1706e593afb923fcb588
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2019-12-06 20:08:13 +00:00
Alessandro Portale
efa857e693 McuSupport: Fix compilation
Change-Id: I5cd32e709e635e3f09c5787e18d1141cac2ddf4c
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-11-28 20:14:05 +00:00
Alessandro Portale
5351652e88 McuSupport: Fix case of path variable in Kit environment
Linux calls it "PATH" and is case sensitive.

Change-Id: Ic53c0bd4a9135eef21dc5f771022ab5277fe35a8
Reviewed-by: hjk <hjk@qt.io>
2019-11-28 19:41:43 +00:00
Alessandro Portale
b0977c97f2 McuSupport: More robust search for installations in "ProgramFiles"
Search in 32-bit and 64-bit locations.

Change-Id: If267da24fa68e6d1b30e4ef6eb29b374e42693dc
Reviewed-by: hjk <hjk@qt.io>
2019-11-28 11:04:45 +00:00
Alessandro Portale
1b89d4ba53 McuSupport: Rename package key QtMCUSdk -> Package_QtForMCUsSdk
...final name. Forever.

Task-number: QTBUG-80242
Change-Id: Id9fe7001738e2fd5f4f08c3cd02a78dbf9c45e7d
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-11-22 11:06:09 +00:00
Alessandro Portale
f8f6f53960 McuSupport: Add optional color depth (bpp) property to McuTarget
...include that in kit names and add it as "QUL_COLOR_DEPTH" CMake
parameter.

Change-Id: I14ba7ce465c54d525683be2660d2e24b6ecfed6c
Reviewed-by: hjk <hjk@qt.io>
2019-11-21 07:49:10 +00:00
Alessandro Portale
b738a9d02d McuSupport: Reduce omnipotence of McuTarget's constructor
... add some setters for optional properties.

Change-Id: I4e1814c36f8294af86bf30d8538f450bc7f70b2b
Reviewed-by: hjk <hjk@qt.io>
2019-11-21 07:48:25 +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
631efb8611 McuSupport: Use the official product name "Qt for MCUs" a bit more
... for the Kit names and the SDK path label

Change-Id: Idb87b20c944760e599df5edb4b1eafc7d28bde92
Reviewed-by: hjk <hjk@qt.io>
2019-11-14 11:30:22 +00:00
Alessandro Portale
4973af165e McuSupport: Unify and clean-up strings that end up in the settings
Change-Id: I65c10f6865f8f2a4670c5bc9a8c7269488dd937e
Reviewed-by: Aurindam Jana <aurindam.jana@qt.io>
2019-11-14 11:29:56 +00:00
Alessandro Portale
0d35690682 McuSupport: Assign "QtMCU Qt Desktop" kit the QtMCU icon
It is in fact more a QtMCU kit than a (Desktop) Qt kit.

Change-Id: If55699c13f76f75b8326074f9d7c1989f571dd7c
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-11-13 22:43:57 +00:00
Alessandro Portale
a035635f1f McuSupport: Add compilers to CMake configuration
To get rid of the warning triangle on the kit icon, CMAKE_CXX_COMPILER
and CMAKE_C_COMPILER get defined.

Change-Id: I40ee47e4059e8986557609048f465972985e3d5b
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-11-13 22:40:18 +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
aaef25f708 McuSupport: Set Kit's CMAKE_PREFIX_PATH for Desktop version
... make sure that CMake really finds the right Qt installation

Change-Id: I90083e4522111eac9b3658f4351536cfc798bf98
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Aurindam Jana <aurindam.jana@qt.io>
2019-11-07 12:38:35 +00:00
Alessandro Portale
af6ec7943e McuSupport: Tag "board" and Kit with vendor name
Needed for an upcoming hack, but also later when we "zero-config"
the boards.

Change-Id: I240cc252ebba458cab71db24740266756d0e8b37
Reviewed-by: Aurindam Jana <aurindam.jana@qt.io>
2019-11-04 17:47:57 +00:00
Alessandro Portale
ebc2628116 McuSupport: Adjust default path for SEGGER JLink
Change-Id: Iace2010f35bbaad3d1db749d6e05e2faa347c803
Reviewed-by: Aurindam Jana <aurindam.jana@qt.io>
2019-11-04 15:36:52 +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