Skip to content

Commit ab98924

Browse files
Added support for SDK 34.
* Upgraded the gradle to support the Android 14. * Made the changes in code to adapt the new gradle. * Rectify the deprecated code that are not working in new version of gradle.
1 parent 40f17fd commit ab98924

6 files changed

Lines changed: 37 additions & 38 deletions

File tree

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ jobs:
1515
- name: Checkout code
1616
uses: actions/checkout@v4
1717

18-
- name: Set up JDK 11
18+
- name: Set up JDK 17
1919
uses: actions/setup-java@v4
2020
with:
2121
distribution: adopt
22-
java-version: 11
22+
java-version: 17
2323

2424
- name: Install dependencies
2525
run: bash ./install_deps.sh

build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ buildscript {
66
maven { url 'https://plugins.gradle.org/m2/' }
77
}
88
dependencies {
9-
classpath "com.android.tools.build:gradle:7.0.1"
10-
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.21"
9+
classpath "com.android.tools.build:gradle:8.1.0-alpha10"
10+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.20"
1111
classpath 'io.github.gradle-nexus:publish-plugin:1.1.0'
1212
classpath 'de.undercouch:gradle-download-task:5.3.0'
1313
// NOTE: Do not place your application dependencies here; they belong
@@ -17,7 +17,7 @@ buildscript {
1717

1818
apply plugin: 'io.github.gradle-nexus.publish-plugin'
1919

20-
task clean(type: Delete) {
20+
tasks.register('clean', Delete) {
2121
delete rootProject.buildDir
2222
}
2323

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#Fri Aug 12 19:44:15 IST 2022
22
distributionBase=GRADLE_USER_HOME
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
44
distributionPath=wrapper/dists
55
zipStorePath=wrapper/dists
66
zipStoreBase=GRADLE_USER_HOME

lib/build.gradle

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ ext.libzim_version = "9.2.1"
2828

2929
apply from: 'publish.gradle'
3030
android {
31-
compileSdk 32
32-
31+
compileSdk 34
32+
namespace = "kiwix.org.kiwixlib"
3333
defaultConfig {
3434

35-
minSdk 21
36-
targetSdk 32
35+
minSdk 25
36+
targetSdk 34
3737
versionCode 1
3838
versionName "1.0"
3939

@@ -79,7 +79,7 @@ dependencies {
7979
ext.libkiwix_base_url = 'https://download.kiwix.org/release/libkiwix/'
8080
ext.libzim_base_url = 'https://download.openzim.org/release/libzim/'
8181

82-
task downloadLibzimSoAndHeaderFiles(type: Download) {
82+
tasks.register('downloadLibzimSoAndHeaderFiles', Download) {
8383
src([
8484
libzim_base_url + 'libzim_android-arm-' + libzim_version + '.tar.gz',
8585
libzim_base_url + 'libzim_android-arm64-' + libzim_version + '.tar.gz',
@@ -91,7 +91,8 @@ task downloadLibzimSoAndHeaderFiles(type: Download) {
9191
overwrite true
9292
}
9393

94-
task unzipLibzim(type: Copy) {
94+
tasks.register('unzipLibzim', Copy) {
95+
mustRunAfter downloadLibzimSoAndHeaderFiles
9596
// unzip android arm
9697
from tarTree(buildDir.path + "/libzim_android-arm-" + libzim_version + ".tar.gz")
9798
into buildDir
@@ -109,11 +110,11 @@ task unzipLibzim(type: Copy) {
109110
into buildDir
110111
}
111112

112-
task renameLibzimFolders() {
113+
tasks.register('renameLibzimFolders') {
113114
removeVersionFromFolderName(buildDir.path, "libzim_", libzim_version)
114115
}
115116

116-
task copyLibzimHeaderAndSoFiles(type: Copy) {
117+
tasks.register('copyLibzimHeaderAndSoFiles', Copy) {
117118
copy {
118119
// copying header file
119120
from buildDir.path + "/libzim_android-arm/include/"
@@ -151,7 +152,7 @@ task copyLibzimHeaderAndSoFiles(type: Copy) {
151152
}
152153
}
153154

154-
task renameLibzimSoFile(type: Copy) {
155+
tasks.register('renameLibzimSoFile', Copy) {
155156
if (libzim_version != null) {
156157
def finalLibzimVersion = getActualLibraryVersion(libzim_version)
157158

@@ -167,7 +168,7 @@ task renameLibzimSoFile(type: Copy) {
167168
}
168169
}
169170

170-
task downloadLibkiwixSoAndHeaderFiles(type: Download) {
171+
tasks.register('downloadLibkiwixSoAndHeaderFiles', Download) {
171172
src([
172173
libkiwix_base_url + 'libkiwix_android-arm-' + libkiwix_version + '.tar.gz',
173174
libkiwix_base_url + 'libkiwix_android-arm64-' + libkiwix_version + '.tar.gz',
@@ -179,7 +180,7 @@ task downloadLibkiwixSoAndHeaderFiles(type: Download) {
179180
overwrite true
180181
}
181182

182-
task renameLibkiwixFolders() {
183+
tasks.register('renameLibkiwixFolders') {
183184
removeVersionFromFolderName(buildDir.path, "libkiwix_", libkiwix_version)
184185
}
185186

@@ -196,7 +197,8 @@ static void removeVersionFromFolderName(String path, String startWith, String ve
196197
}
197198
}
198199

199-
task unzipLibkiwix(type: Copy) {
200+
tasks.register('unzipLibkiwix', Copy) {
201+
mustRunAfter downloadLibkiwixSoAndHeaderFiles
200202
// unzip android arm
201203
from tarTree(buildDir.path + "/libkiwix_android-arm-" + libkiwix_version + ".tar.gz")
202204
into buildDir
@@ -214,7 +216,7 @@ task unzipLibkiwix(type: Copy) {
214216
into buildDir
215217
}
216218

217-
task copyLibkiwixHeaderAndSoFiles(type: Copy) {
219+
tasks.register('copyLibkiwixHeaderAndSoFiles', Copy) {
218220
copy {
219221
// copying header file
220222
from buildDir.path + "/libkiwix_android-arm/include/kiwix/"
@@ -252,7 +254,7 @@ task copyLibkiwixHeaderAndSoFiles(type: Copy) {
252254
}
253255
}
254256

255-
task renameLibkiwixSoFile(type: Copy) {
257+
tasks.register('renameLibkiwixSoFile', Copy) {
256258
if (libkiwix_version != null) {
257259
def finalLibkiwixVersion = getActualLibraryVersion(libkiwix_version)
258260
def sourceFile = file(buildDir.path + "/libkiwix.so." + finalLibkiwixVersion)
@@ -277,50 +279,50 @@ static String getActualLibraryVersion(String libraryVersion) {
277279
return dashIndex != -1 ? libraryVersion.substring(0, dashIndex) : libraryVersion
278280
}
279281

280-
task testSourceJar(type: Jar) {
282+
tasks.register('testSourceJar', Jar) {
281283
from android.sourceSets.test.java.srcDirs
282-
archiveName = 'test-sources.jar'
284+
archiveBaseName = 'test-sources'
283285
}
284286

285-
task compileTestFile(type: JavaCompile) {
287+
tasks.register('compileTestFile', JavaCompile) {
286288
dependsOn testSourceJar
287289
source = file('src/test')
288290
destinationDirectory = file("$buildDir")
289-
classpath = files("src/test/junit-4.13.jar" , "src/test/hamcrest-core-1.4.jar", "build/libs/test-sources.jar")
291+
classpath = files("src/test/junit-4.13.jar", "src/test/hamcrest-core-1.4.jar", "build/libs/test-sources-${VERSION}.jar")
290292
}
291293

292-
task runTests(type: JavaExec) {
294+
tasks.register('runTests', JavaExec) {
293295
workingDir("$projectDir/src/test/")
294296
dependsOn compileTestFile
295297
classpath = files("$buildDir", 'src/test/java/', 'src/test/junit-4.13.jar', 'src/test/hamcrest-core-1.3.jar')
296-
main = 'org.junit.runner.JUnitCore'
298+
mainClass = 'org.junit.runner.JUnitCore'
297299
args = ['test']
298300
jvmArgs = [
299301
'-Djava.library.path=' + buildDir.path,
300302
'-javaagent:jacoco-0.8.7/lib/jacocoagent.jar=destfile=../../build/jacoco/jacoco.exec'
301303
]
302304
}
303305

304-
task createCodeCoverageReport(type: JavaExec) {
306+
tasks.register('createCodeCoverageReport', JavaExec) {
305307
workingDir "${projectDir}/src/test/"
306308
dependsOn runTests
307309
classpath = files('src/test/', 'src/test/java/', 'src/test/junit-4.13.jar', 'src/test/hamcrest-core-1.3.jar', 'src/test/jacoco-0.8.7/lib/*')
308-
main = 'org.jacoco.cli.internal.Main'
310+
mainClass = 'org.jacoco.cli.internal.Main'
309311
args = [
310312
'report', '../../build/jacoco/jacoco.exec',
311313
'--classfiles', 'java/org/kiwix', '--classfiles', '../../build/org/kiwix',
312314
'--html', '../../build/coverage-report', '--xml', '../../build/coverage.xml'
313315
]
314316
}
315317

316-
task checkCurrentJavaVersion() {
317-
if (JavaVersion.current() != JavaVersion.VERSION_11) {
318-
throw new RuntimeException("This build must be run with java 11. your current java version is ${JavaVersion.current()}")
318+
tasks.register('checkCurrentJavaVersion') {
319+
if (JavaVersion.current() != JavaVersion.VERSION_17) {
320+
throw new RuntimeException("This build must be run with java 17. your current java version is ${JavaVersion.current()}")
319321
}
320322
}
321323

322324

323-
task buildHeaders(type: Exec) {
325+
tasks.register('buildHeaders', Exec) {
324326
workingDir "${projectDir}/src/main/java/org/kiwix/"
325327
commandLine 'bash', '-c', "javac -h ${buildDir}/include/javah_generated/ -d ${projectDir}/src/test/java/ ${getLibzimFiles()} ${getLibkiwixFiles()}"
326328
}
@@ -358,7 +360,7 @@ String getLibzimFiles() {
358360
"${projectDir}/src/main/java/org/kiwix/libzim/FdInput.java"
359361
}
360362

361-
task buildLinuxBinding(type: Exec) {
363+
tasks.register('buildLinuxBinding', Exec) {
362364
workingDir "${projectDir}/src/main/cpp/"
363365
commandLine 'bash', '-c', "cmake . -B ${buildDir} && make -C ${buildDir}"
364366
}

lib/publish.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apply plugin: 'maven-publish'
22
apply plugin: 'signing'
33

4-
task androidSourcesJar(type: Jar) {
4+
tasks.register('androidSourcesJar', Jar) {
55
archiveClassifier.set('sources')
66
if (project.plugins.findPlugin("com.android.library")) {
77
// For Android libraries

lib/src/main/AndroidManifest.xml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2-
3-
package="kiwix.org.kiwixlib"
4-
>
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
52

63
<application android:allowBackup="true"
74
android:label="@string/app_name"

0 commit comments

Comments
 (0)