/* * 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: 'maven' apply plugin: 'signing' android { compileSdkVersion 23 buildToolsVersion '23.0.2' defaultConfig { minSdkVersion 15 targetSdkVersion 23 versionCode 143 versionName '2.1.4' } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard.cfg' zipAlignEnabled true } debug { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-debug.cfg' } } lintOptions { abortOnError false warning 'MissingTranslation' } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'org.solovyev:common-core:1.0.7' compile 'org.solovyev:common-text:1.0.7' compile 'org.solovyev:common-security:1.0.7' compile 'com.android.support:support-v4:23.1.1' compile 'com.android.support:appcompat-v7:23.1.1' compile('ch.acra:acra:4.5.0') { exclude group: 'org.json' } compile 'org.solovyev.android.views.dragbutton:drag-button:1.0@aar' compile 'org.solovyev.android:android-common-lists:1.1.18@aar' compile 'org.solovyev.android:android-common-core:1.1.18@aar' compile 'org.solovyev.android:android-common-other:1.1.18@aar' compile 'org.solovyev.android:android-common-views:1.1.18@aar' compile 'org.solovyev.android:android-common-menus:1.1.18@aar' compile 'org.solovyev.android:android-common-preferences:1.1.18@aar' compile('org.solovyev:jscl:1.0.8') { exclude(module: 'xercesImpl') } compile 'org.solovyev.android:checkout:0.7.2@aar' compile 'org.solovyev.android:material:0.1.3@aar' compile 'com.google.android.gms:play-services-ads:8.4.0' compile 'com.google.android.gms:play-services-base:8.4.0' compile 'com.google.android.gms:play-services-analytics:8.4.0' compile 'com.melnykov:floatingactionbutton:1.1.0' compile(name: 'plotter', ext: 'aar') testCompile "com.squareup.leakcanary:leakcanary-android-no-op:1.3.1" debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3.1' releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1' compile 'org.solovyev:common-text:1.0.7' compile 'org.solovyev:common-listeners:1.0.7' compile('com.google.guava:guava:11.0.2') { exclude(module: 'jsr305') } compile('org.solovyev:jscl:1.0.11') { exclude(module: 'xercesImpl') } compile('org.simpleframework:simple-xml:2.6.1') { exclude(module: 'stax-api') exclude(module: 'xpp3') } compile 'commons-cli:commons-cli:1.2' testCompile 'junit:junit:4.12' testCompile 'net.sf.opencsv:opencsv:2.0' testCompile 'org.mockito:mockito-core:1.9.0' testCompile 'org.robolectric:robolectric:3.0' testCompile 'org.mockito:mockito-all:1.9.5' testCompile 'org.skyscreamer:jsonassert:1.2.3' testCompile(name: 'org.apache.http.legacy', ext: 'jar') } tasks.withType(Test) { scanForTestClasses = false include "**/*Test.class" 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/calculatorpp-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 } gradle.taskGraph.afterTask { Task task -> if (task.project.name == 'android-app') { if (task.name == 'mergeReleaseResources') { cleanGoogleServicesResources('release') } else if (task.name == 'mergeDebugResources') { cleanGoogleServicesResources('debug') } } } private void cleanGoogleServicesResources(buildType) { ant.delete(includeEmptyDirs: 'true') { fileset(dir: file('./build/intermediates/res/merged/' + buildType), includes: '**/common_signin*') } ant.delete(includeEmptyDirs: 'true') { fileset(dir: file('./build/intermediates/res/merged/' + buildType), includes: '**/ic_plusone*') } ant.delete(includeEmptyDirs: 'true') { fileset(dir: file('./build/intermediates/res/merged/' + buildType), includes: '**/powered_by_google*') } } group = "org.solovyev.android" version = android.defaultConfig.versionName uploadArchives { repositories { mavenDeployer { beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } 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' } } } } } }