Merge pull request #490 from kiwix/libkiwix

Rename kiwix-lib to libkiwix.
This commit is contained in:
Matthieu Gautier 2021-06-30 17:15:17 +02:00 committed by GitHub
commit 16214edbcf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 67 additions and 67 deletions

View File

@ -33,37 +33,37 @@ else:
RELEASE = True RELEASE = True
if PLATFORM_TARGET == "android": if PLATFORM_TARGET == "android":
TARGETS = ("kiwix-lib-app",) TARGETS = ("libkiwix-app",)
elif PLATFORM_TARGET.startswith("iOS"): elif PLATFORM_TARGET.startswith("iOS"):
TARGETS = ("libzim", "kiwix-lib") TARGETS = ("libzim", "libkiwix")
elif PLATFORM_TARGET.startswith("native_"): elif PLATFORM_TARGET.startswith("native_"):
if OS_NAME == "osx": if OS_NAME == "osx":
TARGETS = ("libzim", ) if PLATFORM_TARGET == "native_mixed" else ("libzim", "zim-tools", "kiwix-lib") TARGETS = ("libzim", ) if PLATFORM_TARGET == "native_mixed" else ("libzim", "zim-tools", "libkiwix")
else: else:
if DESKTOP: if DESKTOP:
TARGETS = ("kiwix-desktop",) TARGETS = ("kiwix-desktop",)
elif PLATFORM_TARGET == "native_mixed": elif PLATFORM_TARGET == "native_mixed":
TARGETS = ("libzim",) TARGETS = ("libzim",)
else: else:
TARGETS = ("zim-tools", "kiwix-lib", "kiwix-tools") TARGETS = ("zim-tools", "libkiwix", "kiwix-tools")
elif PLATFORM_TARGET in ("win32_static", "armhf_static", "i586_static"): elif PLATFORM_TARGET in ("win32_static", "armhf_static", "i586_static"):
TARGETS = ("kiwix-tools",) TARGETS = ("kiwix-tools",)
elif PLATFORM_TARGET == "flatpak": elif PLATFORM_TARGET == "flatpak":
TARGETS = ("kiwix-desktop",) TARGETS = ("kiwix-desktop",)
else: else:
TARGETS = ("libzim", "zim-tools", "kiwix-lib", "kiwix-tools") TARGETS = ("libzim", "zim-tools", "libkiwix", "kiwix-tools")
# Filter what to build if we are doing a release. # Filter what to build if we are doing a release.
if RELEASE: if RELEASE:
def release_filter(project): def release_filter(project):
if project == "kiwix-lib-app": if project == "libkiwix-app":
project = "kiwix-lib" project = "libkiwix"
return release_versions.get(project) is not None return release_versions.get(project) is not None
TARGETS = tuple(filter(release_filter, TARGETS)) TARGETS = tuple(filter(release_filter, TARGETS))
if RELEASE and PLATFORM_TARGET == "android": if RELEASE and PLATFORM_TARGET == "android":
# Kiwix-lib need to know the extrapostfix version to correctly generate the pom.xml file. # libkiwix need to know the extrapostfix version to correctly generate the pom.xml file.
extra_postfix = release_versions.get('kiwix-lib') extra_postfix = release_versions.get('libkiwix')
if extra_postfix: if extra_postfix:
os.environ['KIWIXLIB_BUILDVERSION'] = str(extra_postfix) os.environ['KIWIXLIB_BUILDVERSION'] = str(extra_postfix)
@ -109,12 +109,12 @@ if RELEASE:
if PLATFORM_TARGET == "flatpak" and "kiwix-desktop" in TARGETS: if PLATFORM_TARGET == "flatpak" and "kiwix-desktop" in TARGETS:
update_flathub_git() update_flathub_git()
if PLATFORM_TARGET == "android" and "kiwix-lib-app" in TARGETS: if PLATFORM_TARGET == "android" and "libkiwix-app" in TARGETS:
postfix = get_postfix("kiwix-lib") postfix = get_postfix("libkiwix")
basename = "kiwixlib-{}".format(postfix) basename = "kiwixlib-{}".format(postfix)
output_release_dir = ( output_release_dir = (
HOME / "BUILD_android" / "kiwix-lib-app" / "kiwixLibAndroid" / "build" HOME / "BUILD_android" / "libkiwix-app" / "kiwixLibAndroid" / "build"
) )
shutil.copy( shutil.copy(
str(output_release_dir / "outputs" / "aar" / "kiwixLibAndroid-release.aar"), str(output_release_dir / "outputs" / "aar" / "kiwixLibAndroid-release.aar"),

View File

@ -134,7 +134,7 @@ def run_kiwix_build(
command.append("--hide-progress") command.append("--hide-progress")
command.append("--fast-clone") command.append("--fast-clone")
command.append("--assume-packages-installed") command.append("--assume-packages-installed")
if target == "kiwix-lib-app" and platform.startswith("android_"): if target == "libkiwix-app" and platform.startswith("android_"):
command.extend(["--target-platform", "android", "--android-arch", platform[8:]]) command.extend(["--target-platform", "android", "--android-arch", platform[8:]])
elif platform == "android": elif platform == "android":
command.extend(["--target-platform", "android"]) command.extend(["--target-platform", "android"])

View File

@ -13,21 +13,21 @@ from common import (
) )
if PLATFORM_TARGET.startswith("android_"): if PLATFORM_TARGET.startswith("android_"):
TARGETS = ("libzim", "kiwix-lib") TARGETS = ("libzim", "libkiwix")
elif PLATFORM_TARGET.startswith("iOS"): elif PLATFORM_TARGET.startswith("iOS"):
TARGETS = ("libzim", "kiwix-lib") TARGETS = ("libzim", "libkiwix")
elif PLATFORM_TARGET.startswith("native_"): elif PLATFORM_TARGET.startswith("native_"):
if OS_NAME == "osx": if OS_NAME == "osx":
TARGETS = ("libzim", "zim-tools", "kiwix-lib") TARGETS = ("libzim", "zim-tools", "libkiwix")
else: else:
if DESKTOP: if DESKTOP:
TARGETS = ("kiwix-desktop",) TARGETS = ("kiwix-desktop",)
elif PLATFORM_TARGET == "native_mixed": elif PLATFORM_TARGET == "native_mixed":
TARGETS = ("libzim",) TARGETS = ("libzim",)
else: else:
TARGETS = ("libzim", "zim-tools", "kiwix-lib", "kiwix-tools") TARGETS = ("libzim", "zim-tools", "libkiwix", "kiwix-tools")
else: else:
TARGETS = ("libzim", "zim-tools", "kiwix-lib", "kiwix-tools") TARGETS = ("libzim", "zim-tools", "libkiwix", "kiwix-tools")
for target in TARGETS: for target in TARGETS:
run_kiwix_build(target, platform=PLATFORM_TARGET, build_deps_only=True) run_kiwix_build(target, platform=PLATFORM_TARGET, build_deps_only=True)

View File

@ -10,7 +10,7 @@ def create_version(version):
url = "https://api.bintray.com/packages/kiwix/kiwix/kiwixlib/versions" url = "https://api.bintray.com/packages/kiwix/kiwix/kiwixlib/versions"
payload = { payload = {
'name': version, 'name': version,
'desc': 'Release of kiwix-lib' 'desc': 'Release of libkiwix'
} }
headers = { headers = {
'Content-Type': 'application/json' 'Content-Type': 'application/json'

View File

@ -56,7 +56,7 @@ You may want to compile a specific target so you will have to specify it on the
command line: command line:
```bash ```bash
kiwix-build kiwix-lib # will build kiwix-build and its dependencies kiwix-build libkiwix # will build kiwix-build and its dependencies
kiwix-build kiwix-desktop # will build kiwix-desktop and its dependencies kiwix-build kiwix-desktop # will build kiwix-desktop and its dependencies
kiwix-build zim-tools # will build zim-tools and its dependencies kiwix-build zim-tools # will build zim-tools and its dependencies
``` ```
@ -76,7 +76,7 @@ invalid choice: 'not-existing-target' (choose from 'alldependencies', 'android-n
If no target platform is specified, a default one will be infered from If no target platform is specified, a default one will be infered from
the specified target: the specified target:
- `kiwix-lib-app` will be build using the platform `android` - `libkiwix-app` will be build using the platform `android`
- Other targets will be build using the platform `native_dyn` - Other targets will be build using the platform `native_dyn`
But you can select another target platform using the option But you can select another target platform using the option
@ -104,33 +104,33 @@ Android
------- -------
`kiwix-android` (https://github.com/kiwix/kiwix-android) depends of `kiwix-android` (https://github.com/kiwix/kiwix-android) depends of
the `kiwix-lib` project. the `libkiwix` project.
It uses a special `.aar` file that represent (and embed) the kiwix-lib for It uses a special `.aar` file that represent (and embed) the libkiwix for
all supported android arch. This is a kind of fat archive we have for MacOs. all supported android arch. This is a kind of fat archive we have for MacOs.
The `.aar` file is build using the `kiwix-lib-app` project. The `.aar` file is build using the `libkiwix-app` project.
`kiwix-lib-app` itself is architecture independent (it is just a packaging of `libkiwix-app` itself is architecture independent (it is just a packaging of
other archives) but it use `kiwix-lib` who is architecture dependent. other archives) but it use `libkiwix` who is architecture dependent.
When building `kiwix-lib`, you should directly use the When building `libkiwix`, you should directly use the
target-platform `android_<arch>`: target-platform `android_<arch>`:
```bash ```bash
kiwix-build kiwix-lib --target-platform android_arm kiwix-build libkiwix --target-platform android_arm
``` ```
But, `kiwix-lib-app` is mainly multi arch. But, `libkiwix-app` is mainly multi arch.
To compile `kiwix-lib-app`, you must use the `android` platform: To compile `libkiwix-app`, you must use the `android` platform:
```bash ```bash
$ kiwix-build --target-platform android kiwix-lib-app $ kiwix-build --target-platform android libkiwix-app
$ kiwix-build kiwix-lib-app # because `android` platform is the default for `kiwix-lib-app` $ kiwix-build libkiwix-app # because `android` platform is the default for `libkiwix-app`
``` ```
By default, when using platform `android`, `kiwix-lib` will be build for By default, when using platform `android`, `libkiwix` will be build for
all architectures. This can be changed by using the option `--android-arch`: all architectures. This can be changed by using the option `--android-arch`:
```bash ```bash
$ kiwix-build kiwix-lib-app # aar with all architectures $ kiwix-build libkiwix-app # aar with all architectures
$ kiwix-build kiwix-lib-app --android-arch arm # aar with arm architecture $ kiwix-build libkiwix-app --android-arch arm # aar with arm architecture
$ kiwix-build kiwix-lib-app --android-arch arm --android-arch arm64 # aan with arm and arm64 architectures $ kiwix-build libkiwix-app --android-arch arm --android-arch arm64 # aan with arm and arm64 architectures
``` ```
To build `kiwix-android` itself, you should see the documentation of `kiwix-android`. To build `kiwix-android` itself, you should see the documentation of `kiwix-android`.
@ -145,12 +145,12 @@ To do so, you should directly use the target-platfrom `ios_multi`.
As for `android`, `kiwix-build` will build the library several times As for `android`, `kiwix-build` will build the library several times
(once for each platform) and then create the fat library. (once for each platform) and then create the fat library.
```bash ```bash
kiwix-build --target-platform iOS_multi kiwix-lib kiwix-build --target-platform iOS_multi libkiwix
``` ```
You can specify the supported architectures with the option `--ios-arch`: You can specify the supported architectures with the option `--ios-arch`:
```bash ```bash
kiwix-build --target-platform iOS_multi kiwix-lib # all architetures kiwix-build --target-platform iOS_multi libkiwix # all architetures
kiwix-build --target-platform iOS_multi --ios-arch arm --ios-arch arm64 # arm and arm64 arch only kiwix-build --target-platform iOS_multi --ios-arch arm --ios-arch arm64 # arm and arm64 arch only
``` ```

View File

@ -58,7 +58,7 @@ build_script:
- IF "%USE_CACHE%" NEQ "1" appveyor\install_libmicrohttpd.cmd - IF "%USE_CACHE%" NEQ "1" appveyor\install_libmicrohttpd.cmd
- IF "%USE_CACHE%" NEQ "1" %MINGW64_RUN% "cd /c/projects/kiwix-build && appveyor/create_cache.sh" - IF "%USE_CACHE%" NEQ "1" %MINGW64_RUN% "cd /c/projects/kiwix-build && appveyor/create_cache.sh"
- appveyor\install_libzim.cmd - appveyor\install_libzim.cmd
- appveyor\install_kiwix-lib.cmd - appveyor\install_libkiwix.cmd
- appveyor\install_kiwix-desktop.cmd - appveyor\install_kiwix-desktop.cmd
before_deploy: before_deploy:

View File

@ -1,7 +1,7 @@
REM ======================================================== REM ========================================================
REM Install kiwix-lib REM Install libkiwix
git clone https://github.com/kiwix/kiwix-lib.git || exit /b 1 git clone https://github.com/kiwix/libkiwix.git || exit /b 1
cd kiwix-lib cd libkiwix
set CPPFLAGS="-I%EXTRA_DIR%/include" set CPPFLAGS="-I%EXTRA_DIR%/include"
meson . build --prefix %EXTRA_DIR% --default-library static --buildtype release || exit /b 1 meson . build --prefix %EXTRA_DIR% --default-library static --buildtype release || exit /b 1
cd build cd build

View File

@ -60,7 +60,7 @@ def parse_args():
options.ios_arch = ['arm64', 'x86_64'] options.ios_arch = ['arm64', 'x86_64']
if not options.target_platform: if not options.target_platform:
if options.target in ('kiwix-lib-app',): if options.target in ('libkiwix-app',):
options.target_platform = 'android' options.target_platform = 'android'
else: else:
options.target_platform = 'native_dyn' options.target_platform = 'native_dyn'

View File

@ -13,9 +13,9 @@ from . import (
ios_fat_lib, ios_fat_lib,
mustache, mustache,
kiwix_desktop, kiwix_desktop,
kiwix_lib,
kiwix_tools, kiwix_tools,
libcurl, libcurl,
libkiwix,
libmagic, libmagic,
libmicrohttpd, libmicrohttpd,
libzim, libzim,

View File

@ -12,7 +12,7 @@ class KiwixDesktop(Dependency):
git_dir = "kiwix-desktop" git_dir = "kiwix-desktop"
class Builder(QMakeBuilder): class Builder(QMakeBuilder):
dependencies = ["qt", "qtwebengine", "kiwix-lib", "aria2"] dependencies = ["qt", "qtwebengine", "libkiwix", "aria2"]
make_install_target = 'install' make_install_target = 'install'
configure_env = None configure_env = None

View File

@ -12,7 +12,7 @@ class KiwixTools(Dependency):
git_dir = "kiwix-tools" git_dir = "kiwix-tools"
class Builder(MesonBuilder): class Builder(MesonBuilder):
dependencies = ["kiwix-lib"] dependencies = ["libkiwix"]
@property @property
def configure_option(self): def configure_option(self):

View File

@ -8,13 +8,13 @@ from .base import (
from kiwixbuild.utils import pj, copy_tree from kiwixbuild.utils import pj, copy_tree
from kiwixbuild._global import option, get_target_step, neutralEnv from kiwixbuild._global import option, get_target_step, neutralEnv
class Kiwixlib(Dependency): class Libkiwix(Dependency):
name = "kiwix-lib" name = "libkiwix"
force_build = True force_build = True
class Source(GitClone): class Source(GitClone):
git_remote = "https://github.com/kiwix/kiwix-lib.git" git_remote = "https://github.com/kiwix/libkiwix.git"
git_dir = "kiwix-lib" git_dir = "libkiwix"
class Builder(MesonBuilder): class Builder(MesonBuilder):
dependencies = ["pugixml", "libzim", "zlib", "lzma", "libcurl", "libmicrohttpd", "icu4c", "mustache", "xapian-core"] dependencies = ["pugixml", "libzim", "zlib", "lzma", "libcurl", "libmicrohttpd", "icu4c", "mustache", "xapian-core"]
@ -38,15 +38,15 @@ class Kiwixlib(Dependency):
return super().library_type return super().library_type
class KiwixlibApp(Dependency): class LibkiwixApp(Dependency):
name = "kiwix-lib-app" name = "libkiwix-app"
force_build = True force_build = True
class Source(Kiwixlib.Source): class Source(Libkiwix.Source):
name = "kiwix-lib" name = "libkiwix"
class Builder(GradleBuilder): class Builder(GradleBuilder):
dependencies = ["kiwix-lib"] dependencies = ["libkiwix"]
gradle_target = "assembleRelease writePom" gradle_target = "assembleRelease writePom"
@classmethod @classmethod
@ -54,7 +54,7 @@ class KiwixlibApp(Dependency):
if not allDeps: if not allDeps:
return super().get_dependencies(platformInfo, allDeps) return super().get_dependencies(platformInfo, allDeps)
else: else:
deps = [('android_{}'.format(arch), 'kiwix-lib') deps = [('android_{}'.format(arch), 'libkiwix')
for arch in option('android_arch')] for arch in option('android_arch')]
return deps return deps
@ -64,17 +64,17 @@ class KiwixlibApp(Dependency):
except FileNotFoundError: except FileNotFoundError:
pass pass
if not os.path.exists(self.build_path): if not os.path.exists(self.build_path):
shutil.copytree(pj(self.source_path, 'android-kiwix-lib-publisher'), self.build_path, symlinks=True) shutil.copytree(pj(self.source_path, 'android-libkiwix-publisher'), self.build_path, symlinks=True)
for arch in option('android_arch'): for arch in option('android_arch'):
try: try:
kiwix_builder = get_target_step('kiwix-lib', 'android_{}'.format(arch)) kiwix_builder = get_target_step('libkiwix', 'android_{}'.format(arch))
except KeyError: except KeyError:
pass pass
else: else:
copy_tree(pj(kiwix_builder.buildEnv.install_dir, 'kiwix-lib'), copy_tree(pj(kiwix_builder.buildEnv.install_dir, 'libkiwix'),
pj(self.build_path, 'kiwixLibAndroid', 'src', 'main')) pj(self.build_path, 'kiwixLibAndroid', 'src', 'main'))
# The ICU dat file should be embedded with the kiwix-lib application # The ICU dat file should be embedded with the libkiwix application
# but for now it is package with kiwix-android app and use there. # but for now it is package with kiwix-android app and use there.
# We must fix this at a time (before we update the icu version). # We must fix this at a time (before we update the icu version).
# os.makedirs( # os.makedirs(
@ -82,7 +82,7 @@ class KiwixlibApp(Dependency):
# exist_ok=True) # exist_ok=True)
# for arch in option('android_arch'): # for arch in option('android_arch'):
# try: # try:
# kiwix_builder = get_target_step('kiwix-lib', 'android_{}'.format(arch)) # kiwix_builder = get_target_step('libkiwix', 'android_{}'.format(arch))
# except KeyError: # except KeyError:
# pass # pass
# else: # else:

View File

@ -134,7 +134,7 @@ class Android(MetaPlatformInfo):
return ['android_{}'.format(arch) for arch in option('android_arch')] return ['android_{}'.format(arch) for arch in option('android_arch')]
def add_targets(self, targetName, targets): def add_targets(self, targetName, targets):
if targetName not in ('kiwix-lib-app',): if targetName not in ('libkiwix-app',):
return super().add_targets(targetName, targets) return super().add_targets(targetName, targets)
else: else:
return AndroidPlatformInfo.add_targets(self, targetName, targets) return AndroidPlatformInfo.add_targets(self, targetName, targets)

View File

@ -2,7 +2,7 @@
main_project_versions = { main_project_versions = {
'libzim': '7.0.0', # Because of bump of version in libzim. No release made for now. 'libzim': '7.0.0', # Because of bump of version in libzim. No release made for now.
'kiwix-lib': '9.4.1', 'libkiwix': '9.4.1',
'kiwix-tools': '3.1.2', 'kiwix-tools': '3.1.2',
'zim-tools': '2.1.0', 'zim-tools': '2.1.0',
'kiwix-desktop': '2.0.5' # Also change KIWIX_DESKTOP_VERSION and KIWIX_DESKTOP_RELEASE in appveyor.yml 'kiwix-desktop': '2.0.5' # Also change KIWIX_DESKTOP_VERSION and KIWIX_DESKTOP_RELEASE in appveyor.yml
@ -30,10 +30,10 @@ main_project_versions = {
release_versions = { release_versions = {
'libzim': 0, # Depends of base deps (was 0) 'libzim': 0, # Depends of base deps (was 0)
'kiwix-lib': 0, # Depends of libzim (was 0) 'libkiwix': 0, # Depends of libzim (was 0)
'kiwix-tools': 4, # Depends of kiwix-lib and libzim (was 3) 'kiwix-tools': 4, # Depends of libkiwix and libzim (was 3)
'zim-tools': 0, # Depends of libzim (was 2) 'zim-tools': 0, # Depends of libzim (was 2)
'kiwix-desktop': 0 # Depends of kiwix-lib and libzim (was 0) 'kiwix-desktop': 0 # Depends of libkiwix and libzim (was 0)
} }

View File

@ -10,7 +10,7 @@ def create_version(version):
url = "https://api.bintray.com/packages/kiwix/kiwix/kiwixlib/versions" url = "https://api.bintray.com/packages/kiwix/kiwix/kiwixlib/versions"
payload = { payload = {
'name': version, 'name': version,
'desc': 'Release of kiwix-lib' 'desc': 'Release of libkiwix'
} }
headers = { headers = {
'Content-Type': 'application/json' 'Content-Type': 'application/json'