diff --git a/meson.build b/meson.build index 761a55975..6ddd61f24 100644 --- a/meson.build +++ b/meson.build @@ -5,13 +5,19 @@ project('kiwix-lib', 'cpp', compiler = meson.get_compiler('cpp') -static_deps = get_option('android') or get_option('default_library') == 'static' -if get_option('android') +wrapper = get_option('wrapper') + +static_deps = 'android' in wrapper or 'java' in wrapper or get_option('default_library') == 'static' +if 'android' in wrapper extra_libs = ['-llog'] else extra_libs = [] endif +if 'java' in wrapper + add_languages('java') +endif + thread_dep = dependency('threads') libicu_dep = dependency('icu-i18n', static:static_deps) libzim_dep = dependency('libzim', version : '>=5.0.0', static:static_deps) diff --git a/meson_options.txt b/meson_options.txt index cbcf49359..fbcf81d6f 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,2 +1,2 @@ -option('android', type : 'boolean', value : false, - description : 'Do we make a kiwix-lib for android') +option('wrapper', type:'array', choices:['java', 'android'], value:[], + description: 'The wrapper to generate.') diff --git a/src/meson.build b/src/meson.build index 08da8652a..7418fd28e 100644 --- a/src/meson.build +++ b/src/meson.build @@ -32,13 +32,16 @@ else kiwix_sources += 'subprocess_unix.cpp' endif -if get_option('android') - subdir('android') +if 'android' in wrapper install_dir = 'kiwix-lib/jniLibs/' + meson.get_cross_property('android_abi') else install_dir = get_option('libdir') endif +if 'android' in wrapper or 'java' in wrapper + subdir('wrapper/java') +endif + config_h = configure_file(output : 'kiwix_config.h', configuration : conf, input : 'config.h.in') diff --git a/src/android/AndroidManifest.xml b/src/wrapper/java/AndroidManifest.xml similarity index 100% rename from src/android/AndroidManifest.xml rename to src/wrapper/java/AndroidManifest.xml diff --git a/src/android/book.cpp b/src/wrapper/java/book.cpp similarity index 100% rename from src/android/book.cpp rename to src/wrapper/java/book.cpp diff --git a/src/android/filter.cpp b/src/wrapper/java/filter.cpp similarity index 100% rename from src/android/filter.cpp rename to src/wrapper/java/filter.cpp diff --git a/src/android/kiwixicu.cpp b/src/wrapper/java/kiwixicu.cpp similarity index 100% rename from src/android/kiwixicu.cpp rename to src/wrapper/java/kiwixicu.cpp diff --git a/src/android/kiwixreader.cpp b/src/wrapper/java/kiwixreader.cpp similarity index 100% rename from src/android/kiwixreader.cpp rename to src/wrapper/java/kiwixreader.cpp diff --git a/src/android/kiwixsearcher.cpp b/src/wrapper/java/kiwixsearcher.cpp similarity index 100% rename from src/android/kiwixsearcher.cpp rename to src/wrapper/java/kiwixsearcher.cpp diff --git a/src/android/kiwixserver.cpp b/src/wrapper/java/kiwixserver.cpp similarity index 100% rename from src/android/kiwixserver.cpp rename to src/wrapper/java/kiwixserver.cpp diff --git a/src/android/library.cpp b/src/wrapper/java/library.cpp similarity index 100% rename from src/android/library.cpp rename to src/wrapper/java/library.cpp diff --git a/src/android/manager.cpp b/src/wrapper/java/manager.cpp similarity index 100% rename from src/android/manager.cpp rename to src/wrapper/java/manager.cpp diff --git a/src/android/meson.build b/src/wrapper/java/meson.build similarity index 83% rename from src/android/meson.build rename to src/wrapper/java/meson.build index dd0889dd1..4478ae206 100644 --- a/src/android/meson.build +++ b/src/wrapper/java/meson.build @@ -25,16 +25,18 @@ kiwix_jni = custom_target('jni', command:['javac', '-d', '@OUTDIR@', '-h', '@OUTDIR@', '@INPUT@'] ) -kiwix_sources += [ - 'android/kiwixicu.cpp', - 'android/book.cpp', - 'android/kiwixreader.cpp', - 'android/library.cpp', - 'android/manager.cpp', - 'android/filter.cpp', - 'android/kiwixsearcher.cpp', - 'android/kiwixserver.cpp', - kiwix_jni] +java_sources = files([ + 'kiwixicu.cpp', + 'book.cpp', + 'kiwixreader.cpp', + 'library.cpp', + 'manager.cpp', + 'filter.cpp', + 'kiwixsearcher.cpp', + 'kiwixserver.cpp', +]) + +kiwix_sources += java_sources + [kiwix_jni] install_subdir('org', install_dir: 'kiwix-lib/java') install_subdir('res', install_dir: 'kiwix-lib') diff --git a/src/android/org/kiwix/kiwixlib/Book.java b/src/wrapper/java/org/kiwix/kiwixlib/Book.java similarity index 100% rename from src/android/org/kiwix/kiwixlib/Book.java rename to src/wrapper/java/org/kiwix/kiwixlib/Book.java diff --git a/src/android/org/kiwix/kiwixlib/Filter.java b/src/wrapper/java/org/kiwix/kiwixlib/Filter.java similarity index 100% rename from src/android/org/kiwix/kiwixlib/Filter.java rename to src/wrapper/java/org/kiwix/kiwixlib/Filter.java diff --git a/src/android/org/kiwix/kiwixlib/JNIICU.java b/src/wrapper/java/org/kiwix/kiwixlib/JNIICU.java similarity index 100% rename from src/android/org/kiwix/kiwixlib/JNIICU.java rename to src/wrapper/java/org/kiwix/kiwixlib/JNIICU.java diff --git a/src/android/org/kiwix/kiwixlib/JNIKiwix.java b/src/wrapper/java/org/kiwix/kiwixlib/JNIKiwix.java similarity index 100% rename from src/android/org/kiwix/kiwixlib/JNIKiwix.java rename to src/wrapper/java/org/kiwix/kiwixlib/JNIKiwix.java diff --git a/src/android/org/kiwix/kiwixlib/JNIKiwixBool.java b/src/wrapper/java/org/kiwix/kiwixlib/JNIKiwixBool.java similarity index 100% rename from src/android/org/kiwix/kiwixlib/JNIKiwixBool.java rename to src/wrapper/java/org/kiwix/kiwixlib/JNIKiwixBool.java diff --git a/src/android/org/kiwix/kiwixlib/JNIKiwixException.java b/src/wrapper/java/org/kiwix/kiwixlib/JNIKiwixException.java similarity index 100% rename from src/android/org/kiwix/kiwixlib/JNIKiwixException.java rename to src/wrapper/java/org/kiwix/kiwixlib/JNIKiwixException.java diff --git a/src/android/org/kiwix/kiwixlib/JNIKiwixInt.java b/src/wrapper/java/org/kiwix/kiwixlib/JNIKiwixInt.java similarity index 100% rename from src/android/org/kiwix/kiwixlib/JNIKiwixInt.java rename to src/wrapper/java/org/kiwix/kiwixlib/JNIKiwixInt.java diff --git a/src/android/org/kiwix/kiwixlib/JNIKiwixReader.java b/src/wrapper/java/org/kiwix/kiwixlib/JNIKiwixReader.java similarity index 100% rename from src/android/org/kiwix/kiwixlib/JNIKiwixReader.java rename to src/wrapper/java/org/kiwix/kiwixlib/JNIKiwixReader.java diff --git a/src/android/org/kiwix/kiwixlib/JNIKiwixSearcher.java b/src/wrapper/java/org/kiwix/kiwixlib/JNIKiwixSearcher.java similarity index 100% rename from src/android/org/kiwix/kiwixlib/JNIKiwixSearcher.java rename to src/wrapper/java/org/kiwix/kiwixlib/JNIKiwixSearcher.java diff --git a/src/android/org/kiwix/kiwixlib/JNIKiwixServer.java b/src/wrapper/java/org/kiwix/kiwixlib/JNIKiwixServer.java similarity index 100% rename from src/android/org/kiwix/kiwixlib/JNIKiwixServer.java rename to src/wrapper/java/org/kiwix/kiwixlib/JNIKiwixServer.java diff --git a/src/android/org/kiwix/kiwixlib/JNIKiwixString.java b/src/wrapper/java/org/kiwix/kiwixlib/JNIKiwixString.java similarity index 100% rename from src/android/org/kiwix/kiwixlib/JNIKiwixString.java rename to src/wrapper/java/org/kiwix/kiwixlib/JNIKiwixString.java diff --git a/src/android/org/kiwix/kiwixlib/Library.java b/src/wrapper/java/org/kiwix/kiwixlib/Library.java similarity index 100% rename from src/android/org/kiwix/kiwixlib/Library.java rename to src/wrapper/java/org/kiwix/kiwixlib/Library.java diff --git a/src/android/org/kiwix/kiwixlib/Manager.java b/src/wrapper/java/org/kiwix/kiwixlib/Manager.java similarity index 100% rename from src/android/org/kiwix/kiwixlib/Manager.java rename to src/wrapper/java/org/kiwix/kiwixlib/Manager.java diff --git a/src/android/org/kiwix/kiwixlib/Pair.java b/src/wrapper/java/org/kiwix/kiwixlib/Pair.java similarity index 100% rename from src/android/org/kiwix/kiwixlib/Pair.java rename to src/wrapper/java/org/kiwix/kiwixlib/Pair.java diff --git a/src/android/res/values/strings.xml b/src/wrapper/java/res/values/strings.xml similarity index 100% rename from src/android/res/values/strings.xml rename to src/wrapper/java/res/values/strings.xml diff --git a/src/android/utils.h b/src/wrapper/java/utils.h similarity index 100% rename from src/android/utils.h rename to src/wrapper/java/utils.h