The target mips32r2_dyn is tested to fully compile, but untested to
run. Target mips32r2_static reaches kiwix-lib and fails linking
pthread. For further details see the comments in #48.
Some known problems:
* hardcoded values of icudt58l in some dependent packages
unnoticable during compile, but will affect runtimes
* the libdir name problem
x86_64-linux-gnu <> mips-linux-gnu
* pthread linking problem when compiling kiwix-lib statically
may be a meson issue, since it somewhat claims to properly
handle pthread linking in cross-compile situations; there
are some url links in #48 laying out a proper workaround.
The deps will be build only if we are in a cron.
In this case, we can directly build only the target.
But in other case, we have to build the target and its dependencies.
The CI is using ubuntu artful and the deb package is compiled with another
compiler that gcc-4.8 (used in other project CI).
As we compile everything with gcc-4.8, we must compile our own ctpp2.
We build with gcc-5 because of zimSplit using ofstream.swap method.
Latest version of zimSplit doesn't use it anymore so let's compile
everything with default gcc.
See openzim/zim-tools@a959609839
We also explicitly set the list of package to install per job, so
less packages are installed.
If the `dep` is a two char string (as "qt"), the `platform, name = dep`
will split the string and search for 't' dependency in 'q' platform.
So, we have to be sure that the dep is a tuple before splitting it.
- Disable icuio and layoutex.
- Hardcode UTF8 as charset (we always use utf8 and hardcoding him improve
performances)
- Do not include default utf headers
- Do not use `using namespace icu`
See http://source.icu-project.org/repos/icu/trunk/icu4c/readme.html#RecBuild
for more information about options.
Increment base dependencies version as we are compiling icu differently.
As we want to use qt and packages are available only since ubuntu artful, we
need to use docker because travis-ci is ubuntu trusty.
We could also build qt, but it takes too many time and travis timeout.
Enable `--no-daemon` : Using the daemon make gradle keep "configuration"
(like plugin path). If gradle installation path change, it will break
kiwix-android build.
Enable `--build-cache` : This is not the case by default :/
This should greatly improve compilation speed.
By building kiwix-android on the `android` platform, we can now build
`kiwix-lib` on all `android_<arch>` platforms, and so have all
architectures in the same apk.
Fix#108