Qmake: Simplify use of helper for creation of shadow dir paths

Change-Id: Iabe22a53f51e3475854e47af9e7f7efae6e16d1b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2019-12-04 13:19:34 +01:00
parent 0aa95576c2
commit 1d32219eca
3 changed files with 18 additions and 25 deletions

View File

@@ -77,33 +77,22 @@ namespace QmakeProjectManager {
// Helpers:
// --------------------------------------------------------------------
QString QmakeBuildConfiguration::shadowBuildDirectory(const FilePath &proFilePath, const Kit *k,
FilePath QmakeBuildConfiguration::shadowBuildDirectory(const FilePath &proFilePath, const Kit *k,
const QString &suffix,
BuildConfiguration::BuildType buildType)
{
if (proFilePath.isEmpty())
return QString();
return {};
const QString projectName = proFilePath.toFileInfo().completeBaseName();
ProjectMacroExpander expander(proFilePath, projectName, k, suffix, buildType);
QString projectDir = Project::projectDirectory(proFilePath).toString();
QString buildPath = expander.expand(ProjectExplorerPlugin::buildDirectoryTemplate());
return FileUtils::resolvePath(projectDir, buildPath);
}
static FilePath defaultBuildDirectory(const FilePath &projectPath,
const Kit *k,
const QString &suffix,
BuildConfiguration::BuildType type)
{
return FilePath::fromString(QmakeBuildConfiguration::shadowBuildDirectory(projectPath, k,
suffix, type));
return FilePath::fromString(FileUtils::resolvePath(projectDir, buildPath));
}
const char BUILD_CONFIGURATION_KEY[] = "Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration";
enum { debug = 0 };
QmakeBuildConfiguration::QmakeBuildConfiguration(Target *target, Core::Id id)
: BuildConfiguration(target, id)
{
@@ -193,7 +182,7 @@ void QmakeBuildConfiguration::initialize()
FilePath directory = initialBuildDirectory();
if (directory.isEmpty()) {
directory = defaultBuildDirectory(target()->project()->projectFilePath(),
directory = shadowBuildDirectory(target()->project()->projectFilePath(),
target()->kit(), initialDisplayName(),
initialBuildType());
}
@@ -772,7 +761,8 @@ BuildInfo QmakeBuildConfigurationFactory::createBuildInfo(const Kit *k,
info.buildDirectory = FilePath::fromString(absoluteBuildPath);
} else {
info.buildDirectory = defaultBuildDirectory(projectPath, k, suffix, type);
info.buildDirectory =
QmakeBuildConfiguration::shadowBuildDirectory(projectPath, k, suffix, type);
}
info.buildType = type;
info.extraInfo = QVariant::fromValue(extraInfo);

View File

@@ -65,8 +65,10 @@ public:
void setQMakeBuildConfiguration(QtSupport::BaseQtVersion::QmakeBuildConfigs config);
/// suffix should be unique
static QString shadowBuildDirectory(const Utils::FilePath &profilePath, const ProjectExplorer::Kit *k,
const QString &suffix, BuildConfiguration::BuildType type);
static Utils::FilePath shadowBuildDirectory(const Utils::FilePath &profilePath,
const ProjectExplorer::Kit *k,
const QString &suffix,
BuildConfiguration::BuildType type);
QStringList configCommandLineArguments() const;

View File

@@ -96,9 +96,10 @@ QStringList QmakeProjectImporter::importCandidates()
candidates << pfi.absolutePath();
foreach (Kit *k, KitManager::kits()) {
QFileInfo fi(QmakeBuildConfiguration::shadowBuildDirectory(projectFilePath(), k,
QString(), BuildConfiguration::Unknown));
const QString baseDir = fi.absolutePath();
const FilePath sbdir = QmakeBuildConfiguration::shadowBuildDirectory
(projectFilePath(), k, QString(), BuildConfiguration::Unknown);
const QString baseDir = sbdir.toFileInfo().absolutePath();
foreach (const QString &dir, QDir(baseDir).entryList()) {
const QString path = baseDir + QLatin1Char('/') + dir;