diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 26d97e9..653568d 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -9,7 +9,7 @@ jobs: build_job: name: Build Pull Request - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v1 @@ -26,7 +26,7 @@ jobs: - name: Compile Project run: | - ./gradlew generateHeaderFilesFromJavaWrapper build + ./gradlew buildHeaders build - name: create unit coverage run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bd95407..8c91aa1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ on: jobs: publish: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 @@ -30,14 +30,13 @@ jobs: - name: Compile Project run: | - ./gradlew generateHeaderFilesFromJavaWrapper - ./gradlew build + ./gradlew buildHeaders build - name: Release build run: | ./gradlew assemble - - name: Genrate Source jar + - name: Generate Source jar run: | ./gradlew androidSourcesJar diff --git a/README.md b/README.md index 93d6add..ecebb30 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ cd java-libkiwix ```bash -./gradlew generateHeaderFilesFromJavaWrapper +./gradlew buildHeaders ./gradlew build ``` diff --git a/install_deps.sh b/install_deps.sh index 6b58322..60e1671 100755 --- a/install_deps.sh +++ b/install_deps.sh @@ -15,7 +15,7 @@ printf "${Green}Downloading libzim ${NC}\n" printf "\n${Green}Done! ${NC}\n" printf "${Green}Coping libzim header and so files ${NC}\n" -./gradlew checkCurrentLibzimDate checkCurrentLinuxLibzimDate copyLibzimHeaderFiles copyLibzimAndroidArm copyLibzimAndroidArm64 copyLibzimAndroidx86 copyLibzimAndroidx86_64 copyLibzimLinux_x86_64 renameLibzimSoFile +./gradlew renameLibzimFolders copyLibzimHeaderAndSoFiles renameLibzimSoFile printf "\n${Green}Down! ${NC}\n" printf "${Green}Downloading libkiwix ${NC}\n" @@ -23,5 +23,5 @@ printf "${Green}Downloading libkiwix ${NC}\n" printf "\n${Green}Done! ${NC}\n" printf "${Green}Coping libkiwix header and so files ${NC}\n" -./gradlew checkCurrentLibkiwixDate checkCurrentLinuxLibkiwixDate copyLibkiwixHeaderFiles copyLibkiwixAndroidArm copyLibkiwixAndroidArm64 copyLibkiwixAndroidx86 copyLibkiwixAndroidx86_64 copyLibkiwixLinux_x86_64 renameLibkiwixSoFile -printf "\n${Green}Done! ${NC}\n" +./gradlew renameLibkiwixFolders copyLibkiwixHeaderAndSoFiles renameLibkiwixSoFile +printf "\n${Green}Done! ${NC}\n" \ No newline at end of file diff --git a/lib/build.gradle b/lib/build.gradle index a063b89..938be1a 100644 --- a/lib/build.gradle +++ b/lib/build.gradle @@ -67,7 +67,6 @@ android { viewBinding true } ndkVersion '21.4.7075529' - } dependencies { @@ -77,11 +76,6 @@ dependencies { ext.libkiwix_base_url = 'https://download.kiwix.org/nightly' ext.libzim_base_url = 'https://download.openzim.org/nightly' -// change this date to get latest libzim .so and header files -ext.nightly_date_for_libkiwix = project.properties["nightly_date_for_libkiwix"] ?: "" -ext.nightly_date_for_libkiwix_linux = project.properties["nightly_date_for_libkiwix_linux"] ?: "" -ext.nightly_date_for_libzim = project.properties["nightly_date_for_libzim"] ?: "" -ext.nightly_date_for_libzim_linux = project.properties["nightly_date_for_libzim_linux"] ?: "" ext.libkiwix_version = project.properties["libkiwix_version"] ?: "" ext.libzim_version = project.properties["libzim_version"] ?: "" @@ -98,14 +92,6 @@ task downloadLibzimSoAndHeaderFiles(type: Download) { overwrite true } -task checkCurrentLibzimDate() { - project.ext.set("nightly_date_for_libzim", getDateFromPath(buildDir.path, "libzim_android-arm64-")) -} - -task checkCurrentLinuxLibzimDate() { - project.ext.set("nightly_date_for_libzim_linux", getDateFromPath(buildDir.path, "libzim_linux-x86_64-")) -} - task unzipLibzim(type: Copy) { // unzip android arm from tarTree(buildDir.path + "/libzim_android-arm.tar.gz") @@ -124,41 +110,47 @@ task unzipLibzim(type: Copy) { into buildDir } -task copyLibzimHeaderFiles(type: Copy) { - // copying header file - from buildDir.path + "/libzim_android-arm-" + nightly_date_for_libzim + '/include/' - into buildDir.path + "/include/libzim/" +task renameLibzimFolders() { + removeDateFromFolderName(buildDir.path,"libzim_") } -task copyLibzimAndroidArm(type: Copy) { - // copying android_arm so file - from buildDir.path + "/libzim_android-arm-" + nightly_date_for_libzim + '/lib/arm-linux-androideabi/' - into buildDir.path + "/jniLibs/armeabi-v7a/libzim/" -} +task copyLibzimHeaderAndSoFiles(type: Copy) { + copy { + // copying header file + from buildDir.path + "/libzim_android-arm/include/" + into buildDir.path + "/include/libzim/" + } -task copyLibzimAndroidArm64(type: Copy) { - // copying android_arm64 so file - from buildDir.path + "/libzim_android-arm64-" + nightly_date_for_libzim + '/lib/aarch64-linux-android/' - into buildDir.path + "/jniLibs/arm64-v8a/libzim/" -} + copy { + // copying android_arm so file + from buildDir.path + "/libzim_android-arm/lib/arm-linux-androideabi/" + into buildDir.path + "/jniLibs/armeabi-v7a/libzim/" + } -task copyLibzimAndroidx86(type: Copy) { - // copying android_x86 so file - from buildDir.path + "/libzim_android-x86-" + nightly_date_for_libzim + '/lib/i686-linux-android/' - into buildDir.path + "/jniLibs/x86/libzim/" -} + copy { + // copying android_arm64 so file + from buildDir.path + "/libzim_android-arm64/lib/aarch64-linux-android/" + into buildDir.path + "/jniLibs/arm64-v8a/libzim/" + } -task copyLibzimAndroidx86_64(type: Copy) { - // copying android_x86_64 so file - from buildDir.path + "/libzim_android-x86_64-" + nightly_date_for_libzim + '/lib/x86_64-linux-android/' - into buildDir.path + "/jniLibs/x86_64/libzim/" -} + copy { + // copying android_x86 so file + from buildDir.path + "/libzim_android-x86/lib/i686-linux-android/" + into buildDir.path + "/jniLibs/x86/libzim/" + } -task copyLibzimLinux_x86_64(type: Copy) { - // copying linux_x86_64 so file - project.ext.set("libzim_version", getFileFromFolder(buildDir.path + "/libzim_linux-x86_64-" + nightly_date_for_libzim_linux + "/lib/x86_64-linux-gnu/")) - from buildDir.path + "/libzim_linux-x86_64-" + nightly_date_for_libzim_linux + "/lib/x86_64-linux-gnu/" + libzim_version - into buildDir.path + copy { + // copying android_x86_64 so file + from buildDir.path + "/libzim_android-x86_64/lib/x86_64-linux-android/" + into buildDir.path + "/jniLibs/x86_64/libzim/" + } + + copy { + // copying linux_x86_64 so file + project.ext.set("libzim_version", getFileFromFolder(buildDir.path + "/libzim_linux-x86_64/lib/x86_64-linux-gnu/")) + from buildDir.path + "/libzim_linux-x86_64/lib/x86_64-linux-gnu/" + libzim_version + into buildDir.path + } } task renameLibzimSoFile(type: Copy) { @@ -182,22 +174,20 @@ task downloadLibkiwixSoAndHeaderFiles(type: Download) { overwrite true } -task checkCurrentLibkiwixDate() { - project.ext.set("nightly_date_for_libkiwix", getDateFromPath(buildDir.path, "libkiwix_android-arm64-")) -} - -task checkCurrentLinuxLibkiwixDate() { - project.ext.set("nightly_date_for_libkiwix_linux", getDateFromPath(buildDir.path, "libkiwix_linux-x86_64-")) +task renameLibkiwixFolders() { + removeDateFromFolderName(buildDir.path,"libkiwix_") } -static String getDateFromPath(String path, String matchesString) { - File folder = new File(path) - if (folder.exists()) { - return folder.listFiles() - .stream() - .filter(f -> f.name.startsWith(matchesString)) - .map(s -> s.name.replace(matchesString, "")) - .collect(Collectors.toList())[0] +static void removeDateFromFolderName(String path, String startWith) { + File directory = new File(path) + if (directory.exists() && directory.isDirectory()) { + Arrays.stream(directory.listFiles()) + .filter(folder -> folder.isDirectory() && folder.getName().startsWith(startWith)) + .forEach(file -> { + String newName = file.getName().replaceAll("-\\d{4}-\\d{2}-\\d{2}", "") + File newFile = new File(directory, newName) + file.renameTo(newFile) + }) } } @@ -219,41 +209,43 @@ task unzipLibkiwix(type: Copy) { into buildDir } -task copyLibkiwixHeaderFiles(type: Copy) { - // copying header file - from buildDir.path + "/libkiwix_android-arm-" + nightly_date_for_libkiwix + '/include/kiwix/' - into buildDir.path + "/include/libkiwix/" -} +task copyLibkiwixHeaderAndSoFiles(type: Copy) { + copy { + // copying header file + from buildDir.path + "/libkiwix_android-arm/include/kiwix/" + into buildDir.path + "/include/libkiwix/" + } -task copyLibkiwixAndroidArm(type: Copy) { - // copying android_arm so file - from buildDir.path + "/libkiwix_android-arm-" + nightly_date_for_libkiwix + '/lib/arm-linux-androideabi/' - into buildDir.path + "/jniLibs/armeabi-v7a/libkiwix/" -} + copy { + // copying android_arm so file + from buildDir.path + "/libkiwix_android-arm/lib/arm-linux-androideabi/" + into buildDir.path + "/jniLibs/armeabi-v7a/libkiwix/" + } -task copyLibkiwixAndroidArm64(type: Copy) { - // copying android_arm64 so file - from buildDir.path + "/libkiwix_android-arm64-" + nightly_date_for_libkiwix + '/lib/aarch64-linux-android/' - into buildDir.path + "/jniLibs/arm64-v8a/libkiwix/" -} + copy { + // copying android_arm64 so file + from buildDir.path + "/libkiwix_android-arm64/lib/aarch64-linux-android/" + into buildDir.path + "/jniLibs/arm64-v8a/libkiwix/" + } -task copyLibkiwixAndroidx86(type: Copy) { - // copying android_x86 so file - from buildDir.path + "/libkiwix_android-x86-" + nightly_date_for_libkiwix + '/lib/i686-linux-android/' - into buildDir.path + "/jniLibs/x86/libkiwix/" -} + copy { + // copying android_x86 so file + from buildDir.path + "/libkiwix_android-x86/lib/i686-linux-android/" + into buildDir.path + "/jniLibs/x86/libkiwix/" + } -task copyLibkiwixAndroidx86_64(type: Copy) { - // copying android_x86_64 so file - from buildDir.path + "/libkiwix_android-x86_64-" + nightly_date_for_libkiwix + '/lib/x86_64-linux-android/' - into buildDir.path + "/jniLibs/x86_64/libkiwix/" -} + copy { + // copying android_x86_64 so file + from buildDir.path + "/libkiwix_android-x86_64/lib/x86_64-linux-android/" + into buildDir.path + "/jniLibs/x86_64/libkiwix/" + } -task copyLibkiwixLinux_x86_64(type: Copy) { - // copying linux_x86_64 so file - project.ext.set("libkiwix_version", getFileFromFolder(buildDir.path + "/libkiwix_linux-x86_64-" + nightly_date_for_libkiwix_linux + "/lib/x86_64-linux-gnu/")) - from buildDir.path + "/libkiwix_linux-x86_64-" + nightly_date_for_libkiwix_linux + "/lib/x86_64-linux-gnu/" + libkiwix_version - into buildDir.path + copy { + // copying linux_x86_64 so file + project.ext.set("libkiwix_version", getFileFromFolder(buildDir.path + "/libkiwix_linux-x86_64/lib/x86_64-linux-gnu/")) + from buildDir.path + "/libkiwix_linux-x86_64/lib/x86_64-linux-gnu/" + libkiwix_version + into buildDir.path + } } static String getFileFromFolder(String path) { @@ -275,15 +267,40 @@ task renameLibkiwixSoFile(type: Copy) { } } -task copyBuildKiwixSoFile(type: Copy) { - // copying linux_x86_64 so file - from projectDir.path + "/src/test/libbuildkiwix.so" - into buildDir.path +task testSourceJar(type: Jar) { + from android.sourceSets.test.java.srcDirs + archiveName = 'test-sources.jar' +} + +task compileTestFile(type: JavaCompile) { + dependsOn testSourceJar + source = file('src/test/test.java') + destinationDirectory = file("$buildDir") + classpath = files("src/test/junit-4.13.jar" , "src/test/hamcrest-core-1.4.jar", "build/libs/test-sources.jar") +} + +task runTests(type: JavaExec) { + workingDir("$projectDir/src/test/") + dependsOn compileTestFile + classpath = files("$buildDir", 'src/test/java/', 'src/test/junit-4.13.jar', 'src/test/hamcrest-core-1.3.jar') + main = 'org.junit.runner.JUnitCore' + args = ['test'] + jvmArgs = [ + '-Djava.library.path=' + buildDir.path, + '-javaagent:jacoco-0.8.7/lib/jacocoagent.jar=destfile=../../build/jacoco/jacoco.exec' + ] } -task createCodeCoverageReport(type: Exec) { +task createCodeCoverageReport(type: JavaExec) { workingDir "${projectDir}/src/test/" - commandLine 'sh', '-c', "bash 'compile_and_run_test.sh' ${buildDir}/libs/*lib*.jar $buildDir" + dependsOn runTests + 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/*') + main = 'org.jacoco.cli.internal.Main' + args = [ + 'report', '../../build/jacoco/jacoco.exec', + '--classfiles', 'java/org/kiwix/libkiwix/', '--classfiles', 'java/org/kiwix/libzim/', + '--html', '../../build/coverage-report', '--xml', '../../build/coverage.xml' + ] } task checkCurrentJavaVersion() { @@ -293,37 +310,44 @@ task checkCurrentJavaVersion() { } -task generateHeaderFilesFromJavaWrapper(type: Exec) { +task buildHeaders(type: Exec) { workingDir "${projectDir}/src/main/java/org/kiwix/" - commandLine 'bash', '-c', "javac -h ${buildDir}/include/javah_generated/ -d ${projectDir}/src/test/ ${getLibzimFiles()} ${getLibkiwixFiles()}" + commandLine 'bash', '-c', "javac -h ${buildDir}/include/javah_generated/ -d ${projectDir}/src/test/java/ ${getLibzimFiles()} ${getLibkiwixFiles()}" } String getLibkiwixFiles() { return "${projectDir}/src/main/java/org/kiwix/libkiwix/Book.java " + - "${projectDir}/src/main/java/org/kiwix/libkiwix/Bookmark.java " + - "${projectDir}/src/main/java/org/kiwix/libkiwix/Filter.java " + - "${projectDir}/src/main/java/org/kiwix/libkiwix/JNIICU.java " + - "${projectDir}/src/main/java/org/kiwix/libkiwix/Illustration.java " + - "${projectDir}/src/main/java/org/kiwix/libkiwix/JNIKiwixException.java " + - "${projectDir}/src/main/java/org/kiwix/libkiwix/Library.java " + - "${projectDir}/src/main/java/org/kiwix/libkiwix/Manager.java " + - "${projectDir}/src/main/java/org/kiwix/libkiwix/Server.java" + "${projectDir}/src/main/java/org/kiwix/libkiwix/Bookmark.java " + + "${projectDir}/src/main/java/org/kiwix/libkiwix/Filter.java " + + "${projectDir}/src/main/java/org/kiwix/libkiwix/JNIICU.java " + + "${projectDir}/src/main/java/org/kiwix/libkiwix/Illustration.java " + + "${projectDir}/src/main/java/org/kiwix/libkiwix/JNIKiwixException.java " + + "${projectDir}/src/main/java/org/kiwix/libkiwix/Library.java " + + "${projectDir}/src/main/java/org/kiwix/libkiwix/Manager.java " + + "${projectDir}/src/main/java/org/kiwix/libkiwix/Server.java" } String getLibzimFiles() { return "${projectDir}/src/main/java/org/kiwix/libzim/Archive.java " + - "${projectDir}/src/main/java/org/kiwix/libzim/Blob.java " + - "${projectDir}/src/main/java/org/kiwix/libzim/DirectAccessInfo.java " + - "${projectDir}/src/main/java/org/kiwix/libzim/EntryIterator.java " + - "${projectDir}/src/main/java/org/kiwix/libzim/Entry.java " + - "${projectDir}/src/main/java/org/kiwix/libzim/Item.java " + - "${projectDir}/src/main/java/org/kiwix/libzim/Query.java " + - "${projectDir}/src/main/java/org/kiwix/libzim/Searcher.java " + - "${projectDir}/src/main/java/org/kiwix/libzim/SearchIterator.java " + - "${projectDir}/src/main/java/org/kiwix/libzim/Search.java " + - "${projectDir}/src/main/java/org/kiwix/libzim/SuggestionItem.java " + - "${projectDir}/src/main/java/org/kiwix/libzim/SuggestionIterator.java " + - "${projectDir}/src/main/java/org/kiwix/libzim/SuggestionSearcher.java " + - "${projectDir}/src/main/java/org/kiwix/libzim/SuggestionSearch.java " + - "${projectDir}/src/main/java/org/kiwix/libzim/ZimFileFormatException.java" -} + "${projectDir}/src/main/java/org/kiwix/libzim/Blob.java " + + "${projectDir}/src/main/java/org/kiwix/libzim/DirectAccessInfo.java " + + "${projectDir}/src/main/java/org/kiwix/libzim/EntryIterator.java " + + "${projectDir}/src/main/java/org/kiwix/libzim/Entry.java " + + "${projectDir}/src/main/java/org/kiwix/libzim/Item.java " + + "${projectDir}/src/main/java/org/kiwix/libzim/Query.java " + + "${projectDir}/src/main/java/org/kiwix/libzim/Searcher.java " + + "${projectDir}/src/main/java/org/kiwix/libzim/SearchIterator.java " + + "${projectDir}/src/main/java/org/kiwix/libzim/Search.java " + + "${projectDir}/src/main/java/org/kiwix/libzim/SuggestionItem.java " + + "${projectDir}/src/main/java/org/kiwix/libzim/SuggestionIterator.java " + + "${projectDir}/src/main/java/org/kiwix/libzim/SuggestionSearcher.java " + + "${projectDir}/src/main/java/org/kiwix/libzim/SuggestionSearch.java " + + "${projectDir}/src/main/java/org/kiwix/libzim/ZimFileFormatException.java" +} + +task buildLinuxBinding(type: Exec) { + workingDir "${projectDir}/src/main/cpp/" + commandLine 'bash', '-c', "cmake . -B ${buildDir} && make -C ${buildDir}" +} + +build.dependsOn buildLinuxBinding \ No newline at end of file diff --git a/lib/src/main/cpp/CMakeLists.txt b/lib/src/main/cpp/CMakeLists.txt index f768ff2..a80bebb 100644 --- a/lib/src/main/cpp/CMakeLists.txt +++ b/lib/src/main/cpp/CMakeLists.txt @@ -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 @@ -25,24 +36,8 @@ add_library( 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 @@ -55,43 +50,82 @@ add_library( 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) +# Linux target +if(CMAKE_SYSTEM_NAME STREQUAL "Linux") -include_directories( -${CMAKE_SOURCE_DIR} -${BUILD_DIR}/include/libkiwix -${BUILD_DIR}/include/libzim -${BUILD_DIR}/include/javah_generated -#${CMAKE_SOURCE_DIR}/include/utils -) + find_package(JNI) + + include_directories( + ${JNI_INCLUDE_DIRS} + ) -find_library( - log-lib - log) + add_library(libzim SHARED IMPORTED) + set_target_properties(libzim PROPERTIES IMPORTED_LOCATION libzim.so) -target_link_libraries( - zim_wrapper - libzim - ${log-lib} -) + add_library(libkiwix SHARED IMPORTED) + set_target_properties(libkiwix PROPERTIES IMPORTED_LOCATION libkiwix.so) -target_link_libraries( - kiwix_wrapper - libkiwix - libzim - ${log-lib} + 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 () \ No newline at end of file diff --git a/lib/src/test/CMakeLists.txt b/lib/src/test/CMakeLists.txt deleted file mode 100644 index e5d7ae5..0000000 --- a/lib/src/test/CMakeLists.txt +++ /dev/null @@ -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 -) diff --git a/lib/src/test/compile_and_run_test.sh b/lib/src/test/compile_and_run_test.sh deleted file mode 100755 index e4337a2..0000000 --- a/lib/src/test/compile_and_run_test.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/bash - -# This script compiles and runs the unit test to test the java wrapper. -# This is not integrated in meson because ... this is not so easy. - -die() -{ - echo >&2 "!!! ERROR: $*" - exit 1 -} - -# This is for building wrapper so file -cmake . -make - -# Copy generated .so file to build directory to run test cases -cd ../../../ -./gradlew copyBuildKiwixSoFile -cd lib/src/test - -KIWIX_LIB_JAR=$1 -if [ -z $KIWIX_LIB_JAR ] -then - die "You must give the path to the kiwixlib.jar as first argument" -fi - -KIWIX_LIB_DIR=$2 -if [ -z $KIWIX_LIB_DIR ] -then - die "You must give the path to directory containing libkiwix.so as second argument" -fi - -KIWIX_LIB_JAR=$(readlink -f "$KIWIX_LIB_JAR") -KIWIX_LIB_DIR=$(readlink -f "$KIWIX_LIB_DIR") -TEST_SOURCE_DIR=$(dirname "$(readlink -f $0)") - -cd "$TEST_SOURCE_DIR" - -javac -g -d . -s . -cp "junit-4.13.jar:$KIWIX_LIB_JAR" test.java \ - || die "Compilation failed" - -java -Djava.library.path="$KIWIX_LIB_DIR" \ - -javaagent:jacoco-0.8.7/lib/jacocoagent.jar -cp "junit-4.13.jar:hamcrest-core-1.3.jar:$KIWIX_LIB_JAR:." \ - org.junit.runner.JUnitCore test \ - || die "Unit test failed" - -java -jar jacoco-0.8.7/lib/jacococli.jar report jacoco.exec \ ---classfiles org/kiwix/libkiwix/ \ ---classfiles org/kiwix/libzim/ \ ---html ../../build/coverage-report --xml coverage.xml \ No newline at end of file diff --git a/lib/src/test/test.java b/lib/src/test/test.java index e78cb9d..a6f049b 100644 --- a/lib/src/test/test.java +++ b/lib/src/test/test.java @@ -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)