mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-04 07:26:33 +00:00
playback/player/android: Switch to native gradle ndk-build support
Based on a patch by Olivier Crete for another project
be9470a7e1
This commit is contained in:
parent
a5cdde9119
commit
8b0ea8257f
2 changed files with 24 additions and 45 deletions
|
@ -1,44 +1,34 @@
|
|||
apply plugin: 'com.android.application'
|
||||
|
||||
|
||||
def getNdkCommandLine(ndkRoot, target) {
|
||||
def gstRoot
|
||||
|
||||
if (project.hasProperty('gstAndroidRoot'))
|
||||
gstRoot = project.gstAndroidRoot
|
||||
else
|
||||
throw new GradleException('"gstAndroidRoot" must be defined in your gradle properties to the top level directory of the unpacked universal GStreamer Android binaries')
|
||||
|
||||
if (ndkRoot == null)
|
||||
throw new GradleException('NDK not configured')
|
||||
|
||||
return ["$ndkRoot/ndk-build",
|
||||
'NDK_PROJECT_PATH=build',
|
||||
'APP_BUILD_SCRIPT=src/main/jni/Android.mk',
|
||||
'NDK_APPLICATION_MK=src/main/jni/Application.mk',
|
||||
'GSTREAMER_JAVA_SRC_DIR=src/main/java',
|
||||
"GSTREAMER_ROOT_ANDROID=$gstRoot",
|
||||
target]
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion 23
|
||||
buildToolsVersion "23.0.3"
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
// Avoid using the built in JNI generation plugin
|
||||
jni.srcDirs = []
|
||||
jniLibs.srcDirs = ['build/libs']
|
||||
}
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
applicationId "org.freedesktop.gstreamer.play"
|
||||
minSdkVersion 15
|
||||
targetSdkVersion 15
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
|
||||
|
||||
externalNativeBuild {
|
||||
ndkBuild {
|
||||
def gstRoot
|
||||
|
||||
if (project.hasProperty('gstAndroidRoot'))
|
||||
gstRoot = project.gstAndroidRoot
|
||||
else
|
||||
throw new GradleException('"gstAndroidRoot" must be defined in your gradle.properties to the top level directory of the unpacked universal GStreamer Android binaries')
|
||||
|
||||
arguments "NDK_APPLICATION_MK=src/main/jni/Application.mk", "GSTREAMER_JAVA_SRC_DIR=src/main/java", "GSTREAMER_ROOT_ANDROID=$gstRoot"
|
||||
|
||||
targets "gstplayer", "gstreamer_android"
|
||||
|
||||
// All archs except MIPS and MIPS64 are supported
|
||||
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
|
@ -48,21 +38,10 @@ android {
|
|||
}
|
||||
}
|
||||
|
||||
// Before compiling our app, prepare NDK code
|
||||
tasks.withType(JavaCompile) {
|
||||
compileTask -> compileTask.dependsOn ndkBuild
|
||||
}
|
||||
|
||||
// Need to call clean on NDK ourselves too
|
||||
clean.dependsOn 'ndkClean'
|
||||
|
||||
// Build native code using mk files like on Eclipse
|
||||
task ndkBuild(type: Exec, description: 'Compile JNI source via NDK') {
|
||||
commandLine getNdkCommandLine(android.ndkDirectory, 'all')
|
||||
}
|
||||
|
||||
task ndkClean(type: Exec, description: 'Clean JNI code built via NDK') {
|
||||
commandLine getNdkCommandLine(android.ndkDirectory, 'clean')
|
||||
externalNativeBuild {
|
||||
ndkBuild {
|
||||
path 'src/main/jni/Android.mk'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ buildscript {
|
|||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:2.1.3'
|
||||
classpath 'com.android.tools.build:gradle:2.2.0'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
|
|
Loading…
Reference in a new issue