diff --git a/doc/images/qtcreator-cmake-build-settings.png b/doc/images/qtcreator-cmake-build-settings.png index 2c2af74c6d0..b099dd05b93 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 81c79256256..7ee79eef32a 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 3cc7c0fca7a..69416b3ad74 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 473b58ed656..04f7ac9c299 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 46cedc3bbd3..6faf60158ad 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 88eac526e02..7cbfcef34ba 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); }