2 *******************************************************************
\r
4 * Copyright 2015 Intel Corporation.
\r
6 *-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\r
8 * Licensed under the Apache License, Version 2.0 (the "License");
\r
9 * you may not use this file except in compliance with the License.
\r
10 * You may obtain a copy of the License at
\r
12 * http://www.apache.org/licenses/LICENSE-2.0
\r
14 * Unless required by applicable law or agreed to in writing, software
\r
15 * distributed under the License is distributed on an "AS IS" BASIS,
\r
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
17 * See the License for the specific language governing permissions and
\r
18 * limitations under the License.
\r
20 *-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\r
23 apply plugin: 'com.android.library'
\r
26 compileSdkVersion 21
\r
27 buildToolsVersion "20.0.0"
\r
28 archivesBaseName = "iotivity-base"
\r
30 libraryVariants.all { variant ->
\r
31 variant.outputs.each { output ->
\r
32 def outputFile = output.outputFile
\r
33 if (outputFile != null && outputFile.name.endsWith('.aar')) {
\r
34 def fileName = "${archivesBaseName}-${TARGET_ARCH}-${RELEASE}.aar"
\r
35 output.outputFile = new File(outputFile.parent, fileName)
\r
45 buildConfigField 'int', 'SECURED', SECURED
\r
49 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
\r
59 manifest.srcFile 'src/main/AndroidManifest.xml'
\r
60 jniLibs.srcDir 'libs'
\r
61 jni.srcDirs = [] //disable automatic ndk-build call
\r
68 compile fileTree(dir: 'libs', include: ['*.jar'])
\r
74 //If using this, Android studio will fail run the following to set the environment variable for android studio:
\r
75 //launchctl setenv ANDROID_NDK_HOME /Users/boos_patrick/Development/Android/android-ndk-r8e
\r
76 //otherwise remove the dependsOn part and run ./gradlew buildNative from the command line
\r
78 task copyNativeLibs(type: Copy, dependsOn: 'buildNative') {
\r
79 dependsOn 'buildNative'
\r
80 from(new File('libs')) { include '**/*.so' }
\r
81 into new File(buildDir, 'native-libs')
\r
84 tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn copyNativeLibs }
\r
86 clean.dependsOn 'cleanCopyNativeLibs'
\r
88 tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
\r
89 pkgTask.jniFolders = new HashSet<File>()
\r
90 pkgTask.jniFolders.add(new File(buildDir, 'native-libs'))
\r
93 task buildNative(type: Exec) {
\r
94 if (System.env.ANDROID_NDK_HOME != null) {
\r
95 //for windows use 'ndk-build.cmd'
\r
96 //def ndkBuild = new File(System.env.ANDROID_NDK_HOME, 'ndk-build.cmd')
\r
97 def ndkBuild = new File(System.env.ANDROID_NDK_HOME, 'ndk-build')
\r
98 commandLine ndkBuild, "APP_ABI=$TARGET_ARCH", "APP_OPTIM=$RELEASE", "SECURE=$SECURED"
\r
100 println '##################'
\r
101 println 'Skipping NDK build'
\r
102 println 'Reason: ANDROID_NDK_HOME not set.'
\r
103 println '##################'
\r