Commit graph

120 commits

Author SHA1 Message Date
Matthieu Gautier
89802f5e07 Publish deps archive on macos arm64 using mixed config. 2024-04-12 11:54:38 +02:00
Matthieu Gautier
a93b3c8896 Remove the 2 in base_deps name 2024-04-08 16:53:17 +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
944eedcf56 Publish deps archive name using declared dependency_name.
Instead of compose it from `OS_NAME`, `COMPILE_CONFIG`.
2024-04-08 14:48:56 +02:00
Matthieu Gautier
c6936ebc72 Introduce new dependency_name in build_definition 2024-04-08 14:48:56 +02:00
Matthieu Gautier
696242a0b1 Introduce helper get_column_name() 2024-03-25 15:40:16 +01:00
Matthieu Gautier
c25a2e63e3 [CI/CD] Use config instead of target in the CI. 2024-02-05 18:03:12 +01:00
renaud gaudin
8c5bca05b7
Updated CI and builddef for renamed platform ; including new arm64 simulator 2023-12-05 07:04:53 +00:00
Matthieu Gautier
1a48bb509b Publish CI libkiwix's dependencies for iOS cross-compilation
See kiwix/libkiwix#1018
2023-11-20 14:17:50 +01:00
renaud gaudin
1d70d1a0c4
Fixed incorrect py3 exception raising 2023-11-16 10:53:15 +00:00
renaud gaudin
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
renaud gaudin
6cfbd0c297
Use TMP_DIR (standard) instead of hard-coded /tmp
Allows overriding it
2023-11-15 08:40:22 +00:00
Matthieu Gautier
5b22821e61 Build zim-tools and kiwix-tools on macos-arm64 2023-11-09 11:52:08 +01:00
renaud gaudin
670bbb0417
removed iOSMacABI target as useless 2023-11-09 08:14:52 +00:00
Matthieu Gautier
0a02353f28 Do not publish projects deps if we are in a branch.
Still publish the deps in the dep_previews directory in case we
would like to test it project's CI.
2023-11-08 10:43:27 +01:00
Matthieu Gautier
cf5dde88e2 Fix naming of musl archive for x86_64.
Fix openzim/libzim#820
2023-11-06 14:00:37 +01:00
Matthieu Gautier
fb6d6b8e25 Package ICU data with libzim/libkiwix. 2023-11-02 17:34:24 +01:00
Matthieu Gautier
3f908f429c Remove x86-64_musl_dyn from the CI.
This target fails on the CI because of conflict between the builded
libraries (lzma, libz) and native library.
As they are both for the same arch but with different libc, python tries
to load them and fails.

There is a real bug somewhere in our toolchain but we need to build for
x86_64 musl right now and this is done in `x86-64_musl_mixed` which pass.
So let's remove it for now.

(`x86-64_musl_dyn` fails with the docker image. It is ok with native
(fedora 38) system)
2023-10-24 10:53:31 +02:00
Matthieu Gautier
b57f83ed25 Move all toolchain installation in TOOLCHAIN directory.
This is a clearer install and it simplify the base_deps archive creation.
2023-10-24 10:53:31 +02:00
Matthieu Gautier
0ae6b0766b Build x86-64_musl in the CI 2023-10-23 10:19:12 +02:00
Matthieu Gautier
458aa97b36 Correctly build (and publish) dependencies for kiwix-desktop. 2023-07-31 17:44:36 +02:00
Matthieu Gautier
45b459a03a Trigger docker workflow at the end of other jobs. 2023-07-27 15:20:00 +02:00
Matthieu Gautier
8070a750f5 Reorder few lines.
No functional change but it regroups lines with a platform_name.
2023-07-26 15:30:15 +02:00
Matthieu Gautier
46c663db09 Move the release platform name in the build definition.
Having the name of the archive define in common is splitting definition
in different files.

