136 lines
3.5 KiB
Groovy
136 lines
3.5 KiB
Groovy
// 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
|
|
}
|