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 doc
gen gen
liblinphone-junit-report.xml liblinphone-junit-report.xml
liblinphone-sdk liblinphone-sdk/android-*
liblinphonetester_*.zip liblinphonetester_*.zip
libs libs
libs-debug libs-debug
@ -29,8 +29,6 @@ proguard-project.txt
project.properties project.properties
res/.DS_Store res/.DS_Store
res/raw/lpconfig.xsd res/raw/lpconfig.xsd
res/raw/rootca.pem
res/raw/*_grammar
submodules/externals/build/cunit/CUnit/ submodules/externals/build/cunit/CUnit/
submodules/externals/build/ffmpeg/arm/ submodules/externals/build/ffmpeg/arm/
submodules/externals/build/ffmpeg/x86 submodules/externals/build/ffmpeg/x86

View file

@ -48,16 +48,13 @@ dependencies {
implementation 'com.google.firebase:firebase-messaging:15.0.2' implementation 'com.google.firebase:firebase-messaging:15.0.2'
} }
implementation 'com.android.support:support-v4:26.0.1' implementation 'com.android.support:support-v4:26.0.1'
implementation project(':liblinphone-sdk')
} }
if (firebaseEnable()) { if (firebaseEnable()) {
apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.gms.google-services'
} }
//// Submodule Dir /////
def submoduleDir = ['submodules/mediastreamer2/java/src']
////////////////////////
///// Exclude Files ///// ///// Exclude Files /////
def excludeFiles = [] def excludeFiles = []
// Exclude firebase file if not enable // Exclude firebase file if not enable
@ -68,7 +65,7 @@ if (!firebaseEnable()) {
excludeFiles.add('**/gcm*') excludeFiles.add('**/gcm*')
println '[Push Notification] Firebase enabled' println '[Push Notification] Firebase enabled'
} }
excludeFiles.add('**/mediastream/MediastreamerActivity.java')
excludeFiles.add('src/android/org/linphone/tutorials/*.java') excludeFiles.add('src/android/org/linphone/tutorials/*.java')
def excludePackage = [] def excludePackage = []
@ -110,20 +107,19 @@ android {
packaged { packaged {
initWith release initWith release
signingConfig null signingConfig null
matchingFallbacks = ['debug', 'release']
} }
} }
sourceSets { sourceSets {
main { main {
manifest.srcFile 'AndroidManifest.xml' manifest.srcFile 'AndroidManifest.xml'
def srcDirs = submoduleDir def srcDirs = ['src/android']
srcDirs.addAll(['src/linphone-wrapper', 'src/android'])
java.srcDirs = srcDirs java.srcDirs = srcDirs
resources.srcDirs = srcDirs resources.srcDirs = srcDirs
aidl.srcDirs = srcDirs aidl.srcDirs = srcDirs
renderscript.srcDirs = srcDirs renderscript.srcDirs = srcDirs
res.srcDirs = ['res'] res.srcDirs = ['res']
assets.srcDirs = ['assets'] assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
java.excludes = excludeFiles java.excludes = excludeFiles
// Exclude some useless files // Exclude some useless files
@ -138,16 +134,13 @@ android {
sourceSets { sourceSets {
androidTest { androidTest {
manifest.srcFile 'AndroidManifest.xml' manifest.srcFile 'AndroidManifest.xml'
def srcDirs = submoduleDir def srcDirs = ['src/android', 'src/androidTest']
srcDirs.addAll(['src/android',
'src/androidTest'])
java.srcDirs = srcDirs java.srcDirs = srcDirs
resources.srcDirs = srcDirs resources.srcDirs = srcDirs
aidl.srcDirs = srcDirs aidl.srcDirs = srcDirs
renderscript.srcDirs = srcDirs renderscript.srcDirs = srcDirs
res.srcDirs = ['res'] res.srcDirs = ['res']
assets.srcDirs = ['assets'] assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
java.excludes = excludeFiles java.excludes = excludeFiles
// Exclude some useless files // Exclude some useless files

View file

@ -21,18 +21,36 @@ allprojects {
} }
} }
configurations { configurations {
javadocDeps javadocDeps
} }
apply plugin: 'com.android.library' apply plugin: 'com.android.library'
dependencies { dependencies {
compile 'org.apache.commons:commons-compress:1.16.1' compile 'org.apache.commons:commons-compress:1.16.1'
javadocDeps '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 = [] def excludePackage = []
@ -42,6 +60,13 @@ excludePackage.add('**/**tester**')
excludePackage.add('**/LICENSE.txt') excludePackage.add('**/LICENSE.txt')
android { android {
buildTypes {
release {}
debug{}
}
defaultConfig { defaultConfig {
compileSdkVersion 26 compileSdkVersion 26
buildToolsVersion "26.0.0" buildToolsVersion "26.0.0"
@ -59,10 +84,10 @@ android {
main { main {
manifest.srcFile 'AndroidManifestLibrary.xml' manifest.srcFile 'AndroidManifestLibrary.xml'
java.srcDirs = srcDir java.srcDirs = srcDir
resources.srcDirs = srcDir
aidl.srcDirs = srcDir aidl.srcDirs = srcDir
assets.srcDirs = ["${buildDir}/sdk-assets/assets/"]
renderscript.srcDirs = srcDir renderscript.srcDirs = srcDir
jniLibs.srcDirs = ['libs'] jniLibs.srcDirs = ['../libs']
java.excludes = ['**/mediastream/MediastreamerActivity.java'] java.excludes = ['**/mediastream/MediastreamerActivity.java']
@ -79,7 +104,7 @@ android {
///////////// Task ///////////// ///////////// Task /////////////
task(releaseJavadoc, type: Javadoc, dependsOn: "assembleRelease") { task(releaseJavadoc, type: Javadoc, dependsOn: "assembleRelease") {
source = ['submodules/mediastreamer2/java/src', 'src/linphone-wrapper'] source = srcDir
excludes = ['**/mediastream/MediastreamerActivity.java', excludes = ['**/mediastream/MediastreamerActivity.java',
'**/**.html', '**/**.html',
'**/**.aidl'] '**/**.aidl']
@ -109,3 +134,26 @@ task sdkZip(type: Zip) {
include '*' include '*'
archiveName newSdkName 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

@ -20,7 +20,7 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="android.permission.WAKE_LOCK"/>
<application <application
android:allowBackup="true" android:allowBackup="true"
android:icon="@drawable/ic_launcher" android:icon="@drawable/ic_launcher"

View file

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