blob: 41a6db8bf447687b0550498b26e80c5a931aae83 [file] [log] [blame]
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 15
targetSdkVersion 19
versionCode 2001
versionName "0.2.1"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
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 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) {
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
}
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()
}
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'
compile('com.intel.jndn.utils:jndn-utils:0.9.7') {
exclude group: 'com.intel.jndn.mock', module: 'jndn-mock'
exclude group: 'net.named-data', module: 'jndn'
}
compile('com.intel.jndn.management:jndn-management:0.9.7') {
exclude group: 'net.named-data', module: 'jndn'
exclude group: 'com.intel.jndn.utils', module: 'jndn-utils'
exclude group: 'com.intel.jndn.mock', module: 'jndn-mock'
}
// compile('net.named-data:jndn-android:0.7') {
compile('net.named-data:jndn:0.4') {
exclude group: 'org.xerial'
}
compile 'net.named-data.jndn-xx:jndn-xx-util:0.0.1'
compile 'joda-time:joda-time:2.7'
}