diff --git a/.github/ci_images/bionic_builder.dockerfile b/.github/ci_images/bionic_builder.dockerfile index 89291eb..cefdf30 100644 --- a/.github/ci_images/bionic_builder.dockerfile +++ b/.github/ci_images/bionic_builder.dockerfile @@ -16,7 +16,7 @@ RUN apt update -q \ # Python (2) is needed to install android-ndk python \ # Packaged dependencies - libbz2-dev libmagic-dev uuid-dev zlib1g-dev default-jdk \ + libbz2-dev libmagic-dev uuid-dev zlib1g-dev \ libmicrohttpd-dev aria2 libgtest-dev libgl-dev \ # Qt packages qt515base qt515webengine qt515svg qt515imageformats qt515wayland \ diff --git a/.github/scripts/build_projects.py b/.github/scripts/build_projects.py index b8adf1b..85de128 100755 --- a/.github/scripts/build_projects.py +++ b/.github/scripts/build_projects.py @@ -11,9 +11,9 @@ from common import ( DESKTOP, ) -if PLATFORM_TARGET.startswith("android_"): - TARGETS = ("libkiwix",) -elif PLATFORM_TARGET.startswith("iOS") or PLATFORM_TARGET.startswith("macOS"): +if (PLATFORM_TARGET.startswith("android_") + or PLATFORM_TARGET.startswith("iOS") + or PLATFORM_TARGET.startswith("macOS")): TARGETS = ("libzim", "libkiwix") elif PLATFORM_TARGET.startswith("native_"): if OS_NAME == "osx": diff --git a/.github/scripts/build_release_nightly.py b/.github/scripts/build_release_nightly.py index 4fe4f32..ab5adc5 100755 --- a/.github/scripts/build_release_nightly.py +++ b/.github/scripts/build_release_nightly.py @@ -27,9 +27,7 @@ if os.environ.get('GITHUB_EVENT_NAME') == 'schedule': else: RELEASE = True -if PLATFORM_TARGET.startswith("android_"): - TARGETS = ("libkiwix",) -elif PLATFORM_TARGET.startswith("iOS"): +if PLATFORM_TARGET.startswith("android_") or PLATFORM_TARGET.startswith("iOS"): TARGETS = ("libzim", "libkiwix") elif PLATFORM_TARGET.startswith("native_"): if OS_NAME == "osx": diff --git a/.github/scripts/common.py b/.github/scripts/common.py index 35749dd..5322451 100644 --- a/.github/scripts/common.py +++ b/.github/scripts/common.py @@ -93,9 +93,16 @@ EXPORT_FILES = { "libzim": ( INSTALL_DIR, ( - "lib/x86_64-linux-gnu/libzim.so.{}".format(main_project_versions["libzim"]), - "lib/x86_64-linux-gnu/libzim.so.{}".format( - main_project_versions["libzim"][0] + "lib/{libprefix}/libzim.so".format( + libprefix=LIB_PREFIX.get(PLATFORM_TARGET, "x86_64-linux-gnu"), + ), + "lib/{libprefix}/libzim.so.{version}".format( + libprefix=LIB_PREFIX.get(PLATFORM_TARGET, "x86_64-linux-gnu"), + version=main_project_versions["libzim"] + ), + "lib/{libprefix}/libzim.so.{version}".format( + libprefix=LIB_PREFIX.get(PLATFORM_TARGET, "x86_64-linux-gnu"), + version=main_project_versions["libzim"][0] ), "lib/libzim.{}.dylib".format( main_project_versions["libzim"][0] diff --git a/.github/scripts/compile_all_deps.py b/.github/scripts/compile_all_deps.py index ead36c0..f7d471d 100755 --- a/.github/scripts/compile_all_deps.py +++ b/.github/scripts/compile_all_deps.py @@ -12,9 +12,7 @@ from common import ( KIWIX_DESKTOP_ONLY, ) -if PLATFORM_TARGET.startswith("android_"): - TARGETS = ("libzim", "libkiwix") -elif PLATFORM_TARGET.startswith("iOS"): +if PLATFORM_TARGET.startswith("android_") or PLATFORM_TARGET.startswith("iOS"): TARGETS = ("libzim", "libkiwix") elif PLATFORM_TARGET.startswith("native_"): if OS_NAME == "osx": diff --git a/kiwixbuild/dependencies/libzim.py b/kiwixbuild/dependencies/libzim.py index 8c9ecfe..55eb075 100644 --- a/kiwixbuild/dependencies/libzim.py +++ b/kiwixbuild/dependencies/libzim.py @@ -29,6 +29,7 @@ class Libzim(Dependency): config_options = [] if platformInfo.build == 'android': config_options.append("-DUSE_BUFFER_HEADER=false") + config_options.append("-Dstatic-linkage=true") if platformInfo.build == 'iOS': config_options.append("-Db_bitcode=true") if platformInfo.name == 'native_mixed' and option('target') == 'libzim': @@ -40,3 +41,9 @@ class Libzim(Dependency): zim_testing_suite = get_target_step('zim-testing-suite', 'source') config_options.append('-Dtest_data_dir={}'.format(zim_testing_suite.source_path)) return " ".join(config_options) + + @property + def library_type(self): + if self.buildEnv.platformInfo.build == 'android': + return 'shared' + return super().library_type diff --git a/kiwixbuild/packages.py b/kiwixbuild/packages.py index 162cdbf..5a229f3 100644 --- a/kiwixbuild/packages.py +++ b/kiwixbuild/packages.py @@ -61,7 +61,7 @@ PACKAGE_NAME_MAPPERS = { 'COMMON': _fedora_common }, 'fedora_android': { - 'COMMON': _fedora_common + ['java-1.8.0-openjdk-devel'] + 'COMMON': _fedora_common }, 'debian_native_dyn': { 'COMMON': _debian_common + ['libbz2-dev', 'libmagic-dev'], @@ -94,7 +94,7 @@ PACKAGE_NAME_MAPPERS = { 'COMMON': _debian_common, }, 'debian_android': { - 'COMMON': _debian_common + ['default-jdk'], + 'COMMON': _debian_common, }, 'Darwin_native_dyn': { 'COMMON': ['autoconf', 'automake', 'libtool', 'cmake', 'pkg-config'],