diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp index 5bccebeb855..cca243d66a6 100644 --- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp +++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp @@ -77,33 +77,22 @@ namespace QmakeProjectManager { // Helpers: // -------------------------------------------------------------------- -QString QmakeBuildConfiguration::shadowBuildDirectory(const FilePath &proFilePath, const Kit *k, - const QString &suffix, - BuildConfiguration::BuildType buildType) +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,9 +182,9 @@ void QmakeBuildConfiguration::initialize() FilePath directory = initialBuildDirectory(); if (directory.isEmpty()) { - directory = defaultBuildDirectory(target()->project()->projectFilePath(), - target()->kit(), initialDisplayName(), - initialBuildType()); + directory = shadowBuildDirectory(target()->project()->projectFilePath(), + target()->kit(), initialDisplayName(), + initialBuildType()); } setBuildDirectory(directory); @@ -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); diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h index a1c161d6096..c1fd8420e22 100644 --- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h +++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h @@ -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; diff --git a/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp b/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp index d082961d522..2af28afa03d 100644 --- a/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp @@ -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;