CMake: Cleanup QString/FileName conversions

Change-Id: Ifba5afcc98823aea2f789b65b6be4de8ebf050a1
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
This commit is contained in:
Orgad Shaneh
2015-01-31 21:05:34 +02:00
committed by Orgad Shaneh
parent 38ec4dd6ae
commit 067ea9cdd6

View File

@@ -57,26 +57,25 @@ namespace Internal {
const char USE_NINJA_KEY[] = "CMakeProjectManager.CMakeBuildConfiguration.UseNinja"; const char USE_NINJA_KEY[] = "CMakeProjectManager.CMakeBuildConfiguration.UseNinja";
static QString shadowBuildDirectory(const QString &projectFilePath, const Kit *k, const QString &bcName) static FileName shadowBuildDirectory(const FileName &projectFilePath, const Kit *k, const QString &bcName)
{ {
if (projectFilePath.isEmpty()) if (projectFilePath.isEmpty())
return QString(); return FileName();
QFileInfo info(projectFilePath);
const QString projectName = FileName::fromString(info.absolutePath()).fileName(); const QString projectName = projectFilePath.fileName();
ProjectMacroExpander expander(projectName, k, bcName); ProjectMacroExpander expander(projectName, k, bcName);
QDir projectDir = QDir(Project::projectDirectory(FileName::fromString(projectFilePath)).toString()); QDir projectDir = QDir(Project::projectDirectory(projectFilePath).toString());
QString buildPath = expander.expand(Core::DocumentManager::buildDirectory()); QString buildPath = expander.expand(Core::DocumentManager::buildDirectory());
return QDir::cleanPath(projectDir.absoluteFilePath(buildPath)); return FileName::fromUserInput(projectDir.absoluteFilePath(buildPath));
} }
CMakeBuildConfiguration::CMakeBuildConfiguration(ProjectExplorer::Target *parent) : CMakeBuildConfiguration::CMakeBuildConfiguration(ProjectExplorer::Target *parent) :
BuildConfiguration(parent, Core::Id(Constants::CMAKE_BC_ID)), m_useNinja(false) BuildConfiguration(parent, Core::Id(Constants::CMAKE_BC_ID)), m_useNinja(false)
{ {
CMakeProject *project = static_cast<CMakeProject *>(parent->project()); CMakeProject *project = static_cast<CMakeProject *>(parent->project());
setBuildDirectory(Utils::FileName::fromString(shadowBuildDirectory(project->projectFilePath().toString(), setBuildDirectory(shadowBuildDirectory(project->projectFilePath(),
parent->kit(), parent->kit(),
displayName()))); displayName()));
} }
CMakeBuildConfiguration::CMakeBuildConfiguration(ProjectExplorer::Target *parent, CMakeBuildConfiguration::CMakeBuildConfiguration(ProjectExplorer::Target *parent,
@@ -170,10 +169,11 @@ QList<ProjectExplorer::BuildInfo *> CMakeBuildConfigurationFactory::availableSet
const QString &projectPath) const const QString &projectPath) const
{ {
QList<ProjectExplorer::BuildInfo *> result; QList<ProjectExplorer::BuildInfo *> result;
CMakeBuildInfo *info = createBuildInfo(k, ProjectExplorer::Project::projectDirectory(Utils::FileName::fromString(projectPath)).toString()); const FileName projectPathName = FileName::fromString(projectPath);
CMakeBuildInfo *info = createBuildInfo(k, ProjectExplorer::Project::projectDirectory(projectPathName).toString());
//: The name of the build configuration created by default for a cmake project. //: The name of the build configuration created by default for a cmake project.
info->displayName = tr("Default"); info->displayName = tr("Default");
info->buildDirectory = FileName::fromString(shadowBuildDirectory(projectPath, k, info->displayName)); info->buildDirectory = shadowBuildDirectory(projectPathName, k, info->displayName);
result << info; result << info;
return result; return result;
} }
@@ -188,10 +188,10 @@ ProjectExplorer::BuildConfiguration *CMakeBuildConfigurationFactory::create(Proj
CMakeBuildInfo copy(*static_cast<const CMakeBuildInfo *>(info)); CMakeBuildInfo copy(*static_cast<const CMakeBuildInfo *>(info));
CMakeProject *project = static_cast<CMakeProject *>(parent->project()); CMakeProject *project = static_cast<CMakeProject *>(parent->project());
if (copy.buildDirectory.isEmpty()) if (copy.buildDirectory.isEmpty()) {
copy.buildDirectory = FileName::fromString(shadowBuildDirectory(project->projectFilePath().toString(), copy.buildDirectory = shadowBuildDirectory(project->projectFilePath(), parent->kit(),
parent->kit(), copy.displayName);
copy.displayName)); }
CMakeOpenProjectWizard copw(Core::ICore::mainWindow(), project->projectManager(), CMakeOpenProjectWizard::ChangeDirectory, &copy); CMakeOpenProjectWizard copw(Core::ICore::mainWindow(), project->projectManager(), CMakeOpenProjectWizard::ChangeDirectory, &copy);
if (copw.exec() != QDialog::Accepted) if (copw.exec() != QDialog::Accepted)
@@ -212,7 +212,7 @@ ProjectExplorer::BuildConfiguration *CMakeBuildConfigurationFactory::create(Proj
cleanMakeStep->setAdditionalArguments(QLatin1String("clean")); cleanMakeStep->setAdditionalArguments(QLatin1String("clean"));
cleanMakeStep->setClean(true); cleanMakeStep->setClean(true);
bc->setBuildDirectory(Utils::FileName::fromString(copw.buildDirectory())); bc->setBuildDirectory(FileName::fromString(copw.buildDirectory()));
bc->setUseNinja(copw.useNinja()); bc->setUseNinja(copw.useNinja());
// Default to all // Default to all
@@ -269,7 +269,7 @@ CMakeBuildInfo *CMakeBuildConfigurationFactory::createBuildInfo(const ProjectExp
CMakeBuildInfo *info = new CMakeBuildInfo(this); CMakeBuildInfo *info = new CMakeBuildInfo(this);
info->typeName = tr("Build"); info->typeName = tr("Build");
info->kitId = k->id(); info->kitId = k->id();
info->environment = Utils::Environment::systemEnvironment(); info->environment = Environment::systemEnvironment();
k->addToEnvironment(info->environment); k->addToEnvironment(info->environment);
info->useNinja = false; info->useNinja = false;
info->sourceDirectory = sourceDir; info->sourceDirectory = sourceDir;