// Project information buildDir = 'bin' def firebaseEnable() { File googleFile = new File('google-services.json') return googleFile.exists() } buildscript { File googleFile = new File('google-services.json') repositories { jcenter() mavenCentral() mavenLocal() google() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' if (googleFile.exists()) { classpath 'com.google.gms:google-services:3.1.0' } } } allprojects { repositories { jcenter() mavenCentral() mavenLocal() google() } } apply plugin: 'com.android.library' dependencies { compile group: 'org.apache.commons', name: 'commons-compress', version: '+' if (firebaseEnable()) { compile 'com.google.firebase:firebase-messaging:11.2.0' } else { compile fileTree(include: 'gcm.jar', dir: 'libs') compile 'com.android.support:support-v4:+' } } if (firebaseEnable()) { apply plugin: 'com.google.gms.google-services' } def srcDirs = ['submodules/mediastreamer2/java/src', 'src/linphone-wrapper', 'src/android'] def excludeFiles = [] // Exclude firebase file if not enable if (!firebaseEnable()) { excludeFiles.add('**/Firebase*') } else { excludeFiles.add('**/gcm*') } excludeFiles.add('**/mediastream/MediastreamerActivity.java') def excludePackage = [] excludePackage.add('**/gdb.*') excludePackage.add('**/libopenh264**') excludePackage.add('**/**tester**') excludePackage.add('**/LICENSE.txt') android { defaultConfig { compileSdkVersion 26 buildToolsVersion "26.0.0" multiDexEnabled true } lintOptions { checkReleaseBuilds false // Or, if you prefer, you can continue to check for errors in release builds, // but continue the build even when errors are found: abortOnError false } sourceSets { main { manifest.srcFile 'AndroidManifestLibrary.xml' java.srcDirs = srcDirs resources.srcDirs = srcDirs aidl.srcDirs = srcDirs renderscript.srcDirs = srcDirs res.srcDirs = ['res'] assets.srcDirs = ['assets'] jniLibs.srcDirs = ['libs'] java.excludes = excludeFiles // Exclude some useless files packagingOptions { excludes = excludePackage } } debug.setRoot('build-types/debug') release.setRoot('build-types/release') } } ///////////// Task ///////////// task(releaseJavadoc, type: Javadoc, dependsOn: "assembleRelease") { source = ['submodules/mediastreamer2/java/src', 'src/linphone-wrapper'] excludes = ['**/mediastream/MediastreamerActivity.java', '**/**.html', '**/**.aidl'] classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) classpath += files(android.libraryVariants.release.javaCompile.classpath.files) } task sourcesJar(type: Jar) { classifier = 'sources' from android.sourceSets.main.java.srcDirs } task androidJavadocsJar(type: Jar, dependsOn: releaseJavadoc) { classifier = 'javadoc' from releaseJavadoc.destinationDir } task sdkZip(type: Zip) { String appName = "linphone-android-sdk" String gitSha = 'git describe --always'.execute().text.trim() String newSdkName = appName + "-" + gitSha + ".zip" from('bin/libs', 'bin/outputs/aar') include '*' archiveName newSdkName }