Skip to content

Commit

Permalink
depends: protobuf: update to 29.1
Browse files Browse the repository at this point in the history
  • Loading branch information
tobtoht committed Dec 23, 2024
1 parent 941ecef commit 949dc9b
Show file tree
Hide file tree
Showing 9 changed files with 104 additions and 29 deletions.
3 changes: 3 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ include(CheckFunctionExists)
if (POLICY CMP0148)
cmake_policy(SET CMP0148 OLD) # https://cmake.org/cmake/help/latest/policy/CMP0148.html
endif()
if (POLICY CMP0074)
cmake_policy(SET CMP0074 NEW) # https://cmake.org/cmake/help/latest/policy/CMP0074.html
endif()
include(FindPythonInterp)

if (IOS)
Expand Down
17 changes: 17 additions & 0 deletions contrib/depends/funcs.mk
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ $(1)_stage_env+=$($(1)_stage_env_$(host_arch)_$(host_os)) $($(1)_stage_env_$(hos

$(1)_config_env+=PKG_CONFIG_LIBDIR=$($($(1)_type)_prefix)/lib/pkgconfig
$(1)_config_env+=PKG_CONFIG_PATH=$($($(1)_type)_prefix)/share/pkgconfig
$(1)_config_env+=CMAKE_MODULE_PATH=$($($(1)_type)_prefix)/lib/cmake
$(1)_config_env+=PATH="$(build_prefix)/bin:$(PATH)"
$(1)_build_env+=PATH="$(build_prefix)/bin:$(PATH)"
$(1)_stage_env+=PATH="$(build_prefix)/bin:$(PATH)"
Expand Down Expand Up @@ -185,6 +186,22 @@ endif
ifneq ($($(1)_ldflags),)
$(1)_autoconf += LDFLAGS="$$($(1)_ldflags)"
endif

$(1)_cmake=env CC="$$($(1)_cc)" \
CFLAGS="$$($(1)_cppflags) $$($(1)_cflags)" \
CXX="$$($(1)_cxx)" \
CXXFLAGS="$$($(1)_cppflags) $$($(1)_cxxflags)" \
LDFLAGS="$$($(1)_ldflags)" \
cmake -DCMAKE_INSTALL_PREFIX:PATH="$$($($(1)_type)_prefix)" $$($(1)_config_opts)
ifeq ($($(1)_type),build)
$(1)_cmake += -DCMAKE_INSTALL_RPATH:PATH="$$($($(1)_type)_prefix)/lib"
else
ifneq ($(host),$(build))
$(1)_cmake += -DCMAKE_SYSTEM_NAME=$($(host_os)_cmake_system)
$(1)_cmake += -DCMAKE_C_COMPILER_TARGET=$(host)
$(1)_cmake += -DCMAKE_CXX_COMPILER_TARGET=$(host)
endif
endif
endef

define int_add_cmds
Expand Down
27 changes: 27 additions & 0 deletions contrib/depends/packages/abseil.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package=abseil
$(package)_version=$(native_$(package)_version)
$(package)_download_path=$(native_$(package)_download_path)
$(package)_download_file=$(native_$(package)_download_file)
$(package)_file_name=$(native_$(package)_file_name)
$(package)_sha256_hash=$(native_$(package)_sha256_hash)
$(package)_patches=no_librt.patch

define $(package)_set_vars
$(package)_cxxflags+=-std=c++17
endef

define $(package)_preprocess_cmds
patch -p1 -i $($(package)_patch_dir)/no_librt.patch
endef

define $(package)_config_cmds
$($(package)_cmake)
endef

define $(package)_build_cmds
$(MAKE)
endef

define $(package)_stage_cmds
$(MAKE) DESTDIR=$($(package)_staging_dir) install
endef
18 changes: 18 additions & 0 deletions contrib/depends/packages/native_abseil.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package=native_abseil
$(package)_version=20240722.0
$(package)_download_path=https://github.com/abseil/abseil-cpp/archive/refs/tags/
$(package)_download_file=$($(package)_version).tar.gz
$(package)_file_name=abseil-$($(package)_version).tar.gz
$(package)_sha256_hash=f50e5ac311a81382da7fa75b97310e4b9006474f9560ac46f54a9967f07d4ae3

define $(package)_config_cmds
$($(package)_cmake)
endef

define $(package)_build_cmds
$(MAKE)
endef

define $(package)_stage_cmds
$(MAKE) DESTDIR=$($(package)_staging_dir) install
endef
25 changes: 13 additions & 12 deletions contrib/depends/packages/native_protobuf.mk
Original file line number Diff line number Diff line change
@@ -1,28 +1,29 @@
package=native_protobuf
$(package)_version=21.12
$(package)_version_protobuf_cpp=3.21.12
$(package)_download_path=https://github.com/protocolbuffers/protobuf/releases/download/v$($(package)_version)/
$(package)_file_name=protobuf-cpp-$($(package)_version_protobuf_cpp).tar.gz
$(package)_sha256_hash=4eab9b524aa5913c6fffb20b2a8abf5ef7f95a80bc0701f3a6dbb4c607f73460
$(package)_cxxflags=-std=c++11
$(package)_version=29.1
$(package)_download_path=https://github.com/protocolbuffers/protobuf/releases/download/v$($(package)_version)
$(package)_file_name=protobuf-$($(package)_version).tar.gz
$(package)_sha256_hash=3d32940e975c4ad9b8ba69640e78f5527075bae33ca2890275bf26b853c0962c
$(package)_dependencies=native_abseil

define $(package)_set_vars
$(package)_config_opts=--disable-shared --prefix=$(build_prefix)
$(package)_config_opts_linux=--with-pic
$(package)_cxxflags+=-std=c++17
$(package)_config_opts=-Dprotobuf_BUILD_TESTS=OFF
$(package)_config_opts+=-Dprotobuf_ABSL_PROVIDER=package
$(package)_config_opts+=-Dprotobuf_BUILD_SHARED_LIBS=OFF
endef

define $(package)_config_cmds
$($(package)_autoconf)
$($(package)_cmake)
endef

define $(package)_build_cmds
$(MAKE) -C src protoc
$(MAKE)
endef

define $(package)_stage_cmds
$(MAKE) DESTDIR=$($(package)_staging_dir) -C src install-binPROGRAMS install-nobase_dist_protoDATA
$(MAKE) DESTDIR=$($(package)_staging_dir) install
endef

define $(package)_postprocess_cmds
rm -rf lib/
rm -rf lib64
endef
4 changes: 2 additions & 2 deletions contrib/depends/packages/packages.mk
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
packages:=boost openssl zeromq expat unbound sodium

hardware_packages := hidapi protobuf libusb
hardware_native_packages := native_protobuf
hardware_packages := hidapi abseil protobuf libusb
hardware_native_packages := native_abseil native_protobuf

android_native_packages = android_ndk $(hardware_native_packages)
android_packages = ncurses readline protobuf
Expand Down
20 changes: 10 additions & 10 deletions contrib/depends/packages/protobuf.mk
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
package=protobuf
$(package)_version=$(native_$(package)_version)
$(package)_version_protobuf_cpp=$(native_$(package)_version_protobuf_cpp)
$(package)_download_path=$(native_$(package)_download_path)
$(package)_file_name=$(native_$(package)_file_name)
$(package)_sha256_hash=$(native_$(package)_sha256_hash)
$(package)_dependencies=native_$(package)
$(package)_cxxflags=-std=c++11
$(package)_dependencies=abseil

define $(package)_set_vars
$(package)_config_opts=--disable-shared --with-protoc=$(build_prefix)/bin/protoc
$(package)_config_opts_linux=--with-pic
$(package)_cxxflags+=-std=c++17
$(package)_config_opts=-Dprotobuf_ABSL_PROVIDER=package
$(package)_config_opts+=-Dprotobuf_BUILD_TESTS=OFF
$(package)_config_opts+=-Dprotobuf_BUILD_SHARED_LIBS=OFF
$(package)_config_opts+=-Dprotobuf_BUILD_PROTOC_BINARIES=OFF
$(package)_config_opts+=-Dprotobuf_WITH_ZLIB=OFF
endef

define $(package)_config_cmds
$($(package)_autoconf) AR_FLAGS=$($(package)_arflags)
$($(package)_cmake)
endef

define $(package)_build_cmds
$(MAKE) -C src libprotobuf.la
$(MAKE)
endef

define $(package)_stage_cmds
$(MAKE) DESTDIR=$($(package)_staging_dir) -C src install-nobase_includeHEADERS &&\
$(MAKE) DESTDIR=$($(package)_staging_dir) install-pkgconfigDATA &&\
cp src/.libs/libprotobuf.a $($(package)_staging_prefix_dir)/lib/
$(MAKE) DESTDIR=$($(package)_staging_dir) install
endef
12 changes: 12 additions & 0 deletions contrib/depends/patches/abseil/no_librt.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
diff --git a/absl/base/CMakeLists.txt b/absl/base/CMakeLists.txt
index 97994fc6..06ab426c 100644
--- a/absl/base/CMakeLists.txt
+++ b/absl/base/CMakeLists.txt
@@ -240,7 +240,6 @@ absl_cc_library(
${ABSL_DEFAULT_COPTS}
LINKOPTS
${ABSL_DEFAULT_LINKOPTS}
- $<$<BOOL:${LIBRT}>:-lrt>
$<$<BOOL:${MINGW}>:-ladvapi32>
DEPS
absl::atomic_hook
7 changes: 2 additions & 5 deletions contrib/depends/toolchain.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,7 @@ SET(UNBOUND_LIBRARIES @prefix@/lib/libunbound.a)
SET(LIBUSB-1.0_LIBRARY @prefix@/lib/libusb-1.0.a)
SET(LIBUDEV_LIBRARY @prefix@/lib/libudev.a)

SET(Protobuf_FOUND 1)
SET(Protobuf_PROTOC_EXECUTABLE @prefix@/native/bin/protoc CACHE FILEPATH "Path to the native protoc")
SET(Protobuf_INCLUDE_DIR @prefix@/include CACHE PATH "Protobuf include dir")
SET(Protobuf_INCLUDE_DIRS @prefix@/include CACHE PATH "Protobuf include dir")
SET(Protobuf_LIBRARY @prefix@/lib/libprotobuf.a CACHE FILEPATH "Protobuf library")
SET(absl_ROOT @prefix@)

SET(Boost_IGNORE_SYSTEM_PATH ON)
SET(BOOST_ROOT @prefix@)
Expand All @@ -48,6 +44,7 @@ SET(ARCHITECTURE @arch@)
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) # Find programs on host
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) # Find libs in target
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) # Find includes in target
SET (CMAKE_FIND_USE_PACKAGE_ROOT_PATH ON)

# specify the cross compiler to be used. Darwin uses clang provided by the SDK.
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
Expand Down

0 comments on commit 949dc9b

Please sign in to comment.