Commit Graph

523 Commits

Author SHA1 Message Date
Matthieu Gautier 2a1b18066f New version 3.4.2 of zim-tools 2024-07-10 19:12:25 +02:00
Matthieu Gautier c7bd6182e0 Do not hard-code qmake command 2024-07-08 15:25:54 +02:00
Matthieu Gautier d066655a73 Rebuild libkiwix 13.1.0
When releasing libzim and libkiwix, we use config native_mixed with is a
mix of static and dynamic linking:

- Dependencies are build as static libraries.
- Released projects (libzim/libkiwix) are build as dynamic libraries,
  statically linked to dependencies.

This way, we have only one `.so` file which contain all our needed symbols.

However, this logic is "local" to each project.
This mean that libkiwix is linked **statically** to libzim.
So libkiwix.so is containing libzim symbols.

But on "java-libkiwix", we are both linking to libzim.so and libkiwix.so.
If the version of the (dynamically) used libzim.so is not the same that the
version on which we have (statically) linked libkiwix.so, we end with
symbols of two different versions being loaded and conflicting.

So let's rebuild libkiwix with last version of libzim to avoid this conflict.
2024-06-28 09:50:52 +02:00
Emmanuel Engelhart 35ca7068a1
Bump-up version of base_deps_meta_version 2024-06-22 15:00:08 +02:00
Emmanuel Engelhart 4b6c4a2547
Use version 0.6.0 of ZIM testing suite 2024-06-22 14:55:32 +02:00
Emmanuel Engelhart 2b25f3cfc3
Release libzim 9.2.2 2024-06-22 14:24:20 +02:00
Matthieu Gautier e31147c7e5 Revert "WIP Use windows branch on windows CI"
This reverts commit 05fc3b409c.

This was a temporary commit to make the PR compile with a dev branch of libzim.
Now PR on libzim is merged. We must remove this commit.
2024-06-17 10:11:03 +02:00
Matthieu Gautier 05fc3b409c WIP Use windows branch on windows CI 2024-06-07 18:34:30 +02:00
Matthieu Gautier d2d1f686b1 Build libzim on windows with werror=false
MSVC throw a lot of warning because we also must re-export stl symbols
used in our exported class.

See [1] and [2] (and links inside) for more information.

Especially [3] which seems to say that we should have issue at link time if
it compatibility issue occurs (and so easily catchable).

So I just remove the `werror=true` for now.

[1] https://stackoverflow.com/questions/16419318/one-way-of-eliminating-c4251-warning-when-using-stl-classes-in-the-dll-interface
[2] https://stackoverflow.com/questions/2132747/warning-c4251-when-building-a-dll-that-exports-a-class-containing-an-atlcstrin
2024-06-07 18:33:55 +02:00
Matthieu Gautier 46e58b763d Don't depend on lzma. 2024-06-07 15:38:45 +02:00
Matthieu Gautier 6bfe9ec8b1 Do not build libzim with xapian dependency on Windows. 2024-06-07 15:38:05 +02:00
Matthieu Gautier e3656ab3f6 Do not print warning on windows 2024-06-07 15:36:58 +02:00
Matthieu Gautier cd04a895fb Bump base_deps_meta_version 2024-06-07 15:36:58 +02:00
Matthieu Gautier 0e0ac010bb Build icu4c using meson on Windows. 2024-06-07 15:36:58 +02:00
Matthieu Gautier 93a8c89996 Do not set permission to 0 for extracted file. 2024-06-07 15:36:58 +02:00
Matthieu Gautier ca3d90d793 Use the correct path separator on Windows 2024-06-07 15:36:58 +02:00
Matthieu Gautier baa4470ebb Use setup command in meson. 2024-06-07 15:36:58 +02:00
Matthieu Gautier 3b0532b395 Update zstd 2024-06-07 15:36:58 +02:00
Matthieu Gautier 45255078f9 Build lzma using meson build system. 2024-06-07 15:36:58 +02:00
Matthieu Gautier 04942020d7 Fix extracting of several archives.
- Archive already existing must not stop download of other archives.
- Use copytree instead of rename to use second archive as patch on existing
  directory. (No need to remove tmpdir, as it is a temporary directory)
2024-06-07 15:36:58 +02:00
Matthieu Gautier 941cbc8310 Build zlib using meson.
Use the wrap coming from meson's wrapdb.
2024-06-07 15:36:58 +02:00
Matthieu Gautier 62dc698fad Build only libzim (and dependencies on Windows) 2024-06-07 15:36:54 +02:00
Matthieu Gautier bfb029bd6c Rebuild libzim and libkiwix.
This rebuild is for android arm compilation fix.
2024-06-05 15:43:36 +02:00
Matthieu Gautier b1f7beef4f Exclude libgcc and libunwind from linked libraries on Android.
As said in [1], unwinder is linked automatically by Clang and shared
library must not re-export it.

ndk after r23 (we are using r21) should be this. Else we must take care to
not re-export it.

From [2], we should pass the flags `Wl,--exclude-libs,libgcc.a` and
`-Wl,--exclude-libs,libunwind.a` to avoid re-export `_Unwind_Resume` methods.

Fix https://github.com/kiwix/kiwix-android/issues/3661

