From c41404728ae4cdcbb98dcdb47ac469b7e7f40625 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Thu, 15 Dec 2016 13:39:00 +0100 Subject: [PATCH] CMake: Always list CMakeLists.txt files Always list CMakeLists.txt files, even if CMake thinks they are part of its own modules. This unbreaks opening the cmake project with a cmake built from those sources. Change-Id: Ia7245aa0fa39854fe228cdff75b2256115545b39 Reviewed-by: Tim Jenssen --- src/plugins/cmakeprojectmanager/servermodereader.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/plugins/cmakeprojectmanager/servermodereader.cpp b/src/plugins/cmakeprojectmanager/servermodereader.cpp index 0ad46c6b1ee..24b832cbb92 100644 --- a/src/plugins/cmakeprojectmanager/servermodereader.cpp +++ b/src/plugins/cmakeprojectmanager/servermodereader.cpp @@ -291,6 +291,7 @@ void ServerModeReader::generateProjectTree(CMakeListsNode *root, QList cmakeFilesBuild; QList cmakeFilesOther; QList cmakeLists; + foreach (FileNode *fn, m_cmakeInputsFileNodes) { const FileName path = fn->filePath(); if (path.fileName().compare("CMakeLists.txt", HostOsInfo::fileNameCaseSensitivity()) == 0) @@ -511,8 +512,11 @@ void ServerModeReader::extractCMakeInputsData(const QVariantMap &data) const FileName sfn = FileName::fromString(QDir::cleanPath(srcDir.absoluteFilePath(s))); const int oldCount = m_cmakeFiles.count(); m_cmakeFiles.insert(sfn); - if (!isCMake && oldCount < m_cmakeFiles.count()) + if (oldCount < m_cmakeFiles.count() && (!isCMake || sfn.toString().endsWith("/CMakeLists.txt"))) { + // Always include CMakeLists.txt files, even when cmake things these are part of its + // stuff. This unbreaks cmake binaries running from their own build directory. m_cmakeInputsFileNodes.append(new FileNode(sfn, FileType::Project, isTemporary)); + } } } }