summaryrefslogtreecommitdiff
path: root/app/build.gradle
diff options
context:
space:
mode:
authorParménides GV <parmegv@sdf.org>2014-05-28 17:15:44 +0200
committerParménides GV <parmegv@sdf.org>2014-05-28 17:15:44 +0200
commit6fcd101fcbc7779ffd7239cc35e5c3359ae38fcf (patch)
tree190d57ad5785b1397d6a8346726136b83d0aa870 /app/build.gradle
parenta0a7be518a758ad3c17111e8a5f3694d1a711d73 (diff)
Resources merge correctly.
Diffstat (limited to 'app/build.gradle')
-rw-r--r--app/build.gradle164
1 files changed, 127 insertions, 37 deletions
diff --git a/app/build.gradle b/app/build.gradle
index 44e48292..062bb7c7 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,53 +1,143 @@
apply plugin: 'android'
android {
- compileSdkVersion 19
- buildToolsVersion "19.0.3"
+ compileSdkVersion 19
+ buildToolsVersion "19.0.3"
- defaultConfig {
- minSdkVersion 14
- targetSdkVersion 19
+ defaultConfig {
+ minSdkVersion 14
+ targetSdkVersion 19
- testPackageName "se.leap.bitmaskclient.test"
- testInstrumentationRunner "android.test.InstrumentationTestRunner"
+ testPackageName "se.leap.bitmaskclient.test"
+ testInstrumentationRunner "android.test.InstrumentationTestRunner"
+ }
+
+ signingConfigs {
+ release {
+ storeFile project.hasProperty('storeFileProperty') ? file(storeFileProperty) : null
+ storePassword project.hasProperty('storePasswordProperty') ? storePasswordProperty : ""
+ keyAlias project.hasProperty('keyAliasProperty') ? keyAliasProperty : ""
+ keyPassword project.hasProperty('keyPasswordProperty') ? keyPasswordProperty : ""
}
+ }
- signingConfigs {
- release {
- storeFile project.hasProperty('storeFileProperty') ? file(storeFileProperty) : null
- storePassword project.hasProperty('storePasswordProperty') ? storePasswordProperty : ""
- keyAlias project.hasProperty('keyAliasProperty') ? keyAliasProperty : ""
- keyPassword project.hasProperty('keyPasswordProperty') ? keyPasswordProperty : ""
- }
+ buildTypes {
+ release {
+ //runProguard true
+ signingConfig signingConfigs.release.isSigningReady() ? signingConfigs.release : signingConfigs.debug
}
+ }
- buildTypes {
- release {
- //runProguard true
- signingConfig signingConfigs.release.isSigningReady() ? signingConfigs.release : signingConfigs.debug
- }
+ lintOptions {
+ abortOnError false
+ }
+
+ sourceSets {
+ main {
+ assets.srcDirs = ['assets', 'ovpnlibs/assets']
+ jniLibs.srcDirs = ['ovpnlibs/jniLibs']
+ jni.srcDirs = [] //disable automatic ndk-build
}
+ debug {
+ assets.srcDirs = ['src/debug/assets']
+ }
+ }
+
+ //check.dependsOn connectedCheck
+}
+
+dependencies {
+ androidTestCompile 'com.android.support:support-v4:+'
+ androidTestCompile 'com.jayway.android.robotium:robotium-solo:4.3.1'
+ compile 'com.intellij:annotations:12.0'
+}
+
+def processFileInplace(file, Closure processText) {
+ def text = file.text
+ file.write(processText(text))
+}
+
+
+task checkoutStrippedIcsOpenVPN ( type: Copy ) {
+ //FIXME Checkout ics-openvpn-stripped from branch "ics-openvpn-upstream"
+ from '/tmp/bitmask_android_tmp/ics-openvpn-stripped'
+ into '../ics-openvpn-stripped'
+}
+
+task copyIcsOpenVPNClasses( type: Copy, dependsOn: 'checkoutStrippedIcsOpenVPN' ) {
+ from ('../ics-openvpn-stripped/main/') {
+ include '**/*.java'
+ include '**/*.aidl'
+ include '**/strings.xml'
+ include '**/log_window.xml'
- lintOptions {
- abortOnError false
+ rename 'strings.xml', 'strings-icsopenvpn.xml'
+ filter {
+ line -> line.replaceAll('de.blinkt.openvpn.R', 'se.leap.bitmaskclient.R')
}
-
- sourceSets {
- main {
- assets.srcDirs = ['assets', 'ovpnlibs/assets']
- jniLibs.srcDirs = ['ovpnlibs/jniLibs']
- jni.srcDirs = [] //disable automatic ndk-build
- }
- debug {
- assets.srcDirs = ['src/debug/assets']
+ filter {
+ line -> line.replaceAll('de.blinkt.openvpn.BuildConfig', 'se.leap.bitmaskclient.BuildConfig')
+ }
+ filter {
+ line -> line.replace('package de.blinkt.openvpn;', 'package de.blinkt.openvpn;\n\nimport se.leap.bitmaskclient.R;')
+ }
+ filter {
+ line -> line.replace('package de.blinkt.openvpn.fragments;', 'package de.blinkt.openvpn.fragments;\n\nimport se.leap.bitmaskclient.R;')
+ }
+ filter {
+ line -> line.replaceAll('.*name="app".*', '')
+ }
+ } into '.'
+}
+
+// thanks to http://pleac.sourceforge.net/pleac_groovy/fileaccess.html
+task removeDuplicatedStrings( dependsOn: 'copyIcsOpenVPNClasses' ) << {
+ new File('.').eachFileRecurse {
+ if(it.name.equals('strings.xml')) {
+ def ics_openvpn_file = file(it.path.replace('strings.xml', 'strings-icsopenvpn.xml'))
+ if(ics_openvpn_file.exists()) {
+ def ics_openvpn_strings_names = (new XmlParser()).parse(ics_openvpn_file)
+ def current_file = it
+
+ ics_openvpn_strings_names.string.each {
+ processFileInplace(current_file) { text ->
+ text.replaceAll('.*name=\"' + it.attribute('name') + '\".*(\n)*.*string>.*\n+', '')
+ }
}
+ }
}
+ }
+}
- //check.dependsOn connectedCheck
- }
+task mergeUntranslatable( type: Copy, dependsOn: 'removeDuplicatedStrings') {
+ from ('../ics-openvpn-stripped/main/') {
+ include '**/untranslatable.xml'
+ rename 'untranslatable.xml', 'untranslatable-icsopenvpn.xml'
+ } into '.'
+ def bitmask_untranslatable = file('src/main/res/values/untranslatable.xml')
+ def ics_openvpn_untranslatable = new File(bitmask_untranslatable.path.replace('untranslatable.xml', 'untranslatable-icsopenvpn.xml'))
+ ics_openvpn_untranslatable.createNewFile()
+ def string_continuation = false;
+ ics_openvpn_untranslatable.eachLine { text ->
+ if(text.contains('string name=')) {
+ if(!bitmask_untranslatable.text.contains(text))
+ bitmask_untranslatable << text
+ if(text.contains('</string>'))
+ string_continuation = true
+ }
+ else if(string_continuation) {
+ bitmask_untranslatable << text
+ }
+
+ if(text.contains('</string>')) {
+ string_continuation = false
+ bitmask_untranslatable << System.getProperty("line.separator")
+ }
+ }
+
+ bitmask_untranslatable.write(bitmask_untranslatable.text.replaceAll("</resources>", ""))
+ bitmask_untranslatable << "</resources>"
-dependencies {
- androidTestCompile 'com.android.support:support-v4:+'
- androidTestCompile 'com.jayway.android.robotium:robotium-solo:4.3.1'
- compile 'com.intellij:annotations:12.0'
-} \ No newline at end of file
+ delete ics_openvpn_untranslatable
+}
+build.dependsOn ':app:mergeUntranslatable' \ No newline at end of file