// Project information buildDir = 'bin' ext.linphonePackageName = "org.linphone" buildscript { repositories { jcenter() mavenCentral() mavenLocal() } dependencies { classpath 'com.android.tools.build:gradle:2.2.0' classpath 'com.google.gms:google-services:3.0.0' } } apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile 'com.google.firebase:firebase-messaging:9.0.0' } android { defaultConfig { compileSdkVersion 23 buildToolsVersion "25.0.2" applicationId "org.linphone" 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 } // Signing signingConfigs { release { storeFile file(RELEASE_STORE_FILE) storePassword RELEASE_STORE_PASSWORD keyAlias RELEASE_KEY_ALIAS keyPassword RELEASE_KEY_PASSWORD } } buildTypes { release { signingConfig signingConfigs.release } } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['submodules/linphone/mediastreamer2/java/src','submodules/linphone/java/j2se','submodules/linphone/java/common','submodules/linphone/java/impl','submodules/externals/axmlrpc/src/main/java','submodules/linphone/coreapi/help/java','src'] resources.srcDirs = ['submodules/linphone/mediastreamer2/java/src','submodules/linphone/java/j2se','submodules/linphone/java/common','submodules/linphone/java/impl','submodules/externals/axmlrpc/src/main/java','submodules/linphone/coreapi/help/java','src'] aidl.srcDirs = ['submodules/linphone/mediastreamer2/java/src','submodules/linphone/java/j2se','submodules/linphone/java/common','submodules/linphone/java/impl','submodules/externals/axmlrpc/src/main/java','submodules/linphone/coreapi/help/java','src'] renderscript.srcDirs = ['submodules/linphone/mediastreamer2/java/src','submodules/linphone/java/j2se','submodules/linphone/java/common','submodules/linphone/java/impl','submodules/externals/axmlrpc/src/main/java','submodules/linphone/coreapi/help/java','src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] jniLibs.srcDir 'libs' java.exclude '**/mediastream/MediastreamerActivity.java' } // Move the tests to tests/java, tests/res, etc... instrumentTest.setRoot('tests') // Move the build types to build-types/ // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... // This moves them out of them default location under src//... which would // conflict with src/ being used by the main source set. // Adding new build types or product flavors should be accompanied // by a similar customization. debug.setRoot('build-types/debug') release.setRoot('build-types/release') } } ///////////// Task ///////////// // TODO def getSdkDir() { Properties local = new Properties() local.load(new FileInputStream("${rootDir}/local.properties")) return local.getProperty('sdk.dir') } def getTarget() { Properties local = new Properties() local.load(new FileInputStream("${rootDir}/project.properties")) return local.getProperty('target') } def getVersionName() { Properties local = new Properties() local.load(new FileInputStream("${rootDir}/default.properties")) return local.getProperty('version.name') } ext.toolsDir = getSdkDir() ext.versionName = getVersionName() //task myJavadocs(type: Javadoc) { //source = sourceSets.main.allJava //classpath = ${toolsDir}/platforms/${target}/android.jar:libs/android-support-v4.jar:libs/gcm.jar //} task createLibJar(type: Jar) { doLast { baseName = "liblinphone" String classDir = compileReleaseJavaWithJavac.destinationDir from ('submodules/linphone/java') include "common/org/linphone/core/*.java j2se/org/linphone/core/*.java" from (classDir) include "org/linphone/mediastream/**/*.class org/linphone/core/**/*.class org/linphone/tools/**/*.class" } } task createAndroidJar(type: Jar) { doLast { baseName = "linphone" String classDir = compileReleaseJavaWithJavac.destinationDir from (['submodules/linphone/java',classDir]) include ("common/org/linphone/core/*.java", "j2se/org/linphone/core/*.java", "org/linphone/mediastream/**/*.class", "org/linphone/core/**/*.class", "org/linphone/**/*.class, org/linphone/tools/**/*.class") } } task liblinphoneAndroidSdk(type: Zip) { doLast { createLibJar() archiveName = 'liblinphone-android-sdk-${versionName}.zip' from ('libs') { into 'libs' } include "**/*.so" from ('.') { into 'libs' } include "liblinphone.jar" from ('libs-debug') { into 'libs-debug' } include "**/*.so" from ('.') { into 'libs-debug' } include "liblinphone.jar" } } task linphoneAndroidSdk(type: Zip) { doLast { createAndroidJar() archiveName = 'linphone-android-sdk-${versionName}.zip' from ('libs') { into 'libs' } include "**/*.so" from ('.') { into 'libs' } include "linphone.jar" from ('libs-debug') { into 'libs-debug' } include "**/*.so" from ('.') { into 'libs-debug' } include "linphone.jar" } }