forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/11.0'
Change-Id: Ib798dc9922c01b7667388ca03d3a248610f73028
This commit is contained in:
@@ -1462,10 +1462,18 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Id id)
|
||||
|
||||
// Android magic:
|
||||
if (DeviceTypeKitAspect::deviceTypeId(k) == Android::Constants::ANDROID_DEVICE_TYPE) {
|
||||
auto addUniqueKeyToCmd = [&cmd] (const QString &prefix, const QString &value) -> bool {
|
||||
const bool isUnique =
|
||||
!Utils::contains(cmd.splitArguments(), [&prefix] (const QString &arg) {
|
||||
return arg.startsWith(prefix); });
|
||||
if (isUnique)
|
||||
cmd.addArg(prefix + value);
|
||||
return isUnique;
|
||||
};
|
||||
buildSteps()->appendStep(Android::Constants::ANDROID_BUILD_APK_ID);
|
||||
const auto bs = buildSteps()->steps().constLast();
|
||||
cmd.addArg("-DANDROID_PLATFORM:STRING="
|
||||
+ bs->data(Android::Constants::AndroidNdkPlatform).toString());
|
||||
addUniqueKeyToCmd("-DANDROID_PLATFORM:STRING=",
|
||||
bs->data(Android::Constants::AndroidNdkPlatform).toString());
|
||||
auto ndkLocation = bs->data(Android::Constants::NdkLocation).value<FilePath>();
|
||||
cmd.addArg("-DANDROID_NDK:PATH=" + ndkLocation.path());
|
||||
|
||||
|
||||
@@ -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