build.gradle 2.93 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import org.apache.tools.ant.taskdefs.condition.Os

apply plugin: 'com.android.library'

android {
    compileSdkVersion 21
    buildToolsVersion '21.1.2'

    defaultConfig {
        minSdkVersion 11
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets.main {
        jniLibs.srcDir 'src/main/libs'
        jni.srcDirs = []
    }

pedroGitt's avatar
pedroGitt committed
27
28
29
30
31
32
33
   task buildJavaDoc(type: Javadoc) {
        source = android.sourceSets.main.java.srcDirs
        classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
        destinationDir = file("./doc/")
        failOnError false
    }

pedroGitt's avatar
pedroGitt committed
34
35
    task ndkBuildNativeRelease(type: Exec, description: 'NDK building..') {
        println 'ndkBuildNativeRelease starts..'
36
        workingDir file('src/main')
pedroGitt's avatar
pedroGitt committed
37
38
39
40
41
42
43
        commandLine getNdkBuildCmd(), 'NDK_DEBUG=0'
    }

    task ndkBuildNativeDebug(type: Exec, description: 'NDK building..') {
        println 'ndkBuildNativeDebug starts..'
        workingDir file('src/main')
        commandLine getNdkBuildCmd(), 'NDK_DEBUG=1'
44
45
46
47
48
49
50
    }

    task cleanNative(type: Exec, description: 'Clean NDK build') {
        workingDir file('src/main')
        commandLine getNdkBuildCmd(), 'clean'
    }

pedroGitt's avatar
pedroGitt committed
51
    /*tasks.withType(JavaCompile) {
52
        compileTask -> compileTask.dependsOn ndkBuildNative
pedroGitt's avatar
pedroGitt committed
53
54
55
56
57
58
59
60
61
62
    }*/

    tasks.withType(JavaCompile) {
        compileTask -> if (compileTask.name.startsWith('compileDebugJava')) {
            println 'test compile: Debug'
            compileTask.dependsOn ndkBuildNativeDebug
        } else if (compileTask.name.startsWith('compileReleaseJava')) {
            println 'test compile: Release'
            compileTask.dependsOn ndkBuildNativeRelease
        }
pedroGitt's avatar
pedroGitt committed
63
        compileTask.dependsOn buildJavaDoc
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
    }

    clean.dependsOn cleanNative
}

def getNdkFolder() {
    Properties properties = new Properties()
    properties.load(project.rootProject.file('local.properties').newDataInputStream())
    def ndkFolder = properties.getProperty('ndk.dir', null)
    if (ndkFolder == null)
        throw new GradleException("NDK location missing. Define it with ndk.dir in the local.properties file")

    return ndkFolder
}

def getNdkBuildCmd() {
    def ndkBuildCmd = getNdkFolder() + "/ndk-build"
    if (Os.isFamily(Os.FAMILY_WINDOWS))
        ndkBuildCmd += ".cmd"

    return ndkBuildCmd
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:21.+'

    testCompile 'junit:junit:4.12'
    androidTestCompile 'junit:junit:4.12'
    androidTestCompile 'com.android.support:support-annotations:21.0.0'
    androidTestCompile 'com.android.support.test:runner:0.5'
    androidTestCompile 'com.android.support.test:rules:0.5'
}