Commit 1c4d51ef authored by Tobias Hunger's avatar Tobias Hunger

Add configuration option for default build directory

Change the UI to always show the editor for the build directory.
Default to what we do for qmake projects right now (with shadow-
building enabled).

Use this setting in qmake based projects.

Set this to '.' for in-source builds by default.

Change-Id: I3fb26ab817b0f545e9b318b68e592df8040d5562
Reviewed-by: default avatarDaniel Teske <daniel.teske@digia.com>
parent c5fa9c30
......@@ -227,6 +227,8 @@ const char VARIABLE_SUPPORT_PROPERTY[] = "QtCreator.VariableSupport";
const char TR_CLEAR_MENU[] = QT_TRANSLATE_NOOP("Core", "Clear Menu");
const char DEFAULT_BUILD_DIRECTORY[] = "../build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Name}";
const int TARGET_ICON_SIZE = 32;
} // namespace Constants
......
......@@ -98,8 +98,6 @@ static const char directoryGroupC[] = "Directories";
static const char projectDirectoryKeyC[] = "Projects";
static const char useProjectDirectoryKeyC[] = "UseProjectsDirectory";
static const char buildDirectoryKeyC[] = "BuildDirectory";
static const char useBuildDirectoryKeyC[] = "UseBuildDirectory";
namespace Core {
......@@ -159,7 +157,6 @@ struct DocumentManagerPrivate
QString m_projectsDirectory;
bool m_useProjectsDirectory;
QString m_buildDirectory;
bool m_useBuildDirectory;
// When we are callling into a IDocument
// we don't want to receive a changed()
// signal
......@@ -202,7 +199,6 @@ DocumentManagerPrivate::DocumentManagerPrivate(QMainWindow *mw) :
m_blockActivated(false),
m_lastVisitedDirectory(QDir::currentPath()),
m_useProjectsDirectory(Utils::HostOsInfo::isMacHost()), // Creator is in bizarre places when launched via finder.
m_useBuildDirectory(false),
m_blockedIDocument(0)
{
}
......@@ -1171,7 +1167,6 @@ void DocumentManager::saveSettings()
s->setValue(QLatin1String(projectDirectoryKeyC), d->m_projectsDirectory);
s->setValue(QLatin1String(useProjectDirectoryKeyC), d->m_useProjectsDirectory);
s->setValue(QLatin1String(buildDirectoryKeyC), d->m_buildDirectory);
s->setValue(QLatin1String(useBuildDirectoryKeyC), d->m_useBuildDirectory);
s->endGroup();
}
......@@ -1197,23 +1192,20 @@ void readSettings()
s->beginGroup(QLatin1String(directoryGroupC));
const QString settingsProjectDir = s->value(QLatin1String(projectDirectoryKeyC),
QString()).toString();
if (!settingsProjectDir.isEmpty() && QFileInfo(settingsProjectDir).isDir()) {
if (!settingsProjectDir.isEmpty() && QFileInfo(settingsProjectDir).isDir())
d->m_projectsDirectory = settingsProjectDir;
} else {
else
d->m_projectsDirectory = Utils::PathChooser::homePath();
}
d->m_useProjectsDirectory = s->value(QLatin1String(useProjectDirectoryKeyC),
d->m_useProjectsDirectory).toBool();
const QString settingsShadowDir = s->value(QLatin1String(buildDirectoryKeyC),
QString()).toString();
if (!settingsShadowDir.isEmpty() && QFileInfo(settingsShadowDir).isDir())
if (!settingsShadowDir.isEmpty())
d->m_buildDirectory = settingsShadowDir;
else
d->m_buildDirectory = Utils::PathChooser::homePath();
d->m_buildDirectory = QLatin1String(Constants::DEFAULT_BUILD_DIRECTORY);
d->m_useBuildDirectory = s->value(QLatin1String(useBuildDirectoryKeyC),
d->m_useBuildDirectory).toBool();
s->endGroup();
}
......@@ -1285,30 +1277,9 @@ void DocumentManager::setProjectsDirectory(const QString &dir)
}
/*!
Returns whether the default shadow build directory is placed adjacent to the source in the
projects directory or in a separate build tree.
\sa setUseBuildDirectory, setBuildDirectory
*/
bool DocumentManager::useBuildDirectory()
{
return d->m_useBuildDirectory;
}
/*!
Sets whether a separate build directory is to the used when shadow building.
\sa buildDirectory, usebuildDirectory
*/
void DocumentManager::setUseBuildDirectory(bool use)
{
d->m_useBuildDirectory = use;
}
/*!
Returns the shadow build directory.
Returns the default build directory.
\sa setBuildDirectory, useBuildDirectory
\sa setBuildDirectory
*/
QString DocumentManager::buildDirectory()
{
......@@ -1318,7 +1289,7 @@ QString DocumentManager::buildDirectory()
/*!
Sets the shadow build directory to \a directory.
\sa buildDirectory, useBuildDirectory
\sa buildDirectory
*/
void DocumentManager::setBuildDirectory(const QString &directory)
{
......
......@@ -129,9 +129,6 @@ public:
static QString projectsDirectory();
static void setProjectsDirectory(const QString &);
static bool useBuildDirectory();
static void setUseBuildDirectory(bool use);
static QString buildDirectory();
static void setBuildDirectory(const QString &directory);
......
......@@ -155,16 +155,6 @@ namespace {
bool debug = false;
}
static const char kCurrentProjectPath[] = "CurrentProject:Path";
static const char kCurrentProjectFilePath[] = "CurrentProject:FilePath";
static const char kCurrentProjectBuildPath[] = "CurrentProject:BuildPath";
static const char kCurrentProjectName[] = "CurrentProject:Name";
static const char kCurrentKitName[] = "CurrentKit:Name";
static const char kCurrentKitFileSystemName[] = "CurrentKit:FileSystemName";
static const char kCurrentKitId[] = "CurrentKit:Id";
static const char kCurrentBuildName[] = "CurrentBuild:Name";
static const char kCurrentBuildType[] = "CurrentBuild:Type";
namespace ProjectExplorer {
struct ProjectExplorerPluginPrivate {
......@@ -996,19 +986,19 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
updateWelcomePage();
Core::VariableManager *vm = Core::VariableManager::instance();
vm->registerVariable(kCurrentProjectFilePath,
vm->registerVariable(Constants::VAR_CURRENTPROJECT_FILEPATH,
tr("Full path of the current project's main file, including file name."));
vm->registerVariable(kCurrentProjectPath,
vm->registerVariable(Constants::VAR_CURRENTPROJECT_PATH,
tr("Full path of the current project's main file, excluding file name."));
vm->registerVariable(kCurrentProjectBuildPath,
vm->registerVariable(Constants::VAR_CURRENTPROJECT_BUILDPATH,
tr("Full build path of the current project's active build configuration."));
vm->registerVariable(kCurrentProjectName, tr("The current project's name."));
vm->registerVariable(kCurrentKitName, tr("The currently active kit's name."));
vm->registerVariable(kCurrentKitFileSystemName,
vm->registerVariable(Constants::VAR_CURRENTPROJECT_NAME, tr("The current project's name."));
vm->registerVariable(Constants::VAR_CURRENTKIT_NAME, tr("The currently active kit's name."));
vm->registerVariable(Constants::VAR_CURRENTKIT_FILESYSTEMNAME,
tr("The currently active kit's name in a filesystem friendly version."));
vm->registerVariable(kCurrentKitId, tr("The currently active kit's id."));
vm->registerVariable(kCurrentBuildName, tr("The currently active build configuration's name."));
vm->registerVariable(kCurrentBuildType, tr("The currently active build configuration's type."));
vm->registerVariable(Constants::VAR_CURRENTKIT_ID, tr("The currently active kit's id."));
vm->registerVariable(Constants::VAR_CURRENTBUILD_NAME, tr("The currently active build configuration's name."));
vm->registerVariable(Constants::VAR_CURRENTBUILD_TYPE, tr("The currently active build configuration's type."));
connect(vm, SIGNAL(variableUpdateRequested(QByteArray)),
this, SLOT(updateVariable(QByteArray)));
......@@ -1142,58 +1132,58 @@ void ProjectExplorerPlugin::loadCustomWizards()
void ProjectExplorerPlugin::updateVariable(const QByteArray &variable)
{
if (variable == kCurrentProjectFilePath) {
if (variable == Constants::VAR_CURRENTPROJECT_FILEPATH) {
if (currentProject() && currentProject()->document()) {
Core::VariableManager::instance()->insert(variable,
currentProject()->document()->fileName());
} else {
Core::VariableManager::instance()->remove(variable);
}
} else if (variable == kCurrentProjectPath) {
} else if (variable == Constants::VAR_CURRENTPROJECT_PATH) {
if (currentProject() && currentProject()->document()) {
Core::VariableManager::instance()->insert(variable,
QFileInfo(currentProject()->document()->fileName()).path());
} else {
Core::VariableManager::instance()->remove(variable);
}
} else if (variable == kCurrentProjectBuildPath) {
} else if (variable == Constants::VAR_CURRENTPROJECT_BUILDPATH) {
if (currentProject() && currentProject()->activeTarget() && currentProject()->activeTarget()->activeBuildConfiguration()) {
Core::VariableManager::instance()->insert(variable,
currentProject()->activeTarget()->activeBuildConfiguration()->buildDirectory());
} else {
Core::VariableManager::instance()->remove(variable);
}
} else if (variable == kCurrentProjectName) {
} else if (variable == Constants::VAR_CURRENTPROJECT_NAME) {
if (currentProject()) {
Core::VariableManager::instance()->insert(variable, currentProject()->displayName());
} else {
Core::VariableManager::instance()->remove(variable);
}
} else if (variable == kCurrentKitName) {
} else if (variable == Constants::VAR_CURRENTKIT_NAME) {
if (currentProject() && currentProject()->activeTarget() && currentProject()->activeTarget()->kit()) {
Core::VariableManager::instance()->insert(variable, currentProject()->activeTarget()->kit()->displayName());
} else {
Core::VariableManager::instance()->remove(variable);
}
} else if (variable == kCurrentKitFileSystemName) {
} else if (variable == Constants::VAR_CURRENTKIT_FILESYSTEMNAME) {
if (currentProject() && currentProject()->activeTarget() && currentProject()->activeTarget()->kit()) {
Core::VariableManager::instance()->insert(variable, currentProject()->activeTarget()->kit()->fileSystemFriendlyName());
} else {
Core::VariableManager::instance()->remove(variable);
}
} else if (variable == kCurrentKitId) {
} else if (variable == Constants::VAR_CURRENTKIT_ID) {
if (currentProject() && currentProject()->activeTarget() && currentProject()->activeTarget()->kit()) {
Core::VariableManager::instance()->insert(variable, currentProject()->activeTarget()->kit()->id().toString());
} else {
Core::VariableManager::instance()->remove(variable);
}
} else if (variable == kCurrentBuildName) {
} else if (variable == Constants::VAR_CURRENTBUILD_NAME) {
if (currentProject() && currentProject()->activeTarget() && currentProject()->activeTarget()->activeBuildConfiguration()) {
Core::VariableManager::instance()->insert(variable, currentProject()->activeTarget()->activeBuildConfiguration()->displayName());
} else {
Core::VariableManager::instance()->remove(variable);
}
} else if (variable == kCurrentBuildType) {
} else if (variable == Constants::VAR_CURRENTBUILD_TYPE) {
if (currentProject() && currentProject()->activeTarget() && currentProject()->activeTarget()->activeBuildConfiguration()) {
BuildConfiguration::BuildType type = currentProject()->activeTarget()->activeBuildConfiguration()->buildType();
QString typeString;
......
......@@ -235,6 +235,17 @@ const char DEFAULT_WORKING_DIR[] = "%{buildDir}";
const char DESKTOP_DEVICE_ID[] = "Desktop Device";
const char DESKTOP_DEVICE_TYPE[] = "Desktop";
// Variable Names:
const char VAR_CURRENTPROJECT_PATH[] = "CurrentProject:Path";
const char VAR_CURRENTPROJECT_FILEPATH[] = "CurrentProject:FilePath";
const char VAR_CURRENTPROJECT_BUILDPATH[] = "CurrentProject:BuildPath";
const char VAR_CURRENTPROJECT_NAME[] = "CurrentProject:Name";
const char VAR_CURRENTKIT_NAME[] = "CurrentKit:Name";
const char VAR_CURRENTKIT_FILESYSTEMNAME[] = "CurrentKit:FileSystemName";
const char VAR_CURRENTKIT_ID[] = "CurrentKit:Id";
const char VAR_CURRENTBUILD_NAME[] = "CurrentBuild:Name";
const char VAR_CURRENTBUILD_TYPE[] = "CurrentBuild:Type";
} // namespace Constants
// Run modes
......
......@@ -32,8 +32,9 @@
#include "projectexplorerconstants.h"
#include "projectexplorer.h"
#include <coreplugin/icore.h>
#include <coreplugin/coreconstants.h>
#include <coreplugin/documentmanager.h>
#include <coreplugin/icore.h>
#include <utils/hostosinfo.h>
#include <QLabel>
......@@ -51,10 +52,12 @@ ProjectExplorerSettingsWidget::ProjectExplorerSettingsWidget(QWidget *parent) :
setJomVisible(Utils::HostOsInfo::isWindowsHost());
m_ui.directoryButtonGroup->setId(m_ui.currentDirectoryRadioButton, UseCurrentDirectory);
m_ui.directoryButtonGroup->setId(m_ui.directoryRadioButton, UseProjectDirectory);
m_ui.buildDirectoryEdit->setProperty(Core::Constants::VARIABLE_SUPPORT_PROPERTY, true);
connect(m_ui.directoryButtonGroup, SIGNAL(buttonClicked(int)),
this, SLOT(slotDirectoryButtonGroupChanged()));
connect(m_ui.buildDirectoryCheckBox, SIGNAL(toggled(bool)),
this, SLOT(slotBuildDirectoryCheckBoxChanged(bool)));
connect(m_ui.resetButton, SIGNAL(clicked()), this, SLOT(resetDefaultBuildDirectory()));
connect(m_ui.buildDirectoryEdit, SIGNAL(textChanged(QString)), this, SLOT(updateResetButton()));
}
void ProjectExplorerSettingsWidget::setJomVisible(bool v)
......@@ -120,40 +123,30 @@ void ProjectExplorerSettingsWidget::setUseProjectsDirectory(bool b)
}
}
bool ProjectExplorerSettingsWidget::useBuildDirectory() const
{
return m_ui.buildDirectoryCheckBox->isChecked();
}
void ProjectExplorerSettingsWidget::setUseBuildDirectory(bool v)
{
if (useBuildDirectory() != v) {
m_ui.buildDirectoryCheckBox->setChecked(v);
slotBuildDirectoryCheckBoxChanged(v);
}
}
QString ProjectExplorerSettingsWidget::buildDirectory() const
{
return m_ui.buildDirectoryPathChooser->path();
return m_ui.buildDirectoryEdit->text();
}
void ProjectExplorerSettingsWidget::setBuildDirectory(const QString &bd)
{
m_ui.buildDirectoryPathChooser->setPath(bd);
m_ui.buildDirectoryEdit->setText(bd);
}
void ProjectExplorerSettingsWidget::slotDirectoryButtonGroupChanged()
{
bool enable = useProjectsDirectory();
m_ui.projectsDirectoryPathChooser->setEnabled(enable);
m_ui.buildDirectoryCheckBox->setEnabled(enable);
m_ui.buildDirectoryPathChooser->setEnabled(enable && useBuildDirectory());
}
void ProjectExplorerSettingsWidget::slotBuildDirectoryCheckBoxChanged(bool checked)
void ProjectExplorerSettingsWidget::resetDefaultBuildDirectory()
{
setBuildDirectory(QLatin1String(Core::Constants::DEFAULT_BUILD_DIRECTORY));
}
void ProjectExplorerSettingsWidget::updateResetButton()
{
m_ui.buildDirectoryPathChooser->setEnabled(useProjectsDirectory() && checked);
m_ui.resetButton->setEnabled(buildDirectory() != QLatin1String(Core::Constants::DEFAULT_BUILD_DIRECTORY));
}
QString ProjectExplorerSettingsWidget::searchKeywords() const
......@@ -200,7 +193,6 @@ QWidget *ProjectExplorerSettingsPage::createPage(QWidget *parent)
m_widget->setSettings(ProjectExplorerPlugin::instance()->projectExplorerSettings());
m_widget->setProjectsDirectory(Core::DocumentManager::projectsDirectory());
m_widget->setUseProjectsDirectory(Core::DocumentManager::useProjectsDirectory());
m_widget->setUseBuildDirectory(Core::DocumentManager::useBuildDirectory());
m_widget->setBuildDirectory(Core::DocumentManager::buildDirectory());
if (m_searchKeywords.isEmpty())
m_searchKeywords = m_widget->searchKeywords();
......@@ -213,7 +205,6 @@ void ProjectExplorerSettingsPage::apply()
ProjectExplorerPlugin::instance()->setProjectExplorerSettings(m_widget->settings());
Core::DocumentManager::setProjectsDirectory(m_widget->projectsDirectory());
Core::DocumentManager::setUseProjectsDirectory(m_widget->useProjectsDirectory());
Core::DocumentManager::setUseBuildDirectory(m_widget->useBuildDirectory());
Core::DocumentManager::setBuildDirectory(m_widget->buildDirectory());
}
}
......
......@@ -55,9 +55,6 @@ public:
bool useProjectsDirectory();
void setUseProjectsDirectory(bool v);
bool useBuildDirectory() const;
void setUseBuildDirectory(bool v);
QString buildDirectory() const;
void setBuildDirectory(const QString &bd);
......@@ -65,7 +62,8 @@ public:
private slots:
void slotDirectoryButtonGroupChanged();
void slotBuildDirectoryCheckBoxChanged(bool checked);
void resetDefaultBuildDirectory();
void updateResetButton();
private:
void setJomVisible(bool);
......
......@@ -33,23 +33,6 @@
</attribute>
</widget>
</item>
<item row="1" column="1">
<widget class="Utils::PathChooser" name="projectsDirectoryPathChooser" native="true"/>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="buildDirectoryCheckBox">
<property name="text">
<string>Build directory</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="Utils::PathChooser" name="buildDirectoryPathChooser" native="true">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QRadioButton" name="directoryRadioButton">
<property name="text">
......@@ -63,6 +46,9 @@
</attribute>
</widget>
</item>
<item row="1" column="1">
<widget class="Utils::PathChooser" name="projectsDirectoryPathChooser"/>
</item>
</layout>
</widget>
</item>
......@@ -124,7 +110,7 @@
</property>
</widget>
</item>
<item row="3" column="1" rowspan="2">
<item row="3" column="1">
<widget class="QWidget" name="widget" native="true">
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="margin">
......@@ -163,7 +149,21 @@
</layout>
</widget>
</item>
<item row="7" column="0">
<item row="4" column="0">
<widget class="QCheckBox" name="showRunOutputCheckBox">
<property name="text">
<string>Open application output pane when running</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QCheckBox" name="showDebugOutputCheckBox">
<property name="text">
<string>Open application output pane when debugging</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QCheckBox" name="promptToStopRunControlCheckBox">
<property name="toolTip">
<string>Ask before terminating the running application in response to clicking the stop button in Application Output.</string>
......@@ -173,7 +173,7 @@
</property>
</widget>
</item>
<item row="8" column="0" colspan="2">
<item row="7" column="0" colspan="2">
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
......@@ -206,19 +206,29 @@
</item>
</layout>
</item>
<item row="5" column="0">
<widget class="QCheckBox" name="showRunOutputCheckBox">
<property name="text">
<string>Open application output pane when running</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QCheckBox" name="showDebugOutputCheckBox">
<property name="text">
<string>Open application output pane when debugging</string>
<item row="8" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="topMargin">
<number>12</number>
</property>
</widget>
<item>
<widget class="QLabel" name="buildDirLabel">
<property name="text">
<string>Default Build Directory:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="buildDirectoryEdit"/>
</item>
<item>
<widget class="QPushButton" name="resetButton">
<property name="text">
<string>Reset</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
<zorder>saveAllFilesCheckBox</zorder>
......@@ -252,8 +262,8 @@
<customwidgets>
<customwidget>
<class>Utils::PathChooser</class>
<extends>QWidget</extends>
<header location="global">utils/pathchooser.h</header>
<extends>QLineEdit</extends>
<header>utils/pathchooser.h</header>
<container>1</container>
</customwidget>
</customwidgets>
......
......@@ -47,6 +47,7 @@
#include <coreplugin/coreconstants.h>
#include <coreplugin/progressmanager/progressmanager.h>
#include <coreplugin/documentmanager.h>
#include <coreplugin/variablemanager.h>
#include <extensionsystem/pluginmanager.h>
#include <cpptools/ModelManagerInterface.h>
#include <qmljs/qmljsmodelmanagerinterface.h>
......@@ -67,6 +68,7 @@
#include <qtsupport/qtsupportconstants.h>
#include <qtsupport/qtversionmanager.h>
#include <utils/QtConcurrentTools>
#include <utils/stringutils.h>
#include <QDebug>
#include <QDir>
......@@ -115,6 +117,53 @@ QString sanitize(const QString &input)
return result;
}
class Qt4ProjectExpander : public Utils::AbstractQtcMacroExpander
{
public:
Qt4ProjectExpander(const QString &proFilePath, const Kit *k, const QString &bcName) :
m_proFile(proFilePath), m_kit(k), m_bcName(bcName)
{ }
bool resolveMacro(const QString &name, QString *ret)
{
QString result;
bool found = false;
if (name == QLatin1String(ProjectExplorer::Constants::VAR_CURRENTPROJECT_NAME)) {
result = m_proFile.baseName();
found = true;
} else if (name == QLatin1String(ProjectExplorer::Constants::VAR_CURRENTPROJECT_PATH)) {
result = m_proFile.absolutePath();
found = true;
} else if (name == QLatin1String(ProjectExplorer::Constants::VAR_CURRENTPROJECT_FILEPATH)) {
result = m_proFile.absoluteFilePath();
found = true;
} else if (m_kit && name == QLatin1String(ProjectExplorer::Constants::VAR_CURRENTKIT_NAME)) {
result = m_kit->displayName();
found = true;
} else if (m_kit && name == QLatin1String(ProjectExplorer::Constants::VAR_CURRENTKIT_FILESYSTEMNAME)) {
result = m_kit->fileSystemFriendlyName();
found = true;
} else if (m_kit && name == QLatin1String(ProjectExplorer::Constants::VAR_CURRENTKIT_ID)) {
result = m_kit->id().toString();
found = true;
} else if (name == QLatin1String(ProjectExplorer::Constants::VAR_CURRENTBUILD_NAME)) {
result = m_bcName;
found = true;
} else {
result = Core::VariableManager::instance()->value(name.toUtf8(), &found);
}
if (ret)
*ret = result;
return found;
}
private:
QFileInfo m_proFile;
const Kit *m_kit;
QString m_bcName;
Utils::AbstractMacroExpander *m_expander;
};
} // namespace
namespace Qt4ProjectManager {
......@@ -1411,35 +1460,20 @@ QString Qt4Project::disabledReasonForRunConfiguration(const QString &proFilePath
.arg(QFileInfo(proFilePath).fileName());
}
QString Qt4Project::shadowBuildDirectory(const QString &profilePath, const Kit *k, const QString &suffix)
QString Qt4Project::shadowBuildDirectory(const QString &proFilePath, const Kit *k, const QString &suffix)
{
if (profilePath.isEmpty())
if (proFilePath.isEmpty())
return QString();
QFileInfo info(profilePath);
QFileInfo info(proFilePath);
QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(k);
if (version && !version->supportsShadowBuilds())
return info.absolutePath();
Utils::FileName buildDirBase = Utils::FileName::fromString(projectDirectory(profilePath));
if (Core::DocumentManager::useProjectsDirectory() &&
Core::DocumentManager::useBuildDirectory()) {
const Utils::FileName projectsDirectory =
Utils::FileName::fromString(Core::DocumentManager::projectsDirectory());
if (buildDirBase.isChildOf(projectsDirectory)) {
Utils::FileName buildDirectory =
Utils::FileName::fromString(Core::DocumentManager::buildDirectory());
buildDirectory.appendPath(buildDirBase.relativeChildPath(projectsDirectory).toString());
buildDirBase = buildDirectory;
}
}
buildDirBase.append(QLatin1String("-build-") + buildNameFor(k) +
QLatin1Char('-') + sanitize(suffix));
return QDir::cleanPath(buildDirBase.toString());
Qt4ProjectExpander expander(proFilePath, k, suffix);
QDir projectDir = QDir(projectDirectory(proFilePath));
QString buildPath = Utils::expandMacros(Core::DocumentManager::buildDirectory(), &expander);
return QDir::cleanPath(projectDir.absoluteFilePath(buildPath));
}
QString Qt4Project::buildNameFor(const Kit *k)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment