Merge branch 'master' into 'security-basecamp'
[platform/upstream/iotivity.git] / resource / csdk / connectivity / samples / android / casample / sampleService / build.gradle
1 apply plugin: 'com.android.application'
2
3 android {
4     compileSdkVersion 21
5     buildToolsVersion "20.0.0"
6
7     defaultConfig {
8         applicationId "org.iotivity.ca.sample_service"
9         minSdkVersion 21
10         targetSdkVersion 21
11
12         ndk {
13             moduleName "RMInterface"
14         }
15     }
16
17     buildTypes {
18         release {
19             minifyEnabled false
20             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
21         }
22     }
23
24     lintOptions {
25        abortOnError false
26     }
27
28     sourceSets {
29         main {
30             manifest.srcFile 'src/main/AndroidManifest.xml'
31             jniLibs.srcDir 'libs'
32             jni.srcDirs = [] //disable automatic ndk-build call
33         }
34     }
35 }
36
37 dependencies {
38     compile fileTree(dir: 'libs', include: ['*.jar'])
39     compile project(':cAInterface')
40 }
41
42 task copyNativeLibs(type: Copy, dependsOn: 'buildNative') {
43     dependsOn 'buildNative'
44     from(new File('src/main/libs')) { include '**/*.so' }
45     into new File(buildDir, 'native-libs')
46 }
47
48 tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn copyNativeLibs }
49
50 clean.dependsOn 'cleanCopyNativeLibs'
51
52 tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
53     pkgTask.jniFolders = new HashSet<File>()
54     pkgTask.jniFolders.add(new File(buildDir, 'native-libs'))
55 }
56
57 task buildNative(type: Exec) {
58     if (System.env.ANDROID_NDK_HOME != null) {
59         //for windows use 'ndk-build.cmd'
60         //def ndkBuild = new File(System.env.ANDROID_NDK_HOME, 'ndk-build.cmd')
61         def ndkBuild = new File(System.env.ANDROID_NDK_HOME, 'ndk-build')
62         commandLine ndkBuild, "-C", file("src/main"), "-B", "-j", Runtime.runtime.availableProcessors(),
63                               "APP_ABI=$TARGET_ARCH", "APP_OPTIM=$RELEASE"
64     } else {
65         println '##################'
66         println 'Skipping NDK build'
67         println 'Reason: ANDROID_NDK_HOME not set.'
68         println '##################'
69     }
70 }