Commit Graph

23 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
Christian Stenger
6df9e8f8be McuSupport: Fix missing include
Amends 6bdc6c1584.

Change-Id: I13a927c872aac3b7e76d8d2604dbe7a0a8dfadcf
Reviewed-by: David Schulz <david.schulz@qt.io>
2019-10-23 04:48:37 +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