improve gradle build script

This commit is contained in:
Jehan Monnier 2018-05-25 14:39:56 +02:00
parent 986a45b88a
commit 53d4ecfe60
13 changed files with 69 additions and 56 deletions

4
.gitignore vendored
View file

@ -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

View file

@ -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

View file

@ -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'

View file

@ -248,13 +248,10 @@ install-test:
java-clean:
\t./gradlew clean
$(TOPDIR)/res/raw/rootca.pem:
\tcp liblinphone-sdk/android-{first_arch}/share/linphone/rootca.pem $@
copy-libs:
\trm -rf libs-debug/armeabi
\trm -rf libs/armeabi
\trm -rf src/linphone-wrapper && mkdir -p src/linphone-wrapper/
\tif test -d "liblinphone-sdk/android-arm"; then \\
\t\tmkdir -p libs-debug/armeabi && \\
\t\tcp -f liblinphone-sdk/android-arm/lib/lib*.so libs-debug/armeabi && \\
@ -321,30 +318,6 @@ copy-libs:
\t\tcp -f liblinphone-sdk/android-x86/bin/gdbserver libs/x86 && \\
\t\tcp -f liblinphone-sdk/android-x86/bin/gdb.setup libs/x86; \\
\tfi
\tif test -d "liblinphone-sdk/android-arm/share/linphonej"; then \\
\t\tcp -R liblinphone-sdk/android-arm/share/linphonej/java/* src/linphone-wrapper; \\
\tfi
\tif test -d "liblinphone-sdk/android-armv7/share/linphonej"; then \\
\t\tcp -R liblinphone-sdk/android-armv7/share/linphonej/java/* src/linphone-wrapper; \\
\tfi
\tif test -d "liblinphone-sdk/android-arm64/share/linphonej"; then \\
\t\tcp -R liblinphone-sdk/android-arm64/share/linphonej/java/* src/linphone-wrapper; \\
\tfi
\tif test -d "liblinphone-sdk/android-x86/share/linphonej"; then \\
\t\tcp -R liblinphone-sdk/android-x86/share/linphonej/java/* src/linphone-wrapper; \\
\tfi
\tif test -d "liblinphone-sdk/android-arm/share/belr/grammars"; then \\
\t\tcp liblinphone-sdk/android-arm/share/belr/grammars/*_grammar res/raw/; \\
\tfi
\tif test -d "liblinphone-sdk/android-armv7/share/belr/grammars"; then \\
\t\tcp liblinphone-sdk/android-armv7/share/belr/grammars/*_grammar res/raw/; \\
\tfi
\tif test -d "liblinphone-sdk/android-arm64/share/belr/grammars"; then \\
\t\tcp liblinphone-sdk/android-arm64/share/belr/grammars/*_grammar res/raw/; \\
\tfi
\tif test -d "liblinphone-sdk/android-x86/share/belr/grammars"; then \\
\t\tcp liblinphone-sdk/android-x86/share/belr/grammars/*_grammar res/raw/; \\
\tfi
copy-libs-mediastreamer:
\trm -rf submodules/mediastreamer2/java/libs/armeabi
@ -372,7 +345,7 @@ copy-libs-mediastreamer:
\t\tsh WORK/android-x86/strip.sh submodules/mediastreamer2/java/libs/x86/*.so; \\
\tfi
generate-apk: java-clean build copy-libs $(TOPDIR)/res/raw/rootca.pem
generate-apk: java-clean build copy-libs
\t./gradlew assembleDebug
quick: clean install-apk run-linphone
@ -392,17 +365,17 @@ unsigned: java-clean build copy-libs
generate-sdk: liblinphone-android-sdk
generate-javadoc:
\t./gradlew -b libLinphoneAndroidSdk.gradle androidJavadocsJar
\t./gradlew -b libLinphoneAndroidSdk.gradle sourcesJar
\t./gradlew -q androidJavadocsJar
\t./gradlew -q sourcesJar
liblinphone-android-sdk: java-clean build copy-libs $(TOPDIR)/res/raw/rootca.pem
\t./gradlew -b libLinphoneAndroidSdk.gradle androidJavadocsJar
\t./gradlew -b libLinphoneAndroidSdk.gradle sourcesJar
\t./gradlew -b libLinphoneAndroidSdk.gradle assembleRelease
liblinphone-android-sdk: java-clean build copy-libs
\t./gradlew -q androidJavadocsJar
\t./gradlew -q sourcesJar
\t./gradlew -q assembleRelease
\t@mv $(TOPDIR)/bin/outputs/aar/*.aar $(TOPDIR)/bin/outputs/aar/liblinphone-sdk.aar
\t./gradlew -b libLinphoneAndroidSdk.gradle sdkZip
\t./gradlew -q sdkZip
linphone-android-sdk: java-clean build copy-libs $(TOPDIR)/res/raw/rootca.pem
linphone-android-sdk: java-clean build copy-libs
\t./gradlew -b linphoneAndroidSdk.gradle androidJavadocsJar
\t./gradlew -b linphoneAndroidSdk.gradle sourcesJar
\t./gradlew -b linphoneAndroidSdk.gradle assembleRelease

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

1
settings.gradle Normal file
View file

@ -0,0 +1 @@
include 'liblinphone-sdk'