vtm/vtm-android/build.gradle

113 lines
3.0 KiB
Groovy

apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
configurations {
eclipseCompile
}
dependencies {
compile project(':vtm')
provided files('vtm-jni-natives.jar')
compile 'com.android.support:support-v4:21.+'
eclipseCompile project(':appcompat')
}
android {
compileSdkVersion androidTargetSdk()
buildToolsVersion = "$androidBuildVersionTools"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
lintOptions.abortOnError false
}
task sourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
artifacts {
archives sourcesJar
}
eclipse {
classpath {
plusConfigurations += [ configurations.compile, configurations.eclipseCompile ]
//noExportConfigurations += [ configurations.provided ]
//customizing the classes output directory:
defaultOutputDir = file('bin/classes')
containers = ['com.android.ide.eclipse.adt.ANDROID_FRAMEWORK',
'com.android.ide.eclipse.adt.LIBRARIES',
'com.android.ide.eclipse.adt.DEPENDENCIES']
file {
// Manipulation of the classpath XML before merging local
// and generated copies
beforeMerged { classpath ->
// Remove all source entries to avoid overlap
classpath.entries.removeAll() { e ->
e.kind == 'src'
}
}
// only used to explode jni .so into aar
whenMerged {
classpath ->
classpath.entries.findAll { e ->
e.path.contains('native-libs') ||
e.path.contains('ANDROID_FRAMEWORK')
}*.exported = false
classpath.entries.removeAll() { e ->
e.path.contains('support')
}
}
// Direct manipulation of the generated classpath XML
withXml {
// Since non-default source directories are used
// they need to be manually added to the classpath XML
def node = it.asNode()
// Main source directory and generated code directory
node.appendNode('classpathentry kind="src" path="src"')
node.appendNode('classpathentry kind="src" path="gen"')
}
}
}
project {
natures = ['com.android.ide.eclipse.adt.AndroidNature',
'org.eclipse.jdt.core.javanature']
buildCommand 'com.android.ide.eclipse.adt.ResourceManagerBuilder'
buildCommand 'com.android.ide.eclipse.adt.PreCompilerBuilder'
buildCommand 'com.android.ide.eclipse.adt.ApkBuilder'
// use extracted jni .so in eclipse
linkedResource name: 'libs', type: '2',
locationUri: 'PARENT-1-PROJECT_LOC/vtm-ext-libs/vtm-android'
}
}
android.libraryVariants.all { variant ->
def name = variant.buildType.name
if (name.equals("debug")) {
print "Skipping debug jar"
return; // Skip debug builds.
}
def task = project.tasks.create "jar${name.capitalize()}", Jar
task.dependsOn variant.javaCompile
task.from variant.javaCompile.destinationDir
artifacts.add('archives', task);
}