build.gradle 2.55 KB
Newer Older
1 2 3
apply plugin: 'com.android.library'

android {
4 5
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion
6 7 8

    sourceSets {
    main {
Edward Wang's avatar
Edward Wang committed
9
        jni.srcDirs = [] // Prevent gradle from building native code with ndk; we have our own Makefile for it.
10
        jniLibs.srcDir 'jni/libs' // Where generated .so files are placed.
11 12 13 14 15 16 17 18 19 20 21 22
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
    }
    }

    defaultConfig {
        minSdkVersion 7
23
        targetSdkVersion 22
24 25 26 27
    }

    buildTypes {
        release {
28
            minifyEnabled false
29 30 31 32
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}
33

34 35 36 37 38 39 40 41
/*
 * Include GDB files into apk
 */
afterEvaluate {
    Sync packageTask = project.getTasks().findByName("packageReleaseJniLibs")
    packageTask.include(['**/gdbserver', '**/gdb.setup'])
}

42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
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 buildDebugARMv5(type:BuildNative) {
    args('-a', "armeabi-v5")
}
task buildDebugARMv6(type:BuildNative) {
    args('-a', "armeabi")
}
task buildDebugARMv6_nofpu(type:BuildNative) {
    args('-a', "armeabi-nofpu")
}
task buildDebugARMv7(type:BuildNative) {
    args('-a', "armeabi-v7a")
}
task buildDebugARM64(type:BuildNative) {
Geoffrey Métais's avatar
Geoffrey Métais committed
77
    args('-a', "arm64-v8a")
78 79 80 81 82 83 84 85 86 87 88 89 90
}
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")
}