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>
This commit is contained in:
Alessandro Portale
2020-04-09 23:50:03 +02:00
parent 7b188a6fff
commit f2f65be346
3 changed files with 72 additions and 12 deletions

View File

@@ -98,6 +98,50 @@ static McuToolChainPackage *createArmGccPackage()
return result;
}
static McuToolChainPackage *createGhsToolchainPackage()
{
const char envVar[] = "GHS_COMPILER_DIR";
const QString defaultPath =
qEnvironmentVariableIsSet(envVar) ? qEnvironmentVariable(envVar) : QDir::homePath();
auto result = new McuToolChainPackage(
"Green Hills Compiler",
defaultPath,
Utils::HostOsInfo::withExecutableSuffix("ccv850"),
"GHSToolchain",
McuToolChainPackage::TypeGHS);
result->setEnvironmentVariableName(envVar);
return result;
}
static McuPackage *createRGLPackage()
{
const char envVar[] = "RGL_DIR";
QString defaultPath;
if (qEnvironmentVariableIsSet(envVar)) {
defaultPath = qEnvironmentVariable(envVar);
} else if (Utils::HostOsInfo::isWindowsHost()) {
defaultPath = QDir::rootPath() + "Renesas_Electronics/D1x_RGL";
if (QFileInfo::exists(defaultPath)) {
const QFileInfoList subDirs =
QDir(defaultPath).entryInfoList({QLatin1String("rgl_ghs_D1Mx_*")},
QDir::Dirs | QDir::NoDotAndDotDot);
if (subDirs.count() == 1)
defaultPath = subDirs.first().filePath() + '/';
}
}
auto result = new McuPackage(
"Renesas Graphics Library",
defaultPath,
{},
"RGL");
result->setEnvironmentVariableName(envVar);
return result;
}
static McuPackage *createStm32CubeFwF7SdkPackage()
{
auto result = new McuPackage(
@@ -180,22 +224,25 @@ void hardcodedTargetsAndPackages(const Utils::FilePath &dir, QVector<McuPackage
QVector<McuTarget *> *mcuTargets)
{
McuToolChainPackage* armGccPackage = Sdk::createArmGccPackage();
McuToolChainPackage *ghsToolchainPackage = createGhsToolchainPackage();
McuToolChainPackage* desktopToolChainPackage = createDesktopToolChainPackage();
McuPackage* stm32CubeFwF7SdkPackage = Sdk::createStm32CubeFwF7SdkPackage();
McuPackage* stm32CubeProgrammerPackage = Sdk::createStm32CubeProgrammerPackage();
McuPackage* evkbImxrt1050SdkPackage = Sdk::createEvkbImxrt1050SdkPackage();
McuPackage *mcuXpressoIdePackage = createMcuXpressoIdePackage();
McuPackage *rglPackage = createRGLPackage();
QVector<McuPackage*> stmEvalPackages = {
armGccPackage, stm32CubeProgrammerPackage};
QVector<McuPackage*> nxpEvalPackages = {
armGccPackage, mcuXpressoIdePackage};
QVector<McuPackage*> renesasEvalPackages = {
armGccPackage, mcuXpressoIdePackage};
ghsToolchainPackage, rglPackage};
QVector<McuPackage*> desktopPackages = {};
*packages = {
armGccPackage, desktopToolChainPackage, stm32CubeFwF7SdkPackage, stm32CubeProgrammerPackage,
evkbImxrt1050SdkPackage, mcuXpressoIdePackage};
armGccPackage, desktopToolChainPackage, ghsToolchainPackage,
stm32CubeFwF7SdkPackage, stm32CubeProgrammerPackage, evkbImxrt1050SdkPackage,
mcuXpressoIdePackage, rglPackage};
const QString vendorStm = "STM";
const QString vendorNxp = "NXP";
@@ -212,7 +259,7 @@ void hardcodedTargetsAndPackages(const Utils::FilePath &dir, QVector<McuPackage
{vendorNxp, {"MIMXRT1050-EVK"}, nxpEvalPackages, armGccPackage, {16}},
{vendorNxp, {"MIMXRT1064-EVK"}, nxpEvalPackages, armGccPackage, {16}},
{vendorQt, {"Qt"}, desktopPackages, desktopToolChainPackage, {32}},
{vendorRenesas, {"RH850-D1M1A"}, renesasEvalPackages, armGccPackage, {32}},
{vendorRenesas, {"RH850-D1M1A"}, renesasEvalPackages, ghsToolchainPackage, {32}},
{vendorStm, {"STM32F469I-DISCOVERY"}, stmEvalPackages, armGccPackage, {24}},
{vendorStm, {"STM32F7508-DISCOVERY"}, stmEvalPackages, armGccPackage, {32, 16}},
{vendorStm, {"STM32F769I-DISCOVERY"}, stmEvalPackages, armGccPackage, {32}},