X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=android%2Fxscreensaver%2Fbuild.gradle;fp=android%2Fxscreensaver%2Fbuild.gradle;h=6d1151ff1016792efdd3ea96d84aa81e287e9a13;hp=0000000000000000000000000000000000000000;hb=39809ded547bdbb08207d3e514950425215b4410;hpb=4361b69d3178d7fc98d0388f9a223af6c2651aba diff --git a/android/xscreensaver/build.gradle b/android/xscreensaver/build.gradle new file mode 100644 index 00000000..6d1151ff --- /dev/null +++ b/android/xscreensaver/build.gradle @@ -0,0 +1,108 @@ +apply plugin: 'android' + +dependencies { + compile fileTree(include: '*.jar', dir: 'libs') +} + +android { + compileSdkVersion 21 + buildToolsVersion "21.1.2" + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_7 + targetCompatibility JavaVersion.VERSION_1_7 + } + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + java.srcDirs = ['src'] + resources.srcDirs = ['src'] + aidl.srcDirs = ['src'] + renderscript.srcDirs = ['src'] + res.srcDirs = ['res'] + assets.srcDirs = ['assets'] + // jniLibs.srcDirs = ['jni'] + jniLibs.srcDirs = ['libs'] + jni.srcDirs = [] // disable automatic ndk-build call + } + + // Move the tests to tests/java, tests/res, etc... + instrumentTest.setRoot('tests') + + // Move the build types to build-types/ + // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... + // This moves them out of them default location under src//... which would + // conflict with src/ being used by the main source set. + // Adding new build types or product flavors should be accompanied + // by a similar customization. + debug.setRoot('build-types/debug') + release.setRoot('build-types/release') + } + project.ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'arm64-v8a': 3, 'mips': 5, 'mips64': 6, 'x86': 8, 'x86_64': 9] + //versionCode digit for each supported ABI, with 64bit>32bit and x86>armeabi-* + + + // put ndk-build in build's path, or replace below with its full path + task ndkBuild(type: Exec) { + Properties properties = new Properties() + properties.load(project.rootProject.file('local.properties').newDataInputStream()) + def ndkDir = properties.getProperty('ndk.dir') + commandLine "$ndkDir/ndk-build", '-C', file('jni').absolutePath, + '-j' + Runtime.getRuntime().availableProcessors().toString() + } + + // generate files early in the process + task perlBuild(type: Exec) { + commandLine 'sh', '-c', + 'cd ..; ../hacks/check-configs.pl --build-android $ANDROID_HACKS' + } + + task perlClean(type: Delete) { + delete('../gen') + delete('res/values') + delete('res/xml') + delete('src/org/jwz/xscreensaver/gen') + delete('AndroidManifest.xml') + } + + task objlibClean(type: Delete) { + delete('./build') + delete('./libs') + delete('./obj') + } + + task downloadNeededDrawables(type: Exec) { + commandLine 'sh', '-c', + 'cd ../ ; \ + for f in $ANDROID_HACKS; do \ + f=`echo "$f" | sed s/rd-bomb/rdbomb/` ; \ + make -s xscreensaver/res/drawable/$f.png ; \ + done' + } + preBuild.dependsOn downloadNeededDrawables + + preBuild.dependsOn perlBuild + + clean.dependsOn perlClean + clean.dependsOn objlibClean + + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" + } + + tasks.withType(JavaCompile) { + compileTask -> compileTask.dependsOn ndkBuild + } + + + defaultConfig { + minSdkVersion 15 + targetSdkVersion 21 + } + productFlavors { + } + buildTypes { + debug { + jniDebuggable true + } + } +}