forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -350,6 +350,7 @@ McuSupportOptions::McuSupportOptions(QObject *parent)
|
|||||||
PackageOptions* seggerJLinkPackage = createSeggerJLinkPackage();
|
PackageOptions* seggerJLinkPackage = createSeggerJLinkPackage();
|
||||||
|
|
||||||
toolchainPackage = armGccPackage;
|
toolchainPackage = armGccPackage;
|
||||||
|
qulSdkPackage = qulPackage;
|
||||||
|
|
||||||
auto stmEvalPackages = {
|
auto stmEvalPackages = {
|
||||||
armGccPackage, stm32CubeProgrammerPackage, qulPackage};
|
armGccPackage, stm32CubeProgrammerPackage, qulPackage};
|
||||||
@@ -442,12 +443,12 @@ static bool isDesktop(const BoardOptions* board)
|
|||||||
return board->qulPlatform() == "Qt";
|
return board->qulPlatform() == "Qt";
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setKitProperties(const McuSupportOptions *options, ProjectExplorer::Kit *k,
|
static void setKitProperties(const QString &kitName, ProjectExplorer::Kit *k,
|
||||||
const BoardOptions* board)
|
const BoardOptions* board)
|
||||||
{
|
{
|
||||||
using namespace ProjectExplorer;
|
using namespace ProjectExplorer;
|
||||||
|
|
||||||
k->setUnexpandedDisplayName(options->kitName(board));
|
k->setUnexpandedDisplayName(kitName);
|
||||||
k->setValue(Constants::KIT_BOARD_VENDOR_KEY, board->vendor());
|
k->setValue(Constants::KIT_BOARD_VENDOR_KEY, board->vendor());
|
||||||
k->setValue(Constants::KIT_BOARD_MODEL_KEY, board->model());
|
k->setValue(Constants::KIT_BOARD_MODEL_KEY, board->model());
|
||||||
k->setAutoDetected(false);
|
k->setAutoDetected(false);
|
||||||
@@ -523,15 +524,15 @@ static void setKitEnvironment(ProjectExplorer::Kit *k, const BoardOptions* board
|
|||||||
EnvironmentKitAspect::setEnvironmentChanges(k, changes);
|
EnvironmentKitAspect::setEnvironmentChanges(k, changes);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setKitCMakeOptions(ProjectExplorer::Kit *k, const BoardOptions* board)
|
static void setKitCMakeOptions(ProjectExplorer::Kit *k, const BoardOptions* board,
|
||||||
|
const QString &qulDir)
|
||||||
{
|
{
|
||||||
using namespace CMakeProjectManager;
|
using namespace CMakeProjectManager;
|
||||||
|
|
||||||
CMakeConfig config = CMakeConfigurationKitAspect::configuration(k);
|
CMakeConfig config = CMakeConfigurationKitAspect::configuration(k);
|
||||||
if (!board->toolChainFile().isEmpty())
|
if (!board->toolChainFile().isEmpty())
|
||||||
config.append(CMakeConfigItem("CMAKE_TOOLCHAIN_FILE",
|
config.append(CMakeConfigItem("CMAKE_TOOLCHAIN_FILE",
|
||||||
("%{CurrentBuild:Env:Qul_DIR}/" +
|
(qulDir + "/" + board->toolChainFile()).toUtf8()));
|
||||||
board->toolChainFile()).toUtf8()));
|
|
||||||
if (!board->qulPlatform().isEmpty())
|
if (!board->qulPlatform().isEmpty())
|
||||||
config.append(CMakeConfigItem("QUL_PLATFORM",
|
config.append(CMakeConfigItem("QUL_PLATFORM",
|
||||||
board->qulPlatform().toUtf8()));
|
board->qulPlatform().toUtf8()));
|
||||||
@@ -560,17 +561,18 @@ ProjectExplorer::Kit *McuSupportOptions::kit(const BoardOptions* board)
|
|||||||
});
|
});
|
||||||
if (!kit) {
|
if (!kit) {
|
||||||
const QString armGccPath = toolchainPackage->path();
|
const QString armGccPath = toolchainPackage->path();
|
||||||
const auto init = [this, board, &armGccPath](Kit *k) {
|
const QString qulDir = qulSdkPackage->path();
|
||||||
|
const auto init = [this, board](Kit *k) {
|
||||||
KitGuard kitGuard(k);
|
KitGuard kitGuard(k);
|
||||||
|
|
||||||
setKitProperties(this, k, board);
|
setKitProperties(kitName(board), k, board);
|
||||||
if (!isDesktop(board)) {
|
if (!isDesktop(board)) {
|
||||||
setKitToolchains(k, armGccPath);
|
setKitToolchains(k, toolchainPackage->path());
|
||||||
setKitDebugger(k, armGccPath);
|
setKitDebugger(k, toolchainPackage->path());
|
||||||
setKitDevice(k);
|
setKitDevice(k);
|
||||||
}
|
}
|
||||||
setKitEnvironment(k, board);
|
setKitEnvironment(k, board);
|
||||||
setKitCMakeOptions(k, board);
|
setKitCMakeOptions(k, board, qulSdkPackage->path());
|
||||||
|
|
||||||
k->setup();
|
k->setup();
|
||||||
k->fix();
|
k->fix();
|
||||||
|
@@ -131,6 +131,7 @@ public:
|
|||||||
QVector<PackageOptions*> packages;
|
QVector<PackageOptions*> packages;
|
||||||
QVector<BoardOptions*> boards;
|
QVector<BoardOptions*> boards;
|
||||||
PackageOptions *toolchainPackage = nullptr;
|
PackageOptions *toolchainPackage = nullptr;
|
||||||
|
PackageOptions *qulSdkPackage = nullptr;
|
||||||
|
|
||||||
QString kitName(const BoardOptions* board) const;
|
QString kitName(const BoardOptions* board) const;
|
||||||
|
|
||||||
|
@@ -160,6 +160,7 @@ void McuSupportOptionsPage::apply()
|
|||||||
package->writeToSettings();
|
package->writeToSettings();
|
||||||
|
|
||||||
QTC_ASSERT(m_options->toolchainPackage, return);
|
QTC_ASSERT(m_options->toolchainPackage, return);
|
||||||
|
QTC_ASSERT(m_options->qulSdkPackage, return);
|
||||||
|
|
||||||
const QVector<BoardOptions*> validBoards = m_options->validBoards();
|
const QVector<BoardOptions*> validBoards = m_options->validBoards();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user