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
cmake_minimum_required ( VERSION 3.10 )
include ( "thirdparty/basalt-headers/cmake_modules/PreProjectWorkarounds.cmake" )
2019-04-14 21:07:42 +02:00
project ( basalt )
set ( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/" ${ CMAKE_MODULE_PATH } )
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
if ( NOT EIGEN_ROOT )
set ( EIGEN_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/basalt-headers/thirdparty/eigen" )
endif ( )
2019-04-14 21:07:42 +02:00
string ( TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWERCASE )
find_program ( DPKG_PROGRAM dpkg DOC "dpkg program of Debian-based systems" )
if ( DPKG_PROGRAM )
execute_process (
C O M M A N D $ { D P K G _ P R O G R A M } - - p r i n t - a r c h i t e c t u r e
O U T P U T _ V A R I A B L E C P A C K _ D E B I A N _ P A C K A G E _ A R C H I T E C T U R E
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
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
2019-04-14 21:07:42 +02:00
endif ( DPKG_PROGRAM )
find_program ( LSB_RELEASE_PROGRAM lsb_release DOC "lsb_release program of Debian-based systems" )
if ( LSB_RELEASE_PROGRAM )
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
execute_process ( COMMAND ${ LSB_RELEASE_PROGRAM } -rs
2019-04-14 21:07:42 +02:00
O U T P U T _ V A R I A B L E L S B _ R E L E A S E _ I D _ S H O R T
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
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
2019-04-14 21:07:42 +02:00
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
if ( ${ LSB_RELEASE_ID_SHORT } EQUAL "18.04" )
2019-04-14 21:07:42 +02:00
set ( DEBIAN_DEPENDS "libtbb2, liblz4-1, libbz2-1.0, libboost-filesystem1.65.1, libboost-date-time1.65.1, libboost-program-options1.65.1, libboost-regex1.65.1, libopencv-dev, libglew2.0, libjpeg8, libpng16-16" )
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
elseif ( ${ LSB_RELEASE_ID_SHORT } EQUAL "16.04" )
2019-04-25 11:46:49 +02:00
set ( DEBIAN_DEPENDS "libtbb2, liblz4-1, libbz2-1.0, libboost-filesystem1.58.0, libboost-date-time1.58.0, libboost-program-options1.58.0, libboost-regex1.58.0, libopencv-dev, libglew1.13, libjpeg8, libpng12-0, libstdc++6" )
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
endif ( )
2019-04-14 21:07:42 +02:00
endif ( LSB_RELEASE_PROGRAM )
string ( TIMESTAMP PROJECT_VERSION_REVISION "%Y%m%d%H%M" )
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
set ( CPACK_GENERATOR "DEB" )
set ( CPACK_DEBIAN_PACKAGE_MAINTAINER "Vladyslav Usenko <vlad.usenko@tum.de>" )
set ( CPACK_PACKAGE_VERSION_MAJOR "0" )
set ( CPACK_PACKAGE_VERSION_MINOR "1" )
set ( CPACK_PACKAGE_VERSION_PATCH "0-${PROJECT_VERSION_REVISION}~${LSB_RELEASE_ID_SHORT}" )
set ( CPACK_DEBIAN_PACKAGE_DEPENDS ${ DEBIAN_DEPENDS } )
set ( CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME_LOWERCASE}_${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}" )
set ( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE" )
2019-04-14 21:07:42 +02:00
include ( CPack )
# Configure CCache if available
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
if ( NOT CMAKE_C_COMPILER_LAUNCHER AND NOT CMAKE_CXX_COMPILER_LAUNCHER )
find_program ( CCACHE_PROGRAM ccache )
if ( CCACHE_PROGRAM )
message ( STATUS "Found ccache: ${CCACHE_PROGRAM}" )
set ( CMAKE_C_COMPILER_LAUNCHER ${ CCACHE_PROGRAM } )
set ( CMAKE_CXX_COMPILER_LAUNCHER ${ CCACHE_PROGRAM } )
else ( )
message ( STATUS "Dind't find ccache" )
endif ( )
else ( )
message ( STATUS "Compiler launcher already set. Not configuring ccache." )
message ( STATUS "CMAKE_C_COMPILER_LAUNCHER: ${CMAKE_C_COMPILER_LAUNCHER}" )
message ( STATUS "CMAKE_CXX_COMPILER_LAUNCHER: ${CMAKE_CXX_COMPILER_LAUNCHER}" )
endif ( )
2019-04-14 21:07:42 +02:00
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
if ( NOT CMAKE_BUILD_TYPE )
set ( CMAKE_BUILD_TYPE Release )
endif ( )
if ( NOT CXX_MARCH )
set ( CXX_MARCH native )
endif ( )
2019-04-14 21:07:42 +02:00
set ( CMAKE_CXX_STANDARD 17 )
set ( CMAKE_CXX_STANDARD_REQUIRED ON )
set ( CMAKE_CXX_EXTENSIONS OFF )
set ( CMAKE_POSITION_INDEPENDENT_CODE ON )
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
2019-04-14 21:07:42 +02:00
# Flags used for CHECK_CXX_SOURCE_COMPILES
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
set ( CMAKE_REQUIRED_FLAGS "-Wno-error" )
# save flags passed by user
set ( BASALT_PASSED_CXX_FLAGS "${CMAKE_CXX_FLAGS}" )
set ( CMAKE_CXX_FLAGS_DEBUG "-O0 -g -DEIGEN_INITIALIZE_MATRICES_BY_NAN" ) # cmake default: "-g"
set ( CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -g -DEIGEN_INITIALIZE_MATRICES_BY_NAN" ) # cmake default: "-O2 -g -DNDEBUG"
set ( CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" ) # cmake default: "-O3 -DNDEBUG"
2019-06-09 20:49:03 +02:00
set ( CMAKE_CXX_FLAGS_CIDEBUG "-O0 -DEIGEN_INITIALIZE_MATRICES_BY_NAN" ) # CI version with no debug symbols
set ( CMAKE_CXX_FLAGS_CIRELWITHDEBINFO "-O3 -DEIGEN_INITIALIZE_MATRICES_BY_NAN" ) # CI version with no debug symbols
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
# base set of compile flags
set ( BASALT_CXX_FLAGS "-Wall -Wextra -Werror -Wno-unused-parameter -ftemplate-backtrace-limit=0" )
# clang-specific compile flags
if ( CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" )
set ( BASALT_CXX_FLAGS "${BASALT_CXX_FLAGS} -Wno-exceptions -fcolor-diagnostics" )
endif ( )
# Set platform / compiler specific compile flags and checks
if ( APPLE )
# Need to investigate how to reliably detect and use OpenMP on macOS...
set ( USE_OPENMP_DEFAULT Off )
# Among others, setting CMAKE_FIND_FRAMEWORK to LAST fixed issues
# with installed Mono that contains old headers (libpng, ...).
# See: https://github.com/openMVG/openMVG/issues/1349#issuecomment-401492811
set ( CMAKE_FIND_FRAMEWORK LAST )
# use brewed llvm's libc++
2019-05-13 21:40:35 +02:00
# Note: the suffix "/../v1" for the include path is needed to work around a recent cmake issue:
# https://gitlab.kitware.com/cmake/cmake/issues/19251#note_571030
include_directories ( "/usr/local/opt/llvm/include/c++/v1/../v1" )
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
link_directories ( "/usr/local/opt/llvm/lib" )
2019-05-13 21:40:35 +02:00
add_compile_options ( "-nostdinc++" )
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
set ( STD_CXX_FS c++fs )
if ( CMAKE_CXX_COMPILER_ID STREQUAL "Clang" )
message ( STATUS "Detected macOS with non-Apple clang" )
elseif ( CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" )
message ( STATUS "Detected macOS with Apple clang" )
# Apple clang on macOS < 10.14 Mojave is too old
if ( CMAKE_SYSTEM_VERSION VERSION_LESS 18.0.0 )
message ( WARNING "Detected Darwin version ${CMAKE_SYSTEM_VERSION}, which is earlier than macos 10.14 Mojave. Apple clang is too old and not supported. Use clang from homebrew." )
endif ( )
else ( )
message ( WARNING "Detected macOS with unsupported compiler ${CMAKE_CXX_COMPILER_ID}" )
endif ( )
elseif ( UNIX )
set ( USE_OPENMP_DEFAULT On )
# assume libstdc++
set ( STD_CXX_FS stdc++fs )
if ( CMAKE_CXX_COMPILER_ID STREQUAL "Clang" )
set ( LINUX_CLANG 1 )
message ( STATUS "Detected Linux with clang." )
message ( WARNING "Clang on Linux is currently not fully supported. You'll likely need to get a recent version of TBB." )
elseif ( CMAKE_CXX_COMPILER_ID STREQUAL "GNU" )
message ( STATUS "Detected Linux with gcc." )
else ( )
message ( WARNING "Detected Linux with unsupported compiler ${CMAKE_CXX_COMPILER_ID}" )
endif ( )
else ( )
message ( WARNING "Only Linux and macOS are currently supported" )
endif ( )
# OpenMP option and compile flags
option ( USE_OPENMP "Use OpenMP (e.g. for parallel computation in Eigen)" ${ USE_OPENMP_DEFAULT } )
if ( USE_OPENMP )
message ( STATUS "OpenMP Enabled" )
set ( BASALT_CXX_FLAGS "${BASALT_CXX_FLAGS} -fopenmp" )
else ( )
message ( STATUS "OpenMP Disabled" )
endif ( )
# setup combined compiler flags
set ( CMAKE_CXX_FLAGS "${BASALT_CXX_FLAGS} -march=${CXX_MARCH} ${BASALT_PASSED_CXX_FLAGS}" )
2019-04-14 21:07:42 +02:00
set ( EIGEN_INCLUDE_DIR_HINTS ${ EIGEN_ROOT } )
2019-05-13 21:40:02 +02:00
find_package ( Eigen3 3.3.7 EXACT REQUIRED MODULE )
2019-04-14 21:07:42 +02:00
include_directories ( ${ EIGEN3_INCLUDE_DIR } )
message ( STATUS "Found Eigen headers in: ${EIGEN3_INCLUDE_DIR}" )
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
if ( NOT EIGEN3_INCLUDE_DIR MATCHES "^${EIGEN_ROOT}" )
message ( WARNING "Found Eigen headers are outside of specified EIGEN_ROOT '${EIGEN_ROOT}'" )
endif ( )
2019-04-14 21:07:42 +02:00
find_package ( TBB REQUIRED )
include_directories ( ${ TBB_INCLUDE_DIR } )
2019-06-03 13:37:53 +02:00
find_package ( OpenCV REQUIRED core imgproc calib3d highgui )
2019-04-14 21:07:42 +02:00
include_directories ( ${ OpenCV_INCLUDE_DIR } )
message ( STATUS "Found OpenCV headers in: ${OpenCV_INCLUDE_DIR}" )
message ( STATUS "Found OpenCV_LIBS: ${OpenCV_LIBS}" )
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
add_subdirectory ( thirdparty )
2019-04-14 21:07:42 +02:00
include_directories ( thirdparty/basalt-headers/thirdparty/Sophus )
include_directories ( thirdparty/basalt-headers/thirdparty/cereal/include )
include_directories ( thirdparty/basalt-headers/include )
include_directories ( thirdparty/CLI11/include )
include_directories ( thirdparty/fast/include )
include_directories ( include )
add_library ( basalt SHARED
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
s r c / i o / d a t a s e t _ i o . c p p
s r c / i o / m a r g _ d a t a _ i o . c p p
s r c / c a l i b r a t i o n / c a m _ c a l i b . c p p
s r c / c a l i b r a t i o n / c a m _ i m u _ c a l i b . c p p
s r c / c a l i b r a t i o n / c a l i b r a i t o n _ h e l p e r . c p p
s r c / c a l i b r a t i o n / v i g n e t t e . c p p
s r c / u t i l s / v i o _ c o n f i g . c p p
s r c / o p t i c a l _ f l o w / o p t i c a l _ f l o w . c p p
s r c / v i _ e s t i m a t o r / k e y p o i n t _ v i o . c p p
s r c / v i _ e s t i m a t o r / k e y p o i n t _ v i o _ l i n e a r i z e . c p p
s r c / v i _ e s t i m a t o r / v i o _ e s t i m a t o r . c p p
s r c / v i _ e s t i m a t o r / b a _ b a s e . c p p
s r c / v i _ e s t i m a t o r / n f r _ m a p p e r . c p p
s r c / u t i l s / k e y p o i n t s . c p p )
2019-04-14 21:07:42 +02:00
2019-06-07 14:42:18 +02:00
target_link_libraries ( basalt PUBLIC ${ TBB_LIBRARIES } ${ STD_CXX_FS } ${ OpenCV_LIBS } pangolin PRIVATE rosbag apriltag opengv )
2019-04-14 21:07:42 +02:00
add_executable ( basalt_calibrate src/calibrate.cpp )
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
target_link_libraries ( basalt_calibrate basalt )
2019-04-14 21:07:42 +02:00
add_executable ( basalt_calibrate_imu src/calibrate_imu.cpp )
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
target_link_libraries ( basalt_calibrate_imu basalt )
2019-04-14 21:07:42 +02:00
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
add_executable ( basalt_vio_sim src/vio_sim.cpp )
target_link_libraries ( basalt_vio_sim basalt )
2019-04-14 21:07:42 +02:00
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
add_executable ( basalt_mapper_sim src/mapper_sim.cpp )
target_link_libraries ( basalt_mapper_sim basalt )
2019-04-14 21:07:42 +02:00
add_executable ( basalt_mapper_sim_naive src/mapper_sim_naive.cpp )
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
target_link_libraries ( basalt_mapper_sim_naive basalt )
2019-04-14 21:07:42 +02:00
add_executable ( basalt_mapper src/mapper.cpp )
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
target_link_libraries ( basalt_mapper basalt )
2019-04-14 21:07:42 +02:00
add_executable ( basalt_opt_flow src/opt_flow.cpp )
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
target_link_libraries ( basalt_opt_flow basalt )
2019-04-14 21:07:42 +02:00
add_executable ( basalt_vio src/vio.cpp )
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
target_link_libraries ( basalt_vio basalt )
2019-04-14 21:07:42 +02:00
2019-06-03 13:37:53 +02:00
find_package ( realsense2 QUIET )
if ( realsense2_FOUND )
2019-06-13 13:37:17 +02:00
add_executable ( basalt_rs_t265_record src/rs_t265_record.cpp src/device/rs_t265.cpp )
2019-06-03 13:37:53 +02:00
target_link_libraries ( basalt_rs_t265_record basalt realsense2::realsense2 ${ OpenCV_LIBS } )
2019-06-13 13:37:17 +02:00
add_executable ( basalt_rs_t265_vio src/rs_t265_vio.cpp src/device/rs_t265.cpp )
target_link_libraries ( basalt_rs_t265_vio basalt realsense2::realsense2 )
2019-06-03 13:37:53 +02:00
endif ( )
2019-04-14 21:07:42 +02:00
install ( TARGETS basalt_calibrate basalt_calibrate_imu basalt_vio_sim basalt_mapper_sim basalt_mapper_sim_naive basalt_mapper basalt_opt_flow basalt_vio basalt
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
E X P O R T B a s a l t T a r g e t s
R U N T I M E D E S T I N A T I O N $ { C M A K E _ I N S T A L L _ P R E F I X } / b i n
L I B R A R Y D E S T I N A T I O N $ { C M A K E _ I N S T A L L _ P R E F I X } / l i b
A R C H I V E D E S T I N A T I O N $ { C M A K E _ I N S T A L L _ P R E F I X } / l i b )
2019-04-14 21:07:42 +02:00
file ( GLOB CONFIG_FILES "${CMAKE_CURRENT_SOURCE_DIR}/data/*.json" )
2019-06-07 14:42:18 +02:00
install ( FILES ${ CONFIG_FILES }
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
D E S T I N A T I O N $ { C M A K E _ I N S T A L L _ P R E F I X } / e t c / b a s a l t )
2019-04-14 21:07:42 +02:00
# Replace install() to do-nothing macro.
macro ( install )
endmacro ( )
# Include subproject (or any other CMake code) with "disabled" install().
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
enable_testing ( )
2019-04-14 21:07:42 +02:00
add_subdirectory ( thirdparty/basalt-headers/test )
add_subdirectory ( test )
# Restore original install() behavior.
macro ( install )
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
_install ( ${ ARGN } )
2019-04-14 21:07:42 +02:00
endmacro ( )