<pre style='margin:0'>
ra1nb0w (ra1nb0w) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/fda11491692d965668b83012ebdd00eb20808929">https://github.com/macports/macports-ports/commit/fda11491692d965668b83012ebdd00eb20808929</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit fda11491692d965668b83012ebdd00eb20808929
</span>Author: Davide Gerhard <ra1nb0w@macports.org>
AuthorDate: Thu Feb 3 08:59:37 2022 +0100

<span style='display:block; white-space:pre;color:#404040;'>    libsigmf: new port
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    a header-only C++ library for working with SigMF metadata
</span>---
 science/libsigmf/Portfile                  | 37 ++++++++++++++++++++++++
 science/libsigmf/files/flatbuffersV2.patch | 46 ++++++++++++++++++++++++++++++
 2 files changed, 83 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/libsigmf/Portfile b/science/libsigmf/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..449253fc60d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/libsigmf/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,37 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           cmake 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          science comms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms           darwin macosx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             apache-2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {ra1nb0w @ra1nb0w} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         a header-only C++ library for working with SigMF metadata
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    ${description}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        f4exb libsigmf 8623f04c1e4e817ebcaacbe55265a7740da015a4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             20201115-[string range ${github.version} 0 7]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  279499167fbc999a4d33cd797a5896a9e393189a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  5930140b578ce180075a0b66e9a02a9b6b2bb43b554e788e8f8f9c52651d85a7 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    43602
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.livecheck.branch new-namespaces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard 2014
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    flatbuffersV2.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    port:pkgconfig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    port:nlohmann-json \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    port:flatbuffers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DENABLE_EXAMPLES=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DUSE_SYSTEM_JSON=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DUSE_SYSTEM_FLATBUFFERS=ON
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/libsigmf/files/flatbuffersV2.patch b/science/libsigmf/files/flatbuffersV2.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..509f56fad95
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/libsigmf/files/flatbuffersV2.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,46 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/lib/flatbuffers_json_visitor.cpp src/lib/flatbuffers_json_visitor.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 85d5880..c30ccef 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/lib/flatbuffers_json_visitor.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/lib/flatbuffers_json_visitor.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -64,6 +64,14 @@ json_vector_to_chararray(flatbuffers::FlatBufferBuilder &fbb, const json &jvec,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline bool is_type_vector(const flatbuffers::TypeCode &tc) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FLATBUFFERS_VERSION_MAJOR >= 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return tc.is_repeating;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return tc.is_vector;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * Iterate through a typetable-- I'll be honest here. This is kind of bullshit. We need to create all of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * the types like Strings, Lists, Vectors, and other flatbuffer types before we create our table. I'm not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -84,7 +92,7 @@ void IterateType(const flatbuffers::TypeTable *type_table, FromSigMFVisitor *vis
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     for (size_t i = 0; i < type_table->num_elems; i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         auto type_code = type_table->type_codes[i];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         auto type = static_cast<flatbuffers::ElementaryType>(type_code.base_type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        auto is_vector = type_code.is_vector != 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        auto is_vector = is_type_vector(type_code);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         auto ref_idx = type_code.sequence_ref;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         const flatbuffers::TypeTable *ref = nullptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (ref_idx >= 0) { ref = type_table->type_refs[ref_idx](); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -144,7 +152,7 @@ void IterateType(const flatbuffers::TypeTable *type_table, FromSigMFVisitor *vis
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     for (size_t i = 0; i < type_table->num_elems; i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         auto type_code = type_table->type_codes[i];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         auto type = static_cast<flatbuffers::ElementaryType>(type_code.base_type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        auto is_vector = type_code.is_vector != 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        auto is_vector = is_type_vector(type_code);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         auto ref_idx = type_code.sequence_ref;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         const flatbuffers::TypeTable *ref = nullptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (ref_idx >= 0) { ref = type_table->type_refs[ref_idx](); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -352,7 +360,7 @@ FlatBufferToJson(const uint8_t *buffer_root, const flatbuffers::TypeTable *typet
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // Gather all of the underlying info about this element in table
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         auto type_code = typetable->type_codes[i];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         auto type = static_cast<flatbuffers::ElementaryType>(type_code.base_type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        auto is_vector = type_code.is_vector != 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        auto is_vector = is_type_vector(type_code);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         auto ref_idx = type_code.sequence_ref;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         const flatbuffers::TypeTable *ref = nullptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (ref_idx >= 0) { ref = typetable->type_refs[ref_idx](); }
</span></pre><pre style='margin:0'>

</pre>