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

@@ -67,6 +67,9 @@ public:
void runCMakeWithExtraArguments();
void setSourceDirectory(const Utils::FilePath& path);
Utils::FilePath sourceDirectory() const;
signals:
void errorOccurred(const QString &message);
void warningOccurred(const QString &message);
@@ -133,5 +136,13 @@ public:
InitialCMakeArgumentsAspect();
};
class SourceDirectoryAspect final : public Utils::StringAspect
{
Q_OBJECT
public:
SourceDirectoryAspect();
};
} // namespace Internal
} // namespace CMakeProjectManager