| # See src/google/protobuf/stubs/platform_macros.h for supported archs. |
| # |
| # On PowerPC, the __atomic_*() built-ins for 1-byte, 2-byte and 4-byte |
| # types are available built-in. However, the __atomic_*() built-ins for |
| # 8-byte types is implemented via libatomic, so only available since gcc |
| # 4.8. |
| # |
| # In Buildroot, to simplify things, we've decided to simply require gcc |
| # 4.8 as soon as the architectures has at least one __atomic_*() built-in |
| # variant that requires libatomic. |
| # |
| # Since protobuf most likely only uses the 1, 2 and 4-byte variants, it |
| # *could* technically build with gcc 4.7. This is probably not a big deal, |
| # and we can live with requiring gcc 4.8 on PowerPC to build protobuf. |
| # |
| # host-protobuf only builds on certain architectures |
| config BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS |
| bool |
| default y if BR2_arm |
| default y if BR2_i386 |
| default y if BR2_mipsel |
| default y if BR2_x86_64 |
| default y if BR2_sparc64 |
| default y if BR2_TOOLCHAIN_HAS_ATOMIC |
| depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" |
| depends on BR2_USE_MMU # fork() |
| |
| config BR2_PACKAGE_PROTOBUF |
| bool "protobuf" |
| depends on BR2_INSTALL_LIBSTDCPP |
| depends on BR2_TOOLCHAIN_HAS_THREADS |
| depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS |
| depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 |
| depends on !BR2_STATIC_LIBS |
| help |
| Protocol buffers are Google's language-neutral, |
| platform-neutral, extensible mechanism for serializing |
| structured data. |
| |
| https://developers.google.com/protocol-buffers |
| |
| comment "protobuf needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8" |
| depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \ |
| || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 |
| depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS |