You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
3.3 KiB
107 lines
3.3 KiB
apply plugin: 'com.android.library'
|
|
|
|
import com.android.builder.core.DefaultManifestParser
|
|
|
|
android {
|
|
compileSdkVersion rootProject.ext.compileSdkVersion
|
|
buildToolsVersion rootProject.ext.buildToolsVersion
|
|
|
|
sourceSets {
|
|
main {
|
|
jni.srcDirs = [] // Prevent gradle from building native code with ndk; we have our own Makefile for it.
|
|
jniLibs.srcDirs = [ 'jni/libs', 'jni/loader/libs', 'private_libs/libs' ] // Where generated .so files are placed.
|
|
manifest.srcFile 'AndroidManifest.xml'
|
|
java.srcDirs = ['src']
|
|
resources.srcDirs = ['src']
|
|
aidl.srcDirs = ['src']
|
|
renderscript.srcDirs = ['src']
|
|
res.srcDirs = ['res']
|
|
assets.srcDirs = ['assets' ]
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled false
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
|
|
}
|
|
}
|
|
|
|
// Make per-variant version code
|
|
libraryVariants.all { variant ->
|
|
def manifestParser = new DefaultManifestParser(android.sourceSets.main.manifest.srcFile)
|
|
// get the version code of each flavor
|
|
def vlcVersion = manifestParser.getVersionName()
|
|
manifestParser = new DefaultManifestParser(file('../vlc-android/AndroidManifest.xml'))
|
|
def androidVersion = manifestParser.getVersionName()
|
|
//Custom APK name
|
|
variant.outputs.all { output ->
|
|
if (outputFileName != null && outputFileName.endsWith('.aar')) {
|
|
outputFileName = "libvlc-${vlcVersion}-${androidVersion}.aar"
|
|
}
|
|
}
|
|
}
|
|
buildToolsVersion '26.0.2'
|
|
}
|
|
|
|
/*
|
|
* Include GDB files into apk
|
|
*/
|
|
//afterEvaluate {
|
|
// Sync packageTask = project.getTasks().findByName("packageReleaseJniLibs")
|
|
// packageTask.include(['**/gdbserver', '**/gdb.setup'])
|
|
//}
|
|
|
|
class BuildNative extends Exec {}
|
|
|
|
tasks.withType(BuildNative){
|
|
/*
|
|
Properties set for Android Studio own shell.
|
|
when you run gradlew from cli, OS shell env variables will be used
|
|
|
|
To be able to build from Android Studio, you have to set ndk.dir & sdk.dir
|
|
properties in local.properties in the root folder, like this (for example):
|
|
sdk.dir=/home/<username>/SDK/android-sdk-linux
|
|
ndk.dir=/home/<username>/SDK/android-ndk-r10b
|
|
*/
|
|
if (System.getenv('ANDROID_SDK') == null || System.getenv('ANDROID_NDK') == null) {
|
|
Properties properties = new Properties()
|
|
properties.load(project.rootProject.file('local.properties').newDataInputStream())
|
|
environment 'ANDROID_NDK', properties.getProperty('ndk.dir')
|
|
environment 'ANDROID_SDK', properties.getProperty('sdk.dir')
|
|
}
|
|
workingDir '..'
|
|
commandLine './compile-libvlc.sh'
|
|
}
|
|
|
|
task buildDebugARMv7(type:BuildNative) {
|
|
args('-a', "armeabi-v7a")
|
|
}
|
|
task buildDebugARM64(type:BuildNative) {
|
|
args('-a', "arm64-v8a")
|
|
}
|
|
task buildDebugx86(type:BuildNative) {
|
|
args('-a', "x86")
|
|
}
|
|
task buildDebugx86_64(type:BuildNative) {
|
|
args('-a', "x86_64")
|
|
}
|
|
task buildDebugMIPS(type:BuildNative) {
|
|
args('-a', "mips")
|
|
}
|
|
task buildDebugMIPS64(type:BuildNative) {
|
|
args('-a', "mips64")
|
|
}
|
|
|
|
task generateSources (type: Jar) {
|
|
classifier = 'sources'
|
|
from android.sourceSets.main.java.srcDirs
|
|
}
|
|
|
|
clean {
|
|
delete 'build', 'jni/libs', 'jni/obj'
|
|
}
|
|
|
|
dependencies {
|
|
api "com.android.support:support-annotations:$rootProject.ext.appCompatVersion"
|
|
}
|
|
|