Adding initial app framework
Change-Id: I0c53e3487eb3be1eefa2d0c7f260a90d82fd8844
diff --git a/app/build.gradle b/app/build.gradle
new file mode 100644
index 0000000..4720ba0
--- /dev/null
+++ b/app/build.gradle
@@ -0,0 +1,99 @@
+import org.apache.tools.ant.taskdefs.condition.Os
+
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 21
+ buildToolsVersion "21.1.2"
+
+ defaultConfig {
+ applicationId "net.named_data.nfd"
+ minSdkVersion 14
+ targetSdkVersion 21
+ versionCode 2001
+ versionName "0.2.1"
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+ 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']
+ }
+
+ splits {
+ abi {
+ enable true // enable ABI split feature to create one APK per ABI
+ universalApk true //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
+ }
+ }
+
+ // call regular ndk-build(.cmd) script from app directory
+ task ndkBuild(type: Exec) {
+ commandLine getNdkBuildCmd(), '-C', file('src/main').absolutePath
+ }
+
+ tasks.withType(JavaCompile) {
+ compileTask -> compileTask.dependsOn ndkBuild
+ }
+
+ task cleanNative(type: Exec) {
+ commandLine getNdkBuildCmd(), '-C', file('src/main').absolutePath, 'clean'
+ }
+
+ clean.dependsOn cleanNative
+}
+
+def getNdkBuildCmd() {
+ 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())
+ String 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.")
+ }
+
+ String ndk_build = ndk_dir + "/ndk-build"
+ if (Os.isFamily(Os.FAMILY_WINDOWS)) {
+ ndk_build += ".cmd"
+ }
+
+ return ndk_build
+}
+
+dependencies {
+ compile fileTree(dir: 'libs', include: ['*.jar'])
+ compile 'com.android.support:appcompat-v7:21.0.3'
+ compile 'com.android.support:support-v4:21.0.3'
+}