aboutsummaryrefslogtreecommitdiffstats
path: root/iget_android/app/build.gradle
diff options
context:
space:
mode:
Diffstat (limited to 'iget_android/app/build.gradle')
-rw-r--r--iget_android/app/build.gradle185
1 files changed, 185 insertions, 0 deletions
diff --git a/iget_android/app/build.gradle b/iget_android/app/build.gradle
new file mode 100644
index 00000000..43638e0a
--- /dev/null
+++ b/iget_android/app/build.gradle
@@ -0,0 +1,185 @@
+import org.apache.tools.ant.taskdefs.condition.Os
+
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 23
+ buildToolsVersion "23.0.2"
+
+ defaultConfig {
+ applicationId "com.iget.ccnx"
+ minSdkVersion 15
+ targetSdkVersion 23
+ versionCode 1
+ versionName "0.0.1 ( 0.0.1)"
+ }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_7
+ targetCompatibility JavaVersion.VERSION_1_7
+ }
+ signingConfigs {
+ release {
+ storeFile file("iget.keystore")
+ storePassword "icn_iget"
+ keyAlias "iget"
+ keyPassword "icn_iget"
+ }
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ signingConfig signingConfigs.release
+ }
+ debug {
+ debuggable true
+ jniDebuggable true
+ }
+ }
+ sourceSets {
+ main {
+ java.srcDirs "src/main/java"
+ res.srcDirs "src/main/res"
+ jniLibs.srcDir 'src/main/libs'
+ jni.srcDirs = [] //disable automatic ndk-build call
+ }
+ androidTest.setRoot('tests')
+ androidTest.java.srcDirs = ['tests/src']
+ }
+ packagingOptions {
+ exclude 'META-INF/LICENSE.txt'
+ exclude 'META-INF/NOTICE.txt'
+ }
+
+ splits {
+ abi {
+ enable true // enable ABI split feature to create one APK per ABI
+ universalApk false // don't generate an additional APK that targets all the ABIs
+ }
+ }
+
+ // map for the version code
+ // versionCode digit for each supported ABI, with 64bit>32bit and x86>armeabi-*
+ project.ext.versionCodes = ['armeabi': 1,
+ 'armeabi-v7a': 2,
+ 'arm64-v8a': 3,
+ 'mips': 5,
+ 'mips64': 6,
+ 'x86': 8,
+ 'x86_64': 9]
+
+ android.applicationVariants.all { variant ->
+ // assign different version code for each output
+ variant.outputs.each { output ->
+ output.versionCodeOverride = project.ext.versionCodes.get(
+ output.getFilter(
+ com.android.build.OutputFile.ABI), 0) * 1000000 +
+ defaultConfig.versionCode
+ }
+ }
+
+ task copyNdnCxxHeaders(type: Copy) {
+ from('src/main/jni/ndn-cxx/src') {
+ include '**/*.hpp'
+ }
+ into 'build/generated/source/include/ndn-cxx'
+ }
+
+ // call regular ndk-build(.cmd) script from app directory
+ task ndkBuild(type: Exec) {
+ dependsOn copyNdnCxxHeaders
+ def args = [getNdkBuildCmd(), '-C', file('src/main').absolutePath]
+
+ if (System.env.NDK_BUILD_PARALLEL != null) {
+ args.add("-j" + System.env.NDK_BUILD_PARALLEL)
+ }
+ else {
+ args.add("-j" + Runtime.runtime.availableProcessors())
+ }
+
+ if (System.env.NDK_BUILD_ABI != null) {
+ args.add("APP_ABI=" + System.env.NDK_BUILD_ABI)
+ }
+
+ if (System.env.NDK_DEBUG != null) {
+ args.add("NDK_DEBUG=1")
+ }
+ commandLine args
+ }
+
+ tasks.withType(JavaCompile) {
+ compileTask -> compileTask.dependsOn ndkBuild
+ }
+
+ task cleanNative(type: Exec) {
+ commandLine getNdkBuildCmd(), '-C', file('src/main').absolutePath, 'clean'
+ }
+
+ clean.dependsOn cleanNative
+ //dexOptions {
+ // incremental true
+ //}
+ dexOptions {
+ incremental true
+ }
+}
+
+def getNdkBuildCmd() {
+ def ndk_build = getNdkDir() + "/ndk-build"
+ if (Os.isFamily(Os.FAMILY_WINDOWS)) {
+ ndk_build += ".cmd"
+ }
+
+ return ndk_build
+}
+
+
+def getNdkDir() {
+ if (System.env.ANDROID_NDK_ROOT != null)
+ return System.env.ANDROID_NDK_ROOT
+
+ Properties properties = new Properties()
+ properties.load(project.rootProject.file('local.properties').newDataInputStream())
+
+ def ndk_dir = properties.getProperty('ndk.dir', null)
+ if (ndk_dir == null) {
+ throw new GradleException("NDK location not found. Define location with ndk.dir in the local.properties file or with an ANDROID_NDK_ROOT environment variable.")
+ }
+ return ndk_dir
+}
+
+repositories {
+ mavenLocal()
+ mavenCentral()
+ maven {
+ url "https://oss.sonatype.org/content/repositories/snapshots/"
+ }
+}
+
+dependencies {
+ compile fileTree(include: ['*.jar'], dir: 'libs')
+ compile 'com.android.support:appcompat-v7:23.1.1'
+ compile 'com.android.support:support-v4:23.1.1'
+ compile('com.intel.jndn.management:jndn-management:1.1.2') {
+ exclude group: 'net.named-data', module: 'jndn'
+ }
+ compile('net.named-data:jndn-android:0.13') {
+ exclude group: 'org.xerial'
+ }
+ compile 'net.named-data.jndn-xx:jndn-xx-util:0.0.1'
+ compile 'joda-time:joda-time:2.7'
+}
+
+Properties properties = new Properties()
+properties.load(project.rootProject.file('local.properties').newDataInputStream())
+
+
+if (properties['google-play'] != null) {
+ apply plugin: 'net.named-data.playground.play'
+
+ play {
+ track = 'alpha'
+ jsonFile = file(properties['google-play'])
+ }
+}