mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-08-03 10:46:53 -04:00
265 lines
8.1 KiB
Groovy
265 lines
8.1 KiB
Groovy
import groovy.json.JsonSlurper
|
|
|
|
buildscript {
|
|
repositories {
|
|
mavenCentral()
|
|
jcenter()
|
|
}
|
|
|
|
dependencies {
|
|
classpath 'com.android.tools.build:gradle:2.3.1'
|
|
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
|
|
classpath 'me.tatarka:gradle-retrolambda:3.2.5'
|
|
classpath 'com.testdroid:gradle:1.5.0'
|
|
classpath 'org.apache.httpcomponents:httpclient-android:4.3.3'
|
|
}
|
|
}
|
|
|
|
//apply plugin: 'android-sdk-manager'
|
|
apply plugin: 'com.android.application'
|
|
apply plugin: 'com.neenbedankt.android-apt'
|
|
apply plugin: 'me.tatarka.retrolambda'
|
|
apply plugin: 'checkstyle'
|
|
apply plugin: 'testdroid'
|
|
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
jcenter()
|
|
}
|
|
|
|
dependencies {
|
|
compile 'com.android.support:appcompat-v7:25.3.1'
|
|
compile 'com.android.support:support-v13:25.3.1'
|
|
compile 'com.android.support:support-v4:25.3.1'
|
|
compile 'com.android.support:design:25.3.1'
|
|
compile 'com.android.support:cardview-v7:25.3.1'
|
|
|
|
androidTestCompile 'com.android.support:support-annotations:25.3.1'
|
|
androidTestCompile 'com.android.support.test:runner:0.5'
|
|
androidTestCompile 'com.android.support.test:rules:0.5'
|
|
|
|
compile 'com.google.dagger:dagger:2.0.2'
|
|
compile project(":kiwixlib")
|
|
|
|
apt "com.google.dagger:dagger-compiler:2.0.2"
|
|
androidTestApt "com.google.dagger:dagger-compiler:2.0.2"
|
|
|
|
compile 'com.yahoo.squidb:squidb:2.0.0'
|
|
compile 'com.yahoo.squidb:squidb-annotations:2.0.0'
|
|
apt 'com.yahoo.squidb:squidb-processor:2.0.0'
|
|
|
|
compile 'commons-io:commons-io:2.5'
|
|
|
|
androidTestCompile 'com.squareup.okhttp3:mockwebserver:3.6.0'
|
|
|
|
compile 'com.squareup.okhttp3:okhttp:3.6.0'
|
|
compile 'com.squareup.retrofit2:retrofit:2.1.0'
|
|
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
|
|
compile('com.squareup.retrofit2:converter-simplexml:2.1.0') {
|
|
exclude group: 'xpp3', module: 'xpp3'
|
|
exclude group: 'stax', module: 'stax-api'
|
|
exclude group: 'stax', module: 'stax'
|
|
}
|
|
|
|
compile 'io.reactivex:rxandroid:1.1.0'
|
|
compile 'io.reactivex:rxjava:1.1.3'
|
|
|
|
testCompile "org.mockito:mockito-core:2.7.22"
|
|
androidTestCompile "org.mockito:mockito-android:2.7.22"
|
|
|
|
compile 'eu.mhutti1.utils.storage:android-storage-devices:0.5.0'
|
|
compile 'com.jakewharton:butterknife:8.0.1'
|
|
apt 'com.jakewharton:butterknife-compiler:8.0.1'
|
|
compile group: 'com.google.guava', name: 'guava', version: '20.0'
|
|
compile 'com.android.support:multidex:1.0.1'
|
|
|
|
testCompile 'junit:junit:4.12'
|
|
androidTestCompile 'junit:junit:4.12'
|
|
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
|
|
compile 'com.android.support.test:runner:0.5'
|
|
compile 'junit:junit:4.12'
|
|
|
|
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2', {
|
|
exclude group: 'com.android.support', module: 'support-annotations'
|
|
}
|
|
|
|
androidTestCompile 'com.android.support.test.espresso:espresso-web:2.2.2'
|
|
androidTestCompile 'com.android.support.test.espresso:espresso-idling-resource:2.2.2'
|
|
androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.2.2', {
|
|
exclude group: 'com.android.support', module: 'support-v4'
|
|
exclude group: 'com.android.support', module: 'appcompat-v7'
|
|
exclude group: 'com.android.support', module: 'design'
|
|
exclude group: 'com.android.support', module: 'recyclerview-v7'
|
|
}}
|
|
|
|
// Set custom app import directory
|
|
def map = [:]
|
|
def custom = new File("app/src")
|
|
if (project.hasProperty('customDir')) {
|
|
custom = file(project.property('customDir'))
|
|
}
|
|
|
|
// Set up flavours for each custom app in the directory
|
|
custom.eachFile() { file->
|
|
|
|
def fileName = file.getName()
|
|
if( fileName.contains("test") || fileName == "main" || fileName.contains("Test")) {
|
|
return
|
|
}
|
|
map.put(fileName, file.getAbsolutePath())
|
|
|
|
|
|
}
|
|
|
|
android {
|
|
compileSdkVersion 24
|
|
buildToolsVersion '25.0.0'
|
|
|
|
defaultConfig {
|
|
minSdkVersion 14
|
|
targetSdkVersion 24
|
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
|
multiDexEnabled true
|
|
}
|
|
|
|
lintOptions {
|
|
abortOnError true
|
|
// Hardcoded strings in xml
|
|
error 'HardcodedText'
|
|
// Hardcoded strings in setText
|
|
error 'SetTextI18n'
|
|
// Strings.xml issues
|
|
warning 'ExtraTranslation'
|
|
warning 'MissingTranslation'
|
|
|
|
// Warnings
|
|
warning 'InvalidPackage'
|
|
warning 'StringFormatInvalid'
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
// True breaks local variables being shown in breakpoints
|
|
testCoverageEnabled false
|
|
// Needed for instrumentation tests on Pre 5.0
|
|
multiDexKeepProguard file('multidex-instrumentation-config.pro')
|
|
}
|
|
|
|
coverage {
|
|
initWith debug
|
|
testCoverageEnabled true
|
|
}
|
|
|
|
release {
|
|
|
|
}
|
|
}
|
|
|
|
productFlavors {
|
|
|
|
// Vanilla Kiwix app
|
|
kiwix {
|
|
println "Building Kiwix"
|
|
// Set vanilla config
|
|
buildConfigField "boolean", "IS_CUSTOM_APP", "false"
|
|
buildConfigField "boolean", "HAS_EMBEDDED_ZIM", "false"
|
|
buildConfigField "String", "ZIM_FILE_NAME", "\"\""
|
|
buildConfigField "long", "ZIM_FILE_SIZE", "0"
|
|
buildConfigField "int", "CONTENT_VERSION_CODE", "0"
|
|
buildConfigField "String", "ENFORCED_LANG", "\"\""
|
|
resValue "string", "app_name", "Kiwix"
|
|
resValue "string", "app_search_string", "Search Kiwix"
|
|
}
|
|
// Custom apps built from a json file, zim file and icon set
|
|
map.each { name, directory ->
|
|
"$name" {
|
|
println "Building Custom"
|
|
def jsonFile = ""
|
|
if (project.hasProperty('jsonFile')) {
|
|
// Read json file from properties e.g command line
|
|
jsonFile = file(project.property('jsonFile'))
|
|
} else {
|
|
// If no file provided use the test file
|
|
jsonFile = file(directory + '/test.json')
|
|
}
|
|
def parsedJson = new JsonSlurper().parseText(jsonFile.text)
|
|
def File zimfile = new File(parsedJson.zim_file)
|
|
if (parsedJson.embed_zim) {
|
|
// Place content in each lib directory for embeded zims
|
|
file("../kiwixlib/src/main/jniLibs").eachDir() { folder ->
|
|
copy {
|
|
from parsedJson.zim_file
|
|
into file(directory + "/jniLibs/" + folder.name)
|
|
rename { String filename -> "libcontent.so" }
|
|
}
|
|
}
|
|
parsedJson.zim_file = "libcontent.so"
|
|
}
|
|
// Set custom config from json
|
|
applicationId "$parsedJson.package"
|
|
buildConfigField "boolean", "IS_CUSTOM_APP", "true"
|
|
buildConfigField "boolean", "HAS_EMBEDDED_ZIM", "$parsedJson.embed_zim"
|
|
def filename = ""
|
|
if (parsedJson.zim_file.lastIndexOf('/') >= 0) {
|
|
filename = parsedJson.zim_file.substring(parsedJson.zim_file.lastIndexOf('/') + 1)
|
|
} else {
|
|
filename = parsedJson.zim_file
|
|
}
|
|
buildConfigField "String", "ZIM_FILE_NAME", "\"$filename\""
|
|
long length = zimfile.length()
|
|
buildConfigField "long", "ZIM_FILE_SIZE", "$length"
|
|
if (parsedJson.content_version_code != null) {
|
|
buildConfigField "int", "CONTENT_VERSION_CODE", "$parsedJson.content_version_code"
|
|
} else {
|
|
buildConfigField "int", "CONTENT_VERSION_CODE", "$parsedJson.version_code"
|
|
}
|
|
buildConfigField "String", "ENFORCED_LANG", "\"$parsedJson.enforced_lang\""
|
|
resValue "string", "app_name", "$parsedJson.app_name"
|
|
resValue "string", "app_search_string", 'Search ' + "$parsedJson.app_name"
|
|
}
|
|
}
|
|
}
|
|
|
|
sourceSets {
|
|
map.each { name, directory ->
|
|
"$name" {
|
|
setRoot directory
|
|
}
|
|
}
|
|
}
|
|
|
|
compileOptions {
|
|
encoding = "UTF-8"
|
|
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
dexOptions {
|
|
javaMaxHeapSize "4g"
|
|
}
|
|
|
|
/* Add back once proguard is configured
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled true
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt')
|
|
}
|
|
}*/
|
|
}
|
|
|
|
task wrapper(type: Wrapper) {
|
|
gradleVersion = '2.4'
|
|
}
|
|
|
|
testdroid {
|
|
username System.getenv('TESTDROID_USERNAME')
|
|
password System.getenv('TESTDROID_PASSWORD')
|
|
deviceGroup 'Kiwix'
|
|
projectName "Kiwix"
|
|
|
|
fullRunConfig {
|
|
instrumentationRunner = "android.support.test.runner.AndroidJUnitRunner"
|
|
}
|
|
} |