CMakeProjectManager: Use CMAKE_HOME_DIRECTORY as source directory

The CMakeCache.txt file has CMAKE_HOME_DIRECTORY pointing to the
project source directory used to configure the project.

When importing a cmake build the CMAKE_HOME_DIRECTORY from
CMakeCache.txt might not point to the same CMakeLists.txt that was
opened as a project.

qt-cmake-standalone-test from Qt6 uses a CMake template project which
does a add_subdirectory with the test source directory, which will not
work if opened standalone.

Normally this is a user error though, so ask the user if this was
intended, before actually importing the build.

Task-number: QTBUG-88776
Change-Id: Ifdd5e1d1cb8a1ef9955d22493eba3a1a55dc689f
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Cristian Adam
2020-12-02 19:16:40 +01:00
parent ac378fbe2a
commit 707a3cfaf3
15 changed files with 104 additions and 22 deletions

View File

@@ -134,8 +134,10 @@ QStringList QbsProjectImporter::importCandidates()
return candidates;
}
QList<void *> QbsProjectImporter::examineDirectory(const FilePath &importPath) const
QList<void *> QbsProjectImporter::examineDirectory(const FilePath &importPath,
QString *warningMessage) const
{
Q_UNUSED(warningMessage)
qCDebug(qbsPmLog) << "examining build directory" << importPath.toUserOutput();
QList<void *> data;
const FilePath bgFilePath = importPath.pathAppended(importPath.fileName() + ".bg");

View File

@@ -39,7 +39,7 @@ public:
private:
QStringList importCandidates() override;
QList<void *> examineDirectory(const Utils::FilePath &importPath) const override;
QList<void *> examineDirectory(const Utils::FilePath &importPath, QString *warningMessage) const override;
bool matchKit(void *directoryData, const ProjectExplorer::Kit *k) const override;
ProjectExplorer::Kit *createKit(void *directoryData) const override;
const QList<ProjectExplorer::BuildInfo> buildInfoList(void *directoryData) const override;