From 4f1c62a768120140bae0d2856f3ac0db47e07d72 Mon Sep 17 00:00:00 2001 From: Siarhei Fedartsou Date: Sat, 28 Sep 2024 20:35:20 +0200 Subject: [PATCH] Bump version of protozero to 1.7.1 (#6999) --- scripts/update_dependencies.sh | 2 +- third_party/protozero/.clang-tidy | 24 +- third_party/protozero/CHANGELOG.md | 25 +- third_party/protozero/CMakeLists.txt | 39 +- third_party/protozero/FUZZING.md | 2 +- third_party/protozero/README.md | 4 +- third_party/protozero/appveyor.yml | 5 +- third_party/protozero/bench/data/README.md | 4 +- third_party/protozero/doc/Doxyfile.in | 705 +- .../include/protozero/buffer_string.hpp | 4 +- .../include/protozero/buffer_vector.hpp | 4 +- .../protozero/include/protozero/byteswap.hpp | 17 +- .../protozero/include/protozero/version.hpp | 4 +- third_party/protozero/test/CMakeLists.txt | 116 - third_party/protozero/test/README.md | 52 - third_party/protozero/test/catch/catch.hpp | 17698 ---------------- .../protozero/test/create_pbf_test_data.sh | 35 - third_party/protozero/test/include/buffer.hpp | 162 - .../protozero/test/include/packed_access.hpp | 305 - .../protozero/test/include/scalar_access.hpp | 129 - third_party/protozero/test/include/test.hpp | 31 - .../protozero/test/include/testcase.hpp | 21 - third_party/protozero/test/reader_tests.cpp | 32 - .../test/t/alignment/reader_test_cases.cpp | 122 - .../protozero/test/t/bool/bool_testcase.proto | 15 - .../protozero/test/t/bool/data-also-true.pbf | 1 - .../protozero/test/t/bool/data-false.pbf | Bin 2 -> 0 bytes .../protozero/test/t/bool/data-still-true.pbf | 1 - .../protozero/test/t/bool/data-true.pbf | 1 - .../test/t/bool/reader_test_cases.cpp | 141 - .../protozero/test/t/bool/testcase.cpp | 21 - .../test/t/bool/writer_test_cases.cpp | 33 - .../test/t/bytes/bytes_testcase.proto | 12 - .../protozero/test/t/bytes/data-binary.pbf | 2 - .../protozero/test/t/bytes/data-empty.pbf | Bin 2 -> 0 bytes .../protozero/test/t/bytes/data-one.pbf | 2 - .../protozero/test/t/bytes/data-string.pbf | 2 - .../test/t/bytes/reader_test_cases.cpp | 139 - .../protozero/test/t/bytes/testcase.cpp | 25 - .../test/t/bytes/writer_test_cases.cpp | 55 - .../protozero/test/t/complex/data-all.pbf | Bin 62 -> 0 bytes .../protozero/test/t/complex/data-minimal.pbf | Bin 15 -> 0 bytes .../protozero/test/t/complex/data-some.pbf | Bin 30 -> 0 bytes .../test/t/complex/reader_test_cases.cpp | 742 - .../protozero/test/t/complex/testcase.cpp | 31 - .../protozero/test/t/complex/testcase.proto | 20 - .../protozero/test/t/double/data-neg.pbf | 1 - .../protozero/test/t/double/data-pos.pbf | 1 - .../protozero/test/t/double/data-zero.pbf | Bin 9 -> 0 bytes .../test/t/double/double_testcase.proto | 12 - .../test/t/double/reader_test_cases.cpp | 73 - .../protozero/test/t/double/testcase.cpp | 18 - .../test/t/double/writer_test_cases.cpp | 39 - .../protozero/test/t/enum/data-black.pbf | Bin 2 -> 0 bytes .../protozero/test/t/enum/data-blue.pbf | 1 - .../protozero/test/t/enum/data-max.pbf | 1 - .../protozero/test/t/enum/data-min.pbf | 1 - .../protozero/test/t/enum/data-neg.pbf | 1 - .../protozero/test/t/enum/enum_testcase.proto | 26 - .../test/t/enum/reader_test_cases.cpp | 83 - .../protozero/test/t/enum/testcase.cpp | 24 - .../test/t/enum/writer_test_cases.cpp | 55 - .../protozero/test/t/fixed32/data-max.pbf | 1 - .../protozero/test/t/fixed32/data-pos.pbf | Bin 5 -> 0 bytes .../protozero/test/t/fixed32/data-pos200.pbf | Bin 5 -> 0 bytes .../protozero/test/t/fixed32/data-zero.pbf | Bin 5 -> 0 bytes .../test/t/fixed32/fixed32_testcase.proto | 12 - .../test/t/fixed32/reader_test_cases.cpp | 9 - .../protozero/test/t/fixed32/testcase.cpp | 21 - .../test/t/fixed32/writer_test_cases.cpp | 39 - .../protozero/test/t/fixed64/data-max.pbf | 1 - .../protozero/test/t/fixed64/data-pos.pbf | Bin 9 -> 0 bytes .../protozero/test/t/fixed64/data-pos200.pbf | Bin 9 -> 0 bytes .../protozero/test/t/fixed64/data-zero.pbf | Bin 9 -> 0 bytes .../test/t/fixed64/reader_test_cases.cpp | 9 - .../protozero/test/t/fixed64/testcase.cpp | 21 - .../protozero/test/t/fixed64/testcase.proto | 12 - .../protozero/test/t/float/data-neg.pbf | 1 - .../protozero/test/t/float/data-pos.pbf | 1 - .../protozero/test/t/float/data-zero.pbf | Bin 5 -> 0 bytes .../test/t/float/reader_test_cases.cpp | 74 - .../protozero/test/t/float/testcase.cpp | 18 - .../protozero/test/t/float/testcase.proto | 12 - .../protozero/test/t/int32/data-max.pbf | 1 - .../protozero/test/t/int32/data-min.pbf | 1 - .../protozero/test/t/int32/data-neg.pbf | 1 - .../protozero/test/t/int32/data-neg200.pbf | 1 - .../protozero/test/t/int32/data-pos.pbf | 1 - .../protozero/test/t/int32/data-pos200.pbf | 1 - .../protozero/test/t/int32/data-zero.pbf | Bin 2 -> 0 bytes .../test/t/int32/int32_testcase.proto | 12 - .../test/t/int32/reader_test_cases.cpp | 9 - .../protozero/test/t/int32/testcase.cpp | 30 - .../test/t/int32/writer_test_cases.cpp | 55 - .../protozero/test/t/int64/data-max.pbf | 1 - .../protozero/test/t/int64/data-min.pbf | 1 - .../protozero/test/t/int64/data-neg.pbf | 1 - .../protozero/test/t/int64/data-neg200.pbf | 1 - .../protozero/test/t/int64/data-pos.pbf | 1 - .../protozero/test/t/int64/data-pos200.pbf | 1 - .../protozero/test/t/int64/data-zero.pbf | Bin 2 -> 0 bytes .../test/t/int64/reader_test_cases.cpp | 9 - .../protozero/test/t/int64/testcase.cpp | 30 - .../protozero/test/t/int64/testcase.proto | 12 - .../protozero/test/t/message/data-message.pbf | 3 - .../test/t/message/data-opt-element.pbf | 2 - .../test/t/message/data-opt-empty.pbf | 0 .../test/t/message/message_testcase.proto | 18 - .../test/t/message/reader_test_cases.cpp | 135 - .../protozero/test/t/message/testcase.cpp | 20 - .../test/t/message/writer_test_cases.cpp | 30 - .../protozero/test/t/nested/data-message.pbf | 5 - .../test/t/nested/data-no-message.pbf | Bin 4 -> 0 bytes .../test/t/nested/nested_testcase.proto | 21 - .../test/t/nested/reader_test_cases.cpp | 157 - .../protozero/test/t/nested/testcase.cpp | 22 - .../test/t/nested/writer_test_cases.cpp | 47 - .../protozero/test/t/repeated/data-empty.pbf | 0 .../protozero/test/t/repeated/data-many.pbf | Bin 32 -> 0 bytes .../protozero/test/t/repeated/data-one.pbf | Bin 2 -> 0 bytes .../test/t/repeated/reader_test_cases.cpp | 74 - .../test/t/repeated/repeated_testcase.proto | 12 - .../protozero/test/t/repeated/testcase.cpp | 20 - .../test/t/repeated/writer_test_cases.cpp | 41 - .../t/repeated_packed_bool/data-empty.pbf | 0 .../test/t/repeated_packed_bool/data-many.pbf | Bin 6 -> 0 bytes .../test/t/repeated_packed_bool/data-one.pbf | 2 - .../reader_test_cases.cpp | 158 - .../test/t/repeated_packed_bool/testcase.cpp | 19 - .../t/repeated_packed_bool/testcase.proto | 11 - .../t/repeated_packed_double/data-empty.pbf | 0 .../t/repeated_packed_double/data-many.pbf | Bin 42 -> 0 bytes .../t/repeated_packed_double/data-one.pbf | 3 - .../reader_test_cases.cpp | 120 - .../t/repeated_packed_double/testcase.cpp | 20 - .../t/repeated_packed_double/testcase.proto | 11 - .../t/repeated_packed_enum/data-empty.pbf | 0 .../test/t/repeated_packed_enum/data-many.pbf | Bin 5 -> 0 bytes .../test/t/repeated_packed_enum/data-one.pbf | Bin 3 -> 0 bytes .../reader_test_cases.cpp | 80 - .../test/t/repeated_packed_enum/testcase.cpp | 18 - .../t/repeated_packed_enum/testcase.proto | 18 - .../t/repeated_packed_fixed32/data-empty.pbf | 0 .../t/repeated_packed_fixed32/data-many.pbf | Bin 22 -> 0 bytes .../t/repeated_packed_fixed32/data-one.pbf | Bin 6 -> 0 bytes .../reader_test_cases.cpp | 9 - .../repeated_packed_fixed32_testcase.proto | 12 - .../t/repeated_packed_fixed32/testcase.cpp | 20 - .../writer_test_cases.cpp | 79 - .../t/repeated_packed_fixed64/data-empty.pbf | 0 .../t/repeated_packed_fixed64/data-many.pbf | Bin 42 -> 0 bytes .../t/repeated_packed_fixed64/data-one.pbf | Bin 10 -> 0 bytes .../reader_test_cases.cpp | 9 - .../t/repeated_packed_fixed64/testcase.cpp | 20 - .../t/repeated_packed_fixed64/testcase.proto | 11 - .../t/repeated_packed_float/data-empty.pbf | 0 .../t/repeated_packed_float/data-many.pbf | Bin 22 -> 0 bytes .../test/t/repeated_packed_float/data-one.pbf | 2 - .../reader_test_cases.cpp | 91 - .../test/t/repeated_packed_float/testcase.cpp | 20 - .../t/repeated_packed_float/testcase.proto | 11 - .../t/repeated_packed_int32/data-empty.pbf | 0 .../t/repeated_packed_int32/data-many.pbf | Bin 42 -> 0 bytes .../test/t/repeated_packed_int32/data-one.pbf | 2 - .../reader_test_cases.cpp | 9 - .../test/t/repeated_packed_int32/testcase.cpp | 23 - .../t/repeated_packed_int32/testcase.proto | 11 - .../t/repeated_packed_int64/data-empty.pbf | 0 .../t/repeated_packed_int64/data-many.pbf | Bin 46 -> 0 bytes .../test/t/repeated_packed_int64/data-one.pbf | 2 - .../reader_test_cases.cpp | 9 - .../test/t/repeated_packed_int64/testcase.cpp | 23 - .../t/repeated_packed_int64/testcase.proto | 11 - .../t/repeated_packed_sfixed32/data-empty.pbf | 0 .../t/repeated_packed_sfixed32/data-many.pbf | Bin 34 -> 0 bytes .../t/repeated_packed_sfixed32/data-one.pbf | Bin 6 -> 0 bytes .../reader_test_cases.cpp | 30 - .../t/repeated_packed_sfixed32/testcase.cpp | 23 - .../t/repeated_packed_sfixed32/testcase.proto | 11 - .../t/repeated_packed_sfixed64/data-empty.pbf | 0 .../t/repeated_packed_sfixed64/data-many.pbf | Bin 66 -> 0 bytes .../t/repeated_packed_sfixed64/data-one.pbf | Bin 10 -> 0 bytes .../reader_test_cases.cpp | 9 - .../t/repeated_packed_sfixed64/testcase.cpp | 23 - .../t/repeated_packed_sfixed64/testcase.proto | 11 - .../t/repeated_packed_sint32/data-empty.pbf | 0 .../t/repeated_packed_sint32/data-many.pbf | Bin 20 -> 0 bytes .../t/repeated_packed_sint32/data-one.pbf | 2 - .../reader_test_cases.cpp | 9 - .../t/repeated_packed_sint32/testcase.cpp | 23 - .../t/repeated_packed_sint32/testcase.proto | 11 - .../t/repeated_packed_sint64/data-empty.pbf | 0 .../t/repeated_packed_sint64/data-many.pbf | Bin 30 -> 0 bytes .../t/repeated_packed_sint64/data-one.pbf | 2 - .../reader_test_cases.cpp | 9 - .../t/repeated_packed_sint64/testcase.cpp | 23 - .../t/repeated_packed_sint64/testcase.proto | 11 - .../t/repeated_packed_uint32/data-empty.pbf | 0 .../t/repeated_packed_uint32/data-many.pbf | Bin 12 -> 0 bytes .../t/repeated_packed_uint32/data-one.pbf | 2 - .../reader_test_cases.cpp | 9 - .../t/repeated_packed_uint32/testcase.cpp | 20 - .../t/repeated_packed_uint32/testcase.proto | 11 - .../t/repeated_packed_uint64/data-empty.pbf | 0 .../t/repeated_packed_uint64/data-many.pbf | Bin 17 -> 0 bytes .../t/repeated_packed_uint64/data-one.pbf | 2 - .../reader_test_cases.cpp | 9 - .../t/repeated_packed_uint64/testcase.cpp | 20 - .../t/repeated_packed_uint64/testcase.proto | 11 - .../test/t/rollback/reader_test_cases.cpp | 204 - .../protozero/test/t/sfixed32/data-max.pbf | 1 - .../protozero/test/t/sfixed32/data-min.pbf | Bin 5 -> 0 bytes .../protozero/test/t/sfixed32/data-neg.pbf | 1 - .../protozero/test/t/sfixed32/data-neg200.pbf | 1 - .../protozero/test/t/sfixed32/data-pos.pbf | Bin 5 -> 0 bytes .../protozero/test/t/sfixed32/data-pos200.pbf | Bin 5 -> 0 bytes .../protozero/test/t/sfixed32/data-zero.pbf | Bin 5 -> 0 bytes .../test/t/sfixed32/reader_test_cases.cpp | 9 - .../protozero/test/t/sfixed32/testcase.cpp | 30 - .../protozero/test/t/sfixed32/testcase.proto | 11 - .../protozero/test/t/sfixed64/data-max.pbf | 1 - .../protozero/test/t/sfixed64/data-min.pbf | Bin 9 -> 0 bytes .../protozero/test/t/sfixed64/data-neg.pbf | 1 - .../protozero/test/t/sfixed64/data-neg200.pbf | 1 - .../protozero/test/t/sfixed64/data-pos.pbf | Bin 9 -> 0 bytes .../protozero/test/t/sfixed64/data-pos200.pbf | Bin 9 -> 0 bytes .../protozero/test/t/sfixed64/data-zero.pbf | Bin 9 -> 0 bytes .../test/t/sfixed64/reader_test_cases.cpp | 9 - .../protozero/test/t/sfixed64/testcase.cpp | 30 - .../protozero/test/t/sfixed64/testcase.proto | 11 - .../protozero/test/t/sint32/data-max.pbf | 1 - .../protozero/test/t/sint32/data-min.pbf | 1 - .../protozero/test/t/sint32/data-neg.pbf | 1 - .../protozero/test/t/sint32/data-neg200.pbf | 1 - .../protozero/test/t/sint32/data-pos.pbf | 1 - .../protozero/test/t/sint32/data-pos200.pbf | 1 - .../protozero/test/t/sint32/data-zero.pbf | Bin 2 -> 0 bytes .../test/t/sint32/reader_test_cases.cpp | 9 - .../protozero/test/t/sint32/testcase.cpp | 30 - .../protozero/test/t/sint32/testcase.proto | 11 - .../protozero/test/t/sint64/data-max.pbf | 1 - .../protozero/test/t/sint64/data-min.pbf | 1 - .../protozero/test/t/sint64/data-neg.pbf | 1 - .../protozero/test/t/sint64/data-neg200.pbf | 1 - .../protozero/test/t/sint64/data-pos.pbf | 1 - .../protozero/test/t/sint64/data-pos200.pbf | 1 - .../protozero/test/t/sint64/data-zero.pbf | Bin 2 -> 0 bytes .../test/t/sint64/reader_test_cases.cpp | 9 - .../protozero/test/t/sint64/testcase.cpp | 30 - .../protozero/test/t/sint64/testcase.proto | 11 - .../test/t/skip/reader_test_cases.cpp | 130 - .../protozero/test/t/string/data-empty.pbf | Bin 2 -> 0 bytes .../protozero/test/t/string/data-one.pbf | 2 - .../protozero/test/t/string/data-string.pbf | 2 - .../test/t/string/reader_test_cases.cpp | 106 - .../test/t/string/string_testcase.proto | 12 - .../protozero/test/t/string/testcase.cpp | 18 - .../test/t/string/writer_test_cases.cpp | 39 - .../test/t/tag_and_type/data-combined.pbf | 3 - .../test/t/tag_and_type/data-not-packed.pbf | 2 - .../test/t/tag_and_type/data-packed.pbf | 2 - .../test/t/tag_and_type/reader_test_cases.cpp | 87 - .../test/t/tag_and_type/testcase.cpp | 43 - .../test/t/tag_and_type/testcase.proto | 15 - .../protozero/test/t/tags/data-tag-1.pbf | 1 - .../protozero/test/t/tags/data-tag-200.pbf | 1 - .../protozero/test/t/tags/data-tag-200000.pbf | 1 - .../protozero/test/t/tags/data-tag-max.pbf | 1 - .../test/t/tags/reader_test_cases.cpp | 53 - .../protozero/test/t/tags/testcase.cpp | 33 - .../protozero/test/t/tags/testcase.proto | 29 - .../protozero/test/t/uint32/data-max.pbf | 1 - .../protozero/test/t/uint32/data-pos.pbf | 1 - .../protozero/test/t/uint32/data-pos200.pbf | 1 - .../protozero/test/t/uint32/data-zero.pbf | Bin 2 -> 0 bytes .../test/t/uint32/reader_test_cases.cpp | 9 - .../protozero/test/t/uint32/testcase.cpp | 21 - .../protozero/test/t/uint32/testcase.proto | 11 - .../protozero/test/t/uint64/data-max.pbf | 1 - .../protozero/test/t/uint64/data-pos.pbf | 1 - .../protozero/test/t/uint64/data-pos200.pbf | 1 - .../protozero/test/t/uint64/data-zero.pbf | Bin 2 -> 0 bytes .../test/t/uint64/reader_test_cases.cpp | 9 - .../protozero/test/t/uint64/testcase.cpp | 21 - .../protozero/test/t/uint64/testcase.proto | 11 - .../test/t/vector_tile/data.vector.pbf | Bin 412300 -> 0 bytes .../test/t/vector_tile/reader_test_cases.cpp | 155 - .../t/wrong_type_access/reader_test_cases.cpp | 55 - .../protozero/test/unit/CMakeLists.txt | 25 - third_party/protozero/test/unit/main.cpp | 4 - .../protozero/test/unit/test_basic.cpp | 141 - .../protozero/test/unit/test_buffer.cpp | 50 - .../protozero/test/unit/test_data_view.cpp | 162 - .../protozero/test/unit/test_endian.cpp | 72 - .../protozero/test/unit/test_exceptions.cpp | 33 - .../protozero/test/unit/test_iterators.cpp | 18 - .../protozero/test/unit/test_varint.cpp | 241 - .../protozero/test/unit/test_zigzag.cpp | 85 - third_party/protozero/test/writer_tests.cpp | 4 - third_party/protozero/tools/pbf-decoder.cpp | 2 +- 300 files changed, 577 insertions(+), 24803 deletions(-) delete mode 100644 third_party/protozero/test/CMakeLists.txt delete mode 100644 third_party/protozero/test/README.md delete mode 100644 third_party/protozero/test/catch/catch.hpp delete mode 100755 third_party/protozero/test/create_pbf_test_data.sh delete mode 100644 third_party/protozero/test/include/buffer.hpp delete mode 100644 third_party/protozero/test/include/packed_access.hpp delete mode 100644 third_party/protozero/test/include/scalar_access.hpp delete mode 100644 third_party/protozero/test/include/test.hpp delete mode 100644 third_party/protozero/test/include/testcase.hpp delete mode 100644 third_party/protozero/test/reader_tests.cpp delete mode 100644 third_party/protozero/test/t/alignment/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/bool/bool_testcase.proto delete mode 100644 third_party/protozero/test/t/bool/data-also-true.pbf delete mode 100644 third_party/protozero/test/t/bool/data-false.pbf delete mode 100644 third_party/protozero/test/t/bool/data-still-true.pbf delete mode 100644 third_party/protozero/test/t/bool/data-true.pbf delete mode 100644 third_party/protozero/test/t/bool/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/bool/testcase.cpp delete mode 100644 third_party/protozero/test/t/bool/writer_test_cases.cpp delete mode 100644 third_party/protozero/test/t/bytes/bytes_testcase.proto delete mode 100644 third_party/protozero/test/t/bytes/data-binary.pbf delete mode 100644 third_party/protozero/test/t/bytes/data-empty.pbf delete mode 100644 third_party/protozero/test/t/bytes/data-one.pbf delete mode 100644 third_party/protozero/test/t/bytes/data-string.pbf delete mode 100644 third_party/protozero/test/t/bytes/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/bytes/testcase.cpp delete mode 100644 third_party/protozero/test/t/bytes/writer_test_cases.cpp delete mode 100644 third_party/protozero/test/t/complex/data-all.pbf delete mode 100644 third_party/protozero/test/t/complex/data-minimal.pbf delete mode 100644 third_party/protozero/test/t/complex/data-some.pbf delete mode 100644 third_party/protozero/test/t/complex/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/complex/testcase.cpp delete mode 100644 third_party/protozero/test/t/complex/testcase.proto delete mode 100644 third_party/protozero/test/t/double/data-neg.pbf delete mode 100644 third_party/protozero/test/t/double/data-pos.pbf delete mode 100644 third_party/protozero/test/t/double/data-zero.pbf delete mode 100644 third_party/protozero/test/t/double/double_testcase.proto delete mode 100644 third_party/protozero/test/t/double/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/double/testcase.cpp delete mode 100644 third_party/protozero/test/t/double/writer_test_cases.cpp delete mode 100644 third_party/protozero/test/t/enum/data-black.pbf delete mode 100644 third_party/protozero/test/t/enum/data-blue.pbf delete mode 100644 third_party/protozero/test/t/enum/data-max.pbf delete mode 100644 third_party/protozero/test/t/enum/data-min.pbf delete mode 100644 third_party/protozero/test/t/enum/data-neg.pbf delete mode 100644 third_party/protozero/test/t/enum/enum_testcase.proto delete mode 100644 third_party/protozero/test/t/enum/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/enum/testcase.cpp delete mode 100644 third_party/protozero/test/t/enum/writer_test_cases.cpp delete mode 100644 third_party/protozero/test/t/fixed32/data-max.pbf delete mode 100644 third_party/protozero/test/t/fixed32/data-pos.pbf delete mode 100644 third_party/protozero/test/t/fixed32/data-pos200.pbf delete mode 100644 third_party/protozero/test/t/fixed32/data-zero.pbf delete mode 100644 third_party/protozero/test/t/fixed32/fixed32_testcase.proto delete mode 100644 third_party/protozero/test/t/fixed32/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/fixed32/testcase.cpp delete mode 100644 third_party/protozero/test/t/fixed32/writer_test_cases.cpp delete mode 100644 third_party/protozero/test/t/fixed64/data-max.pbf delete mode 100644 third_party/protozero/test/t/fixed64/data-pos.pbf delete mode 100644 third_party/protozero/test/t/fixed64/data-pos200.pbf delete mode 100644 third_party/protozero/test/t/fixed64/data-zero.pbf delete mode 100644 third_party/protozero/test/t/fixed64/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/fixed64/testcase.cpp delete mode 100644 third_party/protozero/test/t/fixed64/testcase.proto delete mode 100644 third_party/protozero/test/t/float/data-neg.pbf delete mode 100644 third_party/protozero/test/t/float/data-pos.pbf delete mode 100644 third_party/protozero/test/t/float/data-zero.pbf delete mode 100644 third_party/protozero/test/t/float/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/float/testcase.cpp delete mode 100644 third_party/protozero/test/t/float/testcase.proto delete mode 100644 third_party/protozero/test/t/int32/data-max.pbf delete mode 100644 third_party/protozero/test/t/int32/data-min.pbf delete mode 100644 third_party/protozero/test/t/int32/data-neg.pbf delete mode 100644 third_party/protozero/test/t/int32/data-neg200.pbf delete mode 100644 third_party/protozero/test/t/int32/data-pos.pbf delete mode 100644 third_party/protozero/test/t/int32/data-pos200.pbf delete mode 100644 third_party/protozero/test/t/int32/data-zero.pbf delete mode 100644 third_party/protozero/test/t/int32/int32_testcase.proto delete mode 100644 third_party/protozero/test/t/int32/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/int32/testcase.cpp delete mode 100644 third_party/protozero/test/t/int32/writer_test_cases.cpp delete mode 100644 third_party/protozero/test/t/int64/data-max.pbf delete mode 100644 third_party/protozero/test/t/int64/data-min.pbf delete mode 100644 third_party/protozero/test/t/int64/data-neg.pbf delete mode 100644 third_party/protozero/test/t/int64/data-neg200.pbf delete mode 100644 third_party/protozero/test/t/int64/data-pos.pbf delete mode 100644 third_party/protozero/test/t/int64/data-pos200.pbf delete mode 100644 third_party/protozero/test/t/int64/data-zero.pbf delete mode 100644 third_party/protozero/test/t/int64/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/int64/testcase.cpp delete mode 100644 third_party/protozero/test/t/int64/testcase.proto delete mode 100644 third_party/protozero/test/t/message/data-message.pbf delete mode 100644 third_party/protozero/test/t/message/data-opt-element.pbf delete mode 100644 third_party/protozero/test/t/message/data-opt-empty.pbf delete mode 100644 third_party/protozero/test/t/message/message_testcase.proto delete mode 100644 third_party/protozero/test/t/message/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/message/testcase.cpp delete mode 100644 third_party/protozero/test/t/message/writer_test_cases.cpp delete mode 100644 third_party/protozero/test/t/nested/data-message.pbf delete mode 100644 third_party/protozero/test/t/nested/data-no-message.pbf delete mode 100644 third_party/protozero/test/t/nested/nested_testcase.proto delete mode 100644 third_party/protozero/test/t/nested/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/nested/testcase.cpp delete mode 100644 third_party/protozero/test/t/nested/writer_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated/data-empty.pbf delete mode 100644 third_party/protozero/test/t/repeated/data-many.pbf delete mode 100644 third_party/protozero/test/t/repeated/data-one.pbf delete mode 100644 third_party/protozero/test/t/repeated/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated/repeated_testcase.proto delete mode 100644 third_party/protozero/test/t/repeated/testcase.cpp delete mode 100644 third_party/protozero/test/t/repeated/writer_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_bool/data-empty.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_bool/data-many.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_bool/data-one.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_bool/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_bool/testcase.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_bool/testcase.proto delete mode 100644 third_party/protozero/test/t/repeated_packed_double/data-empty.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_double/data-many.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_double/data-one.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_double/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_double/testcase.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_double/testcase.proto delete mode 100644 third_party/protozero/test/t/repeated_packed_enum/data-empty.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_enum/data-many.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_enum/data-one.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_enum/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_enum/testcase.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_enum/testcase.proto delete mode 100644 third_party/protozero/test/t/repeated_packed_fixed32/data-empty.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_fixed32/data-many.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_fixed32/data-one.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_fixed32/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_fixed32/repeated_packed_fixed32_testcase.proto delete mode 100644 third_party/protozero/test/t/repeated_packed_fixed32/testcase.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_fixed32/writer_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_fixed64/data-empty.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_fixed64/data-many.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_fixed64/data-one.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_fixed64/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_fixed64/testcase.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_fixed64/testcase.proto delete mode 100644 third_party/protozero/test/t/repeated_packed_float/data-empty.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_float/data-many.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_float/data-one.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_float/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_float/testcase.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_float/testcase.proto delete mode 100644 third_party/protozero/test/t/repeated_packed_int32/data-empty.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_int32/data-many.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_int32/data-one.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_int32/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_int32/testcase.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_int32/testcase.proto delete mode 100644 third_party/protozero/test/t/repeated_packed_int64/data-empty.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_int64/data-many.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_int64/data-one.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_int64/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_int64/testcase.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_int64/testcase.proto delete mode 100644 third_party/protozero/test/t/repeated_packed_sfixed32/data-empty.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_sfixed32/data-many.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_sfixed32/data-one.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_sfixed32/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_sfixed32/testcase.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_sfixed32/testcase.proto delete mode 100644 third_party/protozero/test/t/repeated_packed_sfixed64/data-empty.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_sfixed64/data-many.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_sfixed64/data-one.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_sfixed64/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_sfixed64/testcase.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_sfixed64/testcase.proto delete mode 100644 third_party/protozero/test/t/repeated_packed_sint32/data-empty.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_sint32/data-many.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_sint32/data-one.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_sint32/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_sint32/testcase.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_sint32/testcase.proto delete mode 100644 third_party/protozero/test/t/repeated_packed_sint64/data-empty.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_sint64/data-many.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_sint64/data-one.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_sint64/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_sint64/testcase.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_sint64/testcase.proto delete mode 100644 third_party/protozero/test/t/repeated_packed_uint32/data-empty.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_uint32/data-many.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_uint32/data-one.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_uint32/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_uint32/testcase.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_uint32/testcase.proto delete mode 100644 third_party/protozero/test/t/repeated_packed_uint64/data-empty.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_uint64/data-many.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_uint64/data-one.pbf delete mode 100644 third_party/protozero/test/t/repeated_packed_uint64/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_uint64/testcase.cpp delete mode 100644 third_party/protozero/test/t/repeated_packed_uint64/testcase.proto delete mode 100644 third_party/protozero/test/t/rollback/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/sfixed32/data-max.pbf delete mode 100644 third_party/protozero/test/t/sfixed32/data-min.pbf delete mode 100644 third_party/protozero/test/t/sfixed32/data-neg.pbf delete mode 100644 third_party/protozero/test/t/sfixed32/data-neg200.pbf delete mode 100644 third_party/protozero/test/t/sfixed32/data-pos.pbf delete mode 100644 third_party/protozero/test/t/sfixed32/data-pos200.pbf delete mode 100644 third_party/protozero/test/t/sfixed32/data-zero.pbf delete mode 100644 third_party/protozero/test/t/sfixed32/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/sfixed32/testcase.cpp delete mode 100644 third_party/protozero/test/t/sfixed32/testcase.proto delete mode 100644 third_party/protozero/test/t/sfixed64/data-max.pbf delete mode 100644 third_party/protozero/test/t/sfixed64/data-min.pbf delete mode 100644 third_party/protozero/test/t/sfixed64/data-neg.pbf delete mode 100644 third_party/protozero/test/t/sfixed64/data-neg200.pbf delete mode 100644 third_party/protozero/test/t/sfixed64/data-pos.pbf delete mode 100644 third_party/protozero/test/t/sfixed64/data-pos200.pbf delete mode 100644 third_party/protozero/test/t/sfixed64/data-zero.pbf delete mode 100644 third_party/protozero/test/t/sfixed64/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/sfixed64/testcase.cpp delete mode 100644 third_party/protozero/test/t/sfixed64/testcase.proto delete mode 100644 third_party/protozero/test/t/sint32/data-max.pbf delete mode 100644 third_party/protozero/test/t/sint32/data-min.pbf delete mode 100644 third_party/protozero/test/t/sint32/data-neg.pbf delete mode 100644 third_party/protozero/test/t/sint32/data-neg200.pbf delete mode 100644 third_party/protozero/test/t/sint32/data-pos.pbf delete mode 100644 third_party/protozero/test/t/sint32/data-pos200.pbf delete mode 100644 third_party/protozero/test/t/sint32/data-zero.pbf delete mode 100644 third_party/protozero/test/t/sint32/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/sint32/testcase.cpp delete mode 100644 third_party/protozero/test/t/sint32/testcase.proto delete mode 100644 third_party/protozero/test/t/sint64/data-max.pbf delete mode 100644 third_party/protozero/test/t/sint64/data-min.pbf delete mode 100644 third_party/protozero/test/t/sint64/data-neg.pbf delete mode 100644 third_party/protozero/test/t/sint64/data-neg200.pbf delete mode 100644 third_party/protozero/test/t/sint64/data-pos.pbf delete mode 100644 third_party/protozero/test/t/sint64/data-pos200.pbf delete mode 100644 third_party/protozero/test/t/sint64/data-zero.pbf delete mode 100644 third_party/protozero/test/t/sint64/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/sint64/testcase.cpp delete mode 100644 third_party/protozero/test/t/sint64/testcase.proto delete mode 100644 third_party/protozero/test/t/skip/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/string/data-empty.pbf delete mode 100644 third_party/protozero/test/t/string/data-one.pbf delete mode 100644 third_party/protozero/test/t/string/data-string.pbf delete mode 100644 third_party/protozero/test/t/string/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/string/string_testcase.proto delete mode 100644 third_party/protozero/test/t/string/testcase.cpp delete mode 100644 third_party/protozero/test/t/string/writer_test_cases.cpp delete mode 100644 third_party/protozero/test/t/tag_and_type/data-combined.pbf delete mode 100644 third_party/protozero/test/t/tag_and_type/data-not-packed.pbf delete mode 100644 third_party/protozero/test/t/tag_and_type/data-packed.pbf delete mode 100644 third_party/protozero/test/t/tag_and_type/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/tag_and_type/testcase.cpp delete mode 100644 third_party/protozero/test/t/tag_and_type/testcase.proto delete mode 100644 third_party/protozero/test/t/tags/data-tag-1.pbf delete mode 100644 third_party/protozero/test/t/tags/data-tag-200.pbf delete mode 100644 third_party/protozero/test/t/tags/data-tag-200000.pbf delete mode 100644 third_party/protozero/test/t/tags/data-tag-max.pbf delete mode 100644 third_party/protozero/test/t/tags/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/tags/testcase.cpp delete mode 100644 third_party/protozero/test/t/tags/testcase.proto delete mode 100644 third_party/protozero/test/t/uint32/data-max.pbf delete mode 100644 third_party/protozero/test/t/uint32/data-pos.pbf delete mode 100644 third_party/protozero/test/t/uint32/data-pos200.pbf delete mode 100644 third_party/protozero/test/t/uint32/data-zero.pbf delete mode 100644 third_party/protozero/test/t/uint32/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/uint32/testcase.cpp delete mode 100644 third_party/protozero/test/t/uint32/testcase.proto delete mode 100644 third_party/protozero/test/t/uint64/data-max.pbf delete mode 100644 third_party/protozero/test/t/uint64/data-pos.pbf delete mode 100644 third_party/protozero/test/t/uint64/data-pos200.pbf delete mode 100644 third_party/protozero/test/t/uint64/data-zero.pbf delete mode 100644 third_party/protozero/test/t/uint64/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/uint64/testcase.cpp delete mode 100644 third_party/protozero/test/t/uint64/testcase.proto delete mode 100644 third_party/protozero/test/t/vector_tile/data.vector.pbf delete mode 100644 third_party/protozero/test/t/vector_tile/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/t/wrong_type_access/reader_test_cases.cpp delete mode 100644 third_party/protozero/test/unit/CMakeLists.txt delete mode 100644 third_party/protozero/test/unit/main.cpp delete mode 100644 third_party/protozero/test/unit/test_basic.cpp delete mode 100644 third_party/protozero/test/unit/test_buffer.cpp delete mode 100644 third_party/protozero/test/unit/test_data_view.cpp delete mode 100644 third_party/protozero/test/unit/test_endian.cpp delete mode 100644 third_party/protozero/test/unit/test_exceptions.cpp delete mode 100644 third_party/protozero/test/unit/test_iterators.cpp delete mode 100644 third_party/protozero/test/unit/test_varint.cpp delete mode 100644 third_party/protozero/test/unit/test_zigzag.cpp delete mode 100644 third_party/protozero/test/writer_tests.cpp diff --git a/scripts/update_dependencies.sh b/scripts/update_dependencies.sh index 8a62b1d433b..8a9137dc62d 100755 --- a/scripts/update_dependencies.sh +++ b/scripts/update_dependencies.sh @@ -22,7 +22,7 @@ MICROTAR_PATH="rxi/microtar" MICROTAR_TAG=v0.1.0 PROTOZERO_PATH="mapbox/protozero" -PROTOZERO_TAG=v1.6.2 +PROTOZERO_TAG=v1.7.1 VTZERO_PATH="mapbox/vtzero" VTZERO_TAG=v1.1.0 diff --git a/third_party/protozero/.clang-tidy b/third_party/protozero/.clang-tidy index 2bf0586325d..b7f31d93980 100644 --- a/third_party/protozero/.clang-tidy +++ b/third_party/protozero/.clang-tidy @@ -1,8 +1,15 @@ --- -Checks: '*,-bugprone-signed-char-misuse,-cert-dcl21-cpp,-cert-err58-cpp,-cert-err60-cpp,-cppcoreguidelines-avoid-c-arrays,-cppcoreguidelines-avoid-magic-numbers,-cppcoreguidelines-macro-usage,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-cppcoreguidelines-pro-type-reinterpret-cast,-fuchsia-*,-google-runtime-references,-hicpp-avoid-c-arrays,-hicpp-no-array-decay,-hicpp-vararg,-modernize-avoid-c-arrays,-modernize-use-trailing-return-type,-readability-implicit-bool-conversion,-readability-magic-numbers' +Checks: '*,-altera-*,-bugprone-easily-swappable-parameters,-bugprone-signed-char-misuse,-cert-dcl21-cpp,-cert-err58-cpp,-cert-err60-cpp,-cppcoreguidelines-avoid-c-arrays,-cppcoreguidelines-avoid-non-const-global-variables,-cppcoreguidelines-avoid-magic-numbers,-cppcoreguidelines-macro-usage,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-cppcoreguidelines-pro-type-reinterpret-cast,-fuchsia-*,-google-runtime-references,-hicpp-avoid-c-arrays,-hicpp-no-array-decay,-hicpp-vararg,-llvmlibc-*,-misc-no-recursion,-modernize-avoid-c-arrays,-modernize-use-trailing-return-type,-readability-function-cognitive-complexity,-readability-identifier-length,-readability-implicit-bool-conversion,-readability-magic-numbers' # # Disabled checks: # +# altera-* +# Doesn't apply. +# +# bugprone-easily-swappable-parameters +# Can't change this any more, because these functions are part of our public +# interface. +# # bugprone-signed-char-misuse # Lots of warnings in varint.hpp otherwise. # @@ -25,6 +32,9 @@ Checks: '*,-bugprone-signed-char-misuse,-cert-dcl21-cpp,-cert-err58-cpp,-cert-er # readability-magic-numbers # Good idea, but it goes too far to force this everywhere. # +# cppcoreguidelines-avoid-non-const-global-variables +# Getting these from Catch2 test framework, not from the code itself. +# # cppcoreguidelines-macro-usage # There are cases where macros are simply needed. # @@ -47,9 +57,21 @@ Checks: '*,-bugprone-signed-char-misuse,-cert-dcl21-cpp,-cert-err58-cpp,-cert-er # hicpp-no-array-decay # Limited use and many false positives including for all asserts. # +# llvmlibc-* +# Doesn't apply. +# +# misc-no-recursion +# Nothing wrong with recursion. +# # modernize-use-trailing-return-type # We are not quite that modern. # +# readability-function-cognitive-complexity +# Getting these mostly from Catch2 test framework. +# +# readability-identifier-length +# Short identifiers do make sense sometimes. +# # readability-implicit-bool-conversion # Not necessarily more readable. # diff --git a/third_party/protozero/CHANGELOG.md b/third_party/protozero/CHANGELOG.md index cfdb6a6478a..35a793c1015 100644 --- a/third_party/protozero/CHANGELOG.md +++ b/third_party/protozero/CHANGELOG.md @@ -2,8 +2,8 @@ # Changelog All notable changes to this project will be documented in this file. -The format is based on [Keep a Changelog](http://keepachangelog.com/) -This project adheres to [Semantic Versioning](http://semver.org/). +The format is based on [Keep a Changelog](https://keepachangelog.com/) +This project adheres to [Semantic Versioning](https://semver.org/). ## [unreleased] - @@ -14,6 +14,24 @@ This project adheres to [Semantic Versioning](http://semver.org/). ### Fixed +## [1.7.1] - 2022-01-10 + +### Changed + +- Don't build tests if the standard CMake `BUILD_TESTING` variable is set to + off. +- Now needs CMake 3.5.0 or greater. +- Update included catch2 framework to current version v2.13.8. +- Only enable clang-tidy make target if protobuf was found. +- Allow setting C++ version to compile with in CMake config. + +### Fixed + +- Fixes undefined behaviour in `float` and `double` byteswap. +- Add missing includes of "config.hpp". +- Avoid narrowing conversion by doing an explicit `static_cast`. + + ## [1.7.0] - 2020-06-08 ### Added @@ -381,7 +399,8 @@ This project adheres to [Semantic Versioning](http://semver.org/). - Make pbf reader and writer code endianess-aware. -[unreleased]: https://github.com/osmcode/libosmium/compare/v1.7.0...HEAD +[unreleased]: https://github.com/osmcode/libosmium/compare/v1.7.1...HEAD +[1.7.1]: https://github.com/osmcode/libosmium/compare/v1.7.0...v1.7.1 [1.7.0]: https://github.com/osmcode/libosmium/compare/v1.6.8...v1.7.0 [1.6.8]: https://github.com/osmcode/libosmium/compare/v1.6.7...v1.6.8 [1.6.7]: https://github.com/osmcode/libosmium/compare/v1.6.6...v1.6.7 diff --git a/third_party/protozero/CMakeLists.txt b/third_party/protozero/CMakeLists.txt index f9702d60314..b975d490167 100644 --- a/third_party/protozero/CMakeLists.txt +++ b/third_party/protozero/CMakeLists.txt @@ -6,32 +6,35 @@ # #----------------------------------------------------------------------------- -cmake_minimum_required(VERSION 2.8 FATAL_ERROR) +cmake_minimum_required(VERSION 3.5.0 FATAL_ERROR) #----------------------------------------------------------------------------- -project(protozero) +project(protozero VERSION 1.7.1 LANGUAGES CXX C) -set(PROTOZERO_VERSION_MAJOR 1) -set(PROTOZERO_VERSION_MINOR 7) -set(PROTOZERO_VERSION_PATCH 0) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -set(PROTOZERO_VERSION - "${PROTOZERO_VERSION_MAJOR}.${PROTOZERO_VERSION_MINOR}.${PROTOZERO_VERSION_PATCH}") +#----------------------------------------------------------------------------- -set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +if (NOT "${CMAKE_CXX_STANDARD}") + set(CMAKE_CXX_STANDARD 11) +endif() +message(STATUS "Building in C++${CMAKE_CXX_STANDARD} mode") +set(CMAKE_CXX_EXTENSIONS OFF) +set(CMAKE_CXX_STANDARD_REQUIRED ON) #----------------------------------------------------------------------------- +option(BUILD_TESTING "Build tests" ON) option(WERROR "Add -Werror flag to build (turns warnings into errors)" ON) if(MSVC) - add_definitions(/W3) + add_compile_options(/W3) add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS) else() - add_definitions(-std=c++11 -Wall -Wextra -pedantic -Wsign-compare -Wunused-parameter -Wno-float-equal -Wno-covered-switch-default) + add_compile_options(-Wall -Wextra -pedantic -Wsign-compare -Wunused-parameter -Wno-float-equal -Wno-covered-switch-default) if(WERROR) - add_definitions(-Werror) + add_compile_options(-Werror) endif() endif() @@ -58,9 +61,9 @@ find_package(Protobuf) # #----------------------------------------------------------------------------- message(STATUS "Looking for clang-tidy") -find_program(CLANG_TIDY NAMES clang-tidy clang-tidy-10 clang-tidy-9 clang-tidy-8 clang-tidy-7 clang-tidy-6.0 clang-tidy-5.0) +find_program(CLANG_TIDY NAMES clang-tidy clang-tidy-14 clang-tidy-13 clang-tidy-12 clang-tidy-11) -if(CLANG_TIDY) +if(CLANG_TIDY AND PROTOBUF_FOUND) message(STATUS "Looking for clang-tidy - found ${CLANG_TIDY}") add_custom_target(clang-tidy ${CLANG_TIDY} @@ -134,13 +137,13 @@ install(DIRECTORY include/protozero DESTINATION include) #----------------------------------------------------------------------------- -enable_testing() - add_subdirectory(doc) -add_subdirectory(tools) - -add_subdirectory(test) +if(BUILD_TESTING) + enable_testing() + add_subdirectory(test) +endif() +add_subdirectory(tools) #----------------------------------------------------------------------------- diff --git a/third_party/protozero/FUZZING.md b/third_party/protozero/FUZZING.md index 44ae0ef1694..54547bf894f 100644 --- a/third_party/protozero/FUZZING.md +++ b/third_party/protozero/FUZZING.md @@ -1,5 +1,5 @@ -To do fuzz testing using [AFL](http://lcamtuf.coredump.cx/afl/) compile with +To do fuzz testing using [AFL](https://lcamtuf.coredump.cx/afl/) compile with the AFL compiler wrappers: mkdir build diff --git a/third_party/protozero/README.md b/third_party/protozero/README.md index d6e98275117..f1c10cc7cd4 100644 --- a/third_party/protozero/README.md +++ b/third_party/protozero/README.md @@ -11,7 +11,7 @@ changing frequently or lazy decoding is not critical for your application then this approach offers no value: just use the C++ API that can be generated with the Google Protobufs `protoc` program. -[![Travis Build Status](https://travis-ci.org/mapbox/protozero.svg?branch=master)](https://travis-ci.org/mapbox/protozero) +[![Travis Build Status](https://travis-ci.com/mapbox/protozero.svg?branch=master)](https://travis-ci.com/mapbox/protozero) [![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/github/mapbox/protozero?svg=true)](https://ci.appveyor.com/project/Mapbox/protozero) [![Coverage Status](https://codecov.io/gh/mapbox/protozero/branch/master/graph/badge.svg)](https://codecov.io/gh/mapbox/protozero) [![Packaging status](https://repology.org/badge/tiny-repos/protozero.svg)](https://repology.org/metapackage/protozero) @@ -123,7 +123,7 @@ You might have to set `CLANG_TIDY` in CMake config. ## Cppcheck -For extra checks with [Cppcheck](http://cppcheck.sourceforge.net/) you can, +For extra checks with [Cppcheck](https://cppcheck.sourceforge.io/) you can, after the CMake step, call make cppcheck diff --git a/third_party/protozero/appveyor.yml b/third_party/protozero/appveyor.yml index 4f3cb4a212d..236a7b72c94 100644 --- a/third_party/protozero/appveyor.yml +++ b/third_party/protozero/appveyor.yml @@ -14,8 +14,6 @@ clone_depth: 1 environment: matrix: - - config: MSYS2 - autocrlf: true - config: Debug autocrlf: true - config: RelWithDebInfo @@ -27,6 +25,9 @@ environment: - config: Debug autocrlf: false platform: x86 + - config: MSYS2 + autocrlf: true + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 #----------------------------------------------------------------------------- diff --git a/third_party/protozero/bench/data/README.md b/third_party/protozero/bench/data/README.md index 202f94db114..79e1b5fed4b 100644 --- a/third_party/protozero/bench/data/README.md +++ b/third_party/protozero/bench/data/README.md @@ -2,7 +2,7 @@ mapbox-streets-v6/14/8714/8017.vector.pbf - - http://c.tile.openstreetmap.org/14/8714/8017.png + - https://c.tile.openstreetmap.org/14/8714/8017.png - https://a.tiles.mapbox.com/v4/mapbox.mapbox-streets-v6/14/8714/8017.vector.pbf - https://www.mapbox.com/developers/vector-tiles/mapbox-streets/ @@ -10,4 +10,4 @@ enf-14-4824-6157.vector.pbf - enf.8k273nmi - https://b.tiles.mapbox.com/v4/enf.c3a2de35/14/4824/6157@2x.png - - https://www.mapbox.com/blog/twitter-map-every-tweet/ \ No newline at end of file + - https://www.mapbox.com/blog/twitter-map-every-tweet/ diff --git a/third_party/protozero/doc/Doxyfile.in b/third_party/protozero/doc/Doxyfile.in index a23ad7f742f..358f1d3535a 100644 --- a/third_party/protozero/doc/Doxyfile.in +++ b/third_party/protozero/doc/Doxyfile.in @@ -1,4 +1,4 @@ -# Doxyfile 1.8.8 +# Doxyfile 1.9.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. @@ -17,11 +17,11 @@ # Project related configuration options #--------------------------------------------------------------------------- -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv -# for the list of possible encodings. +# This tag specifies the encoding used for all characters in the configuration +# file that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# https://www.gnu.org/software/libiconv/ for the list of possible encodings. # The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 @@ -32,13 +32,13 @@ DOXYFILE_ENCODING = UTF-8 # title of most generated pages and in a few other places. # The default value is: My Project. -PROJECT_NAME = "protozero" +PROJECT_NAME = protozero # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = @PROTOZERO_VERSION@ +PROJECT_NUMBER = @PROJECT_VERSION@ # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a @@ -46,10 +46,10 @@ PROJECT_NUMBER = @PROTOZERO_VERSION@ PROJECT_BRIEF = "Minimalistic protocol buffer decoder and encoder in C++." -# With the PROJECT_LOGO tag one can specify an logo or icon that is included in -# the documentation. The maximum height of the logo should not exceed 55 pixels -# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo -# to the output directory. +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. PROJECT_LOGO = @@ -58,9 +58,9 @@ PROJECT_LOGO = # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. -OUTPUT_DIRECTORY = "@PROJECT_BINARY_DIR@/doc" +OUTPUT_DIRECTORY = @PROJECT_BINARY_DIR@/doc -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and # will distribute the generated files over these directories. Enabling this # option can be useful when feeding doxygen a huge amount of source files, where @@ -93,14 +93,22 @@ ALLOW_UNICODE_NAMES = NO OUTPUT_LANGUAGE = English -# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member +# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all generated output in the proper direction. +# Possible values are: None, LTR, RTL and Context. +# The default value is: None. + +OUTPUT_TEXT_DIRECTION = None + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES -# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the @@ -135,7 +143,7 @@ ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO -# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. @@ -179,6 +187,16 @@ SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO +# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line +# such as +# /*************** +# as being the beginning of a Javadoc-style comment "banner". If set to NO, the +# Javadoc-style will behave just like regular comments and it will not be +# interpreted by doxygen. +# The default value is: NO. + +JAVADOC_BANNER = NO + # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If # set to NO, the Qt-style will behave just like regular Qt-style comments (thus @@ -199,15 +217,23 @@ QT_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO +# By default Python docstrings are displayed as preformatted text and doxygen's +# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the +# doxygen's special commands can be used and the contents of the docstring +# documentation blocks is shown as doxygen documentation. +# The default value is: YES. + +PYTHON_DOCSTRING = YES + # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. INHERIT_DOCS = YES -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a -# new page for each member. If set to NO, the documentation of a member will be -# part of the file/class/namespace that contains it. +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. # The default value is: NO. SEPARATE_MEMBER_PAGES = NO @@ -226,16 +252,15 @@ TAB_SIZE = 4 # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading # "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines. +# newlines (in the resulting output). You can put ^^ in the value part of an +# alias to insert a newline as if a physical newline was in the original file. +# When you need a literal { or } or , in the value part of an alias you have to +# escape them by means of a backslash (\), this can lead to conflicts with the +# commands \{ and \} for these it is advised to use the version @{ and @} or use +# a double escape (\\{ and \\}) ALIASES = -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. - -TCL_SUBST = - # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For # instance, some of the names that are used will be different. The list of all @@ -264,28 +289,40 @@ OPTIMIZE_FOR_FORTRAN = NO OPTIMIZE_OUTPUT_VHDL = NO +# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice +# sources only. Doxygen will then generate output that is more tailored for that +# language. For instance, namespaces will be presented as modules, types will be +# separated into more groups, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_SLICE = NO + # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: -# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: -# Fortran. In the later case the parser tries to guess whether the code is fixed -# or free formatted code, this is the default for Fortran type files), VHDL. For -# instance to make doxygen treat .inc files as Fortran files (default is PHP), -# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, +# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL, +# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser +# tries to guess whether the code is fixed or free formatted code, this is the +# default for Fortran type files). For instance to make doxygen treat .inc files +# as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C. # -# Note For files without extension you can use no_extension as a placeholder. +# Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. +# the files are not read by doxygen. When specifying no_extension you should add +# * to the FILE_PATTERNS. +# +# Note see also the list of default file extension mappings. EXTENSION_MAPPING = # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. +# documentation. See https://daringfireball.net/projects/markdown/ for details. # The output of markdown processing is further processed by doxygen, so you can # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. @@ -293,10 +330,19 @@ EXTENSION_MAPPING = MARKDOWN_SUPPORT = YES +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 5. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 5 + # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by by putting a % sign in front of the word -# or globally by setting AUTOLINK_SUPPORT to NO. +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES @@ -318,7 +364,7 @@ BUILTIN_STL_SUPPORT = NO CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen +# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen # will parse them like normal C++ but will assume all classes use public instead # of private inheritance when no explicit protection keyword is present. # The default value is: NO. @@ -336,13 +382,20 @@ SIP_SUPPORT = NO IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first +# tag is set to YES then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. DISTRIBUTE_GROUP_DOC = NO +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + # Set the SUBGROUPING tag to YES to allow class member groups of the same type # (for instance a group of public functions) to be put as a subgroup of that # type (e.g. under the Public Functions section). Set it to NO to prevent @@ -397,11 +450,24 @@ TYPEDEF_HIDES_STRUCT = NO LOOKUP_CACHE_SIZE = 0 +# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use +# during processing. When set to 0 doxygen will based this on the number of +# cores available in the system. You can set it explicitly to a value larger +# than 0 to get more control over the balance between CPU load and processing +# speed. At this moment only the input processing can be done using multiple +# threads. Since this is still an experimental feature the default is set to 1, +# which efficively disables parallel processing. Please report any issues you +# encounter. Generating dot graphs in parallel is controlled by the +# DOT_NUM_THREADS setting. +# Minimum value: 0, maximum value: 32, default value: 1. + +NUM_PROC_THREADS = 1 + #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. @@ -411,35 +477,41 @@ LOOKUP_CACHE_SIZE = 0 EXTRACT_ALL = NO -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = NO -# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal +# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual +# methods of a class will be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIV_VIRTUAL = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = NO -# If the EXTRACT_STATIC tag is set to YES all static members of a file will be +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be # included in the documentation. # The default value is: NO. EXTRACT_STATIC = NO -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, # only classes defined in header files are included. Does not have any effect # for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = YES -# This flag is only useful for Objective-C code. When set to YES local methods, +# This flag is only useful for Objective-C code. If set to YES, local methods, # which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO only methods in the interface are +# included in the documentation. If set to NO, only methods in the interface are # included. # The default value is: NO. @@ -454,6 +526,13 @@ EXTRACT_LOCAL_METHODS = NO EXTRACT_ANON_NSPACES = NO +# If this flag is set to YES, the name of an unnamed parameter in a declaration +# will be determined by the corresponding definition. By default unnamed +# parameters remain unnamed in the output. +# The default value is: YES. + +RESOLVE_UNNAMED_PARAMS = YES + # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation @@ -464,21 +543,21 @@ HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set -# to NO these classes will be included in the various overviews. This option has -# no effect if EXTRACT_ALL is enabled. +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO these declarations will be -# included in the documentation. +# declarations. If set to NO, these declarations will be included in the +# documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO these +# documentation blocks found inside the body of a function. If set to NO, these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. @@ -491,22 +570,36 @@ HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. +# With the correct setting of option CASE_SENSE_NAMES doxygen will better be +# able to match the capabilities of the underlying filesystem. In case the +# filesystem is case sensitive (i.e. it supports files in the same directory +# whose names only differ in casing), the option must be set to YES to properly +# deal with such files in case they appear in the input. For filesystems that +# are not case sensitive the option should be be set to NO to properly deal with +# output files written for symbols that only differ in casing, such as for two +# classes, one named CLASS and the other named Class, and to also support +# references to files without having to specify the exact matching casing. On +# Windows (including Cygwin) and MacOS, users should typically set this option +# to NO, whereas on Linux or other Unix flavors it should typically be set to +# YES. # The default value is: system dependent. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES the +# their full class and namespace scopes in the documentation. If set to YES, the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. @@ -534,14 +627,14 @@ INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the # (detailed) documentation of file and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. +# name. If set to NO, the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. Note that +# name. If set to NO, the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. # The default value is: NO. @@ -586,27 +679,25 @@ SORT_BY_SCOPE_NAME = NO STRICT_PROTO_MATCHING = NO -# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the -# todo list. This list is created by putting \todo commands in the -# documentation. +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. # The default value is: YES. GENERATE_TODOLIST = YES -# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the -# test list. This list is created by putting \test commands in the -# documentation. +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. # The default value is: YES. GENERATE_TESTLIST = YES -# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug # list. This list is created by putting \bug commands in the documentation. # The default value is: YES. GENERATE_BUGLIST = YES -# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) # the deprecated list. This list is created by putting \deprecated commands in # the documentation. # The default value is: YES. @@ -631,8 +722,8 @@ ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES the list -# will mention the files that were used to generate the documentation. +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. # The default value is: YES. SHOW_USED_FILES = YES @@ -677,7 +768,7 @@ LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib # extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the # search path. See also \cite for info how to create references. @@ -696,7 +787,7 @@ CITE_BIB_FILES = QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. @@ -704,7 +795,7 @@ QUIET = YES WARNINGS = YES -# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. @@ -721,12 +812,22 @@ WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return -# value. If set to NO doxygen will only warn about wrong or incomplete parameter -# documentation, but not about the absence of documentation. +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. If +# EXTRACT_ALL is set to YES then this flag will automatically be disabled. # The default value is: NO. WARN_NO_PARAMDOC = NO +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS +# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the doxygen process doxygen will return with a non-zero status. +# Possible values are: NO, YES and FAIL_ON_WARNINGS. +# The default value is: NO. + +WARN_AS_ERROR = NO + # The WARN_FORMAT tag determines the format of the warning messages that doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated @@ -750,7 +851,7 @@ WARN_LOGFILE = # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with -# spaces. +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. INPUT = @PROJECT_SOURCE_DIR@/README.md \ @@ -761,20 +862,29 @@ INPUT = @PROJECT_SOURCE_DIR@/README.md \ # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: http://www.gnu.org/software/libiconv) for the list of -# possible encodings. +# documentation (see: +# https://www.gnu.org/software/libiconv/) for the list of possible encodings. # The default value is: UTF-8. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank the -# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, -# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, -# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, -# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, -# *.qsf, *.as and *.js. +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# Note the list of default checked file patterns might differ from the list of +# default file extension mappings. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, +# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), +# *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, *.vhdl, +# *.ucf, *.qsf and *.ice. FILE_PATTERNS = @@ -818,7 +928,10 @@ EXCLUDE_PATTERNS = # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */test/* -EXCLUDE_SYMBOLS = protozero::detail protozero_assert PROTOZERO_*_ENDIAN PROTOZERO_BYTE_ORDER +EXCLUDE_SYMBOLS = protozero::detail \ + protozero_assert \ + PROTOZERO_*_ENDIAN \ + PROTOZERO_BYTE_ORDER # The EXAMPLE_PATH tag can be used to specify one or more files or directories # that contain example code fragments that are included (see the \include @@ -860,6 +973,10 @@ IMAGE_PATH = # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. INPUT_FILTER = @@ -869,11 +986,15 @@ INPUT_FILTER = # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER ) will also be used to filter the input files that are used for +# INPUT_FILTER) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. @@ -921,7 +1042,7 @@ INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# function all documented functions referencing it will be listed. +# entity all documented functions referencing it will be listed. # The default value is: NO. REFERENCED_BY_RELATION = NO @@ -933,7 +1054,7 @@ REFERENCED_BY_RELATION = NO REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES, then the hyperlinks from functions in REFERENCES_RELATION and +# to YES then the hyperlinks from functions in REFERENCES_RELATION and # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will # link to the documentation. # The default value is: YES. @@ -953,12 +1074,12 @@ SOURCE_TOOLTIPS = YES # If the USE_HTAGS tag is set to YES then the references to source code will # point to the HTML generated by the htags(1) tool instead of doxygen built-in # source browser. The htags tool is part of GNU's global source tagging system -# (see http://www.gnu.org/software/global/global.html). You will need version +# (see https://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. # # To use it do the following: # - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file # - Make sure the INPUT points to the root of the source tree # - Run doxygen as normal # @@ -980,17 +1101,23 @@ USE_HTAGS = NO VERBATIM_HEADERS = YES -# If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the -# cost of reduced performance. This can be particularly helpful with template -# rich C++ code for which doxygen's built-in parser lacks the necessary type -# information. +# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the +# clang parser (see: +# http://clang.llvm.org/) for more accurate parsing at the cost of reduced +# performance. This can be particularly helpful with template rich C++ code for +# which doxygen's built-in parser lacks the necessary type information. # Note: The availability of this option depends on whether or not doxygen was -# compiled with the --with-libclang option. +# generated with the -Duse_libclang=ON option for CMake. # The default value is: NO. CLANG_ASSISTED_PARSING = NO +# If clang assisted parsing is enabled and the CLANG_ADD_INC_PATHS tag is set to +# YES then doxygen will add the directory of each input to the include path. +# The default value is: YES. + +CLANG_ADD_INC_PATHS = YES + # If clang assisted parsing is enabled you can provide the compiler with command # line options that you would normally use when invoking the compiler. Note that # the include paths will already be set by doxygen for the files and directories @@ -999,6 +1126,19 @@ CLANG_ASSISTED_PARSING = NO CLANG_OPTIONS = +# If clang assisted parsing is enabled you can provide the clang parser with the +# path to the directory containing a file called compile_commands.json. This +# file is the compilation database (see: +# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the +# options used when the source files were built. This is equivalent to +# specifying the -p option to a clang tool, such as clang-check. These options +# will then be passed to the parser. Any options specified with CLANG_OPTIONS +# will be added as well. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse_libclang=ON option for CMake. + +CLANG_DATABASE_PATH = + #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- @@ -1010,13 +1150,6 @@ CLANG_OPTIONS = ALPHABETICAL_INDEX = YES -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored @@ -1029,7 +1162,7 @@ IGNORE_PREFIX = # Configuration options related to the HTML output #--------------------------------------------------------------------------- -# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES @@ -1095,10 +1228,10 @@ HTML_STYLESHEET = # cascading style sheets that are included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefor more robust against future updates. +# standard style sheet and is therefore more robust against future updates. # Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra stylesheet files is of importance (e.g. the last -# stylesheet in the list overrules the setting of the previous ones in the +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1115,9 +1248,9 @@ HTML_EXTRA_STYLESHEET = HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the stylesheet and background images according to +# will adjust the colors in the style sheet and background images according to # this color. Hue is specified as an angle on a colorwheel, see -# http://en.wikipedia.org/wiki/Hue for more information. For instance the value +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. # Minimum value: 0, maximum value: 359, default value: 220. @@ -1146,12 +1279,24 @@ HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: YES. +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_TIMESTAMP = YES +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via JavaScript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have JavaScript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = YES + # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. @@ -1175,13 +1320,14 @@ HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: http://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in +# environment (see: +# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To +# create a documentation set, doxygen will generate a Makefile in the HTML +# output directory. Running make will produce the docset in that directory and +# running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. +# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy +# genXcode/_index.html for more information. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1220,8 +1366,8 @@ DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. +# (see: +# https://www.microsoft.com/en-us/download/details.aspx?id=21138) on Windows. # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML @@ -1243,28 +1389,28 @@ GENERATE_HTMLHELP = NO CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler ( hhc.exe). If non-empty +# including file name) of the HTML help compiler (hhc.exe). If non-empty, # doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = -# The GENERATE_CHI flag controls if a separate .chi index file is generated ( -# YES) or that it should be included in the master .chm file ( NO). +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the main .chm file (NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = -# The BINARY_TOC flag controls whether a binary table of contents is generated ( -# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it # enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. @@ -1296,7 +1442,8 @@ QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace -# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). +# (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1304,8 +1451,8 @@ QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- -# folders). +# Folders (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1313,30 +1460,30 @@ QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. +# The QHG_LOCATION tag can be used to specify the location (absolute path +# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to +# run qhelpgenerator on the generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = @@ -1378,7 +1525,7 @@ DISABLE_INDEX = NO # index structure (just like the one that is generated for HTML Help). For this # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can # further fine-tune the look of the index. As an example, the default style # sheet generated by doxygen has an example that shows how to put an image at # the root of the tree instead of the PROJECT_NAME. Since the tree basically has @@ -1406,13 +1553,24 @@ ENUM_VALUES_PER_LINE = 4 TREEVIEW_WIDTH = 250 -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO +# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg +# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see +# https://inkscape.org) to generate formulas as SVG images instead of PNGs for +# the HTML output. These images will generally look nicer at scaled resolutions. +# Possible values are: png (the default) and svg (looks nicer but requires the +# pdf2svg or inkscape tool). +# The default value is: png. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FORMULA_FORMAT = png + # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful # doxygen run you need to manually remove any form_*.png images from the HTML @@ -1422,7 +1580,7 @@ EXT_LINKS_IN_WINDOW = NO FORMULA_FONTSIZE = 10 -# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# Use the FORMULA_TRANSPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are not # supported properly for IE 6.0, but are supported on all modern browsers. # @@ -1433,9 +1591,15 @@ FORMULA_FONTSIZE = 10 FORMULA_TRANSPARENT = YES +# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands +# to create new LaTeX commands to be used in formulas as building blocks. See +# the section "Including formulas" for details. + +FORMULA_MACROFILE = + # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# http://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using prerendered bitmaps. Use this if you do not have LaTeX +# https://www.mathjax.org) which uses client side JavaScript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX # installed or if you want to formulas look prettier in the HTML output. When # enabled you may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. @@ -1446,7 +1610,7 @@ USE_MATHJAX = NO # When MathJax is enabled you can set the default output format to be used for # the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. # Possible values are: HTML-CSS (which is slower, but has the best # compatibility), NativeMML (i.e. MathML) and SVG. # The default value is: HTML-CSS. @@ -1461,8 +1625,8 @@ MATHJAX_FORMAT = HTML-CSS # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of -# MathJax from http://www.mathjax.org before deployment. -# The default value is: http://cdn.mathjax.org/mathjax/latest. +# MathJax from https://www.mathjax.org before deployment. +# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest @@ -1476,7 +1640,8 @@ MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. @@ -1504,7 +1669,7 @@ MATHJAX_CODEFILE = SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be -# implemented using a web server instead of a web client using Javascript. There +# implemented using a web server instead of a web client using JavaScript. There # are two flavors of web server based searching depending on the EXTERNAL_SEARCH # setting. When disabled, doxygen will generate a PHP script for searching and # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing @@ -1521,9 +1686,10 @@ SERVER_BASED_SEARCH = NO # external search engine pointed to by the SEARCHENGINE_URL option to obtain the # search results. # -# Doxygen ships with an example indexer ( doxyindexer) and search engine +# Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: http://xapian.org/). +# Xapian (see: +# https://xapian.org/). # # See the section "External Indexing and Searching" for details. # The default value is: NO. @@ -1534,10 +1700,11 @@ EXTERNAL_SEARCH = NO # The SEARCHENGINE_URL should point to a search engine hosted by a web server # which will return the search results when EXTERNAL_SEARCH is enabled. # -# Doxygen ships with an example indexer ( doxyindexer) and search engine +# Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: http://xapian.org/). See the section "External Indexing and -# Searching" for details. +# Xapian (see: +# https://xapian.org/). See the section "External Indexing and Searching" for +# details. # This tag requires that the tag SEARCHENGINE is set to YES. SEARCHENGINE_URL = @@ -1572,7 +1739,7 @@ EXTRA_SEARCH_MAPPINGS = # Configuration options related to the LaTeX output #--------------------------------------------------------------------------- -# If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output. +# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. # The default value is: YES. GENERATE_LATEX = NO @@ -1588,22 +1755,36 @@ LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. # -# Note that when enabling USE_PDFLATEX this option is only used for generating -# bitmaps for formulas in the HTML output, but not in the Makefile that is -# written to the output directory. -# The default file is: latex. +# Note that when not enabling USE_PDFLATEX the default is latex when enabling +# USE_PDFLATEX the default is pdflatex and when in the later case latex is +# chosen this is overwritten by pdflatex. For specific output languages the +# default can have been set differently, this depends on the implementation of +# the output language. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate # index for LaTeX. +# Note: This tag is used in the Makefile / make.bat. +# See also: LATEX_MAKEINDEX_CMD for the part in the generated output file +# (.tex). # The default file is: makeindex. # This tag requires that the tag GENERATE_LATEX is set to YES. MAKEINDEX_CMD_NAME = makeindex -# If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX +# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to +# generate index for LaTeX. In case there is no backslash (\) as first character +# it will be automatically added in the LaTeX code. +# Note: This tag is used in the generated output file (.tex). +# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat. +# The default value is: makeindex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_MAKEINDEX_CMD = makeindex + +# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. @@ -1621,9 +1802,12 @@ COMPACT_LATEX = NO PAPER_TYPE = a4 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names -# that should be included in the LaTeX output. To get the times font for -# instance you can specify -# EXTRA_PACKAGES=times +# that should be included in the LaTeX output. The package can be specified just +# by its name or with the correct syntax as to be used with the LaTeX +# \usepackage command. To get the times font for instance you can specify : +# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times} +# To use the option intlimits with the amsmath package you can specify: +# EXTRA_PACKAGES=[intlimits]{amsmath} # If left blank no extra packages will be included. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1638,9 +1822,9 @@ EXTRA_PACKAGES = # Note: Only use a user-defined header if you know what you are doing! The # following commands have a special meaning inside the header: $title, # $datetime, $date, $doxygenversion, $projectname, $projectnumber, -# $projectbrief, $projectlogo. Doxygen will replace $title with the empy string, -# for the replacement values of the other commands the user is refered to -# HTML_HEADER. +# $projectbrief, $projectlogo. Doxygen will replace $title with the empty +# string, for the replacement values of the other commands the user is referred +# to HTML_HEADER. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_HEADER = @@ -1656,6 +1840,17 @@ LATEX_HEADER = LATEX_FOOTER = +# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# LaTeX style sheets that are included after the standard style sheets created +# by doxygen. Using this option one can overrule certain style aspects. Doxygen +# will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EXTRA_STYLESHEET = + # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the LATEX_OUTPUT output # directory. Note that the files will be copied as-is; there are no commands or @@ -1673,9 +1868,11 @@ LATEX_EXTRA_FILES = PDF_HYPERLINKS = YES -# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate -# the PDF file directly from the LaTeX files. Set this option to YES to get a -# higher quality PDF documentation. +# If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as +# specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX +# files. Set this option to YES, to get a higher quality PDF documentation. +# +# See also section LATEX_CMD_NAME for selecting the engine. # The default value is: YES. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1709,17 +1906,33 @@ LATEX_SOURCE_CODE = NO # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. See -# http://en.wikipedia.org/wiki/BibTeX and \cite for more info. +# https://en.wikipedia.org/wiki/BibTeX and \cite for more info. # The default value is: plain. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_BIB_STYLE = plain +# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated +# page will contain the date and time when the page was generated. Setting this +# to NO can help when comparing the output of multiple runs. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_TIMESTAMP = NO + +# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute) +# path from which the emoji images will be read. If a relative path is entered, +# it will be relative to the LATEX_OUTPUT directory. If left blank the +# LATEX_OUTPUT directory will be used. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EMOJI_DIRECTORY = + #--------------------------------------------------------------------------- # Configuration options related to the RTF output #--------------------------------------------------------------------------- -# If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The +# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The # RTF output is optimized for Word 97 and may not look too pretty with other RTF # readers/editors. # The default value is: NO. @@ -1734,7 +1947,7 @@ GENERATE_RTF = NO RTF_OUTPUT = rtf -# If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF +# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. @@ -1754,9 +1967,9 @@ COMPACT_RTF = NO RTF_HYPERLINKS = NO -# Load stylesheet definitions from file. Syntax is similar to doxygen's config -# file, i.e. a series of assignments. You only have to provide replacements, -# missing definitions are set to their default value. +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# configuration file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. # # See also section "Doxygen usage" for information on how to generate the # default style sheet that doxygen normally uses. @@ -1765,17 +1978,27 @@ RTF_HYPERLINKS = NO RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an RTF document. Syntax is -# similar to doxygen's config file. A template extensions file can be generated -# using doxygen -e rtf extensionFile. +# similar to doxygen's configuration file. A template extensions file can be +# generated using doxygen -e rtf extensionFile. # This tag requires that the tag GENERATE_RTF is set to YES. RTF_EXTENSIONS_FILE = +# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code +# with syntax highlighting in the RTF output. +# +# Note that which sources are shown also depends on other settings such as +# SOURCE_BROWSER. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_SOURCE_CODE = NO + #--------------------------------------------------------------------------- # Configuration options related to the man page output #--------------------------------------------------------------------------- -# If the GENERATE_MAN tag is set to YES doxygen will generate man pages for +# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for # classes and files. # The default value is: NO. @@ -1819,7 +2042,7 @@ MAN_LINKS = NO # Configuration options related to the XML output #--------------------------------------------------------------------------- -# If the GENERATE_XML tag is set to YES doxygen will generate an XML file that +# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that # captures the structure of the code including all documentation. # The default value is: NO. @@ -1833,7 +2056,7 @@ GENERATE_XML = NO XML_OUTPUT = xml -# If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program +# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program # listings (including syntax highlighting and cross-referencing information) to # the XML output. Note that enabling this will significantly increase the size # of the XML output. @@ -1842,11 +2065,18 @@ XML_OUTPUT = xml XML_PROGRAMLISTING = YES +# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include +# namespace members in file scope as well, matching the HTML output. +# The default value is: NO. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_NS_MEMB_FILE_SCOPE = NO + #--------------------------------------------------------------------------- # Configuration options related to the DOCBOOK output #--------------------------------------------------------------------------- -# If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files +# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files # that can be used to generate PDF. # The default value is: NO. @@ -1860,7 +2090,7 @@ GENERATE_DOCBOOK = NO DOCBOOK_OUTPUT = docbook -# If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the +# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the # program listings (including syntax highlighting and cross-referencing # information) to the DOCBOOK output. Note that enabling this will significantly # increase the size of the DOCBOOK output. @@ -1873,10 +2103,10 @@ DOCBOOK_PROGRAMLISTING = NO # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- -# If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen -# Definitions (see http://autogen.sf.net) file that captures the structure of -# the code including all documentation. Note that this feature is still -# experimental and incomplete at the moment. +# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an +# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures +# the structure of the code including all documentation. Note that this feature +# is still experimental and incomplete at the moment. # The default value is: NO. GENERATE_AUTOGEN_DEF = NO @@ -1885,7 +2115,7 @@ GENERATE_AUTOGEN_DEF = NO # Configuration options related to the Perl module output #--------------------------------------------------------------------------- -# If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module +# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module # file that captures the structure of the code including all documentation. # # Note that this feature is still experimental and incomplete at the moment. @@ -1893,7 +2123,7 @@ GENERATE_AUTOGEN_DEF = NO GENERATE_PERLMOD = NO -# If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary +# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI # output from the Perl module output. # The default value is: NO. @@ -1901,9 +2131,9 @@ GENERATE_PERLMOD = NO PERLMOD_LATEX = NO -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely +# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely # formatted so it can be parsed by a human reader. This is useful if you want to -# understand what is going on. On the other hand, if this tag is set to NO the +# understand what is going on. On the other hand, if this tag is set to NO, the # size of the Perl module output will be much smaller and Perl will parse it # just the same. # The default value is: YES. @@ -1923,14 +2153,14 @@ PERLMOD_MAKEVAR_PREFIX = # Configuration options related to the preprocessor #--------------------------------------------------------------------------- -# If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all +# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all # C-preprocessor directives found in the sources and include files. # The default value is: YES. ENABLE_PREPROCESSING = YES -# If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names -# in the source code. If set to NO only conditional compilation will be +# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names +# in the source code. If set to NO, only conditional compilation will be # performed. Macro expansion can be done in a controlled way by setting # EXPAND_ONLY_PREDEF to YES. # The default value is: NO. @@ -1946,7 +2176,7 @@ MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO -# If the SEARCH_INCLUDES tag is set to YES the includes files in the +# If the SEARCH_INCLUDES tag is set to YES, the include files in the # INCLUDE_PATH will be searched if a #include is found. # The default value is: YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. @@ -2022,37 +2252,32 @@ TAGFILES = GENERATE_TAGFILE = -# If the ALLEXTERNALS tag is set to YES all external class will be listed in the -# class index. If set to NO only the inherited external classes will be listed. +# If the ALLEXTERNALS tag is set to YES, all external class will be listed in +# the class index. If set to NO, only the inherited external classes will be +# listed. # The default value is: NO. ALLEXTERNALS = NO -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in -# the modules index. If set to NO, only the current project's groups will be +# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will be # listed. # The default value is: YES. EXTERNAL_GROUPS = YES -# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in +# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in # the related pages index. If set to NO, only the current project's pages will # be listed. # The default value is: YES. EXTERNAL_PAGES = YES -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of 'which perl'). -# The default file (with absolute path) is: /usr/bin/perl. - -#PERL_PATH = /usr/bin/perl - #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- -# If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram +# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to # NO turns the diagrams off. Note that this option also works with HAVE_DOT # disabled, but it is recommended to install and use dot, since it yields more @@ -2061,15 +2286,6 @@ EXTERNAL_PAGES = YES CLASS_DIAGRAMS = YES -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see: -# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the -# documentation. The MSCGEN_PATH tag allows you to specify the directory where -# the mscgen tool resides. If left empty the tool is assumed to be found in the -# default search path. - -#MSCGEN_PATH = - # You can include diagrams made with dia in doxygen documentation. Doxygen will # then run dia to produce the diagram and insert it in the documentation. The # DIA_PATH tag allows you to specify the directory where the dia binary resides. @@ -2077,7 +2293,7 @@ CLASS_DIAGRAMS = YES DIA_PATH = -# If set to YES, the inheritance and collaboration graphs will hide inheritance +# If set to YES the inheritance and collaboration graphs will hide inheritance # and usage relations if the target is undocumented or is not a class. # The default value is: YES. @@ -2150,7 +2366,7 @@ COLLABORATION_GRAPH = YES GROUP_GRAPHS = YES -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. # The default value is: NO. @@ -2167,10 +2383,32 @@ UML_LOOK = NO # but if the number exceeds 15, the total amount of fields shown is limited to # 10. # Minimum value: 0, maximum value: 100, default value: 10. -# This tag requires that the tag HAVE_DOT is set to YES. +# This tag requires that the tag UML_LOOK is set to YES. UML_LIMIT_NUM_FIELDS = 10 +# If the DOT_UML_DETAILS tag is set to NO, doxygen will show attributes and +# methods without types and arguments in the UML graphs. If the DOT_UML_DETAILS +# tag is set to YES, doxygen will add type and arguments for attributes and +# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, doxygen +# will not generate fields with class member information in the UML graphs. The +# class diagrams will look similar to the default class diagrams but using UML +# notation for the relationships. +# Possible values are: NO, YES and NONE. +# The default value is: NO. +# This tag requires that the tag UML_LOOK is set to YES. + +DOT_UML_DETAILS = NO + +# The DOT_WRAP_THRESHOLD tag can be used to set the maximum number of characters +# to display on a single line. If the actual line length exceeds this threshold +# significantly it will wrapped across multiple lines. Some heuristics are apply +# to avoid ugly line breaks. +# Minimum value: 0, maximum value: 1000, default value: 17. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_WRAP_THRESHOLD = 17 + # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and # collaboration graphs will show the relations between templates and their # instances. @@ -2202,7 +2440,8 @@ INCLUDED_BY_GRAPH = YES # # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable call graphs for selected -# functions only using the \callgraph command. +# functions only using the \callgraph command. Disabling a call graph can be +# accomplished by means of the command \hidecallgraph. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2213,7 +2452,8 @@ CALL_GRAPH = NO # # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable caller graphs for selected -# functions only using the \callergraph command. +# functions only using the \callergraph command. Disabling a caller graph can be +# accomplished by means of the command \hidecallergraph. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2236,13 +2476,17 @@ GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. +# generated by dot. For an explanation of the image formats see the section +# output formats in the documentation of the dot tool (Graphviz (see: +# http://www.graphviz.org/)). # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order # to make the SVG files visible in IE 9+ (other browsers do not have this # requirement). # Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd, # png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo, -# gif:cairo:gd, gif:gd, gif:gd:gd and svg. +# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo, +# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and +# png:gdiplus:gdiplus. # The default value is: png. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2290,10 +2534,19 @@ DIAFILE_DIRS = # PlantUML is not used or called during a preprocessing step. Doxygen will # generate a warning when it encounters a \startuml command in this case and # will not generate output for the diagram. -# This tag requires that the tag HAVE_DOT is set to YES. PLANTUML_JAR_PATH = +# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a +# configuration file for plantuml. + +PLANTUML_CFG_FILE = + +# When using plantuml, the specified paths are searched for files specified by +# the !include statement in a plantuml block. + +PLANTUML_INCLUDE_PATH = + # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # that will be shown in the graph. If the number of nodes in a graph becomes # larger than this value, doxygen will truncate the graph, which is visualized @@ -2330,7 +2583,7 @@ MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = NO -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) support # this, this feature is disabled by default. @@ -2347,9 +2600,11 @@ DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES -# If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot +# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate # files that are used to generate the various graphs. +# +# Note: This setting is not only used for dot files but also for msc and +# plantuml temporary files. # The default value is: YES. -# This tag requires that the tag HAVE_DOT is set to YES. DOT_CLEANUP = YES diff --git a/third_party/protozero/include/protozero/buffer_string.hpp b/third_party/protozero/include/protozero/buffer_string.hpp index 1f0f902a800..02e8ad25b6e 100644 --- a/third_party/protozero/include/protozero/buffer_string.hpp +++ b/third_party/protozero/include/protozero/buffer_string.hpp @@ -18,6 +18,7 @@ documentation. */ #include "buffer_tmpl.hpp" +#include "config.hpp" #include #include @@ -56,7 +57,8 @@ struct buffer_customization { protozero_assert(from <= buffer->size()); protozero_assert(to <= buffer->size()); protozero_assert(from <= to); - buffer->erase(std::next(buffer->begin(), from), std::next(buffer->begin(), to)); + buffer->erase(std::next(buffer->begin(), static_cast(from)), + std::next(buffer->begin(), static_cast(to))); } static char* at_pos(std::string* buffer, std::size_t pos) { diff --git a/third_party/protozero/include/protozero/buffer_vector.hpp b/third_party/protozero/include/protozero/buffer_vector.hpp index 6a34b072e54..c163300c58a 100644 --- a/third_party/protozero/include/protozero/buffer_vector.hpp +++ b/third_party/protozero/include/protozero/buffer_vector.hpp @@ -18,6 +18,7 @@ documentation. */ #include "buffer_tmpl.hpp" +#include "config.hpp" #include #include @@ -56,7 +57,8 @@ struct buffer_customization> { protozero_assert(from <= buffer->size()); protozero_assert(to <= buffer->size()); protozero_assert(from <= to); - buffer->erase(std::next(buffer->begin(), from), std::next(buffer->begin(), to)); + buffer->erase(std::next(buffer->begin(), static_cast(from)), + std::next(buffer->begin(), static_cast(to))); } static char* at_pos(std::vector* buffer, std::size_t pos) { diff --git a/third_party/protozero/include/protozero/byteswap.hpp b/third_party/protozero/include/protozero/byteswap.hpp index 799d1795d57..75cae69109d 100644 --- a/third_party/protozero/include/protozero/byteswap.hpp +++ b/third_party/protozero/include/protozero/byteswap.hpp @@ -19,6 +19,7 @@ documentation. #include "config.hpp" #include +#include namespace protozero { namespace detail { @@ -75,14 +76,22 @@ inline void byteswap_inplace(int64_t* ptr) noexcept { /// byteswap the data pointed to by ptr in-place. inline void byteswap_inplace(float* ptr) noexcept { - auto* bptr = reinterpret_cast(ptr); - *bptr = detail::byteswap_impl(*bptr); + static_assert(sizeof(float) == 4, "Expecting four byte float"); + + uint32_t tmp = 0; + std::memcpy(&tmp, ptr, 4); + tmp = detail::byteswap_impl(tmp); // uint32 overload + std::memcpy(ptr, &tmp, 4); } /// byteswap the data pointed to by ptr in-place. inline void byteswap_inplace(double* ptr) noexcept { - auto* bptr = reinterpret_cast(ptr); - *bptr = detail::byteswap_impl(*bptr); + static_assert(sizeof(double) == 8, "Expecting eight byte double"); + + uint64_t tmp = 0; + std::memcpy(&tmp, ptr, 8); + tmp = detail::byteswap_impl(tmp); // uint64 overload + std::memcpy(ptr, &tmp, 8); } namespace detail { diff --git a/third_party/protozero/include/protozero/version.hpp b/third_party/protozero/include/protozero/version.hpp index 9a0e4cc9f5b..fc9b92879c2 100644 --- a/third_party/protozero/include/protozero/version.hpp +++ b/third_party/protozero/include/protozero/version.hpp @@ -23,12 +23,12 @@ documentation. #define PROTOZERO_VERSION_MINOR 7 /// The patch number -#define PROTOZERO_VERSION_PATCH 0 +#define PROTOZERO_VERSION_PATCH 1 /// The complete version number #define PROTOZERO_VERSION_CODE (PROTOZERO_VERSION_MAJOR * 10000 + PROTOZERO_VERSION_MINOR * 100 + PROTOZERO_VERSION_PATCH) /// Version number as string -#define PROTOZERO_VERSION_STRING "1.7.0" +#define PROTOZERO_VERSION_STRING "1.7.1" #endif // PROTOZERO_VERSION_HPP diff --git a/third_party/protozero/test/CMakeLists.txt b/third_party/protozero/test/CMakeLists.txt deleted file mode 100644 index c7691235145..00000000000 --- a/third_party/protozero/test/CMakeLists.txt +++ /dev/null @@ -1,116 +0,0 @@ -#----------------------------------------------------------------------------- -# -# CMake config -# -# protozero tests -# -#----------------------------------------------------------------------------- - -include_directories(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/catch") -include_directories("${CMAKE_CURRENT_SOURCE_DIR}/include") - -add_subdirectory(unit) - -set(TEST_DIRS alignment - bool - bytes - complex - double - enum - fixed32 - fixed64 - float - int32 - int64 - message - nested - repeated - repeated_packed_bool - repeated_packed_double - repeated_packed_enum - repeated_packed_fixed32 - repeated_packed_fixed64 - repeated_packed_float - repeated_packed_int32 - repeated_packed_int64 - repeated_packed_sfixed32 - repeated_packed_sfixed64 - repeated_packed_sint32 - repeated_packed_sint64 - repeated_packed_uint32 - repeated_packed_uint64 - rollback - sfixed32 - sfixed64 - sint32 - sint64 - skip - string - tag_and_type - tags - uint32 - uint64 - vector_tile - wrong_type_access) - -string(REGEX REPLACE "([^;]+)" "t/\\1/reader_test_cases.cpp" _test_sources "${TEST_DIRS}") - -add_executable(reader_tests reader_tests.cpp ${_test_sources}) - -add_test(NAME reader_tests COMMAND reader_tests) - -set_tests_properties(reader_tests PROPERTIES WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}") - -if(PROTOBUF_FOUND) - message(STATUS "Found protobuf libraries: Adding writer tests...") - - include_directories(SYSTEM ${PROTOBUF_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR}) - - set(PROTOBUF_GENERATE_CPP_APPEND_PATH false) - - foreach(_dir IN LISTS TEST_DIRS) - set(_full_src_dir "${CMAKE_CURRENT_SOURCE_DIR}/t/${_dir}") - if(EXISTS "${_full_src_dir}/writer_test_cases.cpp") - message(STATUS " Adding ${_dir}") - set(_full_bin_dir "${CMAKE_CURRENT_BINARY_DIR}/t/${_dir}") - set(_proto_file "${_full_src_dir}/${_dir}_testcase.proto") - set(_src_file "${_full_bin_dir}/${_dir}_testcase.pb.cc") - set(_hdr_file "${_full_bin_dir}/${_dir}_testcase.pb.h") - - file(MAKE_DIRECTORY ${_full_bin_dir}) - - list(APPEND SOURCES "${_full_src_dir}/writer_test_cases.cpp") - list(APPEND PROTO_FILES "${_proto_file}") - list(APPEND PROTO_SRCS "${_src_file}") - list(APPEND PROTO_HDRS "${_hdr_file}") - - set_source_files_properties(${_proto_file} ${_hdr_file} - PROPERTIES GENERATED TRUE) - - add_custom_command( - OUTPUT ${_src_file} ${_hdr_file} - COMMAND ${PROTOBUF_PROTOC_EXECUTABLE} - ARGS --cpp_out=${_full_bin_dir} -I ${_full_src_dir} ${_proto_file} - DEPENDS ${_proto_file} - VERBATIM) - endif() - endforeach() - - add_executable(writer_tests writer_tests.cpp ${SOURCES} ${PROTO_SRCS} ${PROTO_HDRS}) - - target_link_libraries(writer_tests ${PROTOBUF_LITE_LIBRARY}) - - if(NOT MSVC) - set_target_properties(writer_tests PROPERTIES COMPILE_FLAGS "-pthread") - if(NOT APPLE) - set_target_properties(writer_tests PROPERTIES LINK_FLAGS "-pthread") - endif() - endif() - - add_test(NAME writer_tests COMMAND writer_tests) -else() - message(STATUS "Protobuf libraries not found: Disabling writer tests.") -endif() - - -#----------------------------------------------------------------------------- diff --git a/third_party/protozero/test/README.md b/third_party/protozero/test/README.md deleted file mode 100644 index 843d8d4dedb..00000000000 --- a/third_party/protozero/test/README.md +++ /dev/null @@ -1,52 +0,0 @@ - -# Tests - -Tests are using the [Catch Unit Test Framework](https://github.com/philsquared/Catch). - -## Organization of the unit tests - -Unit tests test low-level functions of the library. They are in the `unit` -directory. - - -## Organization of the reader/writer test cases - -The hart of the tests are the reader/writer tests checking all aspects of -decoding and encoding protobuf files. - -Each test case is in its own directory under the `t` directory. Each directory -contains (some of) the following files: - -* `reader_test_cases.cpp`: The C++ source code that runs the reader tests. -* `writer_test_cases.cpp`: The C++ source code that runs the writer tests. -* `data-*.pbf`: PBF data files used by the tests. -* `testcase.proto`: Protobuf file describing the format of the data files. -* `testcase.cpp`: C++ file for creating the data files. - -### Reader tests - -The CMake config finds all the `reader_test_cases.cpp` files and compiles them. -Together with the `reader_tests.cpp` file they make up the `reader_tests` -executable which can be called to execute all the reader tests. - -### Extra writer tests - -The CMake config finds all the `writer_test_cases.cpp` files and compiles them. -Together with the `writer_tests.cpp` file they make up the `writer_tests` -executable which can be called to execute all the writer tests. - -The writer tests need the Google protobuf library to work. - - -## Creating test data from scratch - -Most tests use test data stored in PBF format in their directory. The files -have the suffix `.pbf`. Most of those files have been generated from the -provided `testcase.proto` and `testcase.cpp` files. - -Usually you do not have to do this, but if you want to re-generate the PBF -data files, you can do so: - - cd test - ./create_pbf_test_data.sh - diff --git a/third_party/protozero/test/catch/catch.hpp b/third_party/protozero/test/catch/catch.hpp deleted file mode 100644 index 6beb0eadb3a..00000000000 --- a/third_party/protozero/test/catch/catch.hpp +++ /dev/null @@ -1,17698 +0,0 @@ -/* - * Catch v2.12.1 - * Generated: 2020-04-21 19:29:20.964532 - * ---------------------------------------------------------- - * This file has been merged from multiple headers. Please don't edit it directly - * Copyright (c) 2020 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED -#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED -// start catch.hpp - - -#define CATCH_VERSION_MAJOR 2 -#define CATCH_VERSION_MINOR 12 -#define CATCH_VERSION_PATCH 1 - -#ifdef __clang__ -# pragma clang system_header -#elif defined __GNUC__ -# pragma GCC system_header -#endif - -// start catch_suppress_warnings.h - -#ifdef __clang__ -# ifdef __ICC // icpc defines the __clang__ macro -# pragma warning(push) -# pragma warning(disable: 161 1682) -# else // __ICC -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wpadded" -# pragma clang diagnostic ignored "-Wswitch-enum" -# pragma clang diagnostic ignored "-Wcovered-switch-default" -# endif -#elif defined __GNUC__ - // Because REQUIREs trigger GCC's -Wparentheses, and because still - // supported version of g++ have only buggy support for _Pragmas, - // Wparentheses have to be suppressed globally. -# pragma GCC diagnostic ignored "-Wparentheses" // See #674 for details - -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wunused-variable" -# pragma GCC diagnostic ignored "-Wpadded" -#endif -// end catch_suppress_warnings.h -#if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER) -# define CATCH_IMPL -# define CATCH_CONFIG_ALL_PARTS -#endif - -// In the impl file, we want to have access to all parts of the headers -// Can also be used to sanely support PCHs -#if defined(CATCH_CONFIG_ALL_PARTS) -# define CATCH_CONFIG_EXTERNAL_INTERFACES -# if defined(CATCH_CONFIG_DISABLE_MATCHERS) -# undef CATCH_CONFIG_DISABLE_MATCHERS -# endif -# if !defined(CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER) -# define CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER -# endif -#endif - -#if !defined(CATCH_CONFIG_IMPL_ONLY) -// start catch_platform.h - -#ifdef __APPLE__ -# include -# if TARGET_OS_OSX == 1 -# define CATCH_PLATFORM_MAC -# elif TARGET_OS_IPHONE == 1 -# define CATCH_PLATFORM_IPHONE -# endif - -#elif defined(linux) || defined(__linux) || defined(__linux__) -# define CATCH_PLATFORM_LINUX - -#elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) || defined(__MINGW32__) -# define CATCH_PLATFORM_WINDOWS -#endif - -// end catch_platform.h - -#ifdef CATCH_IMPL -# ifndef CLARA_CONFIG_MAIN -# define CLARA_CONFIG_MAIN_NOT_DEFINED -# define CLARA_CONFIG_MAIN -# endif -#endif - -// start catch_user_interfaces.h - -namespace Catch { - unsigned int rngSeed(); -} - -// end catch_user_interfaces.h -// start catch_tag_alias_autoregistrar.h - -// start catch_common.h - -// start catch_compiler_capabilities.h - -// Detect a number of compiler features - by compiler -// The following features are defined: -// -// CATCH_CONFIG_COUNTER : is the __COUNTER__ macro supported? -// CATCH_CONFIG_WINDOWS_SEH : is Windows SEH supported? -// CATCH_CONFIG_POSIX_SIGNALS : are POSIX signals supported? -// CATCH_CONFIG_DISABLE_EXCEPTIONS : Are exceptions enabled? -// **************** -// Note to maintainers: if new toggles are added please document them -// in configuration.md, too -// **************** - -// In general each macro has a _NO_ form -// (e.g. CATCH_CONFIG_NO_POSIX_SIGNALS) which disables the feature. -// Many features, at point of detection, define an _INTERNAL_ macro, so they -// can be combined, en-mass, with the _NO_ forms later. - -#ifdef __cplusplus - -# if (__cplusplus >= 201402L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) -# define CATCH_CPP14_OR_GREATER -# endif - -# if (__cplusplus >= 201703L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) -# define CATCH_CPP17_OR_GREATER -# endif - -#endif - -#if defined(__cpp_lib_uncaught_exceptions) -# define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS -#endif - -// We have to avoid both ICC and Clang, because they try to mask themselves -// as gcc, and we want only GCC in this block -#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) -# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "GCC diagnostic push" ) -# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "GCC diagnostic pop" ) - -# define CATCH_INTERNAL_IGNORE_BUT_WARN(...) (void)__builtin_constant_p(__VA_ARGS__) - -#endif - -#if defined(__clang__) - -# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "clang diagnostic push" ) -# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "clang diagnostic pop" ) - -// As of this writing, IBM XL's implementation of __builtin_constant_p has a bug -// which results in calls to destructors being emitted for each temporary, -// without a matching initialization. In practice, this can result in something -// like `std::string::~string` being called on an uninitialized value. -// -// For example, this code will likely segfault under IBM XL: -// ``` -// REQUIRE(std::string("12") + "34" == "1234") -// ``` -// -// Therefore, `CATCH_INTERNAL_IGNORE_BUT_WARN` is not implemented. -# if !defined(__ibmxl__) -# define CATCH_INTERNAL_IGNORE_BUT_WARN(...) (void)__builtin_constant_p(__VA_ARGS__) /* NOLINT(cppcoreguidelines-pro-type-vararg) */ -# endif - -# define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ - _Pragma( "clang diagnostic ignored \"-Wexit-time-destructors\"" ) \ - _Pragma( "clang diagnostic ignored \"-Wglobal-constructors\"") - -# define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \ - _Pragma( "clang diagnostic ignored \"-Wparentheses\"" ) - -# define CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS \ - _Pragma( "clang diagnostic ignored \"-Wunused-variable\"" ) - -# define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \ - _Pragma( "clang diagnostic ignored \"-Wgnu-zero-variadic-macro-arguments\"" ) - -# define CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \ - _Pragma( "clang diagnostic ignored \"-Wunused-template\"" ) - -#endif // __clang__ - -//////////////////////////////////////////////////////////////////////////////// -// Assume that non-Windows platforms support posix signals by default -#if !defined(CATCH_PLATFORM_WINDOWS) - #define CATCH_INTERNAL_CONFIG_POSIX_SIGNALS -#endif - -//////////////////////////////////////////////////////////////////////////////// -// We know some environments not to support full POSIX signals -#if defined(__CYGWIN__) || defined(__QNX__) || defined(__EMSCRIPTEN__) || defined(__DJGPP__) - #define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS -#endif - -#ifdef __OS400__ -# define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS -# define CATCH_CONFIG_COLOUR_NONE -#endif - -//////////////////////////////////////////////////////////////////////////////// -// Android somehow still does not support std::to_string -#if defined(__ANDROID__) -# define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING -# define CATCH_INTERNAL_CONFIG_ANDROID_LOGWRITE -#endif - -//////////////////////////////////////////////////////////////////////////////// -// Not all Windows environments support SEH properly -#if defined(__MINGW32__) -# define CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH -#endif - -//////////////////////////////////////////////////////////////////////////////// -// PS4 -#if defined(__ORBIS__) -# define CATCH_INTERNAL_CONFIG_NO_NEW_CAPTURE -#endif - -//////////////////////////////////////////////////////////////////////////////// -// Cygwin -#ifdef __CYGWIN__ - -// Required for some versions of Cygwin to declare gettimeofday -// see: http://stackoverflow.com/questions/36901803/gettimeofday-not-declared-in-this-scope-cygwin -# define _BSD_SOURCE -// some versions of cygwin (most) do not support std::to_string. Use the libstd check. -// https://gcc.gnu.org/onlinedocs/gcc-4.8.2/libstdc++/api/a01053_source.html line 2812-2813 -# if !((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \ - && !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF)) - -# define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING - -# endif -#endif // __CYGWIN__ - -//////////////////////////////////////////////////////////////////////////////// -// Visual C++ -#if defined(_MSC_VER) - -# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION __pragma( warning(push) ) -# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION __pragma( warning(pop) ) - -# if _MSC_VER >= 1900 // Visual Studio 2015 or newer -# define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS -# endif - -// Universal Windows platform does not support SEH -// Or console colours (or console at all...) -# if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP) -# define CATCH_CONFIG_COLOUR_NONE -# else -# define CATCH_INTERNAL_CONFIG_WINDOWS_SEH -# endif - -// MSVC traditional preprocessor needs some workaround for __VA_ARGS__ -// _MSVC_TRADITIONAL == 0 means new conformant preprocessor -// _MSVC_TRADITIONAL == 1 means old traditional non-conformant preprocessor -# if !defined(__clang__) // Handle Clang masquerading for msvc -# if !defined(_MSVC_TRADITIONAL) || (defined(_MSVC_TRADITIONAL) && _MSVC_TRADITIONAL) -# define CATCH_INTERNAL_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR -# endif // MSVC_TRADITIONAL -# endif // __clang__ - -#endif // _MSC_VER - -#if defined(_REENTRANT) || defined(_MSC_VER) -// Enable async processing, as -pthread is specified or no additional linking is required -# define CATCH_INTERNAL_CONFIG_USE_ASYNC -#endif // _MSC_VER - -//////////////////////////////////////////////////////////////////////////////// -// Check if we are compiled with -fno-exceptions or equivalent -#if defined(__EXCEPTIONS) || defined(__cpp_exceptions) || defined(_CPPUNWIND) -# define CATCH_INTERNAL_CONFIG_EXCEPTIONS_ENABLED -#endif - -//////////////////////////////////////////////////////////////////////////////// -// DJGPP -#ifdef __DJGPP__ -# define CATCH_INTERNAL_CONFIG_NO_WCHAR -#endif // __DJGPP__ - -//////////////////////////////////////////////////////////////////////////////// -// Embarcadero C++Build -#if defined(__BORLANDC__) - #define CATCH_INTERNAL_CONFIG_POLYFILL_ISNAN -#endif - -//////////////////////////////////////////////////////////////////////////////// - -// Use of __COUNTER__ is suppressed during code analysis in -// CLion/AppCode 2017.2.x and former, because __COUNTER__ is not properly -// handled by it. -// Otherwise all supported compilers support COUNTER macro, -// but user still might want to turn it off -#if ( !defined(__JETBRAINS_IDE__) || __JETBRAINS_IDE__ >= 20170300L ) - #define CATCH_INTERNAL_CONFIG_COUNTER -#endif - -//////////////////////////////////////////////////////////////////////////////// - -// RTX is a special version of Windows that is real time. -// This means that it is detected as Windows, but does not provide -// the same set of capabilities as real Windows does. -#if defined(UNDER_RTSS) || defined(RTX64_BUILD) - #define CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH - #define CATCH_INTERNAL_CONFIG_NO_ASYNC - #define CATCH_CONFIG_COLOUR_NONE -#endif - -#if !defined(_GLIBCXX_USE_C99_MATH_TR1) -#define CATCH_INTERNAL_CONFIG_GLOBAL_NEXTAFTER -#endif - -// Various stdlib support checks that require __has_include -#if defined(__has_include) - // Check if string_view is available and usable - #if __has_include() && defined(CATCH_CPP17_OR_GREATER) - # define CATCH_INTERNAL_CONFIG_CPP17_STRING_VIEW - #endif - - // Check if optional is available and usable - # if __has_include() && defined(CATCH_CPP17_OR_GREATER) - # define CATCH_INTERNAL_CONFIG_CPP17_OPTIONAL - # endif // __has_include() && defined(CATCH_CPP17_OR_GREATER) - - // Check if byte is available and usable - # if __has_include() && defined(CATCH_CPP17_OR_GREATER) - # define CATCH_INTERNAL_CONFIG_CPP17_BYTE - # endif // __has_include() && defined(CATCH_CPP17_OR_GREATER) - - // Check if variant is available and usable - # if __has_include() && defined(CATCH_CPP17_OR_GREATER) - # if defined(__clang__) && (__clang_major__ < 8) - // work around clang bug with libstdc++ https://bugs.llvm.org/show_bug.cgi?id=31852 - // fix should be in clang 8, workaround in libstdc++ 8.2 - # include - # if defined(__GLIBCXX__) && defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE < 9) - # define CATCH_CONFIG_NO_CPP17_VARIANT - # else - # define CATCH_INTERNAL_CONFIG_CPP17_VARIANT - # endif // defined(__GLIBCXX__) && defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE < 9) - # else - # define CATCH_INTERNAL_CONFIG_CPP17_VARIANT - # endif // defined(__clang__) && (__clang_major__ < 8) - # endif // __has_include() && defined(CATCH_CPP17_OR_GREATER) -#endif // defined(__has_include) - -#if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER) -# define CATCH_CONFIG_COUNTER -#endif -#if defined(CATCH_INTERNAL_CONFIG_WINDOWS_SEH) && !defined(CATCH_CONFIG_NO_WINDOWS_SEH) && !defined(CATCH_CONFIG_WINDOWS_SEH) && !defined(CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH) -# define CATCH_CONFIG_WINDOWS_SEH -#endif -// This is set by default, because we assume that unix compilers are posix-signal-compatible by default. -#if defined(CATCH_INTERNAL_CONFIG_POSIX_SIGNALS) && !defined(CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_POSIX_SIGNALS) -# define CATCH_CONFIG_POSIX_SIGNALS -#endif -// This is set by default, because we assume that compilers with no wchar_t support are just rare exceptions. -#if !defined(CATCH_INTERNAL_CONFIG_NO_WCHAR) && !defined(CATCH_CONFIG_NO_WCHAR) && !defined(CATCH_CONFIG_WCHAR) -# define CATCH_CONFIG_WCHAR -#endif - -#if !defined(CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING) && !defined(CATCH_CONFIG_NO_CPP11_TO_STRING) && !defined(CATCH_CONFIG_CPP11_TO_STRING) -# define CATCH_CONFIG_CPP11_TO_STRING -#endif - -#if defined(CATCH_INTERNAL_CONFIG_CPP17_OPTIONAL) && !defined(CATCH_CONFIG_NO_CPP17_OPTIONAL) && !defined(CATCH_CONFIG_CPP17_OPTIONAL) -# define CATCH_CONFIG_CPP17_OPTIONAL -#endif - -#if defined(CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS) && !defined(CATCH_CONFIG_NO_CPP17_UNCAUGHT_EXCEPTIONS) && !defined(CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS) -# define CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS -#endif - -#if defined(CATCH_INTERNAL_CONFIG_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_NO_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_CPP17_STRING_VIEW) -# define CATCH_CONFIG_CPP17_STRING_VIEW -#endif - -#if defined(CATCH_INTERNAL_CONFIG_CPP17_VARIANT) && !defined(CATCH_CONFIG_NO_CPP17_VARIANT) && !defined(CATCH_CONFIG_CPP17_VARIANT) -# define CATCH_CONFIG_CPP17_VARIANT -#endif - -#if defined(CATCH_INTERNAL_CONFIG_CPP17_BYTE) && !defined(CATCH_CONFIG_NO_CPP17_BYTE) && !defined(CATCH_CONFIG_CPP17_BYTE) -# define CATCH_CONFIG_CPP17_BYTE -#endif - -#if defined(CATCH_CONFIG_EXPERIMENTAL_REDIRECT) -# define CATCH_INTERNAL_CONFIG_NEW_CAPTURE -#endif - -#if defined(CATCH_INTERNAL_CONFIG_NEW_CAPTURE) && !defined(CATCH_INTERNAL_CONFIG_NO_NEW_CAPTURE) && !defined(CATCH_CONFIG_NO_NEW_CAPTURE) && !defined(CATCH_CONFIG_NEW_CAPTURE) -# define CATCH_CONFIG_NEW_CAPTURE -#endif - -#if !defined(CATCH_INTERNAL_CONFIG_EXCEPTIONS_ENABLED) && !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) -# define CATCH_CONFIG_DISABLE_EXCEPTIONS -#endif - -#if defined(CATCH_INTERNAL_CONFIG_POLYFILL_ISNAN) && !defined(CATCH_CONFIG_NO_POLYFILL_ISNAN) && !defined(CATCH_CONFIG_POLYFILL_ISNAN) -# define CATCH_CONFIG_POLYFILL_ISNAN -#endif - -#if defined(CATCH_INTERNAL_CONFIG_USE_ASYNC) && !defined(CATCH_INTERNAL_CONFIG_NO_ASYNC) && !defined(CATCH_CONFIG_NO_USE_ASYNC) && !defined(CATCH_CONFIG_USE_ASYNC) -# define CATCH_CONFIG_USE_ASYNC -#endif - -#if defined(CATCH_INTERNAL_CONFIG_ANDROID_LOGWRITE) && !defined(CATCH_CONFIG_NO_ANDROID_LOGWRITE) && !defined(CATCH_CONFIG_ANDROID_LOGWRITE) -# define CATCH_CONFIG_ANDROID_LOGWRITE -#endif - -#if defined(CATCH_INTERNAL_CONFIG_GLOBAL_NEXTAFTER) && !defined(CATCH_CONFIG_NO_GLOBAL_NEXTAFTER) && !defined(CATCH_CONFIG_GLOBAL_NEXTAFTER) -# define CATCH_CONFIG_GLOBAL_NEXTAFTER -#endif - -// Even if we do not think the compiler has that warning, we still have -// to provide a macro that can be used by the code. -#if !defined(CATCH_INTERNAL_START_WARNINGS_SUPPRESSION) -# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION -#endif -#if !defined(CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION) -# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION -#endif -#if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS) -# define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS -#endif -#if !defined(CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS) -# define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS -#endif -#if !defined(CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS) -# define CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS -#endif -#if !defined(CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS) -# define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS -#endif - -// The goal of this macro is to avoid evaluation of the arguments, but -// still have the compiler warn on problems inside... -#if !defined(CATCH_INTERNAL_IGNORE_BUT_WARN) -# define CATCH_INTERNAL_IGNORE_BUT_WARN(...) -#endif - -#if defined(__APPLE__) && defined(__apple_build_version__) && (__clang_major__ < 10) -# undef CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS -#elif defined(__clang__) && (__clang_major__ < 5) -# undef CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS -#endif - -#if !defined(CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS) -# define CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS -#endif - -#if defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) -#define CATCH_TRY if ((true)) -#define CATCH_CATCH_ALL if ((false)) -#define CATCH_CATCH_ANON(type) if ((false)) -#else -#define CATCH_TRY try -#define CATCH_CATCH_ALL catch (...) -#define CATCH_CATCH_ANON(type) catch (type) -#endif - -#if defined(CATCH_INTERNAL_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR) && !defined(CATCH_CONFIG_NO_TRADITIONAL_MSVC_PREPROCESSOR) && !defined(CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR) -#define CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR -#endif - -// end catch_compiler_capabilities.h -#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line -#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) -#ifdef CATCH_CONFIG_COUNTER -# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ ) -#else -# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ ) -#endif - -#include -#include -#include - -// We need a dummy global operator<< so we can bring it into Catch namespace later -struct Catch_global_namespace_dummy {}; -std::ostream& operator<<(std::ostream&, Catch_global_namespace_dummy); - -namespace Catch { - - struct CaseSensitive { enum Choice { - Yes, - No - }; }; - - class NonCopyable { - NonCopyable( NonCopyable const& ) = delete; - NonCopyable( NonCopyable && ) = delete; - NonCopyable& operator = ( NonCopyable const& ) = delete; - NonCopyable& operator = ( NonCopyable && ) = delete; - - protected: - NonCopyable(); - virtual ~NonCopyable(); - }; - - struct SourceLineInfo { - - SourceLineInfo() = delete; - SourceLineInfo( char const* _file, std::size_t _line ) noexcept - : file( _file ), - line( _line ) - {} - - SourceLineInfo( SourceLineInfo const& other ) = default; - SourceLineInfo& operator = ( SourceLineInfo const& ) = default; - SourceLineInfo( SourceLineInfo&& ) noexcept = default; - SourceLineInfo& operator = ( SourceLineInfo&& ) noexcept = default; - - bool empty() const noexcept { return file[0] == '\0'; } - bool operator == ( SourceLineInfo const& other ) const noexcept; - bool operator < ( SourceLineInfo const& other ) const noexcept; - - char const* file; - std::size_t line; - }; - - std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ); - - // Bring in operator<< from global namespace into Catch namespace - // This is necessary because the overload of operator<< above makes - // lookup stop at namespace Catch - using ::operator<<; - - // Use this in variadic streaming macros to allow - // >> +StreamEndStop - // as well as - // >> stuff +StreamEndStop - struct StreamEndStop { - std::string operator+() const; - }; - template - T const& operator + ( T const& value, StreamEndStop ) { - return value; - } -} - -#define CATCH_INTERNAL_LINEINFO \ - ::Catch::SourceLineInfo( __FILE__, static_cast( __LINE__ ) ) - -// end catch_common.h -namespace Catch { - - struct RegistrarForTagAliases { - RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ); - }; - -} // end namespace Catch - -#define CATCH_REGISTER_TAG_ALIAS( alias, spec ) \ - CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ - CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ - namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); } \ - CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION - -// end catch_tag_alias_autoregistrar.h -// start catch_test_registry.h - -// start catch_interfaces_testcase.h - -#include - -namespace Catch { - - class TestSpec; - - struct ITestInvoker { - virtual void invoke () const = 0; - virtual ~ITestInvoker(); - }; - - class TestCase; - struct IConfig; - - struct ITestCaseRegistry { - virtual ~ITestCaseRegistry(); - virtual std::vector const& getAllTests() const = 0; - virtual std::vector const& getAllTestsSorted( IConfig const& config ) const = 0; - }; - - bool isThrowSafe( TestCase const& testCase, IConfig const& config ); - bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ); - std::vector filterTests( std::vector const& testCases, TestSpec const& testSpec, IConfig const& config ); - std::vector const& getAllTestCasesSorted( IConfig const& config ); - -} - -// end catch_interfaces_testcase.h -// start catch_stringref.h - -#include -#include -#include -#include - -namespace Catch { - - /// A non-owning string class (similar to the forthcoming std::string_view) - /// Note that, because a StringRef may be a substring of another string, - /// it may not be null terminated. - class StringRef { - public: - using size_type = std::size_t; - using const_iterator = const char*; - - private: - static constexpr char const* const s_empty = ""; - - char const* m_start = s_empty; - size_type m_size = 0; - - public: // construction - constexpr StringRef() noexcept = default; - - StringRef( char const* rawChars ) noexcept; - - constexpr StringRef( char const* rawChars, size_type size ) noexcept - : m_start( rawChars ), - m_size( size ) - {} - - StringRef( std::string const& stdString ) noexcept - : m_start( stdString.c_str() ), - m_size( stdString.size() ) - {} - - explicit operator std::string() const { - return std::string(m_start, m_size); - } - - public: // operators - auto operator == ( StringRef const& other ) const noexcept -> bool; - auto operator != (StringRef const& other) const noexcept -> bool { - return !(*this == other); - } - - auto operator[] ( size_type index ) const noexcept -> char { - assert(index < m_size); - return m_start[index]; - } - - public: // named queries - constexpr auto empty() const noexcept -> bool { - return m_size == 0; - } - constexpr auto size() const noexcept -> size_type { - return m_size; - } - - // Returns the current start pointer. If the StringRef is not - // null-terminated, throws std::domain_exception - auto c_str() const -> char const*; - - public: // substrings and searches - // Returns a substring of [start, start + length). - // If start + length > size(), then the substring is [start, size()). - // If start > size(), then the substring is empty. - auto substr( size_type start, size_type length ) const noexcept -> StringRef; - - // Returns the current start pointer. May not be null-terminated. - auto data() const noexcept -> char const*; - - constexpr auto isNullTerminated() const noexcept -> bool { - return m_start[m_size] == '\0'; - } - - public: // iterators - constexpr const_iterator begin() const { return m_start; } - constexpr const_iterator end() const { return m_start + m_size; } - }; - - auto operator += ( std::string& lhs, StringRef const& sr ) -> std::string&; - auto operator << ( std::ostream& os, StringRef const& sr ) -> std::ostream&; - - constexpr auto operator "" _sr( char const* rawChars, std::size_t size ) noexcept -> StringRef { - return StringRef( rawChars, size ); - } -} // namespace Catch - -constexpr auto operator "" _catch_sr( char const* rawChars, std::size_t size ) noexcept -> Catch::StringRef { - return Catch::StringRef( rawChars, size ); -} - -// end catch_stringref.h -// start catch_preprocessor.hpp - - -#define CATCH_RECURSION_LEVEL0(...) __VA_ARGS__ -#define CATCH_RECURSION_LEVEL1(...) CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(__VA_ARGS__))) -#define CATCH_RECURSION_LEVEL2(...) CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(__VA_ARGS__))) -#define CATCH_RECURSION_LEVEL3(...) CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(__VA_ARGS__))) -#define CATCH_RECURSION_LEVEL4(...) CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(__VA_ARGS__))) -#define CATCH_RECURSION_LEVEL5(...) CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(__VA_ARGS__))) - -#ifdef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR -#define INTERNAL_CATCH_EXPAND_VARGS(...) __VA_ARGS__ -// MSVC needs more evaluations -#define CATCH_RECURSION_LEVEL6(...) CATCH_RECURSION_LEVEL5(CATCH_RECURSION_LEVEL5(CATCH_RECURSION_LEVEL5(__VA_ARGS__))) -#define CATCH_RECURSE(...) CATCH_RECURSION_LEVEL6(CATCH_RECURSION_LEVEL6(__VA_ARGS__)) -#else -#define CATCH_RECURSE(...) CATCH_RECURSION_LEVEL5(__VA_ARGS__) -#endif - -#define CATCH_REC_END(...) -#define CATCH_REC_OUT - -#define CATCH_EMPTY() -#define CATCH_DEFER(id) id CATCH_EMPTY() - -#define CATCH_REC_GET_END2() 0, CATCH_REC_END -#define CATCH_REC_GET_END1(...) CATCH_REC_GET_END2 -#define CATCH_REC_GET_END(...) CATCH_REC_GET_END1 -#define CATCH_REC_NEXT0(test, next, ...) next CATCH_REC_OUT -#define CATCH_REC_NEXT1(test, next) CATCH_DEFER ( CATCH_REC_NEXT0 ) ( test, next, 0) -#define CATCH_REC_NEXT(test, next) CATCH_REC_NEXT1(CATCH_REC_GET_END test, next) - -#define CATCH_REC_LIST0(f, x, peek, ...) , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ ) -#define CATCH_REC_LIST1(f, x, peek, ...) , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST0) ) ( f, peek, __VA_ARGS__ ) -#define CATCH_REC_LIST2(f, x, peek, ...) f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ ) - -#define CATCH_REC_LIST0_UD(f, userdata, x, peek, ...) , f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1_UD) ) ( f, userdata, peek, __VA_ARGS__ ) -#define CATCH_REC_LIST1_UD(f, userdata, x, peek, ...) , f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST0_UD) ) ( f, userdata, peek, __VA_ARGS__ ) -#define CATCH_REC_LIST2_UD(f, userdata, x, peek, ...) f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1_UD) ) ( f, userdata, peek, __VA_ARGS__ ) - -// Applies the function macro `f` to each of the remaining parameters, inserts commas between the results, -// and passes userdata as the first parameter to each invocation, -// e.g. CATCH_REC_LIST_UD(f, x, a, b, c) evaluates to f(x, a), f(x, b), f(x, c) -#define CATCH_REC_LIST_UD(f, userdata, ...) CATCH_RECURSE(CATCH_REC_LIST2_UD(f, userdata, __VA_ARGS__, ()()(), ()()(), ()()(), 0)) - -#define CATCH_REC_LIST(f, ...) CATCH_RECURSE(CATCH_REC_LIST2(f, __VA_ARGS__, ()()(), ()()(), ()()(), 0)) - -#define INTERNAL_CATCH_EXPAND1(param) INTERNAL_CATCH_EXPAND2(param) -#define INTERNAL_CATCH_EXPAND2(...) INTERNAL_CATCH_NO## __VA_ARGS__ -#define INTERNAL_CATCH_DEF(...) INTERNAL_CATCH_DEF __VA_ARGS__ -#define INTERNAL_CATCH_NOINTERNAL_CATCH_DEF -#define INTERNAL_CATCH_STRINGIZE(...) INTERNAL_CATCH_STRINGIZE2(__VA_ARGS__) -#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR -#define INTERNAL_CATCH_STRINGIZE2(...) #__VA_ARGS__ -#define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param) INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param)) -#else -// MSVC is adding extra space and needs another indirection to expand INTERNAL_CATCH_NOINTERNAL_CATCH_DEF -#define INTERNAL_CATCH_STRINGIZE2(...) INTERNAL_CATCH_STRINGIZE3(__VA_ARGS__) -#define INTERNAL_CATCH_STRINGIZE3(...) #__VA_ARGS__ -#define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param) (INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param)) + 1) -#endif - -#define INTERNAL_CATCH_MAKE_NAMESPACE2(...) ns_##__VA_ARGS__ -#define INTERNAL_CATCH_MAKE_NAMESPACE(name) INTERNAL_CATCH_MAKE_NAMESPACE2(name) - -#define INTERNAL_CATCH_REMOVE_PARENS(...) INTERNAL_CATCH_EXPAND1(INTERNAL_CATCH_DEF __VA_ARGS__) - -#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR -#define INTERNAL_CATCH_MAKE_TYPE_LIST2(...) decltype(get_wrapper()) -#define INTERNAL_CATCH_MAKE_TYPE_LIST(...) INTERNAL_CATCH_MAKE_TYPE_LIST2(INTERNAL_CATCH_REMOVE_PARENS(__VA_ARGS__)) -#else -#define INTERNAL_CATCH_MAKE_TYPE_LIST2(...) INTERNAL_CATCH_EXPAND_VARGS(decltype(get_wrapper())) -#define INTERNAL_CATCH_MAKE_TYPE_LIST(...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_MAKE_TYPE_LIST2(INTERNAL_CATCH_REMOVE_PARENS(__VA_ARGS__))) -#endif - -#define INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(...)\ - CATCH_REC_LIST(INTERNAL_CATCH_MAKE_TYPE_LIST,__VA_ARGS__) - -#define INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_0) INTERNAL_CATCH_REMOVE_PARENS(_0) -#define INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_0, _1) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_1) -#define INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_0, _1, _2) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_1, _2) -#define INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_0, _1, _2, _3) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_1, _2, _3) -#define INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_0, _1, _2, _3, _4) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_1, _2, _3, _4) -#define INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_0, _1, _2, _3, _4, _5) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_1, _2, _3, _4, _5) -#define INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_0, _1, _2, _3, _4, _5, _6) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_1, _2, _4, _5, _6) -#define INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_0, _1, _2, _3, _4, _5, _6, _7) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_1, _2, _3, _4, _5, _6, _7) -#define INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_1, _2, _3, _4, _5, _6, _7, _8) -#define INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9) -#define INTERNAL_CATCH_REMOVE_PARENS_11_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) - -#define INTERNAL_CATCH_VA_NARGS_IMPL(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, N, ...) N - -#define INTERNAL_CATCH_TYPE_GEN\ - template struct TypeList {};\ - template\ - constexpr auto get_wrapper() noexcept -> TypeList { return {}; }\ - template class...> struct TemplateTypeList{};\ - template class...Cs>\ - constexpr auto get_wrapper() noexcept -> TemplateTypeList { return {}; }\ - template\ - struct append;\ - template\ - struct rewrap;\ - template class, typename...>\ - struct create;\ - template class, typename>\ - struct convert;\ - \ - template \ - struct append { using type = T; };\ - template< template class L1, typename...E1, template class L2, typename...E2, typename...Rest>\ - struct append, L2, Rest...> { using type = typename append, Rest...>::type; };\ - template< template class L1, typename...E1, typename...Rest>\ - struct append, TypeList, Rest...> { using type = L1; };\ - \ - template< template class Container, template class List, typename...elems>\ - struct rewrap, List> { using type = TypeList>; };\ - template< template class Container, template class List, class...Elems, typename...Elements>\ - struct rewrap, List, Elements...> { using type = typename append>, typename rewrap, Elements...>::type>::type; };\ - \ - template