Commit Graph

502 Commits

Author SHA1 Message Date
4dbb0fefe3 Build lzma using meson build system. 2024-05-29 15:39:35 +02:00
0bb38148bb Build zlib using meson.
Use the wrap coming from meson's wrapdb.
2024-05-29 15:39:35 +02:00
be61d41e07 Use setup command in meson. 2024-05-29 15:39:35 +02:00
f445997221 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-05-29 15:39:35 +02:00
48986d0a89 Do not print warning on windows 2024-05-29 15:39:35 +02:00
652af505a6 Release libzim 3.4.1 2024-05-16 19:20:45 +02:00
29c7780d4f Build libzim 9.2.1 and subsequent projects 2024-05-02 13:11:35 +02:00
6aa661a474 New libzim version 9.2.0 2024-04-16 18:28:32 +02:00
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
b880da6ca2 native_static is compatible with Darwin 2024-04-08 16:50:10 +02:00
6fbe60386e Do not pollute stdout with warning and trace. 2024-04-08 16:50:10 +02:00
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
0c0eac69c4 Introduce arch_name to name build dir base on arch name instead of config. 2024-04-08 16:50:03 +02:00
734c1ea6fc Update base_deps_version 2024-04-08 16:50:03 +02:00
f0b214681c Properly escape char in progress_chars 2024-04-08 16:50:03 +02:00
f42999199a pj now normalize path. 2024-04-08 16:50:03 +02:00
b8e499e81f Release Kiwix Tools 3.7.0 2024-03-13 15:26:40 +01:00
06512650fa Release libkiwix 13.1.0 2024-02-25 15:17:43 +01:00
0f82aff3c1 New version 0.5 for zim-testing-suite 2024-02-23 17:06:32 +01:00
d4acd108ca Bump base_deps_meta_version. 2024-02-08 16:12:13 +01:00
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
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
5a1175cf2d Format our code with black 2024-02-05 11:41:09 +01:00
aeaee8e075 Release zim-tools 3.4.0 2023-12-31 16:34:20 +01:00
817c46a529 Release libzim 9.1.0 2023-12-16 11:23:27 +01:00
7f4dea0b89 New build #1 of libkiwix-13.0.0 2023-12-08 14:09:33 +01:00
8c5bca05b7 Updated CI and builddef for renamed platform ; including new arm64 simulator 2023-12-05 07:04:53 +00:00
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
ab273f7d12 Run apple command as list. 2023-12-01 11:12:32 +01:00
b7c4854d83 Build only libzim dependencies on bionic.
We compile only libzim on bionic, for compatibility with old libc.
No need to compile all other dependencies (and fight with some of them not
compiling)
2023-12-01 11:12:32 +01:00
a0978a6ab4 Remove SvnClone.
We don't use it since a long time.
2023-12-01 11:12:32 +01:00
c753e62913 Change base deps_meta version. 2023-12-01 11:12:24 +01:00
985643089a Detect the command instead of hardcoding them. 2023-12-01 11:11:26 +01:00
c99a9bd91f Run the command without using shell=True.
It mainly allow to run command in directory containing space.
(Hello, `C:\Program Files\...`)
It would also allow to work on directory containning spaces
(`C:\Users\John Doe`) but xapian configure (at least) expressly doesn't
support it :/

- Run the command without shell=True
- The command must be a list instead of a string.
- All options must also be a list (or an iterable).
2023-12-01 11:11:24 +01:00
e87835c61d Correctly set the environment.
When running command without `shell=True`, python's subproccess will look
for variable `"PATH"` and `b"PATH"` and will complain if both are set.
So the defaultdict should not return something for `b"PATH"`.

We also escape space ` ` in the environment variables to not break
everything with directory containing space.
2023-12-01 11:10:34 +01:00
88cc75475c Build libzim and libkiwix in debug mode on android.
Fix #623
2023-11-20 11:10:24 +01:00
78225e865e Relase kiwix-tools 3.6.0 2023-11-19 14:22:29 +01:00
5da02d9ccc Release libkiwix 13.0.0 2023-11-17 15:15:24 +01:00
861682ecaa Update emsdk version. 2023-11-17 12:28:14 +01:00
6a9093642c Bump-up aria2 to 1.37.0 2023-11-17 12:21:39 +01:00
f76ce0069b Release zim-tools 3.3.0 2023-11-17 10:58:35 +01:00
ac22caca6d Don't set context.no_skip on meson builder
no_skip is thus computed automatically depending on project being our or not.
We dont want to skip configure on our own projetcs (limited impact, simplifies deps mgmt)
2023-11-15 08:50:38 +00:00
a063b91349 Build CoreKiwix.xcframework
CoreKiwix.xcframework is the packaging format required by Kiwix apple (macOS/iOS) reader for libkiwix.
Naming will hopefully be revisited later (libkiwix.xcframework?)

This folder is a combination of all static archive (*.a): dependencies and libkiwix itself
for all apple-supported platforms: macOS x86_64, macOS arm64, iOS arm64 and iOS x86_64.
It also includes the headers.
Note: while iOS archs are separated in the framework, the macOS archs are bundled as a fat binary.

This thus adds:

- A new `apple_all_static` target that lists mentioned sub-platforms.
- A new `AppleXCFramework` virtual dependency and builder
  -  requires `libkiwix`
  - merges the archives into one per target
  - creates the fat binary for macOS
  - creates the xcframework
- `libkiwix_xcframework-VERSION.tar.gz` because platformname is xcframework
  - it only contains the xcframework but in libkiwix_xcframework-VERSION/lib folder
    Because with this virtual target, there are no other files
  - requires a new `xcframework` platform_name in builddef
- subplatforms deps and macOS/iOS _ok files to make_deps_archive

---

https://developer.apple.com/documentation/xcode/creating-a-multi-platform-binary-framework-bundle
2023-11-15 08:50:00 +00:00
adf3ed801a Release libzim 9.0.0 2023-11-12 12:38:25 +01:00
12b176bf85 fixed typo in native (using min-macos-version) 2023-11-10 11:26:44 +00:00
1000bfecbe Set min_macos_version also on native platform.
`-min_macos_version` define our minimum targeted macos version.
We need to set it even if we build native on macos.
2023-11-10 11:26:37 +00:00
670bbb0417 removed iOSMacABI target as useless 2023-11-09 08:14:52 +00:00
7be0b3b586 generalized min macOS/iOS target versions. bumped to iOS15 and macOS12 2023-11-09 08:14:52 +00:00
09dacaa25e disabled bitcode support, as deprecated since xcode14
See https://stackoverflow.com/questions/72543728/xcode-14-deprecates-bitcode-but-why
2023-11-09 08:14:52 +00:00
fbc1ca11f2 removed -stdlib=libc++ flag to clang as required by xcode 15 2023-11-09 08:14:52 +00:00