Commit Graph

27 Commits

Author SHA1 Message Date
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
Alessandro Portale
dd505ef413 McuSupport: Change version checking from exact == to >= minimum
So far, one Qt Creator version supported exactly one Qt for MCUs
version, mainly because of incompatibilities in-between Qt for MCUs
versions.

The compatibility of 1.2 with 1.3 and further is now deemed stable
enough to loosen the version checking.

This change replaces the exact versions comparison (between Qt for MCUs
SDK version and what Qt Creator supports) to a minimum version check of
what Qt Creator supports.

One limitation that remains is that you can only have one kit per target,
across the supported Qt for MCUs versions. To mend this, UI changes are
required (in a separate commit).
Workaround for now: If you want e.g. Desktop Kits for different Qt for
MCUs versions at the same time, you need to work with kit clones.

Task-number: QTCREATORBUG-24293
Change-Id: Ifd31cd2eadbc1d7fa02415e1928d0047cf007f7c
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-07-06 08:24:20 +00:00
Alessandro Portale
6fec04d6de McuSupport: Find default FreeRTOS dir inside pre-installed board SDK
Qt for MCUs 1.3 ships the board/MCU SDKs, and also adds the subdir to
the FreeRTOS component inside the board/MCU SDKs as "boardSdkSubDir" to
the .json files (see: UL-2760).

Task: Qt Creator needs to lookup that "boardSdkSubDir" value and use it
to construct a default path for the FreeRTOS path.

Task-number: QTCREATORBUG-24300
Change-Id: Ie3c8186b76443d5fe3640226ea61aa8b14779d54
Reviewed-by: Rainer Keller <Rainer.Keller@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-07-06 07:51:48 +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
Alessandro Portale
8017093ed5 McuSupport: Read *_FREERTOS_DIR values from .json
Instead of from a hard-coded list.

Task-number: QTCREATORBUG-24296
Change-Id: Ib74fd854f035d561b8a568987984a2a2cb730175
Reviewed-by: Rainer Keller <Rainer.Keller@qt.io>
2020-07-02 14:31:12 +00:00
Alessandro Portale
349e525031 McuSupport: Skip Renesas' "RGL" board SDK
ghs-renesas-rh850-d1m1a.json lists "boardSdk/envVar": "RGL_DIR".
However, that dependency is already handled as vendorSdk. This and the
other board SDKs differ so much, that we simply keep "RGL" as vendorSdk
and skip it when creating board SDKs.

Amends c43ef81d4f

Task-number: QTCREATORBUG-24201
Change-Id: I052d50f413ecc5f318d4146c207ab690acf1b1f5
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-07-02 06:44:57 +00:00
Alessandro Portale
c43ef81d4f McuSupport: Add MCU/Board SDK package to kits
In order to access target specific APIs/services, one needs a vendor
specific SDK. In Qt for MCUs, these SDKs get integrated to the build
system by a couple of environment variables.

Some examples: EVKB_IMXRT1050_SDK_PATH, STM32Cube_FW_H7_SDK_PATH,
STM32_CUBE_L4_INSTALL_PATH, etc.

This patch adds a path chooser for MCU/Board Sdk installations to the
McuSupport Kit creation settings page. The selected path is set as
environoment variable in the Kits settings.

A fix in parseDescriptionJson was needed to read the boardSdk/envVar.

Task-number: QTCREATORBUG-24201
Change-Id: I4ceb9ce0f54e321646bbdeb256703011583feefb
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-06-30 12:05:56 +00:00
Eike Ziller
7c329e1902 Merge remote-tracking branch 'origin/4.12'
Change-Id: I4935b6afdb13627f32e850a4c8b536de0269bc4b
2020-06-25 09:28:57 +02:00
Alessandro Portale
82bc519b7e McuSupport: Display the expected Qt for MCUs SDK version number
Reduce the confusion around the Qt for MCUs version that is currently
supported in this Qt Creator version.

Change-Id: I21e88bfacc7502244aec49e829a1dfff0075226f
Reviewed-by: hjk <hjk@qt.io>
2020-06-23 13:01:42 +00:00
Alessandro Portale
92139f18b0 McuSupport: Improve version checking, support Desktop-only installation
Due to the missing .json file for desktop targets, the Desktop target
was only listed in the target chooser if at least one hardware target
(which do have .json files) was installed in the SDK. This prevented
using of Desktop-only Qt for MCUs installations.

This change causes the Desktop target to be listed if the respective
library exists. With a Desktop-only Qt for MCUs installation, this means
that we blindly trust that the selected Qt for MCUs SDK version is
supported.

On the other hand we make the version checking stricter (in case we do
find .json files). If the version of one targets does not match, the
whole SDK installation is deemed invalid and no target is listed, also
none for Desktop.

Change-Id: I9d83b22255c19c5f8c6360e0b6137ce40311f8c4
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-06-22 18:27:20 +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
8292807e0d Merge remote-tracking branch 'origin/4.12'
Conflicts:
	src/plugins/android/androidextralibrarylistmodel.cpp

Change-Id: Ica69c24e83deff819e640dcb4c2682a554d8a2d2
2020-05-19 15:23:16 +02:00
hjk
709b57481e Mcu: Remove unused functions
Last and only users are gone with f08fe165ab.

Change-Id: Id5ff577ce3d1c8c47269536eca2140c9340c5b03
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-05-19 06:39:48 +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
Christian Stenger
0767107c55 McuSupport: Fix compile for gcc 5.3
Change-Id: I389330addba4b4516eb5da8f72b41b56f612888a
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-05-15 05:20:01 +00: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
Christian Kandeler
eb96f9900a Fix clang 10 warnings about unnecessary copies in range loops
Change-Id: I3b57869b5a04528518bc432b76768b01e3f53e81
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-05-12 13:45:43 +00:00
Alessandro Portale
a5074ac987 McuSupport: Add FreeRTOS variations to hardcoded list of targets
Task-number: QTCREATORBUG-23938
Change-Id: I73ca401bd323bd001fa5e05c33783307c94f10be
Reviewed-by: Rainer Keller <Rainer.Keller@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-05-06 16:36:53 +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
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
7b188a6fff McuSupport: Use MCUXpresso IDE instead of SEGGER JLink for NXP kits
Qt for MCUs for NXP, now requires MCUXpresso in order to flash and run,
instead of SEGGER JLink. This change adjusts the kit creation
accordingly.

Task-number: QTCREATORBUG-23821
Change-Id: I0f5e375d052246ba033f0f2f81a7bad1805df02e
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:03 +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
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
Christian Stenger
62ac17e608 McuSupport: Fix build with gcc 5.3
Change-Id: Id9000f4c4874a7dadee79fafdeec0e4485e175ef
Reviewed-by: hjk <hjk@qt.io>
2020-03-19 13:39:07 +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
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