diff --git a/.gitignore b/.gitignore index 13a14ee3e..1b94dd9f7 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,7 @@ default.properties doc gen liblinphone-junit-report.xml -liblinphone-sdk +liblinphone-sdk/android-* liblinphonetester_*.zip libs libs-debug @@ -29,8 +29,6 @@ proguard-project.txt project.properties res/.DS_Store res/raw/lpconfig.xsd -res/raw/rootca.pem -res/raw/*_grammar submodules/externals/build/cunit/CUnit/ submodules/externals/build/ffmpeg/arm/ submodules/externals/build/ffmpeg/x86 diff --git a/build.gradle b/build.gradle index 393558930..a388ff7d6 100644 --- a/build.gradle +++ b/build.gradle @@ -48,16 +48,13 @@ dependencies { implementation 'com.google.firebase:firebase-messaging:15.0.2' } implementation 'com.android.support:support-v4:26.0.1' + implementation project(':liblinphone-sdk') } if (firebaseEnable()) { apply plugin: 'com.google.gms.google-services' } -//// Submodule Dir ///// -def submoduleDir = ['submodules/mediastreamer2/java/src'] -//////////////////////// - ///// Exclude Files ///// def excludeFiles = [] // Exclude firebase file if not enable @@ -68,7 +65,7 @@ if (!firebaseEnable()) { excludeFiles.add('**/gcm*') println '[Push Notification] Firebase enabled' } -excludeFiles.add('**/mediastream/MediastreamerActivity.java') + excludeFiles.add('src/android/org/linphone/tutorials/*.java') def excludePackage = [] @@ -110,20 +107,19 @@ android { packaged { initWith release signingConfig null + matchingFallbacks = ['debug', 'release'] } } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' - def srcDirs = submoduleDir - srcDirs.addAll(['src/linphone-wrapper', 'src/android']) + def srcDirs = ['src/android'] 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 @@ -138,16 +134,13 @@ android { sourceSets { androidTest { manifest.srcFile 'AndroidManifest.xml' - def srcDirs = submoduleDir - srcDirs.addAll(['src/android', - 'src/androidTest']) + def srcDirs = ['src/android', 'src/androidTest'] 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 diff --git a/AndroidManifestLibrary.xml b/liblinphone-sdk/AndroidManifestLibrary.xml similarity index 100% rename from AndroidManifestLibrary.xml rename to liblinphone-sdk/AndroidManifestLibrary.xml diff --git a/libLinphoneAndroidSdk.gradle b/liblinphone-sdk/build.gradle similarity index 64% rename from libLinphoneAndroidSdk.gradle rename to liblinphone-sdk/build.gradle index c50010b49..811af8468 100644 --- a/libLinphoneAndroidSdk.gradle +++ b/liblinphone-sdk/build.gradle @@ -21,18 +21,36 @@ allprojects { } } + configurations { javadocDeps } + + + apply plugin: 'com.android.library' + dependencies { compile 'org.apache.commons:commons-compress:1.16.1' javadocDeps 'org.apache.commons:commons-compress:1.16.1' } -def srcDir = ['submodules/mediastreamer2/java/src', 'src/linphone-wrapper'] +def srcDir = ['../submodules/mediastreamer2/java/src'] +def rootSdk + +if (file('android-arm64/share/linphonej/java/org/linphone/core/Factory.java').exists() ) + rootSdk = 'android-arm64' +else if (file('android-arm/share/linphonej/java/org/linphone/core/Factory.java').exists() ) + rootSdk = 'android-arm' +else if (file('android-armv7/share/linphonej/java/org/linphone/core/Factory.java').exists() ) + rootSdk = 'android-armv7' +else if (file('android-x86/share/linphonej/java/org/linphone/core/Factory.java').exists() ) + rootSdk = 'android-x86' + +srcDir += [rootSdk+'/share/linphonej/java/org/linphone/core/'] + def excludePackage = [] @@ -42,6 +60,13 @@ excludePackage.add('**/**tester**') excludePackage.add('**/LICENSE.txt') android { + + + buildTypes { + release {} + debug{} + } + defaultConfig { compileSdkVersion 26 buildToolsVersion "26.0.0" @@ -59,10 +84,10 @@ android { main { manifest.srcFile 'AndroidManifestLibrary.xml' java.srcDirs = srcDir - resources.srcDirs = srcDir aidl.srcDirs = srcDir + assets.srcDirs = ["${buildDir}/sdk-assets/assets/"] renderscript.srcDirs = srcDir - jniLibs.srcDirs = ['libs'] + jniLibs.srcDirs = ['../libs'] java.excludes = ['**/mediastream/MediastreamerActivity.java'] @@ -79,7 +104,7 @@ android { ///////////// Task ///////////// task(releaseJavadoc, type: Javadoc, dependsOn: "assembleRelease") { - source = ['submodules/mediastreamer2/java/src', 'src/linphone-wrapper'] + source = srcDir excludes = ['**/mediastream/MediastreamerActivity.java', '**/**.html', '**/**.aidl'] @@ -109,3 +134,26 @@ task sdkZip(type: Zip) { include '*' archiveName newSdkName } + +task copyAssets(type: Sync) { + from rootSdk + into "${buildDir}/sdk-assets/assets/org.linphone.core" + include '**/*.png' + include '**/*.pem' + include '**/*.mkv' + include '**/*.wav' + include '**/*_grammar' + + //rename '(.*)', '$1'.toLowerCase() + eachFile { + path = path.toLowerCase() //to workaround case insensitive fs (macosx) + println("Syncing sdk asset ${sourcePath} to ${path}") + } + doFirst { + println("Syncing sdk assets into root dir ${destinationDir}") + } + // do not copy those + includeEmptyDirs = false + +} +project.tasks['preBuild'].dependsOn 'copyAssets' \ No newline at end of file diff --git a/liblinphone_tester/AndroidManifest.xml b/liblinphone_tester/AndroidManifest.xml index c733b0e01..b465b495e 100644 --- a/liblinphone_tester/AndroidManifest.xml +++ b/liblinphone_tester/AndroidManifest.xml @@ -20,7 +20,7 @@ - +