summaryrefslogtreecommitdiff
path: root/platform/android/build.gradle
blob: 85e0d1dd989c60c3ed1d95970bd0d6fc45276808 (plain)
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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
77
78
79
80
81
82
83
84
85
86
87
88
import org.apache.tools.ant.taskdefs.condition.Os

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

apply plugin: 'com.android.application'

dependencies {
    compile fileTree(dir: 'libs', include: '*.so')
}

android {

    compileSdkVersion 17
    buildToolsVersion '21.1.2'

    /*  this stops gradle from making it's own Android.mk file */
	sourceSets.main.jni.srcDirs = []
   
    sourceSets {
        main {
            manifest {
                srcFile 'AndroidManifest.xml'
            }
            java {
                srcDir 'src'
            }
            res {
                srcDir 'res'
            }
            assets {
                srcDir 'assets'
            }
            resources {
                srcDir 'src'
            }
            jniLibs {
            	srcDir 'libs'
            }
        }
    }

    /* This is important, it will run lint checks but won't abort build */
  lintOptions {
      abortOnError false
  }
    
}

/*  This defines the path to Android's ndk-build.  */
def ndkBuildPath = plugins.getPlugin('com.android.application').sdkHandler.getNdkFolder().absolutePath + File.separator + 'ndk-build'
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
    ndkBuildPath +='.cmd'
}

/*  This task builds the native part  */
task buildNative(type: Exec,description: 'Compile JNI source via NDK') {
    println('executing buildNative')
    commandLine ndkBuildPath, '-C', file('.').absolutePath
    //'NDK_PROJECT_PATH=build','APP_BUILD_SCRIPT=src/main/jni/Android.mk'//force using appropriate Makefile
}

/*  This task cleans the native part  */
task cleanNative(type: Exec, description: 'Clean JNI object files') {
    println('executing cleanNative')
    commandLine ndkBuildPath, '-C', file('.').absolutePath, 'clean'
}

/*  cleaning should also include cleaning native  */
clean.dependsOn 'cleanNative'

/*  building should include native  */
tasks.withType(JavaCompile){
    compileTask -> compileTask.dependsOn buildNative
}