Skip to content

Commit 4b5cc44

Browse files
authored
Merge pull request #23 from kiwix/adapt_wrapper
Adapt wrapper to new API of libzim/libkiwix
2 parents 98388aa + 929ae6d commit 4b5cc44

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+2568
-1493
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.gradle
22
local.properties
33
build
4+
lib/.cxx

lib/build.gradle

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ android {
5959
}
6060
externalNativeBuild {
6161
cmake {
62-
path file('src/cpp/CMakeLists.txt')
62+
path file('src/main/cpp/CMakeLists.txt')
6363
version '3.18.1'
6464
}
6565
}
@@ -285,5 +285,35 @@ task checkCurrentJavaVersion() {
285285

286286
task generateHeaderFilesFromJavaWrapper(type: Exec) {
287287
workingDir "${projectDir}/src/main/java/org/kiwix/"
288-
commandLine 'bash', '-c', "javac -h ${buildDir}/include/javah_generated/ -d ${buildDir}/kiwixlib/ kiwixlib/Book.java kiwixlib/DirectAccessInfo.java kiwixlib/Filter.java kiwixlib/JNIICU.java kiwixlib/JNIKiwixBool.java kiwixlib/JNIKiwixException.java kiwixlib/JNIKiwixInt.java kiwixlib/JNIKiwixReader.java kiwixlib/JNIKiwixSearcher.java kiwixlib/JNIKiwixServer.java kiwixlib/JNIKiwixString.java kiwixlib/Library.java kiwixlib/Manager.java"
288+
commandLine 'bash', '-c', "javac -h ${buildDir}/include/javah_generated/ -d ${buildDir}/libzim/ ${getLibzimFiles()} ${getLibkiwixFiles()}"
289+
}
290+
291+
String getLibkiwixFiles() {
292+
return "${projectDir}/src/main/java/org/kiwix/libkiwix/Book.java " +
293+
"${projectDir}/src/main/java/org/kiwix/libkiwix/Bookmark.java " +
294+
"${projectDir}/src/main/java/org/kiwix/libkiwix/Filter.java " +
295+
"${projectDir}/src/main/java/org/kiwix/libkiwix/JNIICU.java " +
296+
"${projectDir}/src/main/java/org/kiwix/libkiwix/Illustration.java " +
297+
"${projectDir}/src/main/java/org/kiwix/libkiwix/JNIKiwixException.java " +
298+
"${projectDir}/src/main/java/org/kiwix/libkiwix/Library.java " +
299+
"${projectDir}/src/main/java/org/kiwix/libkiwix/Manager.java " +
300+
"${projectDir}/src/main/java/org/kiwix/libkiwix/Server.java"
301+
}
302+
303+
String getLibzimFiles() {
304+
return "${projectDir}/src/main/java/org/kiwix/libzim/Archive.java " +
305+
"${projectDir}/src/main/java/org/kiwix/libzim/Blob.java " +
306+
"${projectDir}/src/main/java/org/kiwix/libzim/DirectAccessInfo.java " +
307+
"${projectDir}/src/main/java/org/kiwix/libzim/EntryIterator.java " +
308+
"${projectDir}/src/main/java/org/kiwix/libzim/Entry.java " +
309+
"${projectDir}/src/main/java/org/kiwix/libzim/Item.java " +
310+
"${projectDir}/src/main/java/org/kiwix/libzim/Query.java " +
311+
"${projectDir}/src/main/java/org/kiwix/libzim/Searcher.java " +
312+
"${projectDir}/src/main/java/org/kiwix/libzim/SearchIterator.java " +
313+
"${projectDir}/src/main/java/org/kiwix/libzim/Search.java " +
314+
"${projectDir}/src/main/java/org/kiwix/libzim/SuggestionItem.java " +
315+
"${projectDir}/src/main/java/org/kiwix/libzim/SuggestionIterator.java " +
316+
"${projectDir}/src/main/java/org/kiwix/libzim/SuggestionSearcher.java " +
317+
"${projectDir}/src/main/java/org/kiwix/libzim/SuggestionSearch.java " +
318+
"${projectDir}/src/main/java/org/kiwix/libzim/ZimFileFormatException.java"
289319
}

lib/src/main/cpp/CMakeLists.txt

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
2+
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
3+
cmake_minimum_required(VERSION 3.18.1)
4+
5+
set(CMAKE_ANDROID_STL_TYPE llvm-libc++_static)
6+
7+
project("libkiwix_wrapper")
8+
9+
add_library(
10+
zim_wrapper
11+
12+
SHARED
13+
libzim/archive.cpp
14+
libzim/entry.cpp
15+
libzim/entry_iterator.cpp
16+
libzim/item.cpp
17+
libzim/blob.cpp
18+
libzim/searcher.cpp
19+
libzim/query.cpp
20+
libzim/search.cpp
21+
libzim/search_iterator.cpp
22+
libzim/suggestion_searcher.cpp
23+
libzim/suggestion_search.cpp
24+
libzim/suggestion_iterator.cpp
25+
libzim/suggestion_item.cpp
26+
)
27+
28+
find_library(libzim
29+
zim
30+
PATHS
31+
${BUILD_DIR}/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libzim)
32+
if (NOT libzim)
33+
message(FATAL_ERROR "libzim not found!")
34+
endif()
35+
add_library(libzim SHARED IMPORTED)
36+
37+
set_property(TARGET
38+
libzim
39+
PROPERTY
40+
IMPORTED_LOCATION
41+
${BUILD_DIR}/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libzim/libzim.so)
42+
43+
44+
add_library(
45+
kiwix_wrapper
46+
47+
SHARED
48+
libkiwix/book.cpp
49+
libkiwix/filter.cpp
50+
libkiwix/kiwixicu.cpp
51+
libkiwix/kiwixserver.cpp
52+
libkiwix/library.cpp
53+
libkiwix/bookmark.cpp
54+
libkiwix/manager.cpp
55+
libkiwix/illustration.cpp
56+
)
57+
58+
find_library(libkiwix
59+
kiwix
60+
PATHS
61+
${BUILD_DIR}/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libkiwix)
62+
if (NOT libkiwix)
63+
message(FATAL_ERROR "libkiwix not found!")
64+
endif()
65+
add_library(libkiwix SHARED IMPORTED)
66+
67+
set_property(TARGET
68+
libkiwix
69+
PROPERTY
70+
IMPORTED_LOCATION
71+
${BUILD_DIR}/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libkiwix/libkiwix.so)
72+
73+
include_directories(
74+
${CMAKE_SOURCE_DIR}
75+
${BUILD_DIR}/include/libkiwix
76+
${BUILD_DIR}/include/libzim
77+
${BUILD_DIR}/include/javah_generated
78+
#${CMAKE_SOURCE_DIR}/include/utils
79+
)
80+
81+
find_library(
82+
log-lib
83+
log)
84+
85+
target_link_libraries(
86+
zim_wrapper
87+
libzim
88+
${log-lib}
89+
)
90+
91+
target_link_libraries(
92+
kiwix_wrapper
93+
libkiwix
94+
libzim
95+
${log-lib}
96+
)
97+

0 commit comments

Comments
 (0)