
This was changed to obey Android Studio's formatting of gradle files. Some of what it did was fine, but removing all line spacing is bonkers.
231 lines
8.8 KiB
Groovy
231 lines
8.8 KiB
Groovy
apply plugin: 'com.android.application'
|
|
apply plugin: 'witness'
|
|
apply plugin: 'checkstyle'
|
|
|
|
if (!hasProperty('sourceDeps')) {
|
|
|
|
repositories {
|
|
jcenter()
|
|
|
|
// This is here until we sort out all dependencies from mavenCentral/jcenter. Once all of
|
|
// the dependencies below have been sorted out, this can be removed.
|
|
flatDir {
|
|
dirs 'libs/binaryDeps'
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compile project(':privileged-api-lib')
|
|
|
|
compile 'com.android.support:support-v4:22.2.1'
|
|
compile 'com.android.support:appcompat-v7:22.1.1'
|
|
compile 'com.android.support:support-annotations:22.2.1'
|
|
|
|
compile 'org.thoughtcrime.ssl.pinning:AndroidPinning:1.0.0'
|
|
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.4'
|
|
compile 'com.google.zxing:core:3.2.1'
|
|
compile 'eu.chainfire:libsuperuser:1.0.0.201504231659'
|
|
compile 'cc.mvdan.accesspoint:library:0.1.3'
|
|
compile 'info.guardianproject.netcipher:netcipher:1.2'
|
|
compile 'com.madgag.spongycastle:pkix:1.51.0.0'
|
|
compile 'com.madgag.spongycastle:prov:1.51.0.0'
|
|
compile 'com.madgag.spongycastle:core:1.51.0.0'
|
|
compile 'commons-net:commons-net:3.3'
|
|
compile 'org.openhab.jmdns:jmdns:3.4.2'
|
|
|
|
// Upstream doesn't have a binary on mavenCentral/jcenter yet:
|
|
// https://github.com/kolavar/android-support-v4-preferencefragment/issues/13
|
|
compile(name: 'support-v4-preferencefragment-release', ext: 'aar')
|
|
|
|
// Fork for F-Droid, including support for https. Not merged into upstream
|
|
// yet (seems to be a little unsupported as of late), so not using mavenCentral/jcenter.
|
|
compile(name: 'nanohttpd-2.1.0')
|
|
|
|
// Upstream doesn't have a binary on mavenCentral, and it is an SVN repo on
|
|
// Google Code. We include this code directly in this repo, and have made
|
|
// modifications that should be pushed to anyone who wants to maintain it.
|
|
compile(name: 'zipsigner')
|
|
|
|
androidTestCompile 'commons-io:commons-io:2.2'
|
|
}
|
|
|
|
} else {
|
|
|
|
logger.info "Setting up *source* dependencies for F-Droid (because you passed in the -PsourceDeps argument to gradle while building)."
|
|
|
|
repositories {
|
|
jcenter()
|
|
}
|
|
|
|
dependencies {
|
|
compile 'com.android.support:support-v4:22.2.1'
|
|
compile 'com.android.support:appcompat-v7:22.1.1'
|
|
compile 'com.android.support:support-annotations:22.2.1'
|
|
|
|
compile project(':privileged-api-lib')
|
|
|
|
compile 'org.thoughtcrime.ssl.pinning:AndroidPinning:1.0.0'
|
|
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.4'
|
|
compile 'com.google.zxing:core:3.2.1'
|
|
compile 'eu.chainfire:libsuperuser:1.0.0.201504231659'
|
|
compile 'cc.mvdan.accesspoint:library:0.1.1'
|
|
compile 'info.guardianproject.netcipher:netcipher:1.2'
|
|
compile 'commons-net:commons-net:3.3'
|
|
compile 'org.openhab.jmdns:jmdns:3.4.2'
|
|
|
|
compile(project(':extern:support-v4-preferencefragment')) {
|
|
exclude module: 'support-v4'
|
|
}
|
|
compile project(':extern:nanohttpd:core')
|
|
compile project(':extern:zipsigner')
|
|
|
|
androidTestCompile 'commons-io:commons-io:2.2'
|
|
}
|
|
|
|
}
|
|
|
|
// Only do the libraries imported from maven repositories. Our own libraries
|
|
// (like privileged-api-lib) and the prebuilt jars already checked into the
|
|
// source code don't need to be here.
|
|
dependencyVerification {
|
|
verify = [
|
|
'com.android.support:support-v4:c62f0d025dafa86f423f48df9185b0d89496adbc5f6a9be5a7c394d84cf91423',
|
|
'com.android.support:appcompat-v7:9a2355537c2f01cf0b95523605c18606b8d824017e6e94a05c77b0cfc8f21c96',
|
|
'com.android.support:support-annotations:104f353b53d5dd8d64b2f77eece4b37f6b961de9732eb6b706395e91033ec70a',
|
|
'org.thoughtcrime.ssl.pinning:AndroidPinning:afa1d74e699257fa75cb109ff29bac50726ef269c6e306bdeffe8223cee06ef4',
|
|
'com.nostra13.universalimageloader:universal-image-loader:b99382c5536c7325ef8dc0a0fe9a6cad803cf3488942bea7e1cca4db3e5dec43',
|
|
'com.google.zxing:core:b4d82452e7a6bf6ec2698904b332431717ed8f9a850224f295aec89de80f2259',
|
|
'eu.chainfire:libsuperuser:507f5f9703a7578406e672a96ff038fd8aeefd6e2fcb14dd0daba796239d6eaf',
|
|
'cc.mvdan.accesspoint:library:dc89a085d6bc40381078b8dd7776b12bde0dbaf8ffbcddb17ec4ebc3edecc7ba',
|
|
'info.guardianproject.netcipher:netcipher:a8eef6c3bf190e360c44c9364044b8050f0d387418acdae8d7ec78bd105a32a6',
|
|
'com.madgag.spongycastle:pkix:0d9cca6991f68eb373cfad309d5268c9fc38db5efb5fe00dcccf5c973af1eca1',
|
|
'com.madgag.spongycastle:prov:b8c3fec3a59aac1aa04ccf4dad7179351e54ef7672f53f508151b614c131398a',
|
|
'com.madgag.spongycastle:core:8d6240b974b0aca4d3da9c7dd44d42339d8a374358aca5fc98e50a995764511f',
|
|
'commons-net:commons-net:b35ad597f17a6f221575df2f729a9de8f70390509e047680771e713bad713fb9',
|
|
'org.openhab.jmdns:jmdns:7a4b34b5606bbd2aff7fdfe629edcb0416fccd367fb59a099f210b9aba4f0bce',
|
|
]
|
|
}
|
|
|
|
task binaryDeps(type: Copy, dependsOn: ':F-Droid:prepareReleaseDependencies') {
|
|
|
|
enabled = project.hasProperty('sourceDeps')
|
|
description = "Copies .jar and .aar files from subproject dependencies in extern/ to F-Droid/libs. Requires the sourceDeps property to be set (\"gradle -PsourceDeps binaryDeps\")"
|
|
|
|
from('../extern/') {
|
|
include 'support-v4-preferencefragment/build/outputs/aar/support-v4-preferencefragment-release.aar'
|
|
include 'nanohttpd/core/build/libs/nanohttpd-2.1.0.jar'
|
|
include 'zipsigner/build/libs/zipsigner.jar'
|
|
}
|
|
|
|
into 'libs/binaryDeps'
|
|
includeEmptyDirs false
|
|
|
|
eachFile { FileCopyDetails details ->
|
|
// Don't copy to a sub folder such as libs/binaryDeps/Project/build/outputs/aar/project.aar, but
|
|
// rather libs/binaryDeps/project.aar.
|
|
details.path = details.name
|
|
}
|
|
|
|
}
|
|
|
|
android {
|
|
compileSdkVersion 22
|
|
buildToolsVersion '23.0.1'
|
|
|
|
sourceSets {
|
|
main {
|
|
manifest.srcFile 'AndroidManifest.xml'
|
|
java.srcDirs = ['src']
|
|
resources.srcDirs = ['src']
|
|
aidl.srcDirs = ['src']
|
|
renderscript.srcDirs = ['src']
|
|
res.srcDirs = ['res']
|
|
assets.srcDirs = ['assets']
|
|
}
|
|
|
|
androidTest.setRoot('test')
|
|
androidTest {
|
|
manifest.srcFile 'test/AndroidManifest.xml'
|
|
java.srcDirs = ['test/src']
|
|
resources.srcDirs = ['test/src']
|
|
aidl.srcDirs = ['test/src']
|
|
renderscript.srcDirs = ['test/src']
|
|
res.srcDirs = ['test/res']
|
|
assets.srcDirs = ['test/assets']
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
all {
|
|
minifyEnabled true
|
|
shrinkResources true
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
}
|
|
debug {
|
|
debuggable true
|
|
}
|
|
}
|
|
|
|
compileOptions {
|
|
compileOptions.encoding = "UTF-8"
|
|
|
|
// Use Java 1.7, requires minSdk 8
|
|
sourceCompatibility JavaVersion.VERSION_1_7
|
|
targetCompatibility JavaVersion.VERSION_1_7
|
|
}
|
|
|
|
lintOptions {
|
|
checkReleaseBuilds false
|
|
abortOnError false
|
|
|
|
htmlReport true
|
|
xmlReport false
|
|
textReport false
|
|
|
|
// Our translations are crowd-sourced
|
|
disable 'MissingTranslation'
|
|
}
|
|
|
|
}
|
|
|
|
task checkstyle(type: Checkstyle) {
|
|
configFile file("${project.rootDir}/config/checkstyle/checkstyle.xml")
|
|
source 'src'
|
|
include '**/*.java'
|
|
exclude '**/gen/**'
|
|
|
|
classpath = files()
|
|
}
|
|
|
|
// This person took the example code below from another blogpost online, however
|
|
// I lost the reference to it:
|
|
// http://stackoverflow.com/questions/23297562/gradle-javadoc-and-android-documentation
|
|
android.applicationVariants.all { variant ->
|
|
|
|
task("generate${variant.name}Javadoc", type: Javadoc) {
|
|
title = "$name $version API"
|
|
description "Generates Javadoc for F-Droid."
|
|
source = variant.javaCompile.source
|
|
|
|
def sdkDir
|
|
Properties properties = new Properties()
|
|
File localProps = project.rootProject.file('local.properties')
|
|
if (localProps.exists()) {
|
|
properties.load(localProps.newDataInputStream())
|
|
sdkDir = properties.getProperty('sdk.dir')
|
|
} else {
|
|
sdkDir = System.getenv('ANDROID_HOME')
|
|
}
|
|
if (!sdkDir) {
|
|
throw new ProjectConfigurationException("Cannot find android sdk. Make sure sdk.dir is defined in local.properties or the environment variable ANDROID_HOME is set.", null)
|
|
}
|
|
|
|
ext.androidJar = "${sdkDir}/platforms/${android.compileSdkVersion}/android.jar"
|
|
classpath = files(variant.javaCompile.classpath.files) + files(ext.androidJar)
|
|
options.links("http://docs.oracle.com/javase/7/docs/api/");
|
|
options.links("http://d.android.com/reference/");
|
|
exclude '**/BuildConfig.java'
|
|
exclude '**/R.java'
|
|
}
|
|
}
|