forked from qt-creator/qt-creator
CMake: Use QtC temporary dir for staging directory for local builds
For builds on the local host, use the Qt Creator temporary directory as
the default "staging" directory. This is a "nicer" directory on Windows
and is also cleared automatically (at Qt Creator shutdown), which is not
true for "/tmp".
Amends 4753b658bb
Change-Id: Ia6dc0d76fb2d97eb7ec931981df057ec83553e69
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
@@ -159,7 +159,7 @@ Qt::ItemFlags CMakeTargetItem::flags(int) const
|
||||
|
||||
// CMakeBuildStep
|
||||
|
||||
static QString initialStagingDir()
|
||||
static QString initialStagingDir(Kit *kit)
|
||||
{
|
||||
// Avoid actual file accesses.
|
||||
auto rg = QRandomGenerator::global();
|
||||
@@ -167,6 +167,9 @@ static QString initialStagingDir()
|
||||
char buf[sizeof(rand)];
|
||||
memcpy(&buf, &rand, sizeof(rand));
|
||||
const QByteArray ba = QByteArray(buf, sizeof(buf)).toHex();
|
||||
IDeviceConstPtr buildDevice = BuildDeviceKitAspect::device(kit);
|
||||
if (buildDevice && buildDevice->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE)
|
||||
return TemporaryDirectory::masterDirectoryPath() + "/staging-" + ba;
|
||||
return QString::fromUtf8("/tmp/Qt-Creator-staging-" + ba);
|
||||
}
|
||||
|
||||
@@ -200,7 +203,7 @@ CMakeBuildStep::CMakeBuildStep(BuildStepList *bsl, Id id) :
|
||||
m_stagingDir = addAspect<FilePathAspect>();
|
||||
m_stagingDir->setSettingsKey(STAGING_DIR_KEY);
|
||||
m_stagingDir->setLabelText(Tr::tr("Staging directory:"));
|
||||
m_stagingDir->setDefaultValue(initialStagingDir());
|
||||
m_stagingDir->setDefaultValue(initialStagingDir(kit()));
|
||||
|
||||
Kit *kit = buildConfiguration()->kit();
|
||||
if (CMakeBuildConfiguration::isIos(kit)) {
|
||||
|
Reference in New Issue
Block a user