// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() maven { url 'https://plugins.gradle.org/m2/' } maven { url 'https://maven.google.com' } } dependencies { classpath 'com.android.tools.build:gradle:3.0.0-beta4' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { ext { projectGroupId = 'org.mariotaku.twidere' projectVersionCode = 386 projectVersionName = '3.6.26' } repositories { mavenLocal() jcenter() maven { url 'https://maven.google.com' } maven { url 'https://jitpack.io' } } } subprojects { buildscript { ext { kotlinVersion = '1.1.4-3' pluginVersions = [ AndroidSvgDrawable: '3.0.0', Fabric : '1.22.1', PlayPublisher : '1.1.5', PlayServices : '3.1.0', ] libVersions = [ Kotlin : "${kotlinVersion}", SupportLib : '26.0.1', SupportTest : '1.0.0', MariotakuCommons : '0.9.17', RestFu : '0.9.57', ObjectCursor : '0.9.20', PlayServices : '11.2.0', MapsUtils : '0.5', Crashlyrics : '2.6.8', DropboxCoreSdk : '3.0.3', GoogleDriveApi : 'v3-rev61-1.22.0', Exoplayer : 'r2.2.0', Toro : '2.1.0', LoganSquare : '1.3.7', IABv3 : '1.0.38', Mime4J : '0.7.2', OkHttp : '3.8.1', Stetho : '1.5.0', OSMDroid : '5.6.4', LeakCanary : '1.5.1', TwitterText : '1.14.3', MediaViewerLibrary : '0.9.23', MultiValueSwitch : '0.9.8', PickNCrop : '0.9.27', AndroidGIFDrawable : '1.2.6', KPreferences : '0.9.7', Kovenant : '3.3.0', ParcelablePlease : '1.0.2', Chameleon : '0.9.20', UniqR : '0.9.4', SQLiteQB : '0.9.15', Glide : '3.7.0', GlideOkHttp3 : '1.4.0', GlideTransformations : '2.0.2', AndroidImageCropper : '2.4.6', ExportablePreferences: '0.9.6', ACRA : '4.9.2', AbstractTask : '0.9.5', ] } } afterEvaluate { project -> if (project.hasProperty('android')) { android { compileSdkVersion 26 buildToolsVersion '26.0.1' lintOptions { abortOnError false lintConfig rootProject.file('lint.xml') } packagingOptions { exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/license.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/notice.txt' exclude 'META-INF/ASL2.0' } def file = rootProject.file('private/signing.properties') if (project.plugins.hasPlugin('com.android.application') && file.exists()) { if (android.hasProperty('buildTypes')) { android.buildTypes.each { buildType -> def cfg = signingConfigs.maybeCreate(buildType.name) loadSigningConfig(cfg, file) buildType.signingConfig = cfg } } if (android.hasProperty('applicationVariants')) { android.applicationVariants.each { buildType -> def cfg = signingConfigs.maybeCreate(buildType.name) loadSigningConfig(cfg, file) buildType.signingConfig = cfg } } } } } } } def loadSigningConfig(def cfg, def file) { Properties signingProp = new Properties() signingProp.load(file.newInputStream()) cfg.setStoreFile(rootProject.file(signingProp.get('storeFile'))) cfg.setStorePassword((String) signingProp.get('storePassword')) cfg.setKeyAlias((String) signingProp.get('keyAlias')) cfg.setKeyPassword((String) signingProp.get('keyPassword')) }