mirror of
https://github.com/servo/servo
synced 2026-04-27 01:55:03 +02:00
* Android build * Fixes * More fixes - Still failing in the linking step * More work on getting linking working Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * android: use mozjs with ndk r25c. loads servo.org more android build fixes. * fix ./mach run for android and make it follow logs Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * add experimental logic for compositor pause/resume Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * pass DPI from android to simpleservo Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * ci: add android workflow Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * switch to ANDROID_SDK_ROOT and ANDROID_NDK_ROOT vars Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * upgrade gradle to 4.10.1 Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * upgrade to gradle 5.1.1 Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * upgrade to gradle 8 and agp 8 Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * make compositing work again with external present Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * android: improve mach support for non-NixOS and CI Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * fix sampler compilation bug introduced in #30490 Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * ci: add android build to main workflow Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * gradle: set MinSdk = targetSdk = 30 NDK requires we compile against the minSdk API level which is 30 in our case. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * add instructions for android in README.md Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * apk: move servosurface to servoview Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * apk: uncomment the mediasession callbacks on MainActivity Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * apk: fix crash on MainAtivity.onDestroy Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * apk: drop VR, arm 5 and unused code This commit drops: * support for google, oculusvr * support for arm5 architecture and also removes * fakeld scripts * unused java code Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * cleanup shell.nix Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * android: add FIXMEs for gstreamer code Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * apk: remove commented code and debug logs Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * cleanup ServoView.java Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * mach: comment call to download gstreamer deps for android Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * disable bluetooth for jniapi as blurdroid is broken Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * fixup! README.md * fixup! remove change in Cargo.toml * fixup! move shell variables together * fixup! cleanup jniapi/Cargo.toml comments * delete commented gstreamer related android code Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * remove unused config variable in servbuild Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * android: more cleanup Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * force no_static_freetype only for android * use actions to manage sdk, ndk and java Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * rename embedder event names to be more clear. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * link to startup crash issue Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * fix lint issues Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * upgrade env_logger to 0.10 with duplicate exception libservo and android_logger can use env_logger 0.10 but quickcheck is still stuck on 0.8 and has not seen any activity in the last 2 years. This commit adds a duplicate exception until the quickcheck dependency can be upgraded (or replaced) Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * android: fix comments Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * disable jemalloc on android Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * fixup! replace linux with android in cfg --------- Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com>
66 lines
2.3 KiB
Groovy
66 lines
2.3 KiB
Groovy
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
|
plugins {
|
|
id 'com.android.application' version '8.0.1' apply false
|
|
id 'com.android.library' version '8.0.1' apply false
|
|
}
|
|
|
|
// Utility methods
|
|
ext.getTargetDir = { boolean debug, String arch ->
|
|
def basePath = project.rootDir.getParentFile().getParentFile().getParentFile().absolutePath
|
|
return basePath + '/target/android/' + getSubTargetDir(debug, arch)
|
|
}
|
|
|
|
ext.getNativeTargetDir = { boolean debug, String arch ->
|
|
def basePath = project.rootDir.getParentFile().getParentFile().getParentFile().absolutePath
|
|
return basePath + '/target/' + getSubTargetDir(debug, arch)
|
|
}
|
|
|
|
ext.getSubTargetDir = { boolean debug, String arch ->
|
|
return getRustTarget(arch) + '/' + (debug ? 'debug' : 'release')
|
|
}
|
|
|
|
ext.getJniLibsPath = { boolean debug, String arch ->
|
|
return getTargetDir(debug, arch) + '/jniLibs'
|
|
}
|
|
|
|
ext.getRustTarget = { String arch ->
|
|
switch (arch.toLowerCase()) {
|
|
case 'armv7' : return 'armv7-linux-androideabi'
|
|
case 'arm64' : return 'aarch64-linux-android'
|
|
case 'x86' : return 'i686-linux-android'
|
|
default: throw new GradleException("Invalid target architecture " + arch)
|
|
}
|
|
}
|
|
|
|
ext.getNDKAbi = { String arch ->
|
|
switch (arch.toLowerCase()) {
|
|
case 'armv7' : return 'armeabi-v7a'
|
|
case 'arm64' : return 'arm64-v8a'
|
|
case 'x86' : return 'x86'
|
|
default: throw new GradleException("Invalid target architecture " + arch)
|
|
}
|
|
}
|
|
|
|
ext.getNdkDir = { ->
|
|
// Read environment variable used in rust build system
|
|
String ndkRoot = System.getenv('ANDROID_NDK_ROOT')
|
|
if (ndkRoot == null) {
|
|
// Fallback to ndkDir in local.properties
|
|
def rootDir = project.rootDir
|
|
def localProperties = new File(rootDir, "local.properties")
|
|
Properties properties = new Properties()
|
|
localProperties.withInputStream { instr ->
|
|
properties.load(instr)
|
|
}
|
|
|
|
ndkRoot = properties.getProperty('ndk.dir')
|
|
}
|
|
|
|
def ndkDir = ndkRoot != null ? new File(ndkRoot) : null
|
|
if (!ndkDir || !ndkDir.exists()) {
|
|
throw new GradleException("Please set a valid ANDROID_NDK_ROOT environment variable" +
|
|
"or ndk.dir path in local.properties file");
|
|
}
|
|
return ndkDir.absolutePath
|
|
}
|