summaryrefslogtreecommitdiff
path: root/app/build.gradle
diff options
context:
space:
mode:
authorHarsh Shandilya <msfjarvis@gmail.com>2019-11-06 19:41:15 +0530
committerHarsh Shandilya <msfjarvis@gmail.com>2019-11-06 19:41:15 +0530
commitb2d352e3ea671e84cc4f356a49786d1d3b2eaef6 (patch)
treee33d23a825d3eaa81bc2ce0bd6a621894a36adcc /app/build.gradle
parent3fcf242c0770eb043b85d9d0a16e408780cf7527 (diff)
Revert back to Groovy DSL
The Kotlin DSL's API is extremely terrible and makes the simplest tasks annoying. It also introduces a very noticeable build overhead that I'd rather not have. Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
Diffstat (limited to 'app/build.gradle')
-rw-r--r--app/build.gradle106
1 files changed, 106 insertions, 0 deletions
diff --git a/app/build.gradle b/app/build.gradle
new file mode 100644
index 00000000..a97ebab7
--- /dev/null
+++ b/app/build.gradle
@@ -0,0 +1,106 @@
+/*
+ * Copyright © 2014-2019 The Android Password Store Authors. All Rights Reserved.
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+
+plugins {
+ id 'kotlin-android'
+ id 'kotlin-kapt'
+ id 'kotlin-android-extensions'
+}
+
+android {
+ defaultConfig {
+ applicationId 'com.zeapo.pwdstore'
+ }
+
+ lintOptions {
+ abortOnError = true // make sure build fails with lint errors!
+ disable 'MissingTranslation', 'PluralsCandidate'
+ }
+
+ packagingOptions {
+ exclude '.readme'
+ exclude 'META-INF/LICENSE.txt'
+ exclude 'META-INF/NOTICE.txt'
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled = true
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ }
+ debug {
+ applicationIdSuffix = '.debug'
+ versionNameSuffix = '-debug'
+ minifyEnabled = false
+ }
+ }
+
+ /*
+ * To sign release builds, create the file `gradle.properties` in
+ * $HOME/.gradle or in your project directory with this content:
+ *
+ * mStoreFile=/path/to/key.store
+ * mStorePassword=xxx
+ * mKeyAlias=alias
+ * mKeyPassword=xxx
+ */
+ if (project.hasProperty('mStoreFile') &&
+ project.hasProperty('mStorePassword') &&
+ project.hasProperty('mKeyAlias') &&
+ project.hasProperty('mKeyPassword')) {
+ signingConfigs {
+ release {
+ storeFile = file(project.properties['mStoreFile'] as String)
+ storePassword = project.properties['mStorePassword'] as String
+ keyAlias = project.properties['mKeyAlias'] as String
+ keyPassword = project.properties['mKeyPassword'] as String
+ }
+ }
+ buildTypes.release.signingConfig = signingConfigs.release
+ }
+}
+
+dependencies {
+ implementation 'androidx.appcompat:appcompat:' + versions.appcompat
+ implementation 'androidx.cardview:cardview:' + versions.cardview
+ implementation 'androidx.core:core-ktx:' + versions.coreKtx
+ implementation 'androidx.constraintlayout:constraintlayout:' + versions.constraintLayout
+ implementation 'androidx.documentfile:documentfile:' + versions.documentfile
+ implementation 'androidx.preference:preference:' + versions.preference
+ implementation ('androidx.recyclerview:recyclerview:' + versions.recyclerview) {
+ force = true
+ }
+ implementation 'com.google.android.material:material:' + versions.material
+ implementation 'androidx.annotation:annotation:' + versions.annotation
+ implementation 'androidx.biometric:biometric:' + versions.biometric
+ implementation 'org.sufficientlysecure:openpgp-api:' + versions.openpgp
+ implementation('org.eclipse.jgit:org.eclipse.jgit:' + versions.jgit) {
+ exclude group: 'org.apache.httpcomponents', module: 'httpclient'
+ }
+ implementation 'com.jcraft:jsch:' + versions.jsch
+ implementation 'commons-io:commons-io:' + versions.commons_io
+ implementation 'commons-codec:commons-codec:' + versions.commons_codec
+ implementation 'org.sufficientlysecure:sshauthentication-api:' + versions.sshauth
+
+ // Testing-only dependencies
+ androidTestImplementation 'junit:junit:4.13-beta-3'
+ androidTestImplementation 'org.mockito:mockito-core:3.1.0'
+ androidTestImplementation 'androidx.test:runner:1.3.0-alpha02'
+ androidTestImplementation 'androidx.test:rules:1.3.0-alpha02'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.2-alpha02'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0-alpha02'
+ androidTestImplementation 'androidx.test.espresso:espresso-intents:3.3.0-alpha02'
+}
+
+tasks.withType(JavaCompile) {
+ options.compilerArgs << '-Xlint:unchecked'
+ options.deprecation = true
+}
+tasks.withType(KotlinCompile) {
+ kotlinOptions {
+ jvmTarget = '1.8'
+ }
+}