aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/qbs/module-providers/Qt/templates/android_support.qbs9
-rw-r--r--share/qbs/modules/Android/sdk/sdk.qbs9
-rw-r--r--share/qbs/modules/Android/sdk/utils.js55
-rw-r--r--tests/auto/blackbox/find/find-android.qbs1
-rw-r--r--tests/auto/blackbox/tst_blackboxandroid.cpp108
5 files changed, 135 insertions, 47 deletions
diff --git a/share/qbs/module-providers/Qt/templates/android_support.qbs b/share/qbs/module-providers/Qt/templates/android_support.qbs
index 4ce1364ea..a1975b890 100644
--- a/share/qbs/module-providers/Qt/templates/android_support.qbs
+++ b/share/qbs/module-providers/Qt/templates/android_support.qbs
@@ -14,7 +14,6 @@ Module {
property stringList extraPlugins // qmake: ANDROID_EXTRA_PLUGINS
property stringList extraLibs // qmake: ANDROID_EXTRA_LIBS
property bool verboseAndroidDeployQt: false
-
property string _androidDeployQtFilePath: FileInfo.joinPaths(_qtBinaryDir, "bin",
"androiddeployqt")
property string _qtBinaryDir
@@ -57,6 +56,8 @@ Module {
Android.sdk.customManifestProcessing: true
java._tagJniHeaders: false // prevent rule cycle
}
+ readonly property string _qtAndroidJarFileName: Utilities.versionCompare(version, "6.0") >= 0 ?
+ "Qt6Android.jar" : "QtAndroid.jar"
Properties {
condition: _enableSdkSupport && Utilities.versionCompare(version, "5.15") >= 0
&& Utilities.versionCompare(version, "6.0") < 0
@@ -301,8 +302,11 @@ Module {
filePath: "deployqt.list",
fileTags: "android.deployqt_list"
},
+ // androiddeployqt potentially copies more jar files but this one will always be there
+ // since it comes with Qt.core
{
- filePath: FileInfo.joinPaths(product.java.classFilesDir, "QtAndroid.jar"),
+ filePath: FileInfo.joinPaths(product.java.classFilesDir,
+ product.Qt.android_support._qtAndroidJarFileName),
fileTags: "bundled_jar"
}
]
@@ -353,6 +357,7 @@ Module {
var moveCmd = new JavaScriptCommand();
moveCmd.description = "processing androiddeployqt outout";
moveCmd.sourceCode = function() {
+ File.makePath(product.java.classFilesDir);
var libsDir = product.Qt.android_support._deployQtOutDir + "/libs";
var libDir = product.Android.sdk.packageContentsDir + "/lib";
var listFilePath = outputs["android.deployqt_list"][0].filePath;
diff --git a/share/qbs/modules/Android/sdk/sdk.qbs b/share/qbs/modules/Android/sdk/sdk.qbs
index 76f84dca6..b284c1f8f 100644
--- a/share/qbs/modules/Android/sdk/sdk.qbs
+++ b/share/qbs/modules/Android/sdk/sdk.qbs
@@ -167,6 +167,13 @@ Module {
property path apksignerFilePath: FileInfo.joinPaths(buildToolsDir, "apksigner")
property path aidlFilePath: FileInfo.joinPaths(buildToolsDir, "aidl")
property path dxFilePath: FileInfo.joinPaths(buildToolsDir, "dx")
+ property path d8FilePath: FileInfo.joinPaths(buildToolsDir, "d8")
+ property string dexCompilerName: "d8"
+ PropertyOptions {
+ name: "dexCompilerName"
+ allowedValues: ["dx", "d8"]
+ }
+ readonly property bool _useD8: dexCompilerName === "d8"
property path zipalignFilePath: FileInfo.joinPaths(buildToolsDir, "zipalign")
property path androidJarFilePath: FileInfo.joinPaths(sdkDir, "platforms", platform,
"android.jar")
@@ -430,7 +437,7 @@ Module {
condition: _enableRules
multiplex: true
inputs: ["java.class"]
- inputsFromDependencies: ["java.jar"]
+ inputsFromDependencies: ["java.jar", "bundled_jar"]
Artifact {
filePath: product.Android.sdk._generateAab ?
FileInfo.joinPaths(product.Android.sdk.packageContentsDir, "dex",
diff --git a/share/qbs/modules/Android/sdk/utils.js b/share/qbs/modules/Android/sdk/utils.js
index 264ad2da7..a10ca69fc 100644
--- a/share/qbs/modules/Android/sdk/utils.js
+++ b/share/qbs/modules/Android/sdk/utils.js
@@ -57,8 +57,21 @@ function availableBuildToolsVersions(sdkDir) {
}
function prepareDex(project, product, inputs, outputs, input, output, explicitlyDependsOn) {
- var dxFilePath = product.Android.sdk.dxFilePath;
- var args = ["--dex", "--output", output.filePath, product.java.classFilesDir];
+ var dexCompilerFilePath = product.Android.sdk._useD8 ? product.Android.sdk.d8FilePath
+ : product.Android.sdk.dxFilePath;
+ var args = ["--output", FileInfo.path(output.filePath)];
+
+ if (product.Android.sdk._useD8) {
+ args.push("--no-desugaring", "--release");
+ var classes = inputs["java.class"];
+ if (classes) {
+ args = args.concat(classes.map(function(javaClass) {
+ return FileInfo.relativePath(product.java.classFilesDir, javaClass.filePath) }));
+ }
+ } else {
+ args.unshift("--dex");
+ args.push(product.java.classFilesDir);
+ }
var jarFiles = [];
function traverseJarDeps(dep) {
@@ -80,8 +93,42 @@ function prepareDex(project, product, inputs, outputs, input, output, explicitly
args = args.concat(jarFiles);
- var cmd = new Command(dxFilePath, args);
- cmd.description = "creating " + output.fileName;
+ var cmd;
+ if (product.Android.sdk._useD8) {
+ cmd = new JavaScriptCommand();
+ cmd.args = args;
+ cmd.dexCompilerFilePath = dexCompilerFilePath;
+ cmd.description = "creating " + output.fileName;
+ cmd.workingDirectory = product.java.classFilesDir;
+ cmd.extendedDescription = dexCompilerFilePath + " " + args.join(' ');
+ cmd.highlight = "compiler";
+ cmd.sourceCode = function() {
+ // androiddeployqt copied jar files in product.java.classFilesDir
+ // but the rule only tags one jar file ("QtAndroid.jar"/"Qt6Android.jar")
+ // So to pass all files to d8, Qbs needs to read the directory
+ var bundledJarFilesDir = product.java.classFilesDir;
+ var bundledJarFiles = File.directoryEntries(bundledJarFilesDir, File.Files
+ | File.NoDotAndDotDot);
+ args = args.concat(bundledJarFiles.map(function(jarFile) {
+ return FileInfo.joinPaths(bundledJarFilesDir, jarFile) }));
+ var process = new Process();
+ var exitCode;
+ process.setWorkingDirectory(workingDirectory);
+ process.exec(dexCompilerFilePath, args, true);
+ try {
+ process.exec(dexCompilerFilePath, args, true);
+ } catch (e) {
+ throw new Error("Error while running dex compiler command: '"
+ + Process.shellQuote(dexCompilerFilePath, args) + "': " + e.toString());
+ } finally {
+ process.close();
+ }
+ }
+ } else {
+ cmd = new Command(dexCompilerFilePath, args);
+ cmd.description = "creating " + output.fileName;
+ cmd.workingDirectory = product.java.classFilesDir;
+ }
return [cmd];
}
diff --git a/tests/auto/blackbox/find/find-android.qbs b/tests/auto/blackbox/find/find-android.qbs
index de5c78d10..1cde0ed84 100644
--- a/tests/auto/blackbox/find/find-android.qbs
+++ b/tests/auto/blackbox/find/find-android.qbs
@@ -41,6 +41,7 @@ Product {
if (product.moduleProperty("Android.sdk", "present")) {
tools["sdk"] = product.moduleProperty("Android.sdk", "sdkDir");
tools["sdk-build-tools-dx"] = product.Android.sdk.dxFilePath;
+ tools["sdk-build-tools-d8"] = product.Android.sdk.d8FilePath;
}
if (product.java && product.java.present)
diff --git a/tests/auto/blackbox/tst_blackboxandroid.cpp b/tests/auto/blackbox/tst_blackboxandroid.cpp
index c56ee4f43..ba864ed78 100644
--- a/tests/auto/blackbox/tst_blackboxandroid.cpp
+++ b/tests/auto/blackbox/tst_blackboxandroid.cpp
@@ -58,6 +58,7 @@ QMap<QString, QString> TestBlackboxAndroid::findAndroid(int *status, const QStri
return {
{"sdk", QDir::fromNativeSeparators(tools["sdk"].toString())},
{"sdk-build-tools-dx", QDir::fromNativeSeparators(tools["sdk-build-tools-dx"].toString())},
+ {"sdk-build-tools-d8", QDir::fromNativeSeparators(tools["sdk-build-tools-d8"].toString())},
{"ndk", QDir::fromNativeSeparators(tools["ndk"].toString())},
{"ndk-samples", QDir::fromNativeSeparators(tools["ndk-samples"].toString())},
{"jar", QDir::fromNativeSeparators(tools["jar"].toString())},
@@ -83,6 +84,7 @@ void TestBlackboxAndroid::android()
QFETCH(bool, enableAapt2);
QFETCH(bool, generateAab);
QFETCH(bool, isIncrementalBuild);
+ QFETCH(bool, enableD8);
// skip tests on github except when run in docker - this var is not propagated into the image
if (qEnvironmentVariableIsSet("GITHUB_ACTIONS"))
@@ -181,11 +183,12 @@ void TestBlackboxAndroid::android()
}
if (projectDir == "multiple-libs-per-apk") {
- const auto dxPath = androidPaths["sdk-build-tools-dx"];
- QVERIFY(!dxPath.isEmpty());
+ const auto dexCompilerPath = enableD8 ? androidPaths["sdk-build-tools-d8"]
+ : androidPaths["sdk-build-tools-dx"];
+ QVERIFY(!dexCompilerPath.isEmpty());
const auto lines = m_qbsStdout.split('\n');
const auto it = std::find_if(lines.cbegin(), lines.cend(), [&](const QByteArray &line) {
- return !line.isEmpty() && line.startsWith(dxPath.toUtf8());
+ return !line.isEmpty() && line.startsWith(dexCompilerPath.toUtf8());
});
QVERIFY2(it != lines.cend(), qPrintable(m_qbsStdout.constData()));
const auto line = *it;
@@ -290,6 +293,7 @@ void TestBlackboxAndroid::android_data()
QTest::addColumn<bool>("enableAapt2");
QTest::addColumn<bool>("generateAab");
QTest::addColumn<bool>("isIncrementalBuild");
+ QTest::addColumn<bool>("enableD8");
const auto aaptVersion = [](bool enableAapt2) {
return QString("modules.Android.sdk.aaptName:") + (enableAapt2 ? "aapt2" : "aapt");
@@ -301,6 +305,11 @@ void TestBlackboxAndroid::android_data()
bool generateAab = false;
bool isIncrementalBuild = false;
+ const auto dexCompilerVersion = [](bool enableD8) {
+ return QString("modules.Android.sdk.dexCompilerName:") + (enableD8 ? "d8" : "dx");
+ };
+ bool enableD8 = true;
+
auto qtAppExpectedFiles = [&](bool generateAab, bool enableAapt2, bool codeSign = true,
QString keyAlias="androiddebugkey") {
QByteArrayList expectedFile;
@@ -379,7 +388,7 @@ void TestBlackboxAndroid::android_data()
keyPassword, keyAlias)
<< aaptVersion(enableAapt2)
<< packageType(generateAab))
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;;
codeSign = false;
QTest::newRow("qt app no signing")
<< "qt-app" << QStringList("qt-app")
@@ -391,7 +400,7 @@ void TestBlackboxAndroid::android_data()
keyPassword, keyAlias)
<< aaptVersion(enableAapt2)
<< packageType(generateAab))
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
enableAapt2 = true;
codeSign = true;
QTest::newRow("qt app aapt2")
@@ -404,7 +413,7 @@ void TestBlackboxAndroid::android_data()
keyPassword, keyAlias)
<< aaptVersion(enableAapt2)
<< packageType(generateAab))
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
generateAab = true;
QTest::newRow("qt app aab")
<< "qt-app" << QStringList("qt-app")
@@ -416,7 +425,7 @@ void TestBlackboxAndroid::android_data()
keyPassword, keyAlias)
<< aaptVersion(enableAapt2)
<< packageType(generateAab))
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
codeSign = false;
QTest::newRow("qt app aab no signing")
<< "qt-app" << QStringList("qt-app")
@@ -428,7 +437,7 @@ void TestBlackboxAndroid::android_data()
keyPassword, keyAlias)
<< aaptVersion(enableAapt2)
<< packageType(generateAab))
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
const QByteArrayList ndkArchsForQtSave = ndkArchsForQt;
ndkArchsForQt = {ndkArchsForQt.first()};
@@ -438,7 +447,7 @@ void TestBlackboxAndroid::android_data()
enableAapt2)))
<< QStringList{aaptVersion(enableAapt2), packageType(generateAab),
"modules.qbs.architectures:" + archsForQt.first()}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
ndkArchsForQt = ndkArchsForQtSave;
auto teaPotAppExpectedFiles = [&](const QByteArrayList &archs, bool generateAab) {
@@ -459,26 +468,25 @@ void TestBlackboxAndroid::android_data()
expectedFile << "resources.arsc";
return expectedFile;
};
-
generateAab = false;
enableAapt2 = false;
QTest::newRow("teapot")
<< "teapot" << QStringList("TeapotNativeActivity")
<< (QList<QByteArrayList>() << teaPotAppExpectedFiles(archs, generateAab))
<< QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
enableAapt2 = true;
QTest::newRow("teapot aapt2")
<< "teapot" << QStringList("TeapotNativeActivity")
<< (QList<QByteArrayList>() << teaPotAppExpectedFiles(archs, generateAab))
<< QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
generateAab = true;
QTest::newRow("teapot aapt2 aab")
<< "teapot" << QStringList("TeapotNativeActivity")
<< (QList<QByteArrayList>() << teaPotAppExpectedFiles(archs, generateAab))
<< QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
enableAapt2 = false;
generateAab = false;
QTest::newRow("minimal-native")
@@ -490,7 +498,7 @@ void TestBlackboxAndroid::android_data()
<< QStringList{"products.minimalnative.multiplexByQbsProperties:[]",
"modules.qbs.architecture:" + archsStringList.first(),
aaptVersion(enableAapt2)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
enableAapt2 = true;
QTest::newRow("minimal-native aapt2")
<< "minimal-native" << QStringList("minimalnative")
@@ -502,7 +510,7 @@ void TestBlackboxAndroid::android_data()
<< QStringList{"products.minimalnative.multiplexByQbsProperties:[]",
"modules.qbs.architecture:" + archsStringList.first(),
aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
generateAab = true;
QTest::newRow("minimal-native aapt2 aab")
<< "minimal-native" << QStringList("minimalnative")
@@ -515,7 +523,7 @@ void TestBlackboxAndroid::android_data()
<< QStringList{"products.minimalnative.multiplexByQbsProperties:[]",
"modules.qbs.architecture:" + archsStringList.first(),
aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
auto qmlAppExpectedFiles = [&](bool generateAab, bool enableAapt2) {
QByteArrayList expectedFile;
@@ -808,7 +816,7 @@ void TestBlackboxAndroid::android_data()
<< (QList<QByteArrayList>() << qmlAppExpectedFiles(generateAab, enableAapt2))
<< (QStringList() << qmlAppCustomProperties << aaptVersion(enableAapt2)
<< packageType(generateAab))
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
enableAapt2 = true;
QTest::newRow("qml app aapt2")
@@ -816,14 +824,14 @@ void TestBlackboxAndroid::android_data()
<< (QList<QByteArrayList>() << qmlAppExpectedFiles(generateAab, enableAapt2))
<< (QStringList() << qmlAppCustomProperties << aaptVersion(enableAapt2)
<< packageType(generateAab))
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
generateAab = true;
QTest::newRow("qml app aab")
<< "qml-app" << QStringList("qmlapp")
<< (QList<QByteArrayList>() << qmlAppExpectedFiles(generateAab, enableAapt2))
<< (QStringList() << qmlAppCustomProperties << aaptVersion(enableAapt2)
<< packageType(generateAab))
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
enableAapt2 = false;
generateAab = false;
QTest::newRow("qml app with custom metadata")
@@ -833,7 +841,7 @@ void TestBlackboxAndroid::android_data()
enableAapt2)))
<< QStringList{"modules.Android.sdk.automaticSources:true",
aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
enableAapt2 = true;
QTest::newRow("qml app with custom metadata aapt2")
<< "qml-app" << QStringList("qmlapp")
@@ -842,7 +850,7 @@ void TestBlackboxAndroid::android_data()
enableAapt2)))
<< QStringList{"modules.Android.sdk.automaticSources:true", aaptVersion(enableAapt2),
packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
generateAab = true;
if (!singleArchQt) {
QTest::newRow("qml app with custom metadata aab")
@@ -852,7 +860,7 @@ void TestBlackboxAndroid::android_data()
enableAapt2)))
<< QStringList{"modules.Android.sdk.automaticSources:true", aaptVersion(enableAapt2),
packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
}
isIncrementalBuild = false;
enableAapt2 = false;
@@ -887,44 +895,45 @@ void TestBlackboxAndroid::android_data()
<< QStringList("com.example.android.basicmediadecoder")
<< (QList<QByteArrayList>() << noNativeExpectedFiles(generateAab))
<< QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
enableAapt2 = true;
QTest::newRow("no native aapt2")
<< "no-native"
<< QStringList("com.example.android.basicmediadecoder")
<< (QList<QByteArrayList>() << noNativeExpectedFiles(generateAab))
<< QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
generateAab = true;
QTest::newRow("no native aab")
<< "no-native"
<< QStringList("com.example.android.basicmediadecoder")
<< (QList<QByteArrayList>() << noNativeExpectedFiles(generateAab))
<< QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
enableAapt2 = false;
generateAab = false;
QTest::newRow("aidl") << "aidl" << QStringList("io.qbs.aidltest")
<< (QList<QByteArrayList>() << (QByteArrayList()
<< commonFiles(generateAab)))
<< QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
enableAapt2 = true;
QTest::newRow("aidl") << "aidl" << QStringList("io.qbs.aidltest")
<< (QList<QByteArrayList>() << (QByteArrayList()
<< commonFiles(generateAab)
<< "resources.arsc"))
<< QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
generateAab = true;
QTest::newRow("aidl") << "aidl" << QStringList("io.qbs.aidltest")
<< (QList<QByteArrayList>() << (QByteArrayList()
<< commonFiles(generateAab)
<< "base/resources.pb"))
<< QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
enableAapt2 = false;
generateAab = false;
+ enableD8 = false;
QTest::newRow("multiple libs")
<< "multiple-libs-per-apk"
<< QStringList("twolibs")
@@ -933,8 +942,22 @@ void TestBlackboxAndroid::android_data()
"lib/${ARCH}/liblib1.so",
"lib/${ARCH}/liblib2.so",
cxxLibPath("libstlport_shared.so", false)}, generateAab))
- << QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << QStringList{aaptVersion(enableAapt2), packageType(generateAab),
+ dexCompilerVersion(enableD8)}
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
+ enableD8 = true;
+ QTest::newRow("multiple libs with d8")
+ << "multiple-libs-per-apk"
+ << QStringList("twolibs")
+ << (QList<QByteArrayList>() << commonFiles(generateAab) + expandArchs(archs, {
+ "resources.arsc",
+ "lib/${ARCH}/liblib1.so",
+ "lib/${ARCH}/liblib2.so",
+ cxxLibPath("libstlport_shared.so", false)}, generateAab))
+ << QStringList{aaptVersion(enableAapt2), packageType(generateAab),
+ dexCompilerVersion(enableD8)}
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
+ enableD8 = false;
enableAapt2 = true;
QTest::newRow("multiple libs aapt2")
<< "multiple-libs-per-apk"
@@ -944,8 +967,9 @@ void TestBlackboxAndroid::android_data()
"lib/${ARCH}/liblib1.so",
"lib/${ARCH}/liblib2.so",
cxxLibPath("libstlport_shared.so", false)}, generateAab))
- << QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << QStringList{aaptVersion(enableAapt2), packageType(generateAab),
+ dexCompilerVersion(enableD8)}
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
generateAab = true;
QTest::newRow("multiple libs aab")
<< "multiple-libs-per-apk"
@@ -955,8 +979,9 @@ void TestBlackboxAndroid::android_data()
"lib/${ARCH}/liblib1.so",
"lib/${ARCH}/liblib2.so",
cxxLibPath("libstlport_shared.so", false)}, generateAab))
- << QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << QStringList{aaptVersion(enableAapt2), packageType(generateAab),
+ dexCompilerVersion(enableD8)}
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
enableAapt2 = false;
generateAab = false;
auto expectedFiles1 = [&](bool generateAab) {
@@ -985,16 +1010,18 @@ void TestBlackboxAndroid::android_data()
<< "multiple-apks-per-project"
<< (QStringList() << "twolibs1" << "twolibs2")
<< QList<QByteArrayList>{expectedFiles1(generateAab), expectedFiles2(generateAab)}
- << QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << QStringList{aaptVersion(enableAapt2), packageType(generateAab),
+ dexCompilerVersion(enableD8)}
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
enableAapt2 = true;
QTest::newRow("multiple apks aapt2")
<< "multiple-apks-per-project"
<< (QStringList() << "twolibs1" << "twolibs2")
<< (QList<QByteArrayList>() << expectedFiles1(generateAab)
<< (QByteArrayList() << expectedFiles2(generateAab) << "resources.arsc"))
- << QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << QStringList{aaptVersion(enableAapt2), packageType(generateAab),
+ dexCompilerVersion(enableD8)}
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
generateAab = true;
QTest::newRow("multiple apks aab")
<< "multiple-apks-per-project"
@@ -1002,8 +1029,9 @@ void TestBlackboxAndroid::android_data()
<< (QList<QByteArrayList>() << expectedFiles1(generateAab)
<< (QByteArrayList() << expectedFiles2(generateAab) << "base/resources.pb"
<< "base/native.pb"))
- << QStringList{aaptVersion(enableAapt2), packageType(generateAab)}
- << enableAapt2 << generateAab << isIncrementalBuild;
+ << QStringList{aaptVersion(enableAapt2), packageType(generateAab),
+ dexCompilerVersion(enableD8)}
+ << enableAapt2 << generateAab << isIncrementalBuild << enableD8;
}
QTEST_MAIN(TestBlackboxAndroid)