[1] https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md#Unwinding
[2] https://github.com/android/ndk/issues/889#issuecomment-464334469
2024-06-04 15:12:40 +02:00
Matthieu Gautier 8832888aaa Add almalinux as compatible host for native and aarch config 2024-06-03 10:43:37 +02:00
Matthieu Gautier 683250ca9d Use manylinux container instead of bionic
Alignement of the table in build_definition will be fixed in later commit
to not mix functionnal and cosmetic changes in the same commit.
2024-06-03 10:42:49 +02:00
Emmanuel Engelhart 652af505a6
Release libzim 3.4.1 2024-05-16 19:20:45 +02:00
Emmanuel Engelhart 29c7780d4f
Build libzim 9.2.1 and subsequent projects 2024-05-02 13:11:35 +02:00
Matthieu Gautier 6aa661a474 New libzim version 9.2.0 2024-04-16 18:28:32 +02:00
Matthieu Gautier 9235f8b048 Do not expect a full working environment when only asking for build dir.
Job `Trigger_Docker` is run in a simple environment not configured.
So tools as `ninja` are not installed. But we don't care as we just want
to trigger a docker build.
But `common` script now start by asking kiwix-build the build dir.
kiwix-build must not fail in this case.
2024-04-11 17:05:45 +02:00
Matthieu Gautier b880da6ca2 native_static is compatible with Darwin 2024-04-08 16:50:10 +02:00
Matthieu Gautier 6fbe60386e Do not pollute stdout with warning and trace. 2024-04-08 16:50:10 +02:00
Matthieu Gautier afda1f6673 Make CI common script use the correct build dir.
- Add an option to kiwix-build to get it.
2024-04-08 16:50:10 +02:00
Matthieu Gautier 0c0eac69c4 Introduce arch_name to name build dir base on arch name instead of config. 2024-04-08 16:50:03 +02:00
Matthieu Gautier 734c1ea6fc Update base_deps_version 2024-04-08 16:50:03 +02:00
Matthieu Gautier f0b214681c Properly escape char in `progress_chars` 2024-04-08 16:50:03 +02:00
Matthieu Gautier f42999199a `pj` now normalize path. 2024-04-08 16:50:03 +02:00
Emmanuel Engelhart b8e499e81f
Release Kiwix Tools 3.7.0 2024-03-13 15:26:40 +01:00
Emmanuel Engelhart 06512650fa
Release libkiwix 13.1.0 2024-02-25 15:17:43 +01:00
Matthieu Gautier 0f82aff3c1 New version 0.5 for zim-testing-suite 2024-02-23 17:06:32 +01:00
Matthieu Gautier d4acd108ca Bump base_deps_meta_version. 2024-02-08 16:12:13 +01:00
Matthieu Gautier c0ec9c44b8 Rename option `--target-platform` to `--config`
The target_platform option has always be wrongly named.
This is not the platform we are targeted but how we compile.

This was ok at beginning as specifying how we compile somehow define
for what we compile but this is not a one to one mapping.
2024-02-05 18:03:11 +01:00
Matthieu Gautier 20ca39145d Remove `backend` (internal) option.
This is not used and it is a good things as it is broken..
2024-02-05 11:42:04 +01:00
Matthieu Gautier 5a1175cf2d Format our code with black 2024-02-05 11:41:09 +01:00
Emmanuel Engelhart aeaee8e075
Release zim-tools 3.4.0 2023-12-31 16:34:20 +01:00
Emmanuel Engelhart 817c46a529
Release libzim 9.1.0 2023-12-16 11:23:27 +01:00
Emmanuel Engelhart 7f4dea0b89
New build #1 of libkiwix-13.0.0 2023-12-08 14:09:33 +01:00
renaud gaudin 8c5bca05b7
Updated CI and builddef for renamed platform ; including new arm64 simulator 2023-12-05 07:04:53 +00:00
renaud gaudin afb7c504ea
Fixed #667: CoreKiwix for iOS Simulator
When we introduced CoreKiwix.xcframework, we made two mistakes:

- We forgot that some devs are on Apple Silicon and did not include arm64 arch for simulator
- We kept the `x86_64-apple-ios` target thinking simulator is a “just” an iOS on x64

This target mistake prevented XCode from finding our lib usable with the Simulator on x64.
Not including an arm64 version obviously prevented Silicon-using devs from using the Simulator.

The included libs changes now from

| Name                         | Content                                               |
| ---------------------------- | ----------------------------------------------------- |
| `ios-arm64`                  | All iOS devices are arm64                             |
| `ios-x86_64-simulator`       | Single x64 binary for Simulator                       |
| `macos-arm64_x86_64`         | Fat binary for macOS with both x64 and arm64          |

To

| Name                         | Content                                               |
| ---------------------------- | ----------------------------------------------------- |
| `ios-arm64`                  | All iOS devices are arm64                             |
| `ios-arm64_x86_64-simulator` | Fsat binary for iOS Simulator with both x64 and arm64 |
| `macos-arm64_x86_64`         | Fat binary for macOS with both x64 and arm64          |

- `iOSx64` Platforn renamed to `iOSx64Simulator` with its target fixed to `x86-apple-ios-simulator` (was `x86_64-apple-ios`)
- Added platformn `iOSArm64Simulator` for Apple Silicon devs to run Simulator
- `AppleXCFramework` dependency gets two changes:
    - Depends on all those platforms
    - `_make_macos_fat()` turned generic and called both for macOS fat binary and iOS Simulator one
2023-12-04 14:20:24 +00:00
Matthieu Gautier ab273f7d12 Run apple command as list. 2023-12-01 11:12:32 +01:00