Commit graph

16 commits

Author SHA1 Message Date
Jason Rhinelander c6b409eb8a Switch debian builds to testing
Stuff breaks more often on sid (like qt5 packages right now) and testing
is not far behind.
2020-07-02 12:56:36 -03:00
Jason Rhinelander 141d3cddbd Disable lto for Debug drone build 2020-07-02 12:55:28 -03:00
Jason Rhinelander c3bf6d6eb0 Bump OS X deployment target for drone CIs
MacOS build-in compiler doesn't like std::variant when targetting
anything earlier than 10.14.

(We can deal with this for releases by making a build for older macs
that uses a full clang stack, but will worry about that later).
2020-07-02 12:55:25 -03:00
Jason Rhinelander cf53d09447 Remove boost chrono and regex from readme/drone 2020-07-02 12:52:13 -03:00
Jason Rhinelander bbf201a7a6
Make debug_utilities available to build even without -DBUILD_DEBUG_UTILS (#1183)
This uses EXCLUDE_FROM_ALL when BUILD_DEBUG_UTILS is not on so that they
don't get built but they *can* be built with a `make cn_deserialize` (or
whatever target you want) from a build dir.

Also adds them to a couple drone builds to make sure they build.
2020-06-25 13:10:09 +10:00
Jason Rhinelander 30553e44e0 Lower parallel jobs to 6 2020-06-15 14:51:41 -03:00
Jason Rhinelander d2d73e7b22 Drone: Add tags/submodules as separate step
This makes it a little clearer what failed when something fails.

Ideally we'd also be able to distinguish between build and test, but
currently that's not practical to do with drone: between each stage of
the build the docker image gets removed and replaced with the next
stage's image, which means we'd have to build up a new docker image with
dependencies before running the tests.

(Being able to have multiple stages in one docker image is a drone
upstream wishlist item).
2020-06-15 12:49:34 -03:00
Jason Rhinelander 1a7bf3e53e Add local static source mirror
I've uploaded the various deps to https://builds.lokinet.dev/deps so as
not to hit the upstream mirrors so much (also reduces the reliance on
github, which is sometimes flakey).

This is prefixed onto the existing URLs so that if it isn't found we
fall back to the upstream URL.
2020-06-15 12:49:34 -03:00
Jason Rhinelander 5da3d2f7ef Drone: add static builds for mac/linux/windows
Adds static drone builds for linux (built on bionic), mac, and Windows
(built with mingw32).

The builds get uploaded to https://builds.lokinet.dev

The linux and mac builds use LTO (which takes longer, but significantly
reduces binary size).  The mingw32 build can probably also get there,
but currently fails with LTO when unbound tries linking against openssl
(it probably just needs a small patch to add magic -lwsock2 dep in the
right place in unbound).

The Mac binaries are built using a 10.13 deployment target.  (I'm not
100% sure that this is sufficient -- it's possible we might have to also
push the magic mac deployment flag to the built dependencies).
2020-06-15 12:49:34 -03:00
Jason Rhinelander da400f6d66 Rewrite translation file generation using cmake
This makes three big changes to how translation files are generated:

- use Qt5 cmake built-in commands to do the translations rather than
calling lrelease directly.  lrelease is often not in the path, while Qt5
cmake knows how to find and invoke it.

- Slam the resulting files into a C++ file using a cmake script rather
than needing to compile a .c file to generate C++ file.  This is
simpler, but more importantly avoids the mess needed when cross
compiling of having to import a cmake script from an external native
build.

- In the actual generated files, use an unordered_map rather than a
massive list of static variable pointers.
2020-06-15 12:49:33 -03:00
Jason Rhinelander 1026ff680b Set up LTO properly
CMake 3.9+ has generic LTO enabling code, switch to it.

Update required cmake version to 3.10 (3.9 is probably sufficient, but
3.10 is bionic's version that we're actually testing).
2020-06-14 23:16:04 -03:00
Jason Rhinelander 8cff7c1664 Enable ccache by default
It can still be explicitly disabled with

    -DCMAKE_CXX_COMPILER_LAUNCHER= -DCMAKE_C_COMPILER_LAUNCHER=

if someone doesn't want it for some reason.
2020-06-14 22:10:38 -03:00
Jason Rhinelander 2dc9323fcb Disable DNSSEC, is_hdd tests in CI
The DNSSEC tests fail on me quite often; the is_hdd tests *always* fails
inside a container.
2020-06-09 23:06:54 -03:00
Jason Rhinelander 9c46de849c Build less stuff on ARM ci
Turn off the tests, and copy the -j1/-j2 split from the travis config.
2020-06-09 23:06:54 -03:00
Jason Rhinelander d33f9bf73b Disable -Werror for now
Many of the warnings being generated (which *are* legitimate problems)
are better addressed in the C++17 PR.
2020-06-09 23:06:54 -03:00
Jason Rhinelander a90dbd25fb Add drone CI config
Adds various builds and does a basic offline startup test on all, plus
runs the full test suite on a debian and a mac build.

This has the ability to do an all-static build and to build debs, and
upload both to builds.lokinet.dev, but it is not yet enabled and will
likely take some additional work.
2020-06-09 23:06:54 -03:00