From 2fd1d656bdbefc7d9c7cab335131fb60b08a2d83 Mon Sep 17 00:00:00 2001 From: Mario Konrad Date: Wed, 20 Apr 2022 23:41:47 +0200 Subject: [PATCH] General: separation of marav-io as a library - Removal of configurability. - Auto detection of IO support. --- CMakeLists.txt | 1 - README.md | 10 +- conanfile.py | 1 - doc/devenv.dox | 3 - doc/directories.dox | 16 +- doc/technical_overview.dox | 23 +- examples/CMakeLists.txt | 11 +- examples/library/CMakeLists.txt | 2 +- examples/library/foobar.cpp | 2 +- examples/nmea_multiplexer.cpp | 4 +- examples/read_ais.cpp | 4 +- examples/read_nmea.cpp | 4 +- examples/read_nmea_boostasio.cpp | 2 +- examples/read_seatalk.cpp | 4 +- examples/select.cpp | 4 +- examples/serial_to_tcp.cpp | 2 +- examples/simple_seatalk_nmea_converter.cpp | 4 +- examples/subdirectory/CMakeLists.txt | 2 +- examples/subdirectory/foobar.cpp | 2 +- examples/subproject/src/CMakeLists.txt | 2 +- examples/subproject/src/main.cpp | 10 +- .../io => marnav-io}/default_nmea_reader.hpp | 2 +- .../io => marnav-io}/default_nmea_serial.hpp | 2 +- .../io => marnav-io}/default_seatalk_reader.hpp | 2 +- .../io => marnav-io}/default_seatalk_serial.hpp | 2 +- include/{marnav/io => marnav-io}/device.hpp | 0 include/{marnav/io => marnav-io}/nmea_reader.hpp | 2 +- .../{marnav/io => marnav-io}/seatalk_reader.hpp | 2 +- include/{marnav/io => marnav-io}/selectable.hpp | 0 include/{marnav/io => marnav-io}/serial.hpp | 2 +- src/CMakeLists.txt | 258 +++++---- .../io => marnav-io}/default_nmea_reader.cpp | 2 +- .../io => marnav-io}/default_seatalk_reader.cpp | 2 +- src/{marnav/io => marnav-io}/nmea_reader.cpp | 2 +- src/{marnav/io => marnav-io}/seatalk_reader.cpp | 2 +- src/{marnav/io => marnav-io}/serial.cpp | 2 +- src/nmeatool.cpp | 4 +- test/CMakeLists.txt | 587 +++++++++++---------- test/{nmea => marnav-io}/Benchmark_nmea_io.cpp | 0 test/{io => marnav-io}/Test_io_nmea_reader.cpp | 4 +- test/{io => marnav-io}/Test_io_seatalk_reader.cpp | 4 +- test/{ => marnav}/ais/Benchmark_ais_message.cpp | 0 test/{ => marnav}/ais/Test_ais.cpp | 0 test/{ => marnav}/ais/Test_ais_angle.cpp | 0 test/{ => marnav}/ais/Test_ais_binary_001_11.cpp | 0 test/{ => marnav}/ais/Test_ais_binary_200_10.cpp | 0 test/{ => marnav}/ais/Test_ais_message.cpp | 0 test/{ => marnav}/ais/Test_ais_message_01.cpp | 0 test/{ => marnav}/ais/Test_ais_message_02.cpp | 0 test/{ => marnav}/ais/Test_ais_message_03.cpp | 0 test/{ => marnav}/ais/Test_ais_message_04.cpp | 0 test/{ => marnav}/ais/Test_ais_message_05.cpp | 0 test/{ => marnav}/ais/Test_ais_message_06.cpp | 0 test/{ => marnav}/ais/Test_ais_message_07.cpp | 0 test/{ => marnav}/ais/Test_ais_message_08.cpp | 0 test/{ => marnav}/ais/Test_ais_message_09.cpp | 0 test/{ => marnav}/ais/Test_ais_message_10.cpp | 0 test/{ => marnav}/ais/Test_ais_message_11.cpp | 0 test/{ => marnav}/ais/Test_ais_message_12.cpp | 0 test/{ => marnav}/ais/Test_ais_message_13.cpp | 0 test/{ => marnav}/ais/Test_ais_message_14.cpp | 0 test/{ => marnav}/ais/Test_ais_message_17.cpp | 0 test/{ => marnav}/ais/Test_ais_message_18.cpp | 0 test/{ => marnav}/ais/Test_ais_message_19.cpp | 0 test/{ => marnav}/ais/Test_ais_message_20.cpp | 0 test/{ => marnav}/ais/Test_ais_message_21.cpp | 0 test/{ => marnav}/ais/Test_ais_message_22.cpp | 0 test/{ => marnav}/ais/Test_ais_message_23.cpp | 0 test/{ => marnav}/ais/Test_ais_message_24.cpp | 0 test/{ => marnav}/ais/Test_ais_rate_of_turn.cpp | 0 test/{ => marnav}/ais/ais-sample.tar.gz | Bin test/{ => marnav}/geo/Test_geo_angle.cpp | 0 test/{ => marnav}/geo/Test_geo_cpa.cpp | 0 test/{ => marnav}/geo/Test_geo_geodesic.cpp | 0 test/{ => marnav}/geo/Test_geo_region.cpp | 0 test/{ => marnav}/math/Test_math_floatingpoint.cpp | 0 test/{ => marnav}/math/Test_math_matrix.cpp | 0 test/{ => marnav}/math/Test_math_quaternion.cpp | 0 test/{ => marnav}/math/Test_math_vector.cpp | 0 test/{ => marnav}/math/floatingpoint.cpp | 0 test/{ => marnav}/math/floatingpoint_ulps.cpp | 0 test/{ => marnav}/nmea/Benchmark_nmea_checksum.cpp | 0 .../nmea/Benchmark_nmea_manufacturer.cpp | 0 test/{ => marnav}/nmea/Benchmark_nmea_sentence.cpp | 0 test/{ => marnav}/nmea/Benchmark_nmea_split.cpp | 0 test/{ => marnav}/nmea/Test_nmea.cpp | 0 test/{ => marnav}/nmea/Test_nmea_aam.cpp | 0 test/{ => marnav}/nmea/Test_nmea_ack.cpp | 0 test/{ => marnav}/nmea/Test_nmea_alm.cpp | 0 test/{ => marnav}/nmea/Test_nmea_alr.cpp | 0 test/{ => marnav}/nmea/Test_nmea_angle.cpp | 0 test/{ => marnav}/nmea/Test_nmea_apa.cpp | 0 test/{ => marnav}/nmea/Test_nmea_apb.cpp | 0 test/{ => marnav}/nmea/Test_nmea_bec.cpp | 0 test/{ => marnav}/nmea/Test_nmea_bod.cpp | 0 test/{ => marnav}/nmea/Test_nmea_bwc.cpp | 0 test/{ => marnav}/nmea/Test_nmea_bwr.cpp | 0 test/{ => marnav}/nmea/Test_nmea_bww.cpp | 0 test/{ => marnav}/nmea/Test_nmea_checksum.cpp | 0 test/{ => marnav}/nmea/Test_nmea_date.cpp | 0 test/{ => marnav}/nmea/Test_nmea_dbk.cpp | 0 test/{ => marnav}/nmea/Test_nmea_dbt.cpp | 0 test/{ => marnav}/nmea/Test_nmea_dpt.cpp | 0 test/{ => marnav}/nmea/Test_nmea_dsc.cpp | 0 test/{ => marnav}/nmea/Test_nmea_dse.cpp | 0 test/{ => marnav}/nmea/Test_nmea_dtm.cpp | 0 test/{ => marnav}/nmea/Test_nmea_duration.cpp | 0 test/{ => marnav}/nmea/Test_nmea_fsi.cpp | 0 test/{ => marnav}/nmea/Test_nmea_gbs.cpp | 0 test/{ => marnav}/nmea/Test_nmea_gga.cpp | 0 test/{ => marnav}/nmea/Test_nmea_glc.cpp | 0 test/{ => marnav}/nmea/Test_nmea_gll.cpp | 0 test/{ => marnav}/nmea/Test_nmea_gns.cpp | 0 test/{ => marnav}/nmea/Test_nmea_grs.cpp | 0 test/{ => marnav}/nmea/Test_nmea_gsa.cpp | 0 test/{ => marnav}/nmea/Test_nmea_gst.cpp | 0 test/{ => marnav}/nmea/Test_nmea_gsv.cpp | 0 test/{ => marnav}/nmea/Test_nmea_gtd.cpp | 0 test/{ => marnav}/nmea/Test_nmea_hdg.cpp | 0 test/{ => marnav}/nmea/Test_nmea_hdm.cpp | 0 test/{ => marnav}/nmea/Test_nmea_hdt.cpp | 0 test/{ => marnav}/nmea/Test_nmea_hfb.cpp | 0 test/{ => marnav}/nmea/Test_nmea_hsc.cpp | 0 test/{ => marnav}/nmea/Test_nmea_io.cpp | 0 test/{ => marnav}/nmea/Test_nmea_its.cpp | 0 test/{ => marnav}/nmea/Test_nmea_lcd.cpp | 0 test/{ => marnav}/nmea/Test_nmea_manufacturer.cpp | 0 test/{ => marnav}/nmea/Test_nmea_mob.cpp | 0 test/{ => marnav}/nmea/Test_nmea_msk.cpp | 0 test/{ => marnav}/nmea/Test_nmea_mss.cpp | 0 test/{ => marnav}/nmea/Test_nmea_mta.cpp | 0 test/{ => marnav}/nmea/Test_nmea_mtw.cpp | 0 test/{ => marnav}/nmea/Test_nmea_mwd.cpp | 0 test/{ => marnav}/nmea/Test_nmea_mwv.cpp | 0 test/{ => marnav}/nmea/Test_nmea_osd.cpp | 0 test/{ => marnav}/nmea/Test_nmea_pgrme.cpp | 0 test/{ => marnav}/nmea/Test_nmea_pgrmm.cpp | 0 test/{ => marnav}/nmea/Test_nmea_pgrmz.cpp | 0 test/{ => marnav}/nmea/Test_nmea_r00.cpp | 0 test/{ => marnav}/nmea/Test_nmea_rma.cpp | 0 test/{ => marnav}/nmea/Test_nmea_rmb.cpp | 0 test/{ => marnav}/nmea/Test_nmea_rmc.cpp | 0 test/{ => marnav}/nmea/Test_nmea_rot.cpp | 0 test/{ => marnav}/nmea/Test_nmea_route.cpp | 0 test/{ => marnav}/nmea/Test_nmea_rpm.cpp | 0 test/{ => marnav}/nmea/Test_nmea_rsa.cpp | 0 test/{ => marnav}/nmea/Test_nmea_rsd.cpp | 0 test/{ => marnav}/nmea/Test_nmea_rte.cpp | 0 test/{ => marnav}/nmea/Test_nmea_sentence.cpp | 0 test/{ => marnav}/nmea/Test_nmea_sfi.cpp | 0 test/{ => marnav}/nmea/Test_nmea_split.cpp | 0 test/{ => marnav}/nmea/Test_nmea_stalk.cpp | 0 test/{ => marnav}/nmea/Test_nmea_stn.cpp | 0 test/{ => marnav}/nmea/Test_nmea_tag_block.cpp | 0 test/{ => marnav}/nmea/Test_nmea_tds.cpp | 0 test/{ => marnav}/nmea/Test_nmea_tep.cpp | 0 test/{ => marnav}/nmea/Test_nmea_tfi.cpp | 0 test/{ => marnav}/nmea/Test_nmea_time.cpp | 0 test/{ => marnav}/nmea/Test_nmea_tll.cpp | 0 test/{ => marnav}/nmea/Test_nmea_tpc.cpp | 0 test/{ => marnav}/nmea/Test_nmea_tpr.cpp | 0 test/{ => marnav}/nmea/Test_nmea_tpt.cpp | 0 test/{ => marnav}/nmea/Test_nmea_ttm.cpp | 0 test/{ => marnav}/nmea/Test_nmea_vbw.cpp | 0 test/{ => marnav}/nmea/Test_nmea_vdm.cpp | 0 test/{ => marnav}/nmea/Test_nmea_vdo.cpp | 0 test/{ => marnav}/nmea/Test_nmea_vdr.cpp | 0 test/{ => marnav}/nmea/Test_nmea_version.cpp | 0 test/{ => marnav}/nmea/Test_nmea_vhw.cpp | 0 test/{ => marnav}/nmea/Test_nmea_vlw.cpp | 0 test/{ => marnav}/nmea/Test_nmea_vpw.cpp | 0 test/{ => marnav}/nmea/Test_nmea_vtg.cpp | 0 test/{ => marnav}/nmea/Test_nmea_vwe.cpp | 0 test/{ => marnav}/nmea/Test_nmea_vwr.cpp | 0 test/{ => marnav}/nmea/Test_nmea_waypoint.cpp | 0 test/{ => marnav}/nmea/Test_nmea_wcv.cpp | 0 test/{ => marnav}/nmea/Test_nmea_wdc.cpp | 0 test/{ => marnav}/nmea/Test_nmea_wdr.cpp | 0 test/{ => marnav}/nmea/Test_nmea_wnc.cpp | 0 test/{ => marnav}/nmea/Test_nmea_wpl.cpp | 0 test/{ => marnav}/nmea/Test_nmea_xdr.cpp | 0 test/{ => marnav}/nmea/Test_nmea_xte.cpp | 0 test/{ => marnav}/nmea/Test_nmea_xtr.cpp | 0 test/{ => marnav}/nmea/Test_nmea_zda.cpp | 0 test/{ => marnav}/nmea/Test_nmea_zdl.cpp | 0 test/{ => marnav}/nmea/Test_nmea_zfi.cpp | 0 test/{ => marnav}/nmea/Test_nmea_zfo.cpp | 0 test/{ => marnav}/nmea/Test_nmea_zlz.cpp | 0 test/{ => marnav}/nmea/Test_nmea_zpi.cpp | 0 test/{ => marnav}/nmea/Test_nmea_zta.cpp | 0 test/{ => marnav}/nmea/Test_nmea_zte.cpp | 0 test/{ => marnav}/nmea/Test_nmea_ztg.cpp | 0 test/{ => marnav}/nmea/exception_helper.hpp | 0 test/{ => marnav}/nmea/nmea-sample.tar.gz | Bin test/{ => marnav}/nmea/type_traits_helper.hpp | 0 test/{ => marnav}/seatalk/Test_seatalk_message.cpp | 0 .../seatalk/Test_seatalk_message_00.cpp | 0 .../seatalk/Test_seatalk_message_01.cpp | 0 .../seatalk/Test_seatalk_message_05.cpp | 0 .../seatalk/Test_seatalk_message_10.cpp | 0 .../seatalk/Test_seatalk_message_11.cpp | 0 .../seatalk/Test_seatalk_message_20.cpp | 0 .../seatalk/Test_seatalk_message_21.cpp | 0 .../seatalk/Test_seatalk_message_22.cpp | 0 .../seatalk/Test_seatalk_message_23.cpp | 0 .../seatalk/Test_seatalk_message_24.cpp | 0 .../seatalk/Test_seatalk_message_25.cpp | 0 .../seatalk/Test_seatalk_message_26.cpp | 0 .../seatalk/Test_seatalk_message_27.cpp | 0 .../seatalk/Test_seatalk_message_30.cpp | 0 .../seatalk/Test_seatalk_message_36.cpp | 0 .../seatalk/Test_seatalk_message_38.cpp | 0 .../seatalk/Test_seatalk_message_50.cpp | 0 .../seatalk/Test_seatalk_message_51.cpp | 0 .../seatalk/Test_seatalk_message_52.cpp | 0 .../seatalk/Test_seatalk_message_53.cpp | 0 .../seatalk/Test_seatalk_message_54.cpp | 0 .../seatalk/Test_seatalk_message_56.cpp | 0 .../seatalk/Test_seatalk_message_58.cpp | 0 .../seatalk/Test_seatalk_message_59.cpp | 0 .../seatalk/Test_seatalk_message_65.cpp | 0 .../seatalk/Test_seatalk_message_66.cpp | 0 .../seatalk/Test_seatalk_message_6c.cpp | 0 .../seatalk/Test_seatalk_message_86.cpp | 0 .../seatalk/Test_seatalk_message_87.cpp | 0 .../seatalk/Test_seatalk_message_89.cpp | 0 test/{ => marnav}/units/Test_basic_quantity.cpp | 0 test/{ => marnav}/units/Test_basic_unit.cpp | 0 .../units/Test_custom_numeric_type.cpp | 0 test/{ => marnav}/units/detail/basic_quantity.cpp | 0 .../units/detail/basic_quantity_cmp.cpp | 0 .../units/detail/basic_quantity_fnc.cpp | 0 .../units/detail/basic_quantity_ops.cpp | 0 test/{ => marnav}/units/detail/basic_unit.cpp | 0 test/{ => marnav}/units/detail/basic_unit_cmp.cpp | 0 test/{ => marnav}/units/detail/basic_unit_fnc.cpp | 0 test/{ => marnav}/units/detail/basic_unit_ops.cpp | 0 test/{ => marnav}/units/detail/dimension.cpp | 0 test/{ => marnav}/units/detail/units.cpp | 0 test/{ => marnav}/utils/Test_utils_bitset.cpp | 0 test/{ => marnav}/utils/Test_utils_mmsi.cpp | 0 .../{ => marnav}/utils/Test_utils_mmsi_country.cpp | 0 242 files changed, 521 insertions(+), 473 deletions(-) rename include/{marnav/io => marnav-io}/default_nmea_reader.hpp (96%) rename include/{marnav/io => marnav-io}/default_nmea_serial.hpp (95%) rename include/{marnav/io => marnav-io}/default_seatalk_reader.hpp (95%) rename include/{marnav/io => marnav-io}/default_seatalk_serial.hpp (95%) rename include/{marnav/io => marnav-io}/device.hpp (100%) rename include/{marnav/io => marnav-io}/nmea_reader.hpp (96%) rename include/{marnav/io => marnav-io}/seatalk_reader.hpp (97%) rename include/{marnav/io => marnav-io}/selectable.hpp (100%) rename include/{marnav/io => marnav-io}/serial.hpp (97%) rename src/{marnav/io => marnav-io}/default_nmea_reader.cpp (97%) rename src/{marnav/io => marnav-io}/default_seatalk_reader.cpp (96%) rename src/{marnav/io => marnav-io}/nmea_reader.cpp (98%) rename src/{marnav/io => marnav-io}/seatalk_reader.cpp (98%) rename src/{marnav/io => marnav-io}/serial.cpp (99%) rewrite test/CMakeLists.txt (73%) rename test/{nmea => marnav-io}/Benchmark_nmea_io.cpp (100%) rename test/{io => marnav-io}/Test_io_nmea_reader.cpp (98%) rename test/{io => marnav-io}/Test_io_seatalk_reader.cpp (98%) rename test/{ => marnav}/ais/Benchmark_ais_message.cpp (100%) rename test/{ => marnav}/ais/Test_ais.cpp (100%) rename test/{ => marnav}/ais/Test_ais_angle.cpp (100%) rename test/{ => marnav}/ais/Test_ais_binary_001_11.cpp (100%) rename test/{ => marnav}/ais/Test_ais_binary_200_10.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_01.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_02.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_03.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_04.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_05.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_06.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_07.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_08.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_09.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_10.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_11.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_12.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_13.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_14.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_17.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_18.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_19.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_20.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_21.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_22.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_23.cpp (100%) rename test/{ => marnav}/ais/Test_ais_message_24.cpp (100%) rename test/{ => marnav}/ais/Test_ais_rate_of_turn.cpp (100%) rename test/{ => marnav}/ais/ais-sample.tar.gz (100%) rename test/{ => marnav}/geo/Test_geo_angle.cpp (100%) rename test/{ => marnav}/geo/Test_geo_cpa.cpp (100%) rename test/{ => marnav}/geo/Test_geo_geodesic.cpp (100%) rename test/{ => marnav}/geo/Test_geo_region.cpp (100%) rename test/{ => marnav}/math/Test_math_floatingpoint.cpp (100%) rename test/{ => marnav}/math/Test_math_matrix.cpp (100%) rename test/{ => marnav}/math/Test_math_quaternion.cpp (100%) rename test/{ => marnav}/math/Test_math_vector.cpp (100%) rename test/{ => marnav}/math/floatingpoint.cpp (100%) rename test/{ => marnav}/math/floatingpoint_ulps.cpp (100%) rename test/{ => marnav}/nmea/Benchmark_nmea_checksum.cpp (100%) rename test/{ => marnav}/nmea/Benchmark_nmea_manufacturer.cpp (100%) rename test/{ => marnav}/nmea/Benchmark_nmea_sentence.cpp (100%) rename test/{ => marnav}/nmea/Benchmark_nmea_split.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_aam.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_ack.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_alm.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_alr.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_angle.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_apa.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_apb.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_bec.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_bod.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_bwc.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_bwr.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_bww.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_checksum.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_date.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_dbk.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_dbt.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_dpt.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_dsc.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_dse.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_dtm.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_duration.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_fsi.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_gbs.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_gga.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_glc.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_gll.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_gns.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_grs.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_gsa.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_gst.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_gsv.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_gtd.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_hdg.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_hdm.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_hdt.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_hfb.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_hsc.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_io.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_its.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_lcd.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_manufacturer.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_mob.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_msk.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_mss.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_mta.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_mtw.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_mwd.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_mwv.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_osd.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_pgrme.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_pgrmm.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_pgrmz.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_r00.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_rma.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_rmb.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_rmc.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_rot.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_route.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_rpm.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_rsa.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_rsd.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_rte.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_sentence.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_sfi.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_split.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_stalk.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_stn.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_tag_block.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_tds.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_tep.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_tfi.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_time.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_tll.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_tpc.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_tpr.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_tpt.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_ttm.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_vbw.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_vdm.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_vdo.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_vdr.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_version.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_vhw.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_vlw.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_vpw.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_vtg.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_vwe.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_vwr.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_waypoint.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_wcv.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_wdc.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_wdr.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_wnc.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_wpl.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_xdr.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_xte.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_xtr.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_zda.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_zdl.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_zfi.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_zfo.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_zlz.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_zpi.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_zta.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_zte.cpp (100%) rename test/{ => marnav}/nmea/Test_nmea_ztg.cpp (100%) rename test/{ => marnav}/nmea/exception_helper.hpp (100%) rename test/{ => marnav}/nmea/nmea-sample.tar.gz (100%) rename test/{ => marnav}/nmea/type_traits_helper.hpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_00.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_01.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_05.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_10.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_11.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_20.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_21.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_22.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_23.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_24.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_25.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_26.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_27.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_30.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_36.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_38.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_50.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_51.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_52.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_53.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_54.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_56.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_58.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_59.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_65.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_66.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_6c.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_86.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_87.cpp (100%) rename test/{ => marnav}/seatalk/Test_seatalk_message_89.cpp (100%) rename test/{ => marnav}/units/Test_basic_quantity.cpp (100%) rename test/{ => marnav}/units/Test_basic_unit.cpp (100%) rename test/{ => marnav}/units/Test_custom_numeric_type.cpp (100%) rename test/{ => marnav}/units/detail/basic_quantity.cpp (100%) rename test/{ => marnav}/units/detail/basic_quantity_cmp.cpp (100%) rename test/{ => marnav}/units/detail/basic_quantity_fnc.cpp (100%) rename test/{ => marnav}/units/detail/basic_quantity_ops.cpp (100%) rename test/{ => marnav}/units/detail/basic_unit.cpp (100%) rename test/{ => marnav}/units/detail/basic_unit_cmp.cpp (100%) rename test/{ => marnav}/units/detail/basic_unit_fnc.cpp (100%) rename test/{ => marnav}/units/detail/basic_unit_ops.cpp (100%) rename test/{ => marnav}/units/detail/dimension.cpp (100%) rename test/{ => marnav}/units/detail/units.cpp (100%) rename test/{ => marnav}/utils/Test_utils_bitset.cpp (100%) rename test/{ => marnav}/utils/Test_utils_mmsi.cpp (100%) rename test/{ => marnav}/utils/Test_utils_mmsi_country.cpp (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 41e827c2..8d768119 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,6 @@ option(ENABLE_STATIC "Enable static library" ON) option(ENABLE_PROFILING "Enable Profiling" OFF) option(ENABLE_BENCHMARK "Enable Benchmark" OFF) option(ENABLE_SANITIZER "Enable Sanitizing (address, undefined)" OFF) -option(ENABLE_IO "Enable IO support" ON) option(ENABLE_EXAMPLES "Enable Examples" ON) option(ENABLE_TESTS "Enable Tests" ON) option(ENABLE_TESTS_BENCHMARK "Enable Test Benchmarks" ON) diff --git a/README.md b/README.md index 8181be4c..6e435514 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,9 @@ It supports (partially): - NMEA-0183 - AIS - SeaTalk (Raymarine device communication) -- Reading data from serial ports (NMEA, SeaTalk) - Basic geodesic functions, suitable for martime navigation. +- Reading data from serial ports (NMEA, SeaTalk). This is a separate library, + available only if required environment is present, typically a Linux system. See chapter _Features_ for a complete and detailed list. @@ -218,7 +219,9 @@ Suported messages for SeaTalk (decode and encode): ### IO -- Reading data from serial ports (NMEA, SeaTalk) +- Reading data from serial ports (NMEA, SeaTalk). + Available only if the environment supports the implementation, + typically a Linux system. ### Geodesic Functions @@ -421,9 +424,6 @@ Build options: - `ENABLE_BENCHMARK` : enables benchmarking (disables some optimization) - `ENABLE_SANITIZER` : enables address and undefined sanitizers -Features: -- `ENABLE_IO` : enables IO support. Default: `ON` - Components: - `ENABLE_EXAMPLES`: enables examples. Default: `ON` - `ENABLE_TOOLS`: enables tools. Default: `ON` diff --git a/conanfile.py b/conanfile.py index d2ea9482..a074b0fb 100644 --- a/conanfile.py +++ b/conanfile.py @@ -40,7 +40,6 @@ class Package(ConanFile): self.__cmake.definitions['ENABLE_PROFILING'] = "FALSE" self.__cmake.definitions['ENABLE_BENCHMARK'] = "FALSE" self.__cmake.definitions['ENABLE_SANITIZER'] = "FALSE" - self.__cmake.definitions['ENABLE_IO'] = "FALSE" self.__cmake.definitions['ENABLE_EXAMPLES'] = "FALSE" self.__cmake.definitions['ENABLE_TESTS'] = "FALSE" self.__cmake.definitions['ENABLE_TOOLS'] = "FALSE" diff --git a/doc/devenv.dox b/doc/devenv.dox index da92de89..3dd20140 100644 --- a/doc/devenv.dox +++ b/doc/devenv.dox @@ -121,9 +121,6 @@ Build options: - `ENABLE_BENCHMARK` : enables benchmarking (disables some optimization) - `ENABLE_SANITIZER` : enables address and undefined sanitizers -Features: -- `ENABLE_IO` : enables IO support. Default: `ON` - Components: - `ENABLE_EXAMPLES`: enables examples. Default: `ON` - `ENABLE_TOOLS`: enables tools. Default: `ON` diff --git a/doc/directories.dox b/doc/directories.dox index 64d51103..b95ce269 100644 --- a/doc/directories.dox +++ b/doc/directories.dox @@ -43,14 +43,6 @@ have any dependencies to the `nmea` package. \brief Collection of geographic and geodesic functions. -\dir src/marnav/io -\brief Input/Output stuff to communicate with the outside world. - -Input output stuff, mainly for NMEA and SeaTalk. Please note, -that this package is not mandatory. It is perfectly fine -to use the `nmea` package without `io`. - - \dir src/marnav/math \brief Generic math stuff. @@ -67,6 +59,14 @@ to use the `nmea` package without `io`. \brief Common utilities. +\dir src/marnav-io +\brief Input/Output stuff to communicate with the outside world. + +Input output stuff, mainly for NMEA and SeaTalk. Please note, +that this package is not mandatory. It is perfectly fine +to use the `nmea` package without `io`. + + \dir test \brief Contains all tests. diff --git a/doc/technical_overview.dox b/doc/technical_overview.dox index ac6af846..aa141b3c 100644 --- a/doc/technical_overview.dox +++ b/doc/technical_overview.dox @@ -16,16 +16,18 @@ root +- extern +- include | +- marnav +| | +- ... +| +- marnav-io | +- ... +- src | +- marnav -| +- ais -| +- geo -| +- io -| +- math -| +- nmea -| +- seatalk -| +- utils +| | +- ais +| | +- geo +| | +- math +| | +- nmea +| | +- seatalk +| | +- utils +| +- marnav-io +- test \endverbatim @@ -46,14 +48,15 @@ In the directories `src` and `include`: the NMEA protocol (VDM, VDO sentences), the package does not have any dependencies to the \c nmea package. - \c geo : collection of geographic and geodesic functions -- \c io : input output stuff, mainly for NMEA and SeaTalk. Please note, - that this package is not mandatory. It is perfectly fine - to use the \c nmea package without \c io. - \c math : generic math stuff - \c nmea : everything NMEA-0183 related - \c seatalk : everything SeaTalk related, except IO. - \c utils : common utils +- \c marnav-ioio : input output stuff, mainly for NMEA and SeaTalk. Please note, + that this package is not mandatory. It is perfectly fine + to use the \c nmea package without \c io. The IO is built only if the + necessary headers are available, typically on a Linux system. \section sec_overview_package_dependencies Package dependencies The directory structure underneath \c src reflects the packages. diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 5de84752..bd6d3dcf 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -31,16 +31,16 @@ target_link_libraries(bitset_iterate marnav::marnav) if(ENABLE_IO) add_executable(read_seatalk read_seatalk.cpp) - target_link_libraries(read_seatalk marnav::marnav) + target_link_libraries(read_seatalk marnav::marnav marnav::marnav-io) add_executable(read_ais read_ais.cpp) - target_link_libraries(read_ais marnav::marnav) + target_link_libraries(read_ais marnav::marnav marnav::marnav-io) add_executable(nmea_multiplexer nmea_multiplexer.cpp) - target_link_libraries(nmea_multiplexer marnav::marnav) + target_link_libraries(nmea_multiplexer marnav::marnav marnav::marnav-io) add_executable(read_nmea read_nmea.cpp) - target_link_libraries(read_nmea marnav::marnav) + target_link_libraries(read_nmea marnav::marnav marnav::marnav-io) endif() if(Boost_FOUND AND ENABLE_IO) @@ -49,6 +49,7 @@ if(Boost_FOUND AND ENABLE_IO) add_executable(read_nmea_boostasio read_nmea_boostasio.cpp) target_link_libraries(read_nmea_boostasio marnav::marnav + marnav::marnav-io ${Boost_LIBRARIES} pthread ) @@ -56,6 +57,7 @@ if(Boost_FOUND AND ENABLE_IO) add_executable(seatalk_nmea_converter simple_seatalk_nmea_converter.cpp) target_link_libraries(seatalk_nmea_converter marnav::marnav + marnav::marnav-io ${Boost_LIBRARIES} pthread ) @@ -63,6 +65,7 @@ if(Boost_FOUND AND ENABLE_IO) add_executable(serial_to_tcp serial_to_tcp.cpp) target_link_libraries(serial_to_tcp marnav::marnav + marnav::marnav-io ${Boost_LIBRARIES} pthread ) diff --git a/examples/library/CMakeLists.txt b/examples/library/CMakeLists.txt index 482c1440..d34f7e40 100644 --- a/examples/library/CMakeLists.txt +++ b/examples/library/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.19) project(foobar LANGUAGES CXX VERSION 0.0.0) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/examples/library/foobar.cpp b/examples/library/foobar.cpp index 565054fc..9af25da4 100644 --- a/examples/library/foobar.cpp +++ b/examples/library/foobar.cpp @@ -3,6 +3,6 @@ int main(int, char **) { - std::cout << "project version: " << marnav::project_version << '\n'; + std::cout << "project version: " << marnav::get_meta().project_version << '\n'; return 0; } diff --git a/examples/nmea_multiplexer.cpp b/examples/nmea_multiplexer.cpp index 20c1fefd..08d0040f 100644 --- a/examples/nmea_multiplexer.cpp +++ b/examples/nmea_multiplexer.cpp @@ -4,8 +4,8 @@ #include #include -#include -#include +#include +#include #include int main(int, char **) diff --git a/examples/read_ais.cpp b/examples/read_ais.cpp index 04db107b..9df99e21 100644 --- a/examples/read_ais.cpp +++ b/examples/read_ais.cpp @@ -7,8 +7,8 @@ #include #include #include -#include -#include +#include +#include #include namespace marnav_example diff --git a/examples/read_nmea.cpp b/examples/read_nmea.cpp index 5f293920..8ed3d43a 100644 --- a/examples/read_nmea.cpp +++ b/examples/read_nmea.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include #include #include diff --git a/examples/read_nmea_boostasio.cpp b/examples/read_nmea_boostasio.cpp index 0da6f71b..c9d93dae 100644 --- a/examples/read_nmea_boostasio.cpp +++ b/examples/read_nmea_boostasio.cpp @@ -1,7 +1,7 @@ /// This example shows how to use Boost.ASIO in order to read synchronously /// NMEA data from a serial port. -#include +#include #include #include #include diff --git a/examples/read_seatalk.cpp b/examples/read_seatalk.cpp index ff09ea37..1b6308ab 100644 --- a/examples/read_seatalk.cpp +++ b/examples/read_seatalk.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include #include #include diff --git a/examples/select.cpp b/examples/select.cpp index 3ec5f96a..c7df9551 100644 --- a/examples/select.cpp +++ b/examples/select.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include #include #include diff --git a/examples/serial_to_tcp.cpp b/examples/serial_to_tcp.cpp index b8c01d6e..985c2f5e 100644 --- a/examples/serial_to_tcp.cpp +++ b/examples/serial_to_tcp.cpp @@ -4,7 +4,7 @@ // Boost.ASIO is used for both, serial and TCP connections. #include -#include +#include #include namespace marnav_example diff --git a/examples/simple_seatalk_nmea_converter.cpp b/examples/simple_seatalk_nmea_converter.cpp index c89ad948..e9230cbc 100644 --- a/examples/simple_seatalk_nmea_converter.cpp +++ b/examples/simple_seatalk_nmea_converter.cpp @@ -2,8 +2,8 @@ #include #include #include -#include -#include +#include +#include #include #include diff --git a/examples/subdirectory/CMakeLists.txt b/examples/subdirectory/CMakeLists.txt index ff19ec4a..ee609119 100644 --- a/examples/subdirectory/CMakeLists.txt +++ b/examples/subdirectory/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.19) project(foobar LANGUAGES CXX VERSION 0.0.0) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/examples/subdirectory/foobar.cpp b/examples/subdirectory/foobar.cpp index 565054fc..9af25da4 100644 --- a/examples/subdirectory/foobar.cpp +++ b/examples/subdirectory/foobar.cpp @@ -3,6 +3,6 @@ int main(int, char **) { - std::cout << "project version: " << marnav::project_version << '\n'; + std::cout << "project version: " << marnav::get_meta().project_version << '\n'; return 0; } diff --git a/examples/subproject/src/CMakeLists.txt b/examples/subproject/src/CMakeLists.txt index 79652c27..dddc6c66 100644 --- a/examples/subproject/src/CMakeLists.txt +++ b/examples/subproject/src/CMakeLists.txt @@ -1,4 +1,4 @@ -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/examples/subproject/src/main.cpp b/examples/subproject/src/main.cpp index 64b885e0..80795e39 100644 --- a/examples/subproject/src/main.cpp +++ b/examples/subproject/src/main.cpp @@ -7,12 +7,14 @@ int main(int, char **) { std::cout << "marnav-demo\n"; + + const auto meta = marnav::get_meta(); // clang-format off - std::cout << "project version: " << marnav::project_version << '\n'; + std::cout << "project version: " << meta.project_version << '\n'; std::cout << "marnav version:" - << ' ' << marnav::version_major - << '.' << marnav::version_minor - << '.' << marnav::version_patch + << ' ' << meta.version_major + << '.' << meta.version_minor + << '.' << meta.version_patch << '\n'; // clang-format on diff --git a/include/marnav/io/default_nmea_reader.hpp b/include/marnav-io/default_nmea_reader.hpp similarity index 96% rename from include/marnav/io/default_nmea_reader.hpp rename to include/marnav-io/default_nmea_reader.hpp index bef5f08d..47698a3d 100644 --- a/include/marnav/io/default_nmea_reader.hpp +++ b/include/marnav-io/default_nmea_reader.hpp @@ -1,7 +1,7 @@ #ifndef MARNAV_IO_DEFAULT_NMEA_READER_HPP #define MARNAV_IO_DEFAULT_NMEA_READER_HPP -#include +#include namespace marnav { diff --git a/include/marnav/io/default_nmea_serial.hpp b/include/marnav-io/default_nmea_serial.hpp similarity index 95% rename from include/marnav/io/default_nmea_serial.hpp rename to include/marnav-io/default_nmea_serial.hpp index 68c16fcf..21fabb48 100644 --- a/include/marnav/io/default_nmea_serial.hpp +++ b/include/marnav-io/default_nmea_serial.hpp @@ -1,7 +1,7 @@ #ifndef MARNAV_IO_DEFAULT_NMEA_SERIAL_HPP #define MARNAV_IO_DEFAULT_NMEA_SERIAL_HPP -#include +#include namespace marnav { diff --git a/include/marnav/io/default_seatalk_reader.hpp b/include/marnav-io/default_seatalk_reader.hpp similarity index 95% rename from include/marnav/io/default_seatalk_reader.hpp rename to include/marnav-io/default_seatalk_reader.hpp index ac7a27d2..1ccd82d8 100644 --- a/include/marnav/io/default_seatalk_reader.hpp +++ b/include/marnav-io/default_seatalk_reader.hpp @@ -1,7 +1,7 @@ #ifndef MARNAV_IO_DEFAULT_SEATALK_READER_HPP #define MARNAV_IO_DEFAULT_SEATALK_READER_HPP -#include +#include namespace marnav { diff --git a/include/marnav/io/default_seatalk_serial.hpp b/include/marnav-io/default_seatalk_serial.hpp similarity index 95% rename from include/marnav/io/default_seatalk_serial.hpp rename to include/marnav-io/default_seatalk_serial.hpp index adaf2237..46bc9447 100644 --- a/include/marnav/io/default_seatalk_serial.hpp +++ b/include/marnav-io/default_seatalk_serial.hpp @@ -1,7 +1,7 @@ #ifndef MARNAV_IO_DEFAULT_SEATALK_SERIAL_HPP #define MARNAV_IO_DEFAULT_SEATALK_SERIAL_HPP -#include +#include namespace marnav { diff --git a/include/marnav/io/device.hpp b/include/marnav-io/device.hpp similarity index 100% rename from include/marnav/io/device.hpp rename to include/marnav-io/device.hpp diff --git a/include/marnav/io/nmea_reader.hpp b/include/marnav-io/nmea_reader.hpp similarity index 96% rename from include/marnav/io/nmea_reader.hpp rename to include/marnav-io/nmea_reader.hpp index 3e1a4264..9a3f393c 100644 --- a/include/marnav/io/nmea_reader.hpp +++ b/include/marnav-io/nmea_reader.hpp @@ -1,7 +1,7 @@ #ifndef MARNAV_IO_NMEA_READER_HPP #define MARNAV_IO_NMEA_READER_HPP -#include +#include #include namespace marnav diff --git a/include/marnav/io/seatalk_reader.hpp b/include/marnav-io/seatalk_reader.hpp similarity index 97% rename from include/marnav/io/seatalk_reader.hpp rename to include/marnav-io/seatalk_reader.hpp index 9a24f4bd..706019dd 100644 --- a/include/marnav/io/seatalk_reader.hpp +++ b/include/marnav-io/seatalk_reader.hpp @@ -1,7 +1,7 @@ #ifndef MARNAV_IO_SEATALK_READER_HPP #define MARNAV_IO_SEATALK_READER_HPP -#include +#include #include namespace marnav diff --git a/include/marnav/io/selectable.hpp b/include/marnav-io/selectable.hpp similarity index 100% rename from include/marnav/io/selectable.hpp rename to include/marnav-io/selectable.hpp diff --git a/include/marnav/io/serial.hpp b/include/marnav-io/serial.hpp similarity index 97% rename from include/marnav/io/serial.hpp rename to include/marnav-io/serial.hpp index 8b4e1eb3..c4bd5c85 100644 --- a/include/marnav/io/serial.hpp +++ b/include/marnav-io/serial.hpp @@ -1,7 +1,7 @@ #ifndef MARNAV_IO_SERIAL_HPP #define MARNAV_IO_SERIAL_HPP -#include +#include #include namespace marnav diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 91974dba..8d7c4215 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,10 +1,78 @@ cmake_minimum_required(VERSION 3.19) +include(GNUInstallDirs) + +if(UNIX) + set(CMAKE_SKIP_BUILD_RPATH false) + set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}:$ORIGIN/../${CMAKE_INSTALL_LIBDIR}:$$ORIGIN/../${CMAKE_INSTALL_LIBDIR}:$ORIGIN/..:$$ORIGIN/..") + set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) +endif() + +file(WRITE ${CMAKE_BINARY_DIR}/io-test.cpp [[ +#include +#include +#include +int main() {} +]]) +try_compile(support_for_io ${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}/io-test.cpp) + ### lib: marnav message(STATUS "Build shared library : ${BUILD_SHARED_LIBS}") -message(STATUS "Build IO support : ${ENABLE_IO}") message(STATUS "Build Tools : ${ENABLE_TOOLS}") +message(STATUS "Build IO support : ${support_for_io}") + +set(common_compile_options + -pipe + -ggdb + -Wall + -Wextra + -pedantic-errors + -Wold-style-cast + -Wcast-align + -Wcast-qual + -Werror + -Wdisabled-optimization + -Wfloat-conversion + -Wformat=2 + -Wformat-security + -Wformat-y2k + -Wimport + -Winit-self + -Wmissing-field-initializers + -Wmissing-format-attribute + -Wmissing-include-dirs + -Wmissing-noreturn + -Wnon-virtual-dtor + -Woverloaded-virtual + -Wpacked + -Wpointer-arith + -Wredundant-decls + -Wstrict-aliasing=2 + -Wswitch + -Wunreachable-code + -Wunused + -Wunused-parameter + -Wvariadic-macros + -Wwrite-strings + # explicitly disabled on purpose: + -Wno-inline + -Wno-conversion + -Wno-shadow + -Wno-sign-conversion + -Wno-stack-protector + -Wno-effc++ + -Wno-padded + -Wno-long-long + -Wno-unused-function + -Wno-comment + -Wno-format-nonliteral + -Wno-switch-enum + -Wno-switch-default + + $<$:-pg> + $<$:-fno-omit-frame-pointer> + ) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/marnav/version.cpp.in @@ -208,6 +276,19 @@ target_sources(marnav marnav/utils/mmsi_country.cpp ) +target_include_directories(marnav + PRIVATE + $ + PUBLIC + $ + $ + ) + +target_compile_options(marnav + PRIVATE + ${common_compile_options} + ) + include(CheckSymbolExists) if(APPLE) check_symbol_exists(strtod_l xlocale.h HAVE_STRTOD_L) @@ -222,107 +303,54 @@ else() endif() install( - DIRECTORY - ${PROJECT_SOURCE_DIR}/include/marnav/ais - ${PROJECT_SOURCE_DIR}/include/marnav/geo - ${PROJECT_SOURCE_DIR}/include/marnav/math - ${PROJECT_SOURCE_DIR}/include/marnav/nmea - ${PROJECT_SOURCE_DIR}/include/marnav/seatalk - ${PROJECT_SOURCE_DIR}/include/marnav/units - ${PROJECT_SOURCE_DIR}/include/marnav/utils - DESTINATION include/marnav + DIRECTORY ${PROJECT_SOURCE_DIR}/include/marnav + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ ) -install( - FILES - ${PROJECT_SOURCE_DIR}/include/marnav/version.hpp - DESTINATION include/marnav +set_target_properties(marnav + PROPERTIES VERSION "${PROJECT_VERSION}" + SOVERSION "${PROJECT_VERSION}" ) -if(ENABLE_IO) - target_sources(marnav +if(support_for_io) + add_library(marnav-io) + add_library(marnav::marnav-io ALIAS marnav-io) + + target_compile_features(marnav-io PRIVATE - marnav/io/serial.cpp - marnav/io/nmea_reader.cpp - marnav/io/default_nmea_reader.cpp - marnav/io/seatalk_reader.cpp - marnav/io/default_seatalk_reader.cpp + cxx_std_17 ) - install( - DIRECTORY ${PROJECT_SOURCE_DIR}/include/marnav/io - DESTINATION include/marnav - ) -endif() - -target_include_directories(marnav - PRIVATE - $ - PUBLIC - $ - $ - ) -target_compile_options(marnav - PRIVATE - -pipe - -ggdb - -Wall - -Wextra - -pedantic-errors - -Wold-style-cast - -Wcast-align - -Wcast-qual - -Werror - -Wdisabled-optimization - -Wfloat-conversion - -Wformat=2 - -Wformat-security - -Wformat-y2k - -Wimport - -Winit-self - -Wmissing-field-initializers - -Wmissing-format-attribute - -Wmissing-include-dirs - -Wmissing-noreturn - -Wnon-virtual-dtor - -Woverloaded-virtual - -Wpacked - -Wpointer-arith - -Wredundant-decls - -Wstrict-aliasing=2 - -Wswitch - -Wunreachable-code - -Wunused - -Wunused-parameter - -Wvariadic-macros - -Wwrite-strings - # explicitly disabled on purpose: - -Wno-inline - -Wno-conversion - -Wno-shadow - -Wno-sign-conversion - -Wno-stack-protector - -Wno-effc++ - -Wno-padded - -Wno-long-long - -Wno-unused-function - -Wno-comment - -Wno-format-nonliteral - -Wno-switch-enum - -Wno-switch-default - ) + target_sources(marnav-io + PRIVATE + marnav-io/serial.cpp + marnav-io/nmea_reader.cpp + marnav-io/default_nmea_reader.cpp + marnav-io/seatalk_reader.cpp + marnav-io/default_seatalk_reader.cpp + ) -if(ENABLE_PROFILING) - target_compile_options(marnav + target_compile_options(marnav-io PRIVATE - -pg + ${common_compile_options} ) -endif() -if(ENABLE_BENCHMARK) - target_compile_options(marnav + target_include_directories(marnav-io PRIVATE - -fno-omit-frame-pointer + $ + PUBLIC + $ + $ + ) + + set_target_properties(marnav-io + PROPERTIES VERSION "${PROJECT_VERSION}" + SOVERSION "${PROJECT_VERSION}" + ) + + install( + DIRECTORY ${PROJECT_SOURCE_DIR}/include/marnav-io + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ ) endif() @@ -355,7 +383,6 @@ if(ENABLE_IWYU) endif() endif() - if(CMAKE_BUILD_TYPE MATCHES Coverage) message(STATUS "Coverage: enabled") target_compile_options(marnav @@ -369,14 +396,8 @@ if(CMAKE_BUILD_TYPE MATCHES Coverage) ) endif() -set_target_properties(marnav - PROPERTIES VERSION "${PROJECT_VERSION}" - SOVERSION "${PROJECT_VERSION}" - ) - # stuff for the config and config-version files -set(INCLUDE_INSTALL_DIR include) -set(LIB_INSTALL_DIR lib) +set(include_install_dir ${CMAKE_INSTALL_INCLUDEDIR}) include(CMakePackageConfigHelpers) set(targets_export_name ${PROJECT_NAME}-targets) @@ -384,23 +405,34 @@ set(targets_export_name ${PROJECT_NAME}-targets) install( TARGETS marnav EXPORT ${targets_export_name} - LIBRARY DESTINATION ${LIB_INSTALL_DIR} - ARCHIVE DESTINATION ${LIB_INSTALL_DIR} - RUNTIME DESTINATION bin - INCLUDES DESTINATION ${INCLUDE_INSTALL_DIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${include_install_dir} ) +if(TARGET marnav-io) + install( + TARGETS marnav-io + EXPORT ${targets_export_name} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${include_install_dir} + ) +endif() + configure_package_config_file( config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" - INSTALL_DESTINATION "${LIB_INSTALL_DIR}/cmake/${PROJECT_NAME}" - PATH_VARS INCLUDE_INSTALL_DIR + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" + PATH_VARS include_install_dir ) install( EXPORT ${targets_export_name} NAMESPACE "${PROJECT_NAME}::" - DESTINATION "${LIB_INSTALL_DIR}/cmake/${PROJECT_NAME}" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" ) write_basic_package_version_file( @@ -412,7 +444,7 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake" DESTINATION - "${LIB_INSTALL_DIR}/cmake/${PROJECT_NAME}" + "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" ) @@ -421,6 +453,7 @@ if(ENABLE_TOOLS) add_executable(nmeasum) target_sources(nmeasum PRIVATE nmeasum.cpp) target_link_libraries(nmeasum PRIVATE marnav::marnav) + target_compile_features(nmeasum PRIVATE cxx_std_17) target_compile_options(nmeasum PRIVATE @@ -434,6 +467,7 @@ if(ENABLE_TOOLS) ### bin: nmeatool add_executable(nmeatool) target_sources(nmeatool PRIVATE nmeatool.cpp) + target_compile_features(nmeatool PRIVATE cxx_std_17) target_compile_options(nmeatool PRIVATE @@ -446,12 +480,13 @@ if(ENABLE_TOOLS) target_compile_definitions(nmeatool PRIVATE - $<$:ENABLE_IO> + $<$:HAVE_IO> ) target_link_libraries(nmeatool PRIVATE marnav::marnav + $<$:marnav::marnav-io> cxxopts::cxxopts fmt::fmt ) @@ -466,4 +501,13 @@ if(ENABLE_TOOLS) FAIL_REGULAR_EXPRESSION "\\* [A-Z]+" ) endif() + + install( + TARGETS nmeasum nmeatool + EXPORT ${targets_export_name} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${include_install_dir} + ) endif() diff --git a/src/marnav/io/default_nmea_reader.cpp b/src/marnav-io/default_nmea_reader.cpp similarity index 97% rename from src/marnav/io/default_nmea_reader.cpp rename to src/marnav-io/default_nmea_reader.cpp index 6d830c90..1c5e05d0 100644 --- a/src/marnav/io/default_nmea_reader.cpp +++ b/src/marnav-io/default_nmea_reader.cpp @@ -1,4 +1,4 @@ -#include +#include /// @example read_nmea.cpp /// Shows how to use the marnav::io::default_nmea_reader to read NMEA data from diff --git a/src/marnav/io/default_seatalk_reader.cpp b/src/marnav-io/default_seatalk_reader.cpp similarity index 96% rename from src/marnav/io/default_seatalk_reader.cpp rename to src/marnav-io/default_seatalk_reader.cpp index c8facdc0..2c7e0221 100644 --- a/src/marnav/io/default_seatalk_reader.cpp +++ b/src/marnav-io/default_seatalk_reader.cpp @@ -1,4 +1,4 @@ -#include +#include /// @example simple_seatalk_nmea_converter.cpp /// This is a very simplistic conversion from SeaTalk messages to NMEA sentences. diff --git a/src/marnav/io/nmea_reader.cpp b/src/marnav-io/nmea_reader.cpp similarity index 98% rename from src/marnav/io/nmea_reader.cpp rename to src/marnav-io/nmea_reader.cpp index a1dfe676..1363843a 100644 --- a/src/marnav/io/nmea_reader.cpp +++ b/src/marnav-io/nmea_reader.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/marnav/io/seatalk_reader.cpp b/src/marnav-io/seatalk_reader.cpp similarity index 98% rename from src/marnav/io/seatalk_reader.cpp rename to src/marnav-io/seatalk_reader.cpp index 1a6b6f82..165fc9ce 100644 --- a/src/marnav/io/seatalk_reader.cpp +++ b/src/marnav-io/seatalk_reader.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/marnav/io/serial.cpp b/src/marnav-io/serial.cpp similarity index 99% rename from src/marnav/io/serial.cpp rename to src/marnav-io/serial.cpp index eaa8777d..e2c8be72 100644 --- a/src/marnav/io/serial.cpp +++ b/src/marnav-io/serial.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include #include diff --git a/src/nmeatool.cpp b/src/nmeatool.cpp index 5c2c84e3..55995d06 100644 --- a/src/nmeatool.cpp +++ b/src/nmeatool.cpp @@ -153,8 +153,8 @@ #include #if defined(ENABLE_IO) - #include - #include + #include + #include #endif #include diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt dissimilarity index 73% index 8d076aef..1959004d 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,293 +1,294 @@ -cmake_minimum_required(VERSION 3.19) - -add_executable(testrunner) - -target_sources(testrunner - PRIVATE - ais/Test_ais.cpp - ais/Test_ais_angle.cpp - ais/Test_ais_binary_001_11.cpp - ais/Test_ais_binary_200_10.cpp - ais/Test_ais_message.cpp - ais/Test_ais_message_01.cpp - ais/Test_ais_message_02.cpp - ais/Test_ais_message_03.cpp - ais/Test_ais_message_04.cpp - ais/Test_ais_message_05.cpp - ais/Test_ais_message_06.cpp - ais/Test_ais_message_07.cpp - ais/Test_ais_message_08.cpp - ais/Test_ais_message_09.cpp - ais/Test_ais_message_10.cpp - ais/Test_ais_message_11.cpp - ais/Test_ais_message_12.cpp - ais/Test_ais_message_13.cpp - ais/Test_ais_message_14.cpp - ais/Test_ais_message_17.cpp - ais/Test_ais_message_18.cpp - ais/Test_ais_message_19.cpp - ais/Test_ais_message_20.cpp - ais/Test_ais_message_21.cpp - ais/Test_ais_message_22.cpp - ais/Test_ais_message_23.cpp - ais/Test_ais_message_24.cpp - ais/Test_ais_rate_of_turn.cpp - geo/Test_geo_angle.cpp - geo/Test_geo_cpa.cpp - geo/Test_geo_geodesic.cpp - geo/Test_geo_region.cpp - math/floatingpoint.cpp - math/floatingpoint_ulps.cpp - math/Test_math_floatingpoint.cpp - math/Test_math_matrix.cpp - math/Test_math_quaternion.cpp - math/Test_math_vector.cpp - nmea/Test_nmea.cpp - nmea/Test_nmea_aam.cpp - nmea/Test_nmea_ack.cpp - nmea/Test_nmea_alm.cpp - nmea/Test_nmea_alr.cpp - nmea/Test_nmea_angle.cpp - nmea/Test_nmea_apa.cpp - nmea/Test_nmea_apb.cpp - nmea/Test_nmea_bec.cpp - nmea/Test_nmea_bod.cpp - nmea/Test_nmea_bwc.cpp - nmea/Test_nmea_bwr.cpp - nmea/Test_nmea_bww.cpp - nmea/Test_nmea_checksum.cpp - nmea/Test_nmea_date.cpp - nmea/Test_nmea_dbk.cpp - nmea/Test_nmea_dbt.cpp - nmea/Test_nmea_dpt.cpp - nmea/Test_nmea_dsc.cpp - nmea/Test_nmea_dse.cpp - nmea/Test_nmea_dtm.cpp - nmea/Test_nmea_duration.cpp - nmea/Test_nmea_fsi.cpp - nmea/Test_nmea_gbs.cpp - nmea/Test_nmea_gga.cpp - nmea/Test_nmea_glc.cpp - nmea/Test_nmea_gll.cpp - nmea/Test_nmea_gns.cpp - nmea/Test_nmea_grs.cpp - nmea/Test_nmea_gsa.cpp - nmea/Test_nmea_gst.cpp - nmea/Test_nmea_gsv.cpp - nmea/Test_nmea_gtd.cpp - nmea/Test_nmea_hdg.cpp - nmea/Test_nmea_hdm.cpp - nmea/Test_nmea_hdt.cpp - nmea/Test_nmea_hfb.cpp - nmea/Test_nmea_hsc.cpp - nmea/Test_nmea_io.cpp - nmea/Test_nmea_its.cpp - nmea/Test_nmea_lcd.cpp - nmea/Test_nmea_manufacturer.cpp - nmea/Test_nmea_mob.cpp - nmea/Test_nmea_msk.cpp - nmea/Test_nmea_mss.cpp - nmea/Test_nmea_mta.cpp - nmea/Test_nmea_mtw.cpp - nmea/Test_nmea_mwd.cpp - nmea/Test_nmea_mwv.cpp - nmea/Test_nmea_osd.cpp - nmea/Test_nmea_pgrme.cpp - nmea/Test_nmea_pgrmm.cpp - nmea/Test_nmea_pgrmz.cpp - nmea/Test_nmea_r00.cpp - nmea/Test_nmea_rma.cpp - nmea/Test_nmea_rmb.cpp - nmea/Test_nmea_rmc.cpp - nmea/Test_nmea_rot.cpp - nmea/Test_nmea_route.cpp - nmea/Test_nmea_rpm.cpp - nmea/Test_nmea_rsa.cpp - nmea/Test_nmea_rsd.cpp - nmea/Test_nmea_rte.cpp - nmea/Test_nmea_sentence.cpp - nmea/Test_nmea_sfi.cpp - nmea/Test_nmea_split.cpp - nmea/Test_nmea_stalk.cpp - nmea/Test_nmea_stn.cpp - nmea/Test_nmea_tag_block.cpp - nmea/Test_nmea_tds.cpp - nmea/Test_nmea_tep.cpp - nmea/Test_nmea_tfi.cpp - nmea/Test_nmea_time.cpp - nmea/Test_nmea_tll.cpp - nmea/Test_nmea_tpc.cpp - nmea/Test_nmea_tpr.cpp - nmea/Test_nmea_tpt.cpp - nmea/Test_nmea_ttm.cpp - nmea/Test_nmea_vbw.cpp - nmea/Test_nmea_vdm.cpp - nmea/Test_nmea_vdo.cpp - nmea/Test_nmea_vdr.cpp - nmea/Test_nmea_version.cpp - nmea/Test_nmea_vhw.cpp - nmea/Test_nmea_vlw.cpp - nmea/Test_nmea_vpw.cpp - nmea/Test_nmea_vtg.cpp - nmea/Test_nmea_vwe.cpp - nmea/Test_nmea_vwr.cpp - nmea/Test_nmea_waypoint.cpp - nmea/Test_nmea_wcv.cpp - nmea/Test_nmea_wdc.cpp - nmea/Test_nmea_wdr.cpp - nmea/Test_nmea_wnc.cpp - nmea/Test_nmea_wpl.cpp - nmea/Test_nmea_xdr.cpp - nmea/Test_nmea_xte.cpp - nmea/Test_nmea_xtr.cpp - nmea/Test_nmea_zda.cpp - nmea/Test_nmea_zdl.cpp - nmea/Test_nmea_zfi.cpp - nmea/Test_nmea_zfo.cpp - nmea/Test_nmea_zlz.cpp - nmea/Test_nmea_zpi.cpp - nmea/Test_nmea_zta.cpp - nmea/Test_nmea_zte.cpp - nmea/Test_nmea_ztg.cpp - seatalk/Test_seatalk_message.cpp - seatalk/Test_seatalk_message_00.cpp - seatalk/Test_seatalk_message_01.cpp - seatalk/Test_seatalk_message_05.cpp - seatalk/Test_seatalk_message_10.cpp - seatalk/Test_seatalk_message_11.cpp - seatalk/Test_seatalk_message_20.cpp - seatalk/Test_seatalk_message_21.cpp - seatalk/Test_seatalk_message_22.cpp - seatalk/Test_seatalk_message_23.cpp - seatalk/Test_seatalk_message_24.cpp - seatalk/Test_seatalk_message_25.cpp - seatalk/Test_seatalk_message_26.cpp - seatalk/Test_seatalk_message_27.cpp - seatalk/Test_seatalk_message_30.cpp - seatalk/Test_seatalk_message_36.cpp - seatalk/Test_seatalk_message_38.cpp - seatalk/Test_seatalk_message_50.cpp - seatalk/Test_seatalk_message_51.cpp - seatalk/Test_seatalk_message_52.cpp - seatalk/Test_seatalk_message_53.cpp - seatalk/Test_seatalk_message_54.cpp - seatalk/Test_seatalk_message_56.cpp - seatalk/Test_seatalk_message_58.cpp - seatalk/Test_seatalk_message_59.cpp - seatalk/Test_seatalk_message_65.cpp - seatalk/Test_seatalk_message_66.cpp - seatalk/Test_seatalk_message_6c.cpp - seatalk/Test_seatalk_message_86.cpp - seatalk/Test_seatalk_message_87.cpp - seatalk/Test_seatalk_message_89.cpp - units/detail/basic_quantity_cmp.cpp - units/detail/basic_quantity.cpp - units/detail/basic_quantity_fnc.cpp - units/detail/basic_quantity_ops.cpp - units/detail/basic_unit_cmp.cpp - units/detail/basic_unit.cpp - units/detail/basic_unit_fnc.cpp - units/detail/basic_unit_ops.cpp - units/detail/dimension.cpp - units/detail/units.cpp - units/Test_basic_unit.cpp - units/Test_basic_quantity.cpp - units/Test_custom_numeric_type.cpp - utils/Test_utils_bitset.cpp - utils/Test_utils_mmsi.cpp - utils/Test_utils_mmsi_country.cpp - ) - -if(ENABLE_IO) - target_sources(testrunner - PRIVATE - io/Test_io_nmea_reader.cpp - io/Test_io_seatalk_reader.cpp - ) -endif() - -target_include_directories(testrunner - PRIVATE - $ - $ - $ - ) - -target_link_libraries(testrunner - marnav::marnav - googletest::gtest - googletest::gmock - googletest::gtest_main - googletest::gmock_main - pthread - ) - -add_test( - NAME unittest-testrunner - COMMAND testrunner - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - ) - -add_custom_target(testrunner_runtest - COMMAND testrunner --gtest_shuffle - DEPENDS testrunner - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - ) - -add_custom_target(unittest) -add_dependencies(unittest testrunner_runtest) - -execute_process( - COMMAND ${CMAKE_COMMAND} -E tar xzf "${CMAKE_CURRENT_SOURCE_DIR}/ais/ais-sample.tar.gz" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - ) - -add_executable(test-ais-sample - test-ais-sample.cpp - ) - -target_include_directories(test-ais-sample - PRIVATE $) - -target_link_libraries(test-ais-sample PRIVATE marnav::marnav) - -add_test( - NAME integrationtest-test-ais-sample - COMMAND test-ais-sample - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - ) - -execute_process( - COMMAND ${CMAKE_COMMAND} -E tar xzf "${CMAKE_CURRENT_SOURCE_DIR}/nmea/nmea-sample.tar.gz" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - ) - -add_executable(test-nmea-sample test-nmea-sample.cpp) - -target_include_directories(test-nmea-sample - PRIVATE $) - -target_link_libraries(test-nmea-sample PRIVATE marnav::marnav) - -add_test( - NAME integrationtest-test-nmea-sample - COMMAND test-nmea-sample - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - ) - -# excluded with coverage builds, does not make sense otherwise -if(NOT CMAKE_BUILD_TYPE MATCHES Coverage AND ENABLE_TESTS_BENCHMARK) - macro(setup_benchmark NAME SOURCE) - add_executable(${NAME} ${SOURCE}) - target_include_directories(${NAME} - PRIVATE $) - target_link_libraries(${NAME} marnav::marnav benchmark::benchmark pthread) - endmacro() - - setup_benchmark(benchmark_nmea_io nmea/Benchmark_nmea_io.cpp) - setup_benchmark(benchmark_nmea_split nmea/Benchmark_nmea_split.cpp) - setup_benchmark(benchmark_nmea_checksum nmea/Benchmark_nmea_checksum.cpp) - setup_benchmark(benchmark_nmea_manufacturer nmea/Benchmark_nmea_manufacturer.cpp) - setup_benchmark(benchmark_nmea_sentence nmea/Benchmark_nmea_sentence.cpp) - setup_benchmark(benchmark_ais_message ais/Benchmark_ais_message.cpp) -endif() +cmake_minimum_required(VERSION 3.19) + +add_executable(testrunner) + +target_sources(testrunner + PRIVATE + marnav/ais/Test_ais.cpp + marnav/ais/Test_ais_angle.cpp + marnav/ais/Test_ais_binary_001_11.cpp + marnav/ais/Test_ais_binary_200_10.cpp + marnav/ais/Test_ais_message.cpp + marnav/ais/Test_ais_message_01.cpp + marnav/ais/Test_ais_message_02.cpp + marnav/ais/Test_ais_message_03.cpp + marnav/ais/Test_ais_message_04.cpp + marnav/ais/Test_ais_message_05.cpp + marnav/ais/Test_ais_message_06.cpp + marnav/ais/Test_ais_message_07.cpp + marnav/ais/Test_ais_message_08.cpp + marnav/ais/Test_ais_message_09.cpp + marnav/ais/Test_ais_message_10.cpp + marnav/ais/Test_ais_message_11.cpp + marnav/ais/Test_ais_message_12.cpp + marnav/ais/Test_ais_message_13.cpp + marnav/ais/Test_ais_message_14.cpp + marnav/ais/Test_ais_message_17.cpp + marnav/ais/Test_ais_message_18.cpp + marnav/ais/Test_ais_message_19.cpp + marnav/ais/Test_ais_message_20.cpp + marnav/ais/Test_ais_message_21.cpp + marnav/ais/Test_ais_message_22.cpp + marnav/ais/Test_ais_message_23.cpp + marnav/ais/Test_ais_message_24.cpp + marnav/ais/Test_ais_rate_of_turn.cpp + marnav/geo/Test_geo_angle.cpp + marnav/geo/Test_geo_cpa.cpp + marnav/geo/Test_geo_geodesic.cpp + marnav/geo/Test_geo_region.cpp + marnav/math/floatingpoint.cpp + marnav/math/floatingpoint_ulps.cpp + marnav/math/Test_math_floatingpoint.cpp + marnav/math/Test_math_matrix.cpp + marnav/math/Test_math_quaternion.cpp + marnav/math/Test_math_vector.cpp + marnav/nmea/Test_nmea.cpp + marnav/nmea/Test_nmea_aam.cpp + marnav/nmea/Test_nmea_ack.cpp + marnav/nmea/Test_nmea_alm.cpp + marnav/nmea/Test_nmea_alr.cpp + marnav/nmea/Test_nmea_angle.cpp + marnav/nmea/Test_nmea_apa.cpp + marnav/nmea/Test_nmea_apb.cpp + marnav/nmea/Test_nmea_bec.cpp + marnav/nmea/Test_nmea_bod.cpp + marnav/nmea/Test_nmea_bwc.cpp + marnav/nmea/Test_nmea_bwr.cpp + marnav/nmea/Test_nmea_bww.cpp + marnav/nmea/Test_nmea_checksum.cpp + marnav/nmea/Test_nmea_date.cpp + marnav/nmea/Test_nmea_dbk.cpp + marnav/nmea/Test_nmea_dbt.cpp + marnav/nmea/Test_nmea_dpt.cpp + marnav/nmea/Test_nmea_dsc.cpp + marnav/nmea/Test_nmea_dse.cpp + marnav/nmea/Test_nmea_dtm.cpp + marnav/nmea/Test_nmea_duration.cpp + marnav/nmea/Test_nmea_fsi.cpp + marnav/nmea/Test_nmea_gbs.cpp + marnav/nmea/Test_nmea_gga.cpp + marnav/nmea/Test_nmea_glc.cpp + marnav/nmea/Test_nmea_gll.cpp + marnav/nmea/Test_nmea_gns.cpp + marnav/nmea/Test_nmea_grs.cpp + marnav/nmea/Test_nmea_gsa.cpp + marnav/nmea/Test_nmea_gst.cpp + marnav/nmea/Test_nmea_gsv.cpp + marnav/nmea/Test_nmea_gtd.cpp + marnav/nmea/Test_nmea_hdg.cpp + marnav/nmea/Test_nmea_hdm.cpp + marnav/nmea/Test_nmea_hdt.cpp + marnav/nmea/Test_nmea_hfb.cpp + marnav/nmea/Test_nmea_hsc.cpp + marnav/nmea/Test_nmea_io.cpp + marnav/nmea/Test_nmea_its.cpp + marnav/nmea/Test_nmea_lcd.cpp + marnav/nmea/Test_nmea_manufacturer.cpp + marnav/nmea/Test_nmea_mob.cpp + marnav/nmea/Test_nmea_msk.cpp + marnav/nmea/Test_nmea_mss.cpp + marnav/nmea/Test_nmea_mta.cpp + marnav/nmea/Test_nmea_mtw.cpp + marnav/nmea/Test_nmea_mwd.cpp + marnav/nmea/Test_nmea_mwv.cpp + marnav/nmea/Test_nmea_osd.cpp + marnav/nmea/Test_nmea_pgrme.cpp + marnav/nmea/Test_nmea_pgrmm.cpp + marnav/nmea/Test_nmea_pgrmz.cpp + marnav/nmea/Test_nmea_r00.cpp + marnav/nmea/Test_nmea_rma.cpp + marnav/nmea/Test_nmea_rmb.cpp + marnav/nmea/Test_nmea_rmc.cpp + marnav/nmea/Test_nmea_rot.cpp + marnav/nmea/Test_nmea_route.cpp + marnav/nmea/Test_nmea_rpm.cpp + marnav/nmea/Test_nmea_rsa.cpp + marnav/nmea/Test_nmea_rsd.cpp + marnav/nmea/Test_nmea_rte.cpp + marnav/nmea/Test_nmea_sentence.cpp + marnav/nmea/Test_nmea_sfi.cpp + marnav/nmea/Test_nmea_split.cpp + marnav/nmea/Test_nmea_stalk.cpp + marnav/nmea/Test_nmea_stn.cpp + marnav/nmea/Test_nmea_tag_block.cpp + marnav/nmea/Test_nmea_tds.cpp + marnav/nmea/Test_nmea_tep.cpp + marnav/nmea/Test_nmea_tfi.cpp + marnav/nmea/Test_nmea_time.cpp + marnav/nmea/Test_nmea_tll.cpp + marnav/nmea/Test_nmea_tpc.cpp + marnav/nmea/Test_nmea_tpr.cpp + marnav/nmea/Test_nmea_tpt.cpp + marnav/nmea/Test_nmea_ttm.cpp + marnav/nmea/Test_nmea_vbw.cpp + marnav/nmea/Test_nmea_vdm.cpp + marnav/nmea/Test_nmea_vdo.cpp + marnav/nmea/Test_nmea_vdr.cpp + marnav/nmea/Test_nmea_version.cpp + marnav/nmea/Test_nmea_vhw.cpp + marnav/nmea/Test_nmea_vlw.cpp + marnav/nmea/Test_nmea_vpw.cpp + marnav/nmea/Test_nmea_vtg.cpp + marnav/nmea/Test_nmea_vwe.cpp + marnav/nmea/Test_nmea_vwr.cpp + marnav/nmea/Test_nmea_waypoint.cpp + marnav/nmea/Test_nmea_wcv.cpp + marnav/nmea/Test_nmea_wdc.cpp + marnav/nmea/Test_nmea_wdr.cpp + marnav/nmea/Test_nmea_wnc.cpp + marnav/nmea/Test_nmea_wpl.cpp + marnav/nmea/Test_nmea_xdr.cpp + marnav/nmea/Test_nmea_xte.cpp + marnav/nmea/Test_nmea_xtr.cpp + marnav/nmea/Test_nmea_zda.cpp + marnav/nmea/Test_nmea_zdl.cpp + marnav/nmea/Test_nmea_zfi.cpp + marnav/nmea/Test_nmea_zfo.cpp + marnav/nmea/Test_nmea_zlz.cpp + marnav/nmea/Test_nmea_zpi.cpp + marnav/nmea/Test_nmea_zta.cpp + marnav/nmea/Test_nmea_zte.cpp + marnav/nmea/Test_nmea_ztg.cpp + marnav/seatalk/Test_seatalk_message.cpp + marnav/seatalk/Test_seatalk_message_00.cpp + marnav/seatalk/Test_seatalk_message_01.cpp + marnav/seatalk/Test_seatalk_message_05.cpp + marnav/seatalk/Test_seatalk_message_10.cpp + marnav/seatalk/Test_seatalk_message_11.cpp + marnav/seatalk/Test_seatalk_message_20.cpp + marnav/seatalk/Test_seatalk_message_21.cpp + marnav/seatalk/Test_seatalk_message_22.cpp + marnav/seatalk/Test_seatalk_message_23.cpp + marnav/seatalk/Test_seatalk_message_24.cpp + marnav/seatalk/Test_seatalk_message_25.cpp + marnav/seatalk/Test_seatalk_message_26.cpp + marnav/seatalk/Test_seatalk_message_27.cpp + marnav/seatalk/Test_seatalk_message_30.cpp + marnav/seatalk/Test_seatalk_message_36.cpp + marnav/seatalk/Test_seatalk_message_38.cpp + marnav/seatalk/Test_seatalk_message_50.cpp + marnav/seatalk/Test_seatalk_message_51.cpp + marnav/seatalk/Test_seatalk_message_52.cpp + marnav/seatalk/Test_seatalk_message_53.cpp + marnav/seatalk/Test_seatalk_message_54.cpp + marnav/seatalk/Test_seatalk_message_56.cpp + marnav/seatalk/Test_seatalk_message_58.cpp + marnav/seatalk/Test_seatalk_message_59.cpp + marnav/seatalk/Test_seatalk_message_65.cpp + marnav/seatalk/Test_seatalk_message_66.cpp + marnav/seatalk/Test_seatalk_message_6c.cpp + marnav/seatalk/Test_seatalk_message_86.cpp + marnav/seatalk/Test_seatalk_message_87.cpp + marnav/seatalk/Test_seatalk_message_89.cpp + marnav/units/detail/basic_quantity_cmp.cpp + marnav/units/detail/basic_quantity.cpp + marnav/units/detail/basic_quantity_fnc.cpp + marnav/units/detail/basic_quantity_ops.cpp + marnav/units/detail/basic_unit_cmp.cpp + marnav/units/detail/basic_unit.cpp + marnav/units/detail/basic_unit_fnc.cpp + marnav/units/detail/basic_unit_ops.cpp + marnav/units/detail/dimension.cpp + marnav/units/detail/units.cpp + marnav/units/Test_basic_unit.cpp + marnav/units/Test_basic_quantity.cpp + marnav/units/Test_custom_numeric_type.cpp + marnav/utils/Test_utils_bitset.cpp + marnav/utils/Test_utils_mmsi.cpp + marnav/utils/Test_utils_mmsi_country.cpp + ) + +if(ENABLE_IO) + target_sources(testrunner + PRIVATE + marnav-io/Test_io_nmea_reader.cpp + marnav-io/Test_io_seatalk_reader.cpp + ) +endif() + +target_include_directories(testrunner + PRIVATE + $ + $ + $ + ) + +target_link_libraries(testrunner + marnav::marnav + marnav::marnav-io + googletest::gtest + googletest::gmock + googletest::gtest_main + googletest::gmock_main + pthread + ) + +add_test( + NAME unittest-testrunner + COMMAND testrunner + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + ) + +add_custom_target(testrunner_runtest + COMMAND testrunner --gtest_shuffle + DEPENDS testrunner + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) + +add_custom_target(unittest) +add_dependencies(unittest testrunner_runtest) + +execute_process( + COMMAND ${CMAKE_COMMAND} -E tar xzf "${CMAKE_CURRENT_SOURCE_DIR}/marnav/ais/ais-sample.tar.gz" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + ) + +add_executable(test-ais-sample + test-ais-sample.cpp + ) + +target_include_directories(test-ais-sample + PRIVATE $) + +target_link_libraries(test-ais-sample PRIVATE marnav::marnav) + +add_test( + NAME integrationtest-test-ais-sample + COMMAND test-ais-sample + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + ) + +execute_process( + COMMAND ${CMAKE_COMMAND} -E tar xzf "${CMAKE_CURRENT_SOURCE_DIR}/marnav/nmea/nmea-sample.tar.gz" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + ) + +add_executable(test-nmea-sample test-nmea-sample.cpp) + +target_include_directories(test-nmea-sample + PRIVATE $) + +target_link_libraries(test-nmea-sample PRIVATE marnav::marnav) + +add_test( + NAME integrationtest-test-nmea-sample + COMMAND test-nmea-sample + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + ) + +# excluded with coverage builds, does not make sense otherwise +if(NOT CMAKE_BUILD_TYPE MATCHES Coverage AND ENABLE_TESTS_BENCHMARK) + macro(setup_benchmark NAME SOURCE) + add_executable(${NAME} ${SOURCE}) + target_include_directories(${NAME} + PRIVATE $) + target_link_libraries(${NAME} marnav::marnav benchmark::benchmark pthread) + endmacro() + + setup_benchmark(benchmark_nmea_io marnav-io/Benchmark_nmea_io.cpp) + setup_benchmark(benchmark_nmea_split marnav/nmea/Benchmark_nmea_split.cpp) + setup_benchmark(benchmark_nmea_checksum marnav/nmea/Benchmark_nmea_checksum.cpp) + setup_benchmark(benchmark_nmea_manufacturer marnav/nmea/Benchmark_nmea_manufacturer.cpp) + setup_benchmark(benchmark_nmea_sentence marnav/nmea/Benchmark_nmea_sentence.cpp) + setup_benchmark(benchmark_ais_message marnav/ais/Benchmark_ais_message.cpp) +endif() diff --git a/test/nmea/Benchmark_nmea_io.cpp b/test/marnav-io/Benchmark_nmea_io.cpp similarity index 100% rename from test/nmea/Benchmark_nmea_io.cpp rename to test/marnav-io/Benchmark_nmea_io.cpp diff --git a/test/io/Test_io_nmea_reader.cpp b/test/marnav-io/Test_io_nmea_reader.cpp similarity index 98% rename from test/io/Test_io_nmea_reader.cpp rename to test/marnav-io/Test_io_nmea_reader.cpp index 6f6fa3c9..7788593e 100644 --- a/test/io/Test_io_nmea_reader.cpp +++ b/test/marnav-io/Test_io_nmea_reader.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include #include diff --git a/test/io/Test_io_seatalk_reader.cpp b/test/marnav-io/Test_io_seatalk_reader.cpp similarity index 98% rename from test/io/Test_io_seatalk_reader.cpp rename to test/marnav-io/Test_io_seatalk_reader.cpp index 43123c7b..5bfec957 100644 --- a/test/io/Test_io_seatalk_reader.cpp +++ b/test/marnav-io/Test_io_seatalk_reader.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include namespace diff --git a/test/ais/Benchmark_ais_message.cpp b/test/marnav/ais/Benchmark_ais_message.cpp similarity index 100% rename from test/ais/Benchmark_ais_message.cpp rename to test/marnav/ais/Benchmark_ais_message.cpp diff --git a/test/ais/Test_ais.cpp b/test/marnav/ais/Test_ais.cpp similarity index 100% rename from test/ais/Test_ais.cpp rename to test/marnav/ais/Test_ais.cpp diff --git a/test/ais/Test_ais_angle.cpp b/test/marnav/ais/Test_ais_angle.cpp similarity index 100% rename from test/ais/Test_ais_angle.cpp rename to test/marnav/ais/Test_ais_angle.cpp diff --git a/test/ais/Test_ais_binary_001_11.cpp b/test/marnav/ais/Test_ais_binary_001_11.cpp similarity index 100% rename from test/ais/Test_ais_binary_001_11.cpp rename to test/marnav/ais/Test_ais_binary_001_11.cpp diff --git a/test/ais/Test_ais_binary_200_10.cpp b/test/marnav/ais/Test_ais_binary_200_10.cpp similarity index 100% rename from test/ais/Test_ais_binary_200_10.cpp rename to test/marnav/ais/Test_ais_binary_200_10.cpp diff --git a/test/ais/Test_ais_message.cpp b/test/marnav/ais/Test_ais_message.cpp similarity index 100% rename from test/ais/Test_ais_message.cpp rename to test/marnav/ais/Test_ais_message.cpp diff --git a/test/ais/Test_ais_message_01.cpp b/test/marnav/ais/Test_ais_message_01.cpp similarity index 100% rename from test/ais/Test_ais_message_01.cpp rename to test/marnav/ais/Test_ais_message_01.cpp diff --git a/test/ais/Test_ais_message_02.cpp b/test/marnav/ais/Test_ais_message_02.cpp similarity index 100% rename from test/ais/Test_ais_message_02.cpp rename to test/marnav/ais/Test_ais_message_02.cpp diff --git a/test/ais/Test_ais_message_03.cpp b/test/marnav/ais/Test_ais_message_03.cpp similarity index 100% rename from test/ais/Test_ais_message_03.cpp rename to test/marnav/ais/Test_ais_message_03.cpp diff --git a/test/ais/Test_ais_message_04.cpp b/test/marnav/ais/Test_ais_message_04.cpp similarity index 100% rename from test/ais/Test_ais_message_04.cpp rename to test/marnav/ais/Test_ais_message_04.cpp diff --git a/test/ais/Test_ais_message_05.cpp b/test/marnav/ais/Test_ais_message_05.cpp similarity index 100% rename from test/ais/Test_ais_message_05.cpp rename to test/marnav/ais/Test_ais_message_05.cpp diff --git a/test/ais/Test_ais_message_06.cpp b/test/marnav/ais/Test_ais_message_06.cpp similarity index 100% rename from test/ais/Test_ais_message_06.cpp rename to test/marnav/ais/Test_ais_message_06.cpp diff --git a/test/ais/Test_ais_message_07.cpp b/test/marnav/ais/Test_ais_message_07.cpp similarity index 100% rename from test/ais/Test_ais_message_07.cpp rename to test/marnav/ais/Test_ais_message_07.cpp diff --git a/test/ais/Test_ais_message_08.cpp b/test/marnav/ais/Test_ais_message_08.cpp similarity index 100% rename from test/ais/Test_ais_message_08.cpp rename to test/marnav/ais/Test_ais_message_08.cpp diff --git a/test/ais/Test_ais_message_09.cpp b/test/marnav/ais/Test_ais_message_09.cpp similarity index 100% rename from test/ais/Test_ais_message_09.cpp rename to test/marnav/ais/Test_ais_message_09.cpp diff --git a/test/ais/Test_ais_message_10.cpp b/test/marnav/ais/Test_ais_message_10.cpp similarity index 100% rename from test/ais/Test_ais_message_10.cpp rename to test/marnav/ais/Test_ais_message_10.cpp diff --git a/test/ais/Test_ais_message_11.cpp b/test/marnav/ais/Test_ais_message_11.cpp similarity index 100% rename from test/ais/Test_ais_message_11.cpp rename to test/marnav/ais/Test_ais_message_11.cpp diff --git a/test/ais/Test_ais_message_12.cpp b/test/marnav/ais/Test_ais_message_12.cpp similarity index 100% rename from test/ais/Test_ais_message_12.cpp rename to test/marnav/ais/Test_ais_message_12.cpp diff --git a/test/ais/Test_ais_message_13.cpp b/test/marnav/ais/Test_ais_message_13.cpp similarity index 100% rename from test/ais/Test_ais_message_13.cpp rename to test/marnav/ais/Test_ais_message_13.cpp diff --git a/test/ais/Test_ais_message_14.cpp b/test/marnav/ais/Test_ais_message_14.cpp similarity index 100% rename from test/ais/Test_ais_message_14.cpp rename to test/marnav/ais/Test_ais_message_14.cpp diff --git a/test/ais/Test_ais_message_17.cpp b/test/marnav/ais/Test_ais_message_17.cpp similarity index 100% rename from test/ais/Test_ais_message_17.cpp rename to test/marnav/ais/Test_ais_message_17.cpp diff --git a/test/ais/Test_ais_message_18.cpp b/test/marnav/ais/Test_ais_message_18.cpp similarity index 100% rename from test/ais/Test_ais_message_18.cpp rename to test/marnav/ais/Test_ais_message_18.cpp diff --git a/test/ais/Test_ais_message_19.cpp b/test/marnav/ais/Test_ais_message_19.cpp similarity index 100% rename from test/ais/Test_ais_message_19.cpp rename to test/marnav/ais/Test_ais_message_19.cpp diff --git a/test/ais/Test_ais_message_20.cpp b/test/marnav/ais/Test_ais_message_20.cpp similarity index 100% rename from test/ais/Test_ais_message_20.cpp rename to test/marnav/ais/Test_ais_message_20.cpp diff --git a/test/ais/Test_ais_message_21.cpp b/test/marnav/ais/Test_ais_message_21.cpp similarity index 100% rename from test/ais/Test_ais_message_21.cpp rename to test/marnav/ais/Test_ais_message_21.cpp diff --git a/test/ais/Test_ais_message_22.cpp b/test/marnav/ais/Test_ais_message_22.cpp similarity index 100% rename from test/ais/Test_ais_message_22.cpp rename to test/marnav/ais/Test_ais_message_22.cpp diff --git a/test/ais/Test_ais_message_23.cpp b/test/marnav/ais/Test_ais_message_23.cpp similarity index 100% rename from test/ais/Test_ais_message_23.cpp rename to test/marnav/ais/Test_ais_message_23.cpp diff --git a/test/ais/Test_ais_message_24.cpp b/test/marnav/ais/Test_ais_message_24.cpp similarity index 100% rename from test/ais/Test_ais_message_24.cpp rename to test/marnav/ais/Test_ais_message_24.cpp diff --git a/test/ais/Test_ais_rate_of_turn.cpp b/test/marnav/ais/Test_ais_rate_of_turn.cpp similarity index 100% rename from test/ais/Test_ais_rate_of_turn.cpp rename to test/marnav/ais/Test_ais_rate_of_turn.cpp diff --git a/test/ais/ais-sample.tar.gz b/test/marnav/ais/ais-sample.tar.gz similarity index 100% rename from test/ais/ais-sample.tar.gz rename to test/marnav/ais/ais-sample.tar.gz diff --git a/test/geo/Test_geo_angle.cpp b/test/marnav/geo/Test_geo_angle.cpp similarity index 100% rename from test/geo/Test_geo_angle.cpp rename to test/marnav/geo/Test_geo_angle.cpp diff --git a/test/geo/Test_geo_cpa.cpp b/test/marnav/geo/Test_geo_cpa.cpp similarity index 100% rename from test/geo/Test_geo_cpa.cpp rename to test/marnav/geo/Test_geo_cpa.cpp diff --git a/test/geo/Test_geo_geodesic.cpp b/test/marnav/geo/Test_geo_geodesic.cpp similarity index 100% rename from test/geo/Test_geo_geodesic.cpp rename to test/marnav/geo/Test_geo_geodesic.cpp diff --git a/test/geo/Test_geo_region.cpp b/test/marnav/geo/Test_geo_region.cpp similarity index 100% rename from test/geo/Test_geo_region.cpp rename to test/marnav/geo/Test_geo_region.cpp diff --git a/test/math/Test_math_floatingpoint.cpp b/test/marnav/math/Test_math_floatingpoint.cpp similarity index 100% rename from test/math/Test_math_floatingpoint.cpp rename to test/marnav/math/Test_math_floatingpoint.cpp diff --git a/test/math/Test_math_matrix.cpp b/test/marnav/math/Test_math_matrix.cpp similarity index 100% rename from test/math/Test_math_matrix.cpp rename to test/marnav/math/Test_math_matrix.cpp diff --git a/test/math/Test_math_quaternion.cpp b/test/marnav/math/Test_math_quaternion.cpp similarity index 100% rename from test/math/Test_math_quaternion.cpp rename to test/marnav/math/Test_math_quaternion.cpp diff --git a/test/math/Test_math_vector.cpp b/test/marnav/math/Test_math_vector.cpp similarity index 100% rename from test/math/Test_math_vector.cpp rename to test/marnav/math/Test_math_vector.cpp diff --git a/test/math/floatingpoint.cpp b/test/marnav/math/floatingpoint.cpp similarity index 100% rename from test/math/floatingpoint.cpp rename to test/marnav/math/floatingpoint.cpp diff --git a/test/math/floatingpoint_ulps.cpp b/test/marnav/math/floatingpoint_ulps.cpp similarity index 100% rename from test/math/floatingpoint_ulps.cpp rename to test/marnav/math/floatingpoint_ulps.cpp diff --git a/test/nmea/Benchmark_nmea_checksum.cpp b/test/marnav/nmea/Benchmark_nmea_checksum.cpp similarity index 100% rename from test/nmea/Benchmark_nmea_checksum.cpp rename to test/marnav/nmea/Benchmark_nmea_checksum.cpp diff --git a/test/nmea/Benchmark_nmea_manufacturer.cpp b/test/marnav/nmea/Benchmark_nmea_manufacturer.cpp similarity index 100% rename from test/nmea/Benchmark_nmea_manufacturer.cpp rename to test/marnav/nmea/Benchmark_nmea_manufacturer.cpp diff --git a/test/nmea/Benchmark_nmea_sentence.cpp b/test/marnav/nmea/Benchmark_nmea_sentence.cpp similarity index 100% rename from test/nmea/Benchmark_nmea_sentence.cpp rename to test/marnav/nmea/Benchmark_nmea_sentence.cpp diff --git a/test/nmea/Benchmark_nmea_split.cpp b/test/marnav/nmea/Benchmark_nmea_split.cpp similarity index 100% rename from test/nmea/Benchmark_nmea_split.cpp rename to test/marnav/nmea/Benchmark_nmea_split.cpp diff --git a/test/nmea/Test_nmea.cpp b/test/marnav/nmea/Test_nmea.cpp similarity index 100% rename from test/nmea/Test_nmea.cpp rename to test/marnav/nmea/Test_nmea.cpp diff --git a/test/nmea/Test_nmea_aam.cpp b/test/marnav/nmea/Test_nmea_aam.cpp similarity index 100% rename from test/nmea/Test_nmea_aam.cpp rename to test/marnav/nmea/Test_nmea_aam.cpp diff --git a/test/nmea/Test_nmea_ack.cpp b/test/marnav/nmea/Test_nmea_ack.cpp similarity index 100% rename from test/nmea/Test_nmea_ack.cpp rename to test/marnav/nmea/Test_nmea_ack.cpp diff --git a/test/nmea/Test_nmea_alm.cpp b/test/marnav/nmea/Test_nmea_alm.cpp similarity index 100% rename from test/nmea/Test_nmea_alm.cpp rename to test/marnav/nmea/Test_nmea_alm.cpp diff --git a/test/nmea/Test_nmea_alr.cpp b/test/marnav/nmea/Test_nmea_alr.cpp similarity index 100% rename from test/nmea/Test_nmea_alr.cpp rename to test/marnav/nmea/Test_nmea_alr.cpp diff --git a/test/nmea/Test_nmea_angle.cpp b/test/marnav/nmea/Test_nmea_angle.cpp similarity index 100% rename from test/nmea/Test_nmea_angle.cpp rename to test/marnav/nmea/Test_nmea_angle.cpp diff --git a/test/nmea/Test_nmea_apa.cpp b/test/marnav/nmea/Test_nmea_apa.cpp similarity index 100% rename from test/nmea/Test_nmea_apa.cpp rename to test/marnav/nmea/Test_nmea_apa.cpp diff --git a/test/nmea/Test_nmea_apb.cpp b/test/marnav/nmea/Test_nmea_apb.cpp similarity index 100% rename from test/nmea/Test_nmea_apb.cpp rename to test/marnav/nmea/Test_nmea_apb.cpp diff --git a/test/nmea/Test_nmea_bec.cpp b/test/marnav/nmea/Test_nmea_bec.cpp similarity index 100% rename from test/nmea/Test_nmea_bec.cpp rename to test/marnav/nmea/Test_nmea_bec.cpp diff --git a/test/nmea/Test_nmea_bod.cpp b/test/marnav/nmea/Test_nmea_bod.cpp similarity index 100% rename from test/nmea/Test_nmea_bod.cpp rename to test/marnav/nmea/Test_nmea_bod.cpp diff --git a/test/nmea/Test_nmea_bwc.cpp b/test/marnav/nmea/Test_nmea_bwc.cpp similarity index 100% rename from test/nmea/Test_nmea_bwc.cpp rename to test/marnav/nmea/Test_nmea_bwc.cpp diff --git a/test/nmea/Test_nmea_bwr.cpp b/test/marnav/nmea/Test_nmea_bwr.cpp similarity index 100% rename from test/nmea/Test_nmea_bwr.cpp rename to test/marnav/nmea/Test_nmea_bwr.cpp diff --git a/test/nmea/Test_nmea_bww.cpp b/test/marnav/nmea/Test_nmea_bww.cpp similarity index 100% rename from test/nmea/Test_nmea_bww.cpp rename to test/marnav/nmea/Test_nmea_bww.cpp diff --git a/test/nmea/Test_nmea_checksum.cpp b/test/marnav/nmea/Test_nmea_checksum.cpp similarity index 100% rename from test/nmea/Test_nmea_checksum.cpp rename to test/marnav/nmea/Test_nmea_checksum.cpp diff --git a/test/nmea/Test_nmea_date.cpp b/test/marnav/nmea/Test_nmea_date.cpp similarity index 100% rename from test/nmea/Test_nmea_date.cpp rename to test/marnav/nmea/Test_nmea_date.cpp diff --git a/test/nmea/Test_nmea_dbk.cpp b/test/marnav/nmea/Test_nmea_dbk.cpp similarity index 100% rename from test/nmea/Test_nmea_dbk.cpp rename to test/marnav/nmea/Test_nmea_dbk.cpp diff --git a/test/nmea/Test_nmea_dbt.cpp b/test/marnav/nmea/Test_nmea_dbt.cpp similarity index 100% rename from test/nmea/Test_nmea_dbt.cpp rename to test/marnav/nmea/Test_nmea_dbt.cpp diff --git a/test/nmea/Test_nmea_dpt.cpp b/test/marnav/nmea/Test_nmea_dpt.cpp similarity index 100% rename from test/nmea/Test_nmea_dpt.cpp rename to test/marnav/nmea/Test_nmea_dpt.cpp diff --git a/test/nmea/Test_nmea_dsc.cpp b/test/marnav/nmea/Test_nmea_dsc.cpp similarity index 100% rename from test/nmea/Test_nmea_dsc.cpp rename to test/marnav/nmea/Test_nmea_dsc.cpp diff --git a/test/nmea/Test_nmea_dse.cpp b/test/marnav/nmea/Test_nmea_dse.cpp similarity index 100% rename from test/nmea/Test_nmea_dse.cpp rename to test/marnav/nmea/Test_nmea_dse.cpp diff --git a/test/nmea/Test_nmea_dtm.cpp b/test/marnav/nmea/Test_nmea_dtm.cpp similarity index 100% rename from test/nmea/Test_nmea_dtm.cpp rename to test/marnav/nmea/Test_nmea_dtm.cpp diff --git a/test/nmea/Test_nmea_duration.cpp b/test/marnav/nmea/Test_nmea_duration.cpp similarity index 100% rename from test/nmea/Test_nmea_duration.cpp rename to test/marnav/nmea/Test_nmea_duration.cpp diff --git a/test/nmea/Test_nmea_fsi.cpp b/test/marnav/nmea/Test_nmea_fsi.cpp similarity index 100% rename from test/nmea/Test_nmea_fsi.cpp rename to test/marnav/nmea/Test_nmea_fsi.cpp diff --git a/test/nmea/Test_nmea_gbs.cpp b/test/marnav/nmea/Test_nmea_gbs.cpp similarity index 100% rename from test/nmea/Test_nmea_gbs.cpp rename to test/marnav/nmea/Test_nmea_gbs.cpp diff --git a/test/nmea/Test_nmea_gga.cpp b/test/marnav/nmea/Test_nmea_gga.cpp similarity index 100% rename from test/nmea/Test_nmea_gga.cpp rename to test/marnav/nmea/Test_nmea_gga.cpp diff --git a/test/nmea/Test_nmea_glc.cpp b/test/marnav/nmea/Test_nmea_glc.cpp similarity index 100% rename from test/nmea/Test_nmea_glc.cpp rename to test/marnav/nmea/Test_nmea_glc.cpp diff --git a/test/nmea/Test_nmea_gll.cpp b/test/marnav/nmea/Test_nmea_gll.cpp similarity index 100% rename from test/nmea/Test_nmea_gll.cpp rename to test/marnav/nmea/Test_nmea_gll.cpp diff --git a/test/nmea/Test_nmea_gns.cpp b/test/marnav/nmea/Test_nmea_gns.cpp similarity index 100% rename from test/nmea/Test_nmea_gns.cpp rename to test/marnav/nmea/Test_nmea_gns.cpp diff --git a/test/nmea/Test_nmea_grs.cpp b/test/marnav/nmea/Test_nmea_grs.cpp similarity index 100% rename from test/nmea/Test_nmea_grs.cpp rename to test/marnav/nmea/Test_nmea_grs.cpp diff --git a/test/nmea/Test_nmea_gsa.cpp b/test/marnav/nmea/Test_nmea_gsa.cpp similarity index 100% rename from test/nmea/Test_nmea_gsa.cpp rename to test/marnav/nmea/Test_nmea_gsa.cpp diff --git a/test/nmea/Test_nmea_gst.cpp b/test/marnav/nmea/Test_nmea_gst.cpp similarity index 100% rename from test/nmea/Test_nmea_gst.cpp rename to test/marnav/nmea/Test_nmea_gst.cpp diff --git a/test/nmea/Test_nmea_gsv.cpp b/test/marnav/nmea/Test_nmea_gsv.cpp similarity index 100% rename from test/nmea/Test_nmea_gsv.cpp rename to test/marnav/nmea/Test_nmea_gsv.cpp diff --git a/test/nmea/Test_nmea_gtd.cpp b/test/marnav/nmea/Test_nmea_gtd.cpp similarity index 100% rename from test/nmea/Test_nmea_gtd.cpp rename to test/marnav/nmea/Test_nmea_gtd.cpp diff --git a/test/nmea/Test_nmea_hdg.cpp b/test/marnav/nmea/Test_nmea_hdg.cpp similarity index 100% rename from test/nmea/Test_nmea_hdg.cpp rename to test/marnav/nmea/Test_nmea_hdg.cpp diff --git a/test/nmea/Test_nmea_hdm.cpp b/test/marnav/nmea/Test_nmea_hdm.cpp similarity index 100% rename from test/nmea/Test_nmea_hdm.cpp rename to test/marnav/nmea/Test_nmea_hdm.cpp diff --git a/test/nmea/Test_nmea_hdt.cpp b/test/marnav/nmea/Test_nmea_hdt.cpp similarity index 100% rename from test/nmea/Test_nmea_hdt.cpp rename to test/marnav/nmea/Test_nmea_hdt.cpp diff --git a/test/nmea/Test_nmea_hfb.cpp b/test/marnav/nmea/Test_nmea_hfb.cpp similarity index 100% rename from test/nmea/Test_nmea_hfb.cpp rename to test/marnav/nmea/Test_nmea_hfb.cpp diff --git a/test/nmea/Test_nmea_hsc.cpp b/test/marnav/nmea/Test_nmea_hsc.cpp similarity index 100% rename from test/nmea/Test_nmea_hsc.cpp rename to test/marnav/nmea/Test_nmea_hsc.cpp diff --git a/test/nmea/Test_nmea_io.cpp b/test/marnav/nmea/Test_nmea_io.cpp similarity index 100% rename from test/nmea/Test_nmea_io.cpp rename to test/marnav/nmea/Test_nmea_io.cpp diff --git a/test/nmea/Test_nmea_its.cpp b/test/marnav/nmea/Test_nmea_its.cpp similarity index 100% rename from test/nmea/Test_nmea_its.cpp rename to test/marnav/nmea/Test_nmea_its.cpp diff --git a/test/nmea/Test_nmea_lcd.cpp b/test/marnav/nmea/Test_nmea_lcd.cpp similarity index 100% rename from test/nmea/Test_nmea_lcd.cpp rename to test/marnav/nmea/Test_nmea_lcd.cpp diff --git a/test/nmea/Test_nmea_manufacturer.cpp b/test/marnav/nmea/Test_nmea_manufacturer.cpp similarity index 100% rename from test/nmea/Test_nmea_manufacturer.cpp rename to test/marnav/nmea/Test_nmea_manufacturer.cpp diff --git a/test/nmea/Test_nmea_mob.cpp b/test/marnav/nmea/Test_nmea_mob.cpp similarity index 100% rename from test/nmea/Test_nmea_mob.cpp rename to test/marnav/nmea/Test_nmea_mob.cpp diff --git a/test/nmea/Test_nmea_msk.cpp b/test/marnav/nmea/Test_nmea_msk.cpp similarity index 100% rename from test/nmea/Test_nmea_msk.cpp rename to test/marnav/nmea/Test_nmea_msk.cpp diff --git a/test/nmea/Test_nmea_mss.cpp b/test/marnav/nmea/Test_nmea_mss.cpp similarity index 100% rename from test/nmea/Test_nmea_mss.cpp rename to test/marnav/nmea/Test_nmea_mss.cpp diff --git a/test/nmea/Test_nmea_mta.cpp b/test/marnav/nmea/Test_nmea_mta.cpp similarity index 100% rename from test/nmea/Test_nmea_mta.cpp rename to test/marnav/nmea/Test_nmea_mta.cpp diff --git a/test/nmea/Test_nmea_mtw.cpp b/test/marnav/nmea/Test_nmea_mtw.cpp similarity index 100% rename from test/nmea/Test_nmea_mtw.cpp rename to test/marnav/nmea/Test_nmea_mtw.cpp diff --git a/test/nmea/Test_nmea_mwd.cpp b/test/marnav/nmea/Test_nmea_mwd.cpp similarity index 100% rename from test/nmea/Test_nmea_mwd.cpp rename to test/marnav/nmea/Test_nmea_mwd.cpp diff --git a/test/nmea/Test_nmea_mwv.cpp b/test/marnav/nmea/Test_nmea_mwv.cpp similarity index 100% rename from test/nmea/Test_nmea_mwv.cpp rename to test/marnav/nmea/Test_nmea_mwv.cpp diff --git a/test/nmea/Test_nmea_osd.cpp b/test/marnav/nmea/Test_nmea_osd.cpp similarity index 100% rename from test/nmea/Test_nmea_osd.cpp rename to test/marnav/nmea/Test_nmea_osd.cpp diff --git a/test/nmea/Test_nmea_pgrme.cpp b/test/marnav/nmea/Test_nmea_pgrme.cpp similarity index 100% rename from test/nmea/Test_nmea_pgrme.cpp rename to test/marnav/nmea/Test_nmea_pgrme.cpp diff --git a/test/nmea/Test_nmea_pgrmm.cpp b/test/marnav/nmea/Test_nmea_pgrmm.cpp similarity index 100% rename from test/nmea/Test_nmea_pgrmm.cpp rename to test/marnav/nmea/Test_nmea_pgrmm.cpp diff --git a/test/nmea/Test_nmea_pgrmz.cpp b/test/marnav/nmea/Test_nmea_pgrmz.cpp similarity index 100% rename from test/nmea/Test_nmea_pgrmz.cpp rename to test/marnav/nmea/Test_nmea_pgrmz.cpp diff --git a/test/nmea/Test_nmea_r00.cpp b/test/marnav/nmea/Test_nmea_r00.cpp similarity index 100% rename from test/nmea/Test_nmea_r00.cpp rename to test/marnav/nmea/Test_nmea_r00.cpp diff --git a/test/nmea/Test_nmea_rma.cpp b/test/marnav/nmea/Test_nmea_rma.cpp similarity index 100% rename from test/nmea/Test_nmea_rma.cpp rename to test/marnav/nmea/Test_nmea_rma.cpp diff --git a/test/nmea/Test_nmea_rmb.cpp b/test/marnav/nmea/Test_nmea_rmb.cpp similarity index 100% rename from test/nmea/Test_nmea_rmb.cpp rename to test/marnav/nmea/Test_nmea_rmb.cpp diff --git a/test/nmea/Test_nmea_rmc.cpp b/test/marnav/nmea/Test_nmea_rmc.cpp similarity index 100% rename from test/nmea/Test_nmea_rmc.cpp rename to test/marnav/nmea/Test_nmea_rmc.cpp diff --git a/test/nmea/Test_nmea_rot.cpp b/test/marnav/nmea/Test_nmea_rot.cpp similarity index 100% rename from test/nmea/Test_nmea_rot.cpp rename to test/marnav/nmea/Test_nmea_rot.cpp diff --git a/test/nmea/Test_nmea_route.cpp b/test/marnav/nmea/Test_nmea_route.cpp similarity index 100% rename from test/nmea/Test_nmea_route.cpp rename to test/marnav/nmea/Test_nmea_route.cpp diff --git a/test/nmea/Test_nmea_rpm.cpp b/test/marnav/nmea/Test_nmea_rpm.cpp similarity index 100% rename from test/nmea/Test_nmea_rpm.cpp rename to test/marnav/nmea/Test_nmea_rpm.cpp diff --git a/test/nmea/Test_nmea_rsa.cpp b/test/marnav/nmea/Test_nmea_rsa.cpp similarity index 100% rename from test/nmea/Test_nmea_rsa.cpp rename to test/marnav/nmea/Test_nmea_rsa.cpp diff --git a/test/nmea/Test_nmea_rsd.cpp b/test/marnav/nmea/Test_nmea_rsd.cpp similarity index 100% rename from test/nmea/Test_nmea_rsd.cpp rename to test/marnav/nmea/Test_nmea_rsd.cpp diff --git a/test/nmea/Test_nmea_rte.cpp b/test/marnav/nmea/Test_nmea_rte.cpp similarity index 100% rename from test/nmea/Test_nmea_rte.cpp rename to test/marnav/nmea/Test_nmea_rte.cpp diff --git a/test/nmea/Test_nmea_sentence.cpp b/test/marnav/nmea/Test_nmea_sentence.cpp similarity index 100% rename from test/nmea/Test_nmea_sentence.cpp rename to test/marnav/nmea/Test_nmea_sentence.cpp diff --git a/test/nmea/Test_nmea_sfi.cpp b/test/marnav/nmea/Test_nmea_sfi.cpp similarity index 100% rename from test/nmea/Test_nmea_sfi.cpp rename to test/marnav/nmea/Test_nmea_sfi.cpp diff --git a/test/nmea/Test_nmea_split.cpp b/test/marnav/nmea/Test_nmea_split.cpp similarity index 100% rename from test/nmea/Test_nmea_split.cpp rename to test/marnav/nmea/Test_nmea_split.cpp diff --git a/test/nmea/Test_nmea_stalk.cpp b/test/marnav/nmea/Test_nmea_stalk.cpp similarity index 100% rename from test/nmea/Test_nmea_stalk.cpp rename to test/marnav/nmea/Test_nmea_stalk.cpp diff --git a/test/nmea/Test_nmea_stn.cpp b/test/marnav/nmea/Test_nmea_stn.cpp similarity index 100% rename from test/nmea/Test_nmea_stn.cpp rename to test/marnav/nmea/Test_nmea_stn.cpp diff --git a/test/nmea/Test_nmea_tag_block.cpp b/test/marnav/nmea/Test_nmea_tag_block.cpp similarity index 100% rename from test/nmea/Test_nmea_tag_block.cpp rename to test/marnav/nmea/Test_nmea_tag_block.cpp diff --git a/test/nmea/Test_nmea_tds.cpp b/test/marnav/nmea/Test_nmea_tds.cpp similarity index 100% rename from test/nmea/Test_nmea_tds.cpp rename to test/marnav/nmea/Test_nmea_tds.cpp diff --git a/test/nmea/Test_nmea_tep.cpp b/test/marnav/nmea/Test_nmea_tep.cpp similarity index 100% rename from test/nmea/Test_nmea_tep.cpp rename to test/marnav/nmea/Test_nmea_tep.cpp diff --git a/test/nmea/Test_nmea_tfi.cpp b/test/marnav/nmea/Test_nmea_tfi.cpp similarity index 100% rename from test/nmea/Test_nmea_tfi.cpp rename to test/marnav/nmea/Test_nmea_tfi.cpp diff --git a/test/nmea/Test_nmea_time.cpp b/test/marnav/nmea/Test_nmea_time.cpp similarity index 100% rename from test/nmea/Test_nmea_time.cpp rename to test/marnav/nmea/Test_nmea_time.cpp diff --git a/test/nmea/Test_nmea_tll.cpp b/test/marnav/nmea/Test_nmea_tll.cpp similarity index 100% rename from test/nmea/Test_nmea_tll.cpp rename to test/marnav/nmea/Test_nmea_tll.cpp diff --git a/test/nmea/Test_nmea_tpc.cpp b/test/marnav/nmea/Test_nmea_tpc.cpp similarity index 100% rename from test/nmea/Test_nmea_tpc.cpp rename to test/marnav/nmea/Test_nmea_tpc.cpp diff --git a/test/nmea/Test_nmea_tpr.cpp b/test/marnav/nmea/Test_nmea_tpr.cpp similarity index 100% rename from test/nmea/Test_nmea_tpr.cpp rename to test/marnav/nmea/Test_nmea_tpr.cpp diff --git a/test/nmea/Test_nmea_tpt.cpp b/test/marnav/nmea/Test_nmea_tpt.cpp similarity index 100% rename from test/nmea/Test_nmea_tpt.cpp rename to test/marnav/nmea/Test_nmea_tpt.cpp diff --git a/test/nmea/Test_nmea_ttm.cpp b/test/marnav/nmea/Test_nmea_ttm.cpp similarity index 100% rename from test/nmea/Test_nmea_ttm.cpp rename to test/marnav/nmea/Test_nmea_ttm.cpp diff --git a/test/nmea/Test_nmea_vbw.cpp b/test/marnav/nmea/Test_nmea_vbw.cpp similarity index 100% rename from test/nmea/Test_nmea_vbw.cpp rename to test/marnav/nmea/Test_nmea_vbw.cpp diff --git a/test/nmea/Test_nmea_vdm.cpp b/test/marnav/nmea/Test_nmea_vdm.cpp similarity index 100% rename from test/nmea/Test_nmea_vdm.cpp rename to test/marnav/nmea/Test_nmea_vdm.cpp diff --git a/test/nmea/Test_nmea_vdo.cpp b/test/marnav/nmea/Test_nmea_vdo.cpp similarity index 100% rename from test/nmea/Test_nmea_vdo.cpp rename to test/marnav/nmea/Test_nmea_vdo.cpp diff --git a/test/nmea/Test_nmea_vdr.cpp b/test/marnav/nmea/Test_nmea_vdr.cpp similarity index 100% rename from test/nmea/Test_nmea_vdr.cpp rename to test/marnav/nmea/Test_nmea_vdr.cpp diff --git a/test/nmea/Test_nmea_version.cpp b/test/marnav/nmea/Test_nmea_version.cpp similarity index 100% rename from test/nmea/Test_nmea_version.cpp rename to test/marnav/nmea/Test_nmea_version.cpp diff --git a/test/nmea/Test_nmea_vhw.cpp b/test/marnav/nmea/Test_nmea_vhw.cpp similarity index 100% rename from test/nmea/Test_nmea_vhw.cpp rename to test/marnav/nmea/Test_nmea_vhw.cpp diff --git a/test/nmea/Test_nmea_vlw.cpp b/test/marnav/nmea/Test_nmea_vlw.cpp similarity index 100% rename from test/nmea/Test_nmea_vlw.cpp rename to test/marnav/nmea/Test_nmea_vlw.cpp diff --git a/test/nmea/Test_nmea_vpw.cpp b/test/marnav/nmea/Test_nmea_vpw.cpp similarity index 100% rename from test/nmea/Test_nmea_vpw.cpp rename to test/marnav/nmea/Test_nmea_vpw.cpp diff --git a/test/nmea/Test_nmea_vtg.cpp b/test/marnav/nmea/Test_nmea_vtg.cpp similarity index 100% rename from test/nmea/Test_nmea_vtg.cpp rename to test/marnav/nmea/Test_nmea_vtg.cpp diff --git a/test/nmea/Test_nmea_vwe.cpp b/test/marnav/nmea/Test_nmea_vwe.cpp similarity index 100% rename from test/nmea/Test_nmea_vwe.cpp rename to test/marnav/nmea/Test_nmea_vwe.cpp diff --git a/test/nmea/Test_nmea_vwr.cpp b/test/marnav/nmea/Test_nmea_vwr.cpp similarity index 100% rename from test/nmea/Test_nmea_vwr.cpp rename to test/marnav/nmea/Test_nmea_vwr.cpp diff --git a/test/nmea/Test_nmea_waypoint.cpp b/test/marnav/nmea/Test_nmea_waypoint.cpp similarity index 100% rename from test/nmea/Test_nmea_waypoint.cpp rename to test/marnav/nmea/Test_nmea_waypoint.cpp diff --git a/test/nmea/Test_nmea_wcv.cpp b/test/marnav/nmea/Test_nmea_wcv.cpp similarity index 100% rename from test/nmea/Test_nmea_wcv.cpp rename to test/marnav/nmea/Test_nmea_wcv.cpp diff --git a/test/nmea/Test_nmea_wdc.cpp b/test/marnav/nmea/Test_nmea_wdc.cpp similarity index 100% rename from test/nmea/Test_nmea_wdc.cpp rename to test/marnav/nmea/Test_nmea_wdc.cpp diff --git a/test/nmea/Test_nmea_wdr.cpp b/test/marnav/nmea/Test_nmea_wdr.cpp similarity index 100% rename from test/nmea/Test_nmea_wdr.cpp rename to test/marnav/nmea/Test_nmea_wdr.cpp diff --git a/test/nmea/Test_nmea_wnc.cpp b/test/marnav/nmea/Test_nmea_wnc.cpp similarity index 100% rename from test/nmea/Test_nmea_wnc.cpp rename to test/marnav/nmea/Test_nmea_wnc.cpp diff --git a/test/nmea/Test_nmea_wpl.cpp b/test/marnav/nmea/Test_nmea_wpl.cpp similarity index 100% rename from test/nmea/Test_nmea_wpl.cpp rename to test/marnav/nmea/Test_nmea_wpl.cpp diff --git a/test/nmea/Test_nmea_xdr.cpp b/test/marnav/nmea/Test_nmea_xdr.cpp similarity index 100% rename from test/nmea/Test_nmea_xdr.cpp rename to test/marnav/nmea/Test_nmea_xdr.cpp diff --git a/test/nmea/Test_nmea_xte.cpp b/test/marnav/nmea/Test_nmea_xte.cpp similarity index 100% rename from test/nmea/Test_nmea_xte.cpp rename to test/marnav/nmea/Test_nmea_xte.cpp diff --git a/test/nmea/Test_nmea_xtr.cpp b/test/marnav/nmea/Test_nmea_xtr.cpp similarity index 100% rename from test/nmea/Test_nmea_xtr.cpp rename to test/marnav/nmea/Test_nmea_xtr.cpp diff --git a/test/nmea/Test_nmea_zda.cpp b/test/marnav/nmea/Test_nmea_zda.cpp similarity index 100% rename from test/nmea/Test_nmea_zda.cpp rename to test/marnav/nmea/Test_nmea_zda.cpp diff --git a/test/nmea/Test_nmea_zdl.cpp b/test/marnav/nmea/Test_nmea_zdl.cpp similarity index 100% rename from test/nmea/Test_nmea_zdl.cpp rename to test/marnav/nmea/Test_nmea_zdl.cpp diff --git a/test/nmea/Test_nmea_zfi.cpp b/test/marnav/nmea/Test_nmea_zfi.cpp similarity index 100% rename from test/nmea/Test_nmea_zfi.cpp rename to test/marnav/nmea/Test_nmea_zfi.cpp diff --git a/test/nmea/Test_nmea_zfo.cpp b/test/marnav/nmea/Test_nmea_zfo.cpp similarity index 100% rename from test/nmea/Test_nmea_zfo.cpp rename to test/marnav/nmea/Test_nmea_zfo.cpp diff --git a/test/nmea/Test_nmea_zlz.cpp b/test/marnav/nmea/Test_nmea_zlz.cpp similarity index 100% rename from test/nmea/Test_nmea_zlz.cpp rename to test/marnav/nmea/Test_nmea_zlz.cpp diff --git a/test/nmea/Test_nmea_zpi.cpp b/test/marnav/nmea/Test_nmea_zpi.cpp similarity index 100% rename from test/nmea/Test_nmea_zpi.cpp rename to test/marnav/nmea/Test_nmea_zpi.cpp diff --git a/test/nmea/Test_nmea_zta.cpp b/test/marnav/nmea/Test_nmea_zta.cpp similarity index 100% rename from test/nmea/Test_nmea_zta.cpp rename to test/marnav/nmea/Test_nmea_zta.cpp diff --git a/test/nmea/Test_nmea_zte.cpp b/test/marnav/nmea/Test_nmea_zte.cpp similarity index 100% rename from test/nmea/Test_nmea_zte.cpp rename to test/marnav/nmea/Test_nmea_zte.cpp diff --git a/test/nmea/Test_nmea_ztg.cpp b/test/marnav/nmea/Test_nmea_ztg.cpp similarity index 100% rename from test/nmea/Test_nmea_ztg.cpp rename to test/marnav/nmea/Test_nmea_ztg.cpp diff --git a/test/nmea/exception_helper.hpp b/test/marnav/nmea/exception_helper.hpp similarity index 100% rename from test/nmea/exception_helper.hpp rename to test/marnav/nmea/exception_helper.hpp diff --git a/test/nmea/nmea-sample.tar.gz b/test/marnav/nmea/nmea-sample.tar.gz similarity index 100% rename from test/nmea/nmea-sample.tar.gz rename to test/marnav/nmea/nmea-sample.tar.gz diff --git a/test/nmea/type_traits_helper.hpp b/test/marnav/nmea/type_traits_helper.hpp similarity index 100% rename from test/nmea/type_traits_helper.hpp rename to test/marnav/nmea/type_traits_helper.hpp diff --git a/test/seatalk/Test_seatalk_message.cpp b/test/marnav/seatalk/Test_seatalk_message.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message.cpp rename to test/marnav/seatalk/Test_seatalk_message.cpp diff --git a/test/seatalk/Test_seatalk_message_00.cpp b/test/marnav/seatalk/Test_seatalk_message_00.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_00.cpp rename to test/marnav/seatalk/Test_seatalk_message_00.cpp diff --git a/test/seatalk/Test_seatalk_message_01.cpp b/test/marnav/seatalk/Test_seatalk_message_01.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_01.cpp rename to test/marnav/seatalk/Test_seatalk_message_01.cpp diff --git a/test/seatalk/Test_seatalk_message_05.cpp b/test/marnav/seatalk/Test_seatalk_message_05.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_05.cpp rename to test/marnav/seatalk/Test_seatalk_message_05.cpp diff --git a/test/seatalk/Test_seatalk_message_10.cpp b/test/marnav/seatalk/Test_seatalk_message_10.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_10.cpp rename to test/marnav/seatalk/Test_seatalk_message_10.cpp diff --git a/test/seatalk/Test_seatalk_message_11.cpp b/test/marnav/seatalk/Test_seatalk_message_11.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_11.cpp rename to test/marnav/seatalk/Test_seatalk_message_11.cpp diff --git a/test/seatalk/Test_seatalk_message_20.cpp b/test/marnav/seatalk/Test_seatalk_message_20.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_20.cpp rename to test/marnav/seatalk/Test_seatalk_message_20.cpp diff --git a/test/seatalk/Test_seatalk_message_21.cpp b/test/marnav/seatalk/Test_seatalk_message_21.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_21.cpp rename to test/marnav/seatalk/Test_seatalk_message_21.cpp diff --git a/test/seatalk/Test_seatalk_message_22.cpp b/test/marnav/seatalk/Test_seatalk_message_22.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_22.cpp rename to test/marnav/seatalk/Test_seatalk_message_22.cpp diff --git a/test/seatalk/Test_seatalk_message_23.cpp b/test/marnav/seatalk/Test_seatalk_message_23.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_23.cpp rename to test/marnav/seatalk/Test_seatalk_message_23.cpp diff --git a/test/seatalk/Test_seatalk_message_24.cpp b/test/marnav/seatalk/Test_seatalk_message_24.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_24.cpp rename to test/marnav/seatalk/Test_seatalk_message_24.cpp diff --git a/test/seatalk/Test_seatalk_message_25.cpp b/test/marnav/seatalk/Test_seatalk_message_25.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_25.cpp rename to test/marnav/seatalk/Test_seatalk_message_25.cpp diff --git a/test/seatalk/Test_seatalk_message_26.cpp b/test/marnav/seatalk/Test_seatalk_message_26.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_26.cpp rename to test/marnav/seatalk/Test_seatalk_message_26.cpp diff --git a/test/seatalk/Test_seatalk_message_27.cpp b/test/marnav/seatalk/Test_seatalk_message_27.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_27.cpp rename to test/marnav/seatalk/Test_seatalk_message_27.cpp diff --git a/test/seatalk/Test_seatalk_message_30.cpp b/test/marnav/seatalk/Test_seatalk_message_30.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_30.cpp rename to test/marnav/seatalk/Test_seatalk_message_30.cpp diff --git a/test/seatalk/Test_seatalk_message_36.cpp b/test/marnav/seatalk/Test_seatalk_message_36.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_36.cpp rename to test/marnav/seatalk/Test_seatalk_message_36.cpp diff --git a/test/seatalk/Test_seatalk_message_38.cpp b/test/marnav/seatalk/Test_seatalk_message_38.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_38.cpp rename to test/marnav/seatalk/Test_seatalk_message_38.cpp diff --git a/test/seatalk/Test_seatalk_message_50.cpp b/test/marnav/seatalk/Test_seatalk_message_50.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_50.cpp rename to test/marnav/seatalk/Test_seatalk_message_50.cpp diff --git a/test/seatalk/Test_seatalk_message_51.cpp b/test/marnav/seatalk/Test_seatalk_message_51.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_51.cpp rename to test/marnav/seatalk/Test_seatalk_message_51.cpp diff --git a/test/seatalk/Test_seatalk_message_52.cpp b/test/marnav/seatalk/Test_seatalk_message_52.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_52.cpp rename to test/marnav/seatalk/Test_seatalk_message_52.cpp diff --git a/test/seatalk/Test_seatalk_message_53.cpp b/test/marnav/seatalk/Test_seatalk_message_53.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_53.cpp rename to test/marnav/seatalk/Test_seatalk_message_53.cpp diff --git a/test/seatalk/Test_seatalk_message_54.cpp b/test/marnav/seatalk/Test_seatalk_message_54.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_54.cpp rename to test/marnav/seatalk/Test_seatalk_message_54.cpp diff --git a/test/seatalk/Test_seatalk_message_56.cpp b/test/marnav/seatalk/Test_seatalk_message_56.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_56.cpp rename to test/marnav/seatalk/Test_seatalk_message_56.cpp diff --git a/test/seatalk/Test_seatalk_message_58.cpp b/test/marnav/seatalk/Test_seatalk_message_58.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_58.cpp rename to test/marnav/seatalk/Test_seatalk_message_58.cpp diff --git a/test/seatalk/Test_seatalk_message_59.cpp b/test/marnav/seatalk/Test_seatalk_message_59.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_59.cpp rename to test/marnav/seatalk/Test_seatalk_message_59.cpp diff --git a/test/seatalk/Test_seatalk_message_65.cpp b/test/marnav/seatalk/Test_seatalk_message_65.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_65.cpp rename to test/marnav/seatalk/Test_seatalk_message_65.cpp diff --git a/test/seatalk/Test_seatalk_message_66.cpp b/test/marnav/seatalk/Test_seatalk_message_66.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_66.cpp rename to test/marnav/seatalk/Test_seatalk_message_66.cpp diff --git a/test/seatalk/Test_seatalk_message_6c.cpp b/test/marnav/seatalk/Test_seatalk_message_6c.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_6c.cpp rename to test/marnav/seatalk/Test_seatalk_message_6c.cpp diff --git a/test/seatalk/Test_seatalk_message_86.cpp b/test/marnav/seatalk/Test_seatalk_message_86.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_86.cpp rename to test/marnav/seatalk/Test_seatalk_message_86.cpp diff --git a/test/seatalk/Test_seatalk_message_87.cpp b/test/marnav/seatalk/Test_seatalk_message_87.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_87.cpp rename to test/marnav/seatalk/Test_seatalk_message_87.cpp diff --git a/test/seatalk/Test_seatalk_message_89.cpp b/test/marnav/seatalk/Test_seatalk_message_89.cpp similarity index 100% rename from test/seatalk/Test_seatalk_message_89.cpp rename to test/marnav/seatalk/Test_seatalk_message_89.cpp diff --git a/test/units/Test_basic_quantity.cpp b/test/marnav/units/Test_basic_quantity.cpp similarity index 100% rename from test/units/Test_basic_quantity.cpp rename to test/marnav/units/Test_basic_quantity.cpp diff --git a/test/units/Test_basic_unit.cpp b/test/marnav/units/Test_basic_unit.cpp similarity index 100% rename from test/units/Test_basic_unit.cpp rename to test/marnav/units/Test_basic_unit.cpp diff --git a/test/units/Test_custom_numeric_type.cpp b/test/marnav/units/Test_custom_numeric_type.cpp similarity index 100% rename from test/units/Test_custom_numeric_type.cpp rename to test/marnav/units/Test_custom_numeric_type.cpp diff --git a/test/units/detail/basic_quantity.cpp b/test/marnav/units/detail/basic_quantity.cpp similarity index 100% rename from test/units/detail/basic_quantity.cpp rename to test/marnav/units/detail/basic_quantity.cpp diff --git a/test/units/detail/basic_quantity_cmp.cpp b/test/marnav/units/detail/basic_quantity_cmp.cpp similarity index 100% rename from test/units/detail/basic_quantity_cmp.cpp rename to test/marnav/units/detail/basic_quantity_cmp.cpp diff --git a/test/units/detail/basic_quantity_fnc.cpp b/test/marnav/units/detail/basic_quantity_fnc.cpp similarity index 100% rename from test/units/detail/basic_quantity_fnc.cpp rename to test/marnav/units/detail/basic_quantity_fnc.cpp diff --git a/test/units/detail/basic_quantity_ops.cpp b/test/marnav/units/detail/basic_quantity_ops.cpp similarity index 100% rename from test/units/detail/basic_quantity_ops.cpp rename to test/marnav/units/detail/basic_quantity_ops.cpp diff --git a/test/units/detail/basic_unit.cpp b/test/marnav/units/detail/basic_unit.cpp similarity index 100% rename from test/units/detail/basic_unit.cpp rename to test/marnav/units/detail/basic_unit.cpp diff --git a/test/units/detail/basic_unit_cmp.cpp b/test/marnav/units/detail/basic_unit_cmp.cpp similarity index 100% rename from test/units/detail/basic_unit_cmp.cpp rename to test/marnav/units/detail/basic_unit_cmp.cpp diff --git a/test/units/detail/basic_unit_fnc.cpp b/test/marnav/units/detail/basic_unit_fnc.cpp similarity index 100% rename from test/units/detail/basic_unit_fnc.cpp rename to test/marnav/units/detail/basic_unit_fnc.cpp diff --git a/test/units/detail/basic_unit_ops.cpp b/test/marnav/units/detail/basic_unit_ops.cpp similarity index 100% rename from test/units/detail/basic_unit_ops.cpp rename to test/marnav/units/detail/basic_unit_ops.cpp diff --git a/test/units/detail/dimension.cpp b/test/marnav/units/detail/dimension.cpp similarity index 100% rename from test/units/detail/dimension.cpp rename to test/marnav/units/detail/dimension.cpp diff --git a/test/units/detail/units.cpp b/test/marnav/units/detail/units.cpp similarity index 100% rename from test/units/detail/units.cpp rename to test/marnav/units/detail/units.cpp diff --git a/test/utils/Test_utils_bitset.cpp b/test/marnav/utils/Test_utils_bitset.cpp similarity index 100% rename from test/utils/Test_utils_bitset.cpp rename to test/marnav/utils/Test_utils_bitset.cpp diff --git a/test/utils/Test_utils_mmsi.cpp b/test/marnav/utils/Test_utils_mmsi.cpp similarity index 100% rename from test/utils/Test_utils_mmsi.cpp rename to test/marnav/utils/Test_utils_mmsi.cpp diff --git a/test/utils/Test_utils_mmsi_country.cpp b/test/marnav/utils/Test_utils_mmsi_country.cpp similarity index 100% rename from test/utils/Test_utils_mmsi_country.cpp rename to test/marnav/utils/Test_utils_mmsi_country.cpp -- 2.11.4.GIT