Until now, mixed targets was only about native build and so we were not
using a meson cross_config file and env var was enough.
But now we also to correctly set it in the cross_config file.
cross-gcc-10.3.0-pi_64.tar.gz for 64 bits architecture and armhf
is about 32 bits.
However, we know use a pi 2 and 3 and Stretch only[*] toolchains
[*] To be tested. Maybe the only is for the target compilation but binary
run elsewhere too.
The default detected libdir is based on the build architecture.
On ubuntu, it is `lib/x86_64-linux-gnu` which is obviously not the right
directory.
Let's simply use `lib`.
Fix#556
`icu4c_wasm.patch` is build by :
- Copying config.sub from liblzma source as new version of config.sub there
knows about wasm architecture.
- Copying `mh-linux` on `mh-unknown` as specified in (origin) `mh-unknown`.
This is because icu4c configure doesn't detect `emscripten` platform and
"fallback" to `mh-unknown`.
Issue #349 requires a native_mixed for macOS.
native_mixed is working for libzim so we whitelist it.
On the release CI, we fix the macos dylib rpath so it doesn't include the
full build-install step path which is probematic for a distributed file.
We build native_mixed for OSX in both CI and release mode
- We should not try to set the cross compilation flags when we use
gradle.
- Fix anyway the setting of tho cross compilation flags for android sdk
platform (the default implementation use the `static` attributes that
doesn't exist for android)
We need to set the property `needs_exe_wrapper` to true for
x86_64 cross compilation.
Else, meson will try to detect if we could run the cross
compiled executable, and because it is the same arch, it will
assume we can. So it will try to sanity check and execute the
cross compiled binary. Then fails.
Instead of having the run_command function setting the
env from the buildEnv, this is the dependency that create the
env and then pass it to the run_command function.
This way, each dependency will be able to set a specific env.
This is needed for win32 on fedora.
It is better to use a specific pkg-config than setting a PKG_CONFIG_LIBDIR.
This avoid other CI (libzim/...) to set a env var specific to win32 build.
It seems that those libraries are not needed (anymore ?).
Even more, `msvcr100` makes `kiwix-serve` crash when printing messages
on stdout/stderr.
`msvcr100` lib is necessary for ICU, because the default mingw's `msvcr`
doesn't provide `_free_locale` and `_create_locale`.
Most recent versions of mingw fix this and we do not need them.
On debian (travis CI) we use a old version of mingw and we need to force
the use of `msvcr100`.