# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
github.setup google protobuf 3.5.1 v
maintainers blair openmaintainer
description Encode data in an efficient yet extensible format.
Google Protocol Buffers are a flexible, efficient, \
automated mechanism for serializing structured data -- \
think XML, but smaller, faster, and simpler. You \
define how you want your data to be structured once, \
then you can use special generated source code to \
easily write and read your structured data to and from \
a variety of data streams and using a variety of \
languages. You can even update your data structure \
without breaking deployed programs that are compiled \
against the "old" format. You specify how you want \
the information you're serializing to be structured by \
defining protocol buffer message types in .proto \
files. Each protocol buffer message is a small \
logical record of information, containing a series of \
github.tarball_from releases
distname protobuf-cpp-${version}
worksrcdir protobuf-${version}
if {${os.platform} eq "darwin" && ${os.major} < 11} {
if {[string match *clang* ${configure.compiler}] && ${configure.cxx_stdlib} eq "macports-libstdc++"} {
# GCC emulates thread-local storage
compiler.whitelist macports-gcc-7
configure.cppflags-append -DGOOGLE_PROTOBUF_NO_THREADLOCAL
# see https://trac.macports.org/ticket/56366
depends_build-append port:libtool
# when linking, libtool does not respect -stdlib
delete ${worksrcpath}/libtool
xinstall -m 0755 ${prefix}/bin/glibtool ${worksrcpath}/libtool
checksums rmd160 21375095e562cfee25ba68d68e481cf608ac9a9a \
sha256 c28dba8782da2cfea1e11c61d335958c31a9c1bc553063546af9cbe98f204092
# see https://trac.macports.org/wiki/UsingTheRightCompiler
CC_FOR_BUILD=${configure.cc} \
CXX_FOR_BUILD=${configure.cxx}