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

This commit is contained in:
MohitMaliFtechiz 2023-03-28 16:37:44 +05:30 committed by Matthieu Gautier
parent 78c57aa361
commit f2dfa01a72
4 changed files with 105 additions and 107 deletions

View File

@ -327,3 +327,10 @@ String getLibzimFiles() {
"${projectDir}/src/main/java/org/kiwix/libzim/SuggestionSearch.java " +
"${projectDir}/src/main/java/org/kiwix/libzim/ZimFileFormatException.java"
}
task buildLinuxSoFile(type: Exec) {
workingDir "${projectDir}/src/main/cpp/"
commandLine 'bash', '-c', "cmake . -B ${buildDir} && make -C ${buildDir}"
}
build.dependsOn buildLinuxSoFile

View File

@ -2,12 +2,23 @@
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
cmake_minimum_required(VERSION 3.18.1)
set(CMAKE_ANDROID_STL_TYPE llvm-libc++_static)
project("libkiwix_wrapper")
add_library(
zim_wrapper
set(BUILD_DIR_PATH "${BUILD_DIR}")
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(BUILD_DIR_PATH "./../../../build")
endif ()
include_directories(
${CMAKE_SOURCE_DIR}
${BUILD_DIR_PATH}/include/libkiwix
${BUILD_DIR_PATH}/include/libzim
${BUILD_DIR_PATH}/include/javah_generated
#${CMAKE_SOURCE_DIR}/include/utils
)
add_library(zim_wrapper
SHARED
libzim/archive.cpp
@ -23,26 +34,10 @@ add_library(
libzim/suggestion_search.cpp
libzim/suggestion_iterator.cpp
libzim/suggestion_item.cpp
)
find_library(libzim
zim
PATHS
${BUILD_DIR}/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libzim)
if (NOT libzim)
message(FATAL_ERROR "libzim not found!")
endif()
add_library(libzim SHARED IMPORTED)
set_property(TARGET
libzim
PROPERTY
IMPORTED_LOCATION
${BUILD_DIR}/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libzim/libzim.so)
)
add_library(
kiwix_wrapper
add_library(kiwix_wrapper
SHARED
libkiwix/book.cpp
@ -53,45 +48,84 @@ add_library(
libkiwix/bookmark.cpp
libkiwix/manager.cpp
libkiwix/illustration.cpp
)
find_library(libkiwix
kiwix
PATHS
${BUILD_DIR}/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libkiwix)
if (NOT libkiwix)
message(FATAL_ERROR "libkiwix not found!")
endif()
add_library(libkiwix SHARED IMPORTED)
set_property(TARGET
libkiwix
PROPERTY
IMPORTED_LOCATION
${BUILD_DIR}/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libkiwix/libkiwix.so)
include_directories(
${CMAKE_SOURCE_DIR}
${BUILD_DIR}/include/libkiwix
${BUILD_DIR}/include/libzim
${BUILD_DIR}/include/javah_generated
#${CMAKE_SOURCE_DIR}/include/utils
)
find_library(
log-lib
log)
target_link_libraries(
zim_wrapper
libzim
${log-lib}
)
target_link_libraries(
kiwix_wrapper
libkiwix
libzim
${log-lib}
)
# Linux target
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
find_package(JNI)
include_directories(
${JNI_INCLUDE_DIRS}
)
add_library(libzim SHARED IMPORTED)
set_target_properties(libzim PROPERTIES IMPORTED_LOCATION libzim.so)
add_library(libkiwix SHARED IMPORTED)
set_target_properties(libkiwix PROPERTIES IMPORTED_LOCATION libkiwix.so)
target_link_libraries(
zim_wrapper
libzim
)
target_link_libraries(
kiwix_wrapper
libkiwix
libzim
)
endif ()
# Android target
if (ANDROID)
set(CMAKE_ANDROID_STL_TYPE llvm-libc++_static)
find_library(
log-lib
log)
find_library(libzim
zim
PATHS
${BUILD_DIR_PATH}/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libzim)
if (NOT libzim)
message(FATAL_ERROR "libzim not found!")
endif ()
add_library(libzim SHARED IMPORTED)
set_property(TARGET
libzim
PROPERTY
IMPORTED_LOCATION
${BUILD_DIR_PATH}/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libzim/libzim.so)
find_library(libkiwix
kiwix
PATHS
${BUILD_DIR_PATH}/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libkiwix)
if (NOT libkiwix)
message(FATAL_ERROR "libkiwix not found!")
endif ()
add_library(libkiwix SHARED IMPORTED)
set_property(TARGET
libkiwix
PROPERTY
IMPORTED_LOCATION
${BUILD_DIR_PATH}/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libkiwix/libkiwix.so)
target_link_libraries(
zim_wrapper
libzim
${log-lib}
)
target_link_libraries(
kiwix_wrapper
libkiwix
libzim
${log-lib}
)
endif ()

View File

@ -1,44 +0,0 @@
cmake_minimum_required (VERSION 3.16)
project (buildkiwix)
add_library(buildkiwix
SHARED
${PROJECT_SOURCE_DIR}/../main/cpp/libkiwix/book.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libkiwix/bookmark.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libkiwix/filter.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libkiwix/illustration.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libkiwix/kiwixicu.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libkiwix/kiwixserver.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libkiwix/library.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libkiwix/manager.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libzim/archive.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libzim/blob.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libzim/entry.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libzim/entry_iterator.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libzim/item.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libzim/query.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libzim/search.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libzim/search_iterator.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libzim/searcher.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libzim/suggestion_item.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libzim/suggestion_iterator.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libzim/suggestion_search.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/libzim/suggestion_searcher.cpp
${PROJECT_SOURCE_DIR}/../main/cpp/utils.h
)
find_package(JNI)
include_directories(
${JNI_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR}/../main/cpp
${PROJECT_SOURCE_DIR}/../../build/include/libkiwix
${PROJECT_SOURCE_DIR}/../../build/include/libzim
${PROJECT_SOURCE_DIR}/../../build/include/javah_generated
)
target_link_libraries(buildkiwix
LINK_PUBLIC
${PROJECT_SOURCE_DIR}/../../build/libkiwix.so
${PROJECT_SOURCE_DIR}/../../build/libzim.so
)

View File

@ -12,7 +12,8 @@ public class test {
static {
System.loadLibrary("kiwix");
System.loadLibrary("zim");
System.loadLibrary("buildkiwix");
System.loadLibrary("kiwix_wrapper");
System.loadLibrary("zim_wrapper");
}
private static byte[] getFileContent(String path)