diff --git a/doc/images/qtcreator-cmake-build-settings.png b/doc/images/qtcreator-cmake-build-settings.png index 2c2af74c6d01eabb54486e09bb47e613004ac0fa..b099dd05b936555181f46543da1644f1cdd95dad 100644 Binary files a/doc/images/qtcreator-cmake-build-settings.png and b/doc/images/qtcreator-cmake-build-settings.png differ diff --git a/doc/src/cmake/creator-projects-cmake-building.qdocinc b/doc/src/cmake/creator-projects-cmake-building.qdocinc index 81c7925625640a84011074b8fabc2ed7406a3d02..7ee79eef32a10d05b203b992cbe58fc0ba1eb8f7 100644 --- a/doc/src/cmake/creator-projects-cmake-building.qdocinc +++ b/doc/src/cmake/creator-projects-cmake-building.qdocinc @@ -38,12 +38,17 @@ To view all settings, select the \uicontrol Advanced check box. + To add build settings, select \uicontrol Add, and then select the type of + the setting that you are adding: \uicontrol Boolean, \uicontrol String, + \uicontrol Directory, or \uicontrol File. + To modify the value of a build setting, select it, and then select \uicontrol Edit. The new value is displayed in italics until you save the changes by selecting \uicontrol {Apply Configuration Changes}. Any configuration change might trigger a follow-up configuration change, so keep saving until no more values are displayed in italics. + To reset the changes that you made, select \uicontrol Reset. //! [cmake build configuration] diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp index 3cc7c0fca7a898417a3da8486a99d912d6fe09c3..69416b3ad74e9dee4a9be2f6f5b947c850087daf 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp @@ -250,9 +250,10 @@ QList CMakeProjectImporter::examineDirectory(const Utils::FileName &impo } const auto homeDir = Utils::FileName::fromUserInput(QString::fromUtf8(CMakeConfigItem::valueOf("CMAKE_HOME_DIRECTORY", config))); - if (homeDir != projectDirectory()) { + const Utils::FileName canonicalProjectDirectory = Utils::FileUtils::canonicalPath(projectDirectory()); + if (homeDir != canonicalProjectDirectory) { qCDebug(cmInputLog()) << "Wrong source directory:" << homeDir.toUserOutput() - << "expected:" << projectDirectory().toUserOutput(); + << "expected:" << canonicalProjectDirectory.toUserOutput(); return { }; } diff --git a/src/plugins/cmakeprojectmanager/servermode.cpp b/src/plugins/cmakeprojectmanager/servermode.cpp index 473b58ed6564137243e6dd7c1a39b04f044f9bbf..04f7ac9c299dc0209785619d688bb48109c0d332 100644 --- a/src/plugins/cmakeprojectmanager/servermode.cpp +++ b/src/plugins/cmakeprojectmanager/servermode.cpp @@ -464,7 +464,7 @@ void ServerMode::handleHello(const QVariantMap &data) if (m_minorProtocol >= 0) version.insert("minor", m_minorProtocol); extra.insert("protocolVersion", version); - extra.insert("sourceDirectory", m_sourceDirectory.toString()); + extra.insert("sourceDirectory", m_sourceDirectory.toFileInfo().canonicalFilePath()); extra.insert("buildDirectory", m_buildDirectory.toString()); extra.insert("generator", m_generator); if (!m_platform.isEmpty()) diff --git a/src/plugins/projectexplorer/projectmodels.cpp b/src/plugins/projectexplorer/projectmodels.cpp index 46cedc3bbd39212b97b2cf8c24f06fc77599a7b9..6faf60158adfb465f5e996855e44e0f6fa46a65c 100644 --- a/src/plugins/projectexplorer/projectmodels.cpp +++ b/src/plugins/projectexplorer/projectmodels.cpp @@ -195,6 +195,8 @@ void FlatModel::addOrRebuildProjectModel(Project *project) container->appendChild(new WrapperNode(projectFileNode)); } + container->sortChildren(&sortWrapperNodes); + container->forAllChildren([this](WrapperNode *node) { if (node->m_node) { const QString path = node->m_node->filePath().toString(); diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp index 88eac526e0292fed639d10018834fcf06f213707..7cbfcef34ba3cc54186ec9a78918894d6822c9da 100644 --- a/src/plugins/projectexplorer/projectwindow.cpp +++ b/src/plugins/projectexplorer/projectwindow.cpp @@ -548,6 +548,8 @@ public: dir); FileName path = FileName::fromString(importDir); + Target *lastTarget = nullptr; + BuildConfiguration *lastBc = nullptr; const QList toImport = projectImporter->import(path, false); for (BuildInfo *info : toImport) { Target *target = project->target(info->kitId); @@ -561,8 +563,16 @@ public: BuildConfiguration *bc = info->factory()->create(target, info); QTC_ASSERT(bc, continue); target->addBuildConfiguration(bc); + + lastTarget = target; + lastBc = bc; } } + if (lastTarget && lastBc) { + SessionManager::setActiveBuildConfiguration(lastTarget, lastBc, SetActive::Cascade); + SessionManager::setActiveTarget(project, lastTarget, SetActive::Cascade); + } + qDeleteAll(toImport); }