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

@@ -44,8 +44,10 @@ QStringList MesonProjectImporter::importCandidates()
return {};
}
QList<void *> MesonProjectImporter::examineDirectory(const Utils::FilePath &importPath) const
QList<void *> MesonProjectImporter::examineDirectory(const Utils::FilePath &importPath,
QString *warningMessage) const
{
Q_UNUSED(warningMessage)
//TODO, this can be done later
qCDebug(mInputLog()) << "examining build directory" << importPath.toUserOutput();
QList<void *> data;

View File

@@ -43,7 +43,7 @@ public:
private:
// importPath is an existing directory at this point!
QList<void *> examineDirectory(const Utils::FilePath &importPath) const final;
QList<void *> examineDirectory(const Utils::FilePath &importPath, QString *warningMessage) const final;
// will get one of the results from examineDirectory
bool matchKit(void *directoryData, const ProjectExplorer::Kit *k) const final;
// will get one of the results from examineDirectory