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

View File

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

View File

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