Skip to content

Commit 9702ee7

Browse files
author
MohitMaliFtechiz
committed
Generating .aar file for android and .so file for testing via CmakeList as we are generating the .so file in app/CMakeList now test/CMakeList file is unused so we are removing it
1 parent 58430f6 commit 9702ee7

4 files changed

Lines changed: 100 additions & 102 deletions

File tree

lib/build.gradle

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,3 +329,10 @@ String getLibzimFiles() {
329329
"${projectDir}/src/main/java/org/kiwix/libzim/SuggestionSearch.java " +
330330
"${projectDir}/src/main/java/org/kiwix/libzim/ZimFileFormatException.java"
331331
}
332+
333+
task buildLinuxSoFile(type: Exec) {
334+
workingDir "${projectDir}/src/main/cpp/"
335+
commandLine 'bash', '-c', "cmake . -B ${buildDir} && make -C ${buildDir}"
336+
}
337+
338+
build.dependsOn buildLinuxSoFile

lib/src/main/cpp/CMakeLists.txt

Lines changed: 91 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,23 @@
22
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
33
cmake_minimum_required(VERSION 3.18.1)
44

5-
set(CMAKE_ANDROID_STL_TYPE llvm-libc++_static)
6-
75
project("libkiwix_wrapper")
86

9-
add_library(
10-
zim_wrapper
7+
set(BUILD_DIR_PATH "${BUILD_DIR}")
8+
9+
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
10+
set(BUILD_DIR_PATH "./../../../build")
11+
endif ()
12+
13+
include_directories(
14+
${CMAKE_SOURCE_DIR}
15+
${BUILD_DIR_PATH}/include/libkiwix
16+
${BUILD_DIR_PATH}/include/libzim
17+
${BUILD_DIR_PATH}/include/javah_generated
18+
#${CMAKE_SOURCE_DIR}/include/utils
19+
)
20+
21+
add_library(zim_wrapper
1122

1223
SHARED
1324
libzim/archive.cpp
@@ -23,26 +34,10 @@ add_library(
2334
libzim/suggestion_search.cpp
2435
libzim/suggestion_iterator.cpp
2536
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)
37+
)
4238

4339

44-
add_library(
45-
kiwix_wrapper
40+
add_library(kiwix_wrapper
4641

4742
SHARED
4843
libkiwix/book.cpp
@@ -53,45 +48,84 @@ add_library(
5348
libkiwix/bookmark.cpp
5449
libkiwix/manager.cpp
5550
libkiwix/illustration.cpp
56-
)
51+
)
5752

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)
53+
# Linux target
54+
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
7255

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-
)
56+
find_package(JNI)
8057

81-
find_library(
82-
log-lib
83-
log)
58+
include_directories(
59+
${JNI_INCLUDE_DIRS}
60+
)
8461

85-
target_link_libraries(
86-
zim_wrapper
87-
libzim
88-
${log-lib}
89-
)
62+
add_library(libzim SHARED IMPORTED)
63+
set_target_properties(libzim PROPERTIES IMPORTED_LOCATION libzim.so)
9064

91-
target_link_libraries(
92-
kiwix_wrapper
93-
libkiwix
94-
libzim
95-
${log-lib}
65+
add_library(libkiwix SHARED IMPORTED)
66+
set_target_properties(libkiwix PROPERTIES IMPORTED_LOCATION libkiwix.so)
67+
68+
target_link_libraries(
69+
zim_wrapper
70+
libzim
9671
)
9772

73+
target_link_libraries(
74+
kiwix_wrapper
75+
libkiwix
76+
libzim
77+
)
78+
endif ()
79+
80+
# Android target
81+
if (ANDROID)
82+
set(CMAKE_ANDROID_STL_TYPE llvm-libc++_static)
83+
84+
find_library(
85+
log-lib
86+
log)
87+
88+
find_library(libzim
89+
zim
90+
PATHS
91+
${BUILD_DIR_PATH}/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libzim)
92+
if (NOT libzim)
93+
message(FATAL_ERROR "libzim not found!")
94+
endif ()
95+
add_library(libzim SHARED IMPORTED)
96+
97+
set_property(TARGET
98+
libzim
99+
PROPERTY
100+
IMPORTED_LOCATION
101+
${BUILD_DIR_PATH}/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libzim/libzim.so)
102+
103+
104+
find_library(libkiwix
105+
kiwix
106+
PATHS
107+
${BUILD_DIR_PATH}/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libkiwix)
108+
if (NOT libkiwix)
109+
message(FATAL_ERROR "libkiwix not found!")
110+
endif ()
111+
add_library(libkiwix SHARED IMPORTED)
112+
113+
set_property(TARGET
114+
libkiwix
115+
PROPERTY
116+
IMPORTED_LOCATION
117+
${BUILD_DIR_PATH}/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libkiwix/libkiwix.so)
118+
119+
target_link_libraries(
120+
zim_wrapper
121+
libzim
122+
${log-lib}
123+
)
124+
125+
target_link_libraries(
126+
kiwix_wrapper
127+
libkiwix
128+
libzim
129+
${log-lib}
130+
)
131+
endif ()

lib/src/test/CMakeLists.txt

Lines changed: 0 additions & 44 deletions
This file was deleted.

lib/src/test/test.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ public class test {
1212
static {
1313
System.loadLibrary("kiwix");
1414
System.loadLibrary("zim");
15-
System.loadLibrary("buildkiwix");
15+
System.loadLibrary("kiwix_wrapper");
16+
System.loadLibrary("zim_wrapper");
1617
}
1718

1819
private static byte[] getFileContent(String path)

0 commit comments

Comments
 (0)