The purpose of build_definition is to centralize definition, so move them
there.
2023-07-26 15:28:50 +02:00
Matthieu Gautier
7e9a145bc5 Introduce D(ocker) build definition.
Partially fix #629
2023-07-26 15:09:13 +02:00
Matthieu Gautier
07e72ffba4 Extend the build definition with P(ublish) and S(ource)
This allow us to better control what we publish.
This fix #628
2023-07-26 15:04:37 +02:00
Matthieu Gautier
7cdffbe22f Correctly add toolchains in deps archives. 2023-06-14 15:57:49 +02:00
Matthieu Gautier
1748f48197 Publish aarch64_musl. 2023-06-14 15:57:49 +02:00
Matthieu Gautier
64a686effe Build aarch64_musl on the CI. 2023-06-14 15:57:49 +02:00
Matthieu Gautier
0f75a42498 Do not build libzim and libkiwix on macos arm64 static.
We should build them using mixed target only.
2023-06-12 14:46:06 +02:00
Matthieu Gautier
d6a2901ff8 Fix typos in build_release_nigthly 2023-06-08 10:15:38 +02:00
Matthieu Gautier
06d7a26cb4 Fix extraction of major version from version.
Taking the first char is ok only if major version is < 10.
2023-06-07 15:55:59 +02:00
Matthieu Gautier
4602ead6be Fix packaging of libzim and libkiwix on macOS.
On MacOs, libraries are in `.dylib`, not `.so`.

Also package the `.pc` file.
2023-06-07 14:06:07 +02:00
Matthieu Gautier
6fe37ba0de Rename osx to macos. 2023-06-02 16:09:22 +02:00
Matthieu Gautier
7b6ed275ed Remove code for kiwix-desktop workaround.
As we don't use the workaround now, we can remove the code associated to
it.

It simplify our build definition.
2023-06-02 16:09:22 +02:00
Matthieu Gautier
8237adf950 Do not use a specific target native_desktop.
`native_desktop` is not a real target_platform. It is workaround to
specify "build only kiwix-desktop on native_dyn".

It was useful, when we need to build kiwix-desktop on a different build
env than the other project (because of packaging constraints).
Now we can build kiwix-desktop and all other projects on the same build
env, we can remove it and build kiwix-desktop with other `native_dyn`.
2023-06-02 16:09:22 +02:00
Matthieu Gautier
7db434ee6d Use the common build definition to specify which deps build.
The build definition update follow what we build in the project's CI,
not what was defined by the replaced python code.
2023-06-02 16:09:22 +02:00
Matthieu Gautier
3defd4eba7 Be explicit about all our combinations. 2023-06-02 16:00:26 +02:00
Matthieu Gautier
e59e3698b2 Open build definition system to more complex build definition. 2023-06-02 15:58:53 +02:00
Matthieu Gautier
fc81551555 Remove unused import. 2023-06-02 15:58:02 +02:00
Matthieu Gautier
fd46c52473 Move the definition of what to build in a table.
This provide a better visual definition (and potential better explicit)
of the previous code base on `if/else`.
2023-06-02 15:58:00 +02:00
Matthieu Gautier
e751c1166c Correctly package armv* toolchain in base dependency. 2023-05-23 08:58:17 +03:00
Matthieu Gautier
c6ea16edd9 Build for armv6 and armv8 on the CI. 2023-05-22 19:03:57 +02:00
Emmanuel Engelhart
3cd20201c1 Use a scp cipher which goes faster 2023-05-21 14:31:33 +03:00
Matthieu Gautier
af29fd5f2e Publish dev preview in dev_preview subdirectory in tmp.kiwix.org/ci. 2023-05-16 15:26:24 +02:00
Matthieu Gautier
3e712db880 Fix publish of kiwix-desktop flatpak.
We cannot directly push on master. We have to create a pull request.
The CI is adapted to push a new branch. The PR has to be created manually.
2023-05-10 14:12:06 +02:00
Matthieu Gautier
8f8ea01aec Do not build binaries on macOS not _dyn.
Tools fails to compile for different reasons:
- Missing dependencies
- Use of invalid options (`-dead_strip_dylibs`/`-bitcode_bundle`)
2023-04-28 08:59:14 +02:00
Matthieu Gautier
02e2598056 Build zim-tools and kiwix-tools and macosOs_arm64. 2023-04-27 19:10:55 +02:00
Matthieu Gautier
ab14ce957b Build kiwix-tools on macos (native) 2023-04-27 19:02:23 +02:00