223 lines
8.0 KiB
Groovy
223 lines
8.0 KiB
Groovy
/*
|
|
* Copyright 2014 serso aka se.solovyev
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
* Contact details
|
|
*
|
|
* Email: se.solovyev@gmail.com
|
|
* Site: http://se.solovyev.org
|
|
*/
|
|
|
|
apply plugin: 'com.android.application'
|
|
apply plugin: 'signing'
|
|
apply plugin: 'kotlin-android'
|
|
apply plugin: 'kotlin-kapt'
|
|
apply plugin: 'com.google.gms.google-services'
|
|
apply plugin: 'com.google.firebase.crashlytics'
|
|
|
|
android {
|
|
compileSdk versions.sdk.compile
|
|
defaultConfig {
|
|
applicationId "org.solovyev.android.calculator"
|
|
minSdkVersion versions.sdk.min
|
|
targetSdkVersion versions.sdk.target
|
|
versionCode 160
|
|
versionName '2.3.2'
|
|
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
|
}
|
|
buildFeatures {
|
|
dataBinding true
|
|
viewBinding true
|
|
}
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled true
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard.cfg'
|
|
}
|
|
debug {
|
|
minifyEnabled false
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-debug.cfg'
|
|
// multidex is enabled only in debug builds as in release builds proguard should
|
|
// strip all unused methods
|
|
multiDexEnabled true
|
|
}
|
|
}
|
|
namespace 'org.solovyev.android.calculator'
|
|
lint {
|
|
abortOnError false
|
|
disable 'ContentDescription', 'IconLauncherShape'
|
|
warning 'MissingTranslation'
|
|
}
|
|
testOptions {
|
|
unitTests {
|
|
includeAndroidResources = true
|
|
}
|
|
}
|
|
}
|
|
|
|
java {
|
|
toolchain {
|
|
languageVersion.set(JavaLanguageVersion.of(17))
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:${versions.kotlin}"
|
|
|
|
implementation "androidx.viewpager:viewpager:1.1.0-alpha01"
|
|
implementation "androidx.preference:preference-ktx:1.2.1"
|
|
implementation 'com.google.android.material:material:1.9.0'
|
|
|
|
implementation ':measure:'
|
|
implementation ':square-otto:1.3.9-SNAPSHOT'
|
|
kapt ':square-otto:1.3.9-SNAPSHOT'
|
|
kapt ':square-otto-compiler:1.3.9-SNAPSHOT'
|
|
kapt 'com.squareup:javapoet:1.9.0'
|
|
implementation project(':plotter:lib')
|
|
implementation project(':dragbutton')
|
|
implementation(project(':jscl')) {
|
|
exclude(module: 'xercesImpl')
|
|
}
|
|
implementation 'org.solovyev.android:checkout:1.3.1'
|
|
implementation platform('com.google.firebase:firebase-bom:32.2.3')
|
|
implementation "com.google.firebase:firebase-crashlytics"
|
|
implementation "com.google.firebase:firebase-analytics"
|
|
implementation 'com.google.android.gms:play-services-ads:22.4.0'
|
|
implementation 'com.google.guava:guava:32.1.2-android'
|
|
implementation('org.simpleframework:simple-xml:2.7.1') {
|
|
exclude(module: 'stax')
|
|
exclude(module: 'stax-api')
|
|
exclude(module: 'xpp3')
|
|
}
|
|
|
|
implementation 'com.google.dagger:dagger:2.0.2'
|
|
kapt "com.google.dagger:dagger-compiler:2.0.2"
|
|
implementation 'javax.annotation:javax.annotation-api:1.3.2'
|
|
kapt "javax.annotation:javax.annotation-api:1.3.2"
|
|
|
|
testImplementation 'junit:junit:4.13.2'
|
|
testImplementation 'net.sf.opencsv:opencsv:2.0'
|
|
testImplementation 'org.mockito:mockito-core:5.3.1'
|
|
testImplementation 'org.robolectric:robolectric:4.10.3'
|
|
testImplementation 'org.skyscreamer:jsonassert:1.5.0'
|
|
testImplementation(name: 'org.apache.http.legacy', ext: 'jar')
|
|
|
|
androidTestImplementation 'androidx.annotation:annotation:1.7.0'
|
|
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
|
|
androidTestImplementation 'androidx.test:rules:1.5.0'
|
|
androidTestImplementation'org.hamcrest:hamcrest-library:1.3'
|
|
androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', {
|
|
// use version of jsr305 provided by Checkout
|
|
exclude group: 'com.google.code.findbugs', module: 'jsr305'
|
|
})}
|
|
|
|
tasks.withType(Test) {
|
|
scanForTestClasses = false
|
|
include "**/*Test.class"
|
|
exclude "**/*BaseCalculatorTest*"
|
|
exclude "**/*AndroidCalculatorEditorViewTest*"
|
|
exclude "**/*CalculatorWizardActivityTest*"
|
|
exclude "**/*OnScreenCalculatorWizardStepTest*"
|
|
exclude "**/*CalculatorWizardTest*"
|
|
exclude "**/*WizardStepTest*"
|
|
exclude "**/*AngleUnitsButtonTest*"
|
|
exclude "**/*NumeralBasesButtonTest*"
|
|
}
|
|
/*
|
|
|
|
task androidJavadocs(type: Javadoc) {
|
|
source = android.sourceSets.main.java.srcDirs
|
|
classpath += project.files(android.bootClasspath.join(File.pathSeparator))
|
|
configurations.compile.each { File file -> classpath += project.files(file.path) }
|
|
}
|
|
|
|
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
|
|
classifier = 'javadoc'
|
|
from androidJavadocs.destinationDir
|
|
}
|
|
|
|
task androidSourcesJar(type: Jar) {
|
|
classifier = 'sources'
|
|
from android.sourceSets.main.java.srcDirs
|
|
}
|
|
|
|
artifacts {
|
|
archives androidSourcesJar
|
|
archives file: file('build/outputs/apk/release/app-release.apk'), name: 'calculatorpp-app', classifier: 'signed', type: 'apk'
|
|
archives file: file('build/outputs/mapping/release/mapping.txt'), name: 'calculatorpp-app', classifier: 'proguard', type: 'txt'
|
|
}
|
|
|
|
signing {
|
|
sign configurations.archives
|
|
}
|
|
|
|
group = "org.solovyev.android"
|
|
version = android.defaultConfig.versionName
|
|
|
|
uploadArchives {
|
|
repositories {
|
|
mavenDeployer {
|
|
beforeDeployment { MavenDeployment deployment ->
|
|
signing.signPom(deployment)
|
|
// for some reason Gradle :uploadArchives tries to upload null.txt.asc and null.map artifacts.
|
|
// As we don't want those let's filter them now (note that these files are not included in the
|
|
// list of project artifacts, so their origin is not clear)
|
|
def removeCond = { artifact -> return !artifact.classifier && (artifact.type == "map" || artifact.type == "txt.asc") }
|
|
deployment.artifacts.removeAll(removeCond)
|
|
deployment.attachedArtifacts.removeAll(removeCond)
|
|
}
|
|
|
|
repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
|
|
authentication(userName: ossrhUsername, password: ossrhPassword)
|
|
}
|
|
|
|
snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
|
|
authentication(userName: ossrhUsername, password: ossrhPassword)
|
|
}
|
|
|
|
pom.project {
|
|
artifactId = 'calculatorpp-app'
|
|
name 'Calculator++ Application'
|
|
packaging 'apk'
|
|
description 'Calculator for Android'
|
|
url 'https://github.com/serso/android-calculatorpp'
|
|
|
|
scm {
|
|
url 'https://github.com/serso/android-calculatorpp'
|
|
connection 'scm:https://serso@github.com/serso/android-calculatorpp.git'
|
|
developerConnection 'scm:git://github.com/serso/android-calculatorpp.git'
|
|
}
|
|
|
|
licenses {
|
|
license {
|
|
name 'The Apache Software License, Version 2.0'
|
|
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
|
|
distribution 'repo'
|
|
}
|
|
}
|
|
|
|
developers {
|
|
developer {
|
|
id 'se.solovyev'
|
|
name 'Sergey Solovyev'
|
|
email 'se.solovyev@gmail.com'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
*/
|