basalt/test
Nikolaus Demmel 6755f08678 ci and cmake improvements
Changes along the line of
https://gitlab.com/VladyslavUsenko/basalt-headers/merge_requests/1 and
https://gitlab.com/VladyslavUsenko/basalt-headers/merge_requests/2,
and more.

Warning free builds on macos 10.11 - 10.14, Ubuntu Xenial &
Bionic. (macOS 10.14 is not yet in CI, but tested locally.)

Changes similar to basalt-headers:

 - cmake: raise minimum version to 3.10
 - cmake: add workarounds to support macOS < 10.14
 - cmake: set ccache only if not yet set and print info
 - cmake: add NDEBUG define (to disable asserts) for release build and
   EIGEN_INITIALIZE_MATRICES_BY_NAN for others. Add externally supplied
   CMAKE_CXX_FLAGS at the end to allow overriding the defaults.
 - tests: add enable_testing() in main CMakeLists.txt, such that we can
   call 'ctest' from build folder.
 - tests: simplify gtest / gtest_main linking
 - tests: use the newer gtest_discover_tests instead of add_test, which
   adds a separate cmake test for every gtest, even with multiple
   defined in a single executable. Its not only more reliable and less
   verbose in the CMakeLists.txt, but also allows to run 'ctest'
   without -V and still see status for every individual test.
 - ci: add build jobs for Debug/RelWithDebInfo on Bionic, as well as
   builds on Xenial and El Capitan. Use templates to simplify
   .gitlab-ci.yml
 - ci: clang-format job

Additional changes:

 - cmake: unify formatting
 - cmake: various diagnostic warnings for situations that are
   unsupported (should help with gitlab issues).
 - cmake options to disable openmp, pass custom eigen root,
   compiler-launcher, additional CXX_FLAGS that can override default
   flags also for submodules (opengv etc), ...
 - cmake: moved configuration of submodule libs to
   `thirdparty/CMakeLists.txt`. This includes various fixes for
   limiatations of the thirdparty cmake definitions. In particular
   ensures that correct eigen is used, that opengv respects march and
   CXX_FLAGS passed from command line.
 - cmake: simplified linking of executables. Linking `basalt` is
   enough.
 - cmake: basalt sources now build with the minimal disabled
   warnings ("-Wall Wextra -Werror -Wno-unused-parameter
   -ftemplate-backtrace-limit=0", and additionally "-Wno-exceptions"
   for clang). Additional flags are now only set for the submodule
   targets in thirdparty.
 - tests: Running ctest in build folder now also runs the unit tests
   from basalt-headers.
 - ci: in addition to the additional compile jobs and there are now
   also 'test' jobs, that check that the executables in the deb's
   work (runs on all branches, not just master).
2019-04-24 14:21:24 +02:00
..
src add ./scripts/clang-format-all.sh and fix formatting 2019-04-24 13:16:06 +02:00
CMakeLists.txt ci and cmake improvements 2019-04-24 14:21:24 +02:00