1 apply plugin: 'android'
4 compile fileTree(include: '*.jar', dir: 'libs')
5 compile "com.android.support:support-v4:27.1.1"
10 buildToolsVersion "27.0.3"
12 sourceCompatibility JavaVersion.VERSION_1_7
13 targetCompatibility JavaVersion.VERSION_1_7
17 manifest.srcFile 'AndroidManifest.xml'
18 java.srcDirs = ['src']
19 resources.srcDirs = ['src']
20 aidl.srcDirs = ['src']
21 renderscript.srcDirs = ['src']
23 assets.srcDirs = ['assets']
24 // jniLibs.srcDirs = ['jni']
25 jniLibs.srcDirs = ['libs']
26 jni.srcDirs = [] // disable automatic ndk-build call
29 // Move the tests to tests/java, tests/res, etc...
30 androidTest.setRoot('tests')
32 // Move the build types to build-types/<type>
33 // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
34 // This moves them out of them default location under src/<type>/... which would
35 // conflict with src/ being used by the main source set.
36 // Adding new build types or product flavors should be accompanied
37 // by a similar customization.
38 debug.setRoot('build-types/debug')
39 release.setRoot('build-types/release')
41 project.ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'arm64-v8a': 3, 'mips': 5, 'mips64': 6, 'x86': 8, 'x86_64': 9]
42 //versionCode digit for each supported ABI, with 64bit>32bit and x86>armeabi-*
45 // put ndk-build in build's path, or replace below with its full path
46 task ndkBuild(type: Exec) {
47 Properties properties = new Properties()
48 properties.load(project.rootProject.file('local.properties').newDataInputStream())
49 def ndkDir = properties.getProperty('ndk.dir')
50 commandLine "$ndkDir/ndk-build", '-C', file('jni').absolutePath,
51 '-j' + Runtime.getRuntime().availableProcessors().toString()
54 // generate files early in the process
55 task perlBuild(type: Exec) {
56 commandLine 'sh', '-c',
57 'cd ..; ../hacks/check-configs.pl --build-android $ANDROID_HACKS'
60 task perlClean(type: Delete) {
64 delete('src/org/jwz/xscreensaver/gen')
65 delete('AndroidManifest.xml')
68 task objlibClean(type: Delete) {
74 task downloadNeededDrawables(type: Exec) {
75 commandLine 'sh', '-c',
77 for f in $ANDROID_HACKS; do \
78 f=`echo "$f" | sed s/rd-bomb/rdbomb/` ; \
79 make -s xscreensaver/res/drawable/$f.png ; \
82 preBuild.dependsOn downloadNeededDrawables
84 preBuild.dependsOn perlBuild
86 clean.dependsOn perlClean
87 clean.dependsOn objlibClean
89 tasks.withType(JavaCompile) {
90 options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
93 tasks.withType(JavaCompile) {
94 compileTask -> compileTask.dependsOn ndkBuild