add support to protobuf 3.25.1

This commit is contained in:
Sérgio M. Basto 2024-01-19 00:41:24 +00:00
parent c88bd31291
commit 3063fdb8c7
2 changed files with 181 additions and 1 deletions

View File

@ -0,0 +1,176 @@
diff -up libphonenumber-8.13.27/cpp/cmake/config.cmake.in.3213 libphonenumber-8.13.27/cpp/cmake/config.cmake.in
--- libphonenumber-8.13.27/cpp/cmake/config.cmake.in.3213 2023-12-07 01:58:20.000000000 -0500
+++ libphonenumber-8.13.27/cpp/cmake/config.cmake.in 2024-01-16 09:52:09.617694098 -0500
@@ -2,8 +2,8 @@
include(CMakeFindDependencyMacro)
-find_dependency(absl)
-find_dependency(Protobuf)
+find_dependency(absl CONFIG)
+find_dependency(Protobuf CONFIG)
include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake")
check_required_components("@PROJECT_NAME@")
diff -up libphonenumber-8.13.27/cpp/CMakeLists.txt.3213 libphonenumber-8.13.27/cpp/CMakeLists.txt
--- libphonenumber-8.13.27/cpp/CMakeLists.txt.3213 2024-01-16 09:51:54.097535141 -0500
+++ libphonenumber-8.13.27/cpp/CMakeLists.txt 2024-01-16 10:04:50.017558082 -0500
@@ -100,7 +100,8 @@ if (USE_ALTERNATE_FORMATS)
endif ()
# Find all the required libraries and programs.
-find_package(absl)
+# Use "CONFIG" as there is no built-in cmake module for absl.
+find_package(absl CONFIG REQUIRED)
if(NOT absl_FOUND)
# Overide abseil install rules for subprojects
@@ -169,14 +170,24 @@ if (USE_RE2)
find_required_library (RE2 re2/re2.h re2 "Google RE2")
endif ()
-if (USE_PROTOBUF_LITE)
- find_required_library (PROTOBUF google/protobuf/message_lite.h protobuf-lite
- "Google Protocol Buffers")
- check_library_version (PC_PROTOBUF protobuf-lite>=2.4)
+find_package(Protobuf CONFIG)
+if(NOT Protobuf_FOUND)
+ find_package(Protobuf REQUIRED)
+endif()
+
+if (${Protobuf_VERSION} VERSION_LESS "3.21.0.0")
+ if (USE_PROTOBUF_LITE)
+ set (PROTOBUF_LIB ${Protobuf_LITE_LIBRARIES})
+ else ()
+ set (PROTOBUF_LIB ${Protobuf_LIBRARIES})
+ endif ()
+# find_required_program (PROTOC protoc "Google Protocol Buffers compiler (protoc)")
else ()
- find_required_library (PROTOBUF google/protobuf/message_lite.h protobuf
- "Google Protocol Buffers")
- check_library_version (PC_PROTOBUF protobuf>=2.4)
+ if (USE_PROTOBUF_LITE)
+ set (PROTOBUF_LIB protobuf::libprotobuf-lite)
+ else ()
+ set (PROTOBUF_LIB protobuf::libprotobuf)
+ endif ()
endif ()
find_required_library (ICU_UC unicode/uchar.h icuuc "ICU")
@@ -192,9 +203,6 @@ if (USE_ICU_REGEXP OR BUILD_GEOCODER)
list (APPEND ICU_LIB ${ICU_I18N_LIB})
endif ()
-find_required_program (PROTOC protoc
- "Google Protocol Buffers compiler (protoc)")
-
if (REGENERATE_METADATA)
find_required_program (JAVA java
"Java Runtime Environment")
@@ -220,24 +228,39 @@ endif ()
set (RESOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../resources")
set (
- PROTOBUF_SOURCES "${RESOURCES_DIR}/phonemetadata.proto"
- "${RESOURCES_DIR}/phonenumber.proto"
+ PROTO_FILES "${RESOURCES_DIR}/phonemetadata.proto"
+ "${RESOURCES_DIR}/phonenumber.proto"
)
-set (
- PROTOBUF_OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers/phonemetadata.pb.cc"
- "${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers/phonemetadata.pb.h"
- "${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers/phonenumber.pb.cc"
- "${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers/phonenumber.pb.h"
-)
+if (${Protobuf_VERSION} VERSION_LESS "3.21.0.0")
+ set (
+ PROTOBUF_OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers/phonemetadata.pb.cc"
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers/phonemetadata.pb.h"
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers/phonenumber.pb.cc"
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers/phonenumber.pb.h"
+ )
-add_custom_command (
- COMMAND ${PROTOC_BIN} --cpp_out=${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers/
- --proto_path=${RESOURCES_DIR} ${PROTOBUF_SOURCES}
+# COMMAND ${PROTOC_BIN}
+ add_custom_command (
+ COMMAND ${Protobuf_PROTOC_EXECUTABLE}
+ ARGS --cpp_out=${CMAKE_CURRENT_SOURCE_DIR}/src/phonenumbers/ --proto_path=${RESOURCES_DIR} ${PROTO_FILES}
+ VERBATIM
- OUTPUT ${PROTOBUF_OUTPUT}
- DEPENDS ${PROTOBUF_SOURCES}
-)
+ OUTPUT ${PROTOBUF_OUTPUT}
+ DEPENDS ${PROTO_FILES}
+ )
+else ()
+ set (PROTOBUF_OUTPUT "")
+ add_library (proto-objects OBJECT ${PROTO_FILES})
+ target_link_libraries (proto-objects PUBLIC protobuf::libprotobuf)
+ set (PROTO_BINARY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
+ target_include_directories (proto-objects PUBLIC "$<BUILD_INTERFACE:${PROTO_BINARY_DIR}>")
+ protobuf_generate (
+ TARGET proto-objects
+ IMPORT_DIRS "${RESOURCES_DIR}"
+ PROTOC_OUT_DIR "${PROTO_BINARY_DIR}/phonenumbers"
+ )
+endif ()
if (BUILD_GEOCODER)
# Geocoding data cpp file generation
@@ -267,9 +290,7 @@ set (
"src/phonenumbers/base/strings/string_piece.cc"
"src/phonenumbers/default_logger.cc"
"src/phonenumbers/logger.cc"
- "src/phonenumbers/phonemetadata.pb.cc" # Generated by Protocol Buffers.
"src/phonenumbers/phonenumber.cc"
- "src/phonenumbers/phonenumber.pb.cc" # Generated by Protocol Buffers.
"src/phonenumbers/phonenumberutil.cc"
"src/phonenumbers/regex_based_matcher.cc"
"src/phonenumbers/regexp_cache.cc"
@@ -282,6 +303,10 @@ set (
"src/phonenumbers/utf/unilib.cc"
)
+if (${Protobuf_VERSION} VERSION_LESS "3.21.0.0")
+ list (APPEND SOURCES ${PROTOBUF_OUTPUT})
+endif ()
+
if (BUILD_GEOCODER)
set (
GEOCODING_SOURCES
@@ -290,7 +315,6 @@ if (BUILD_GEOCODER)
"src/phonenumbers/geocoding/geocoding_data.cc"
"src/phonenumbers/geocoding/mapping_file_provider.cc"
"src/phonenumbers/geocoding/phonenumber_offline_geocoder.cc"
- "src/phonenumbers/phonenumber.pb.h" # Forces proto buffer generation.
)
endif ()
@@ -450,6 +474,10 @@ if (APPLE)
list (APPEND LIBRARY_DEPS ${COREFOUNDATION_LIB} ${FOUNDATION_LIB})
endif ()
+if (${Protobuf_VERSION} VERSION_GREATER_EQUAL "3.21.0.0")
+ list (APPEND LIBRARY_DEPS proto-objects)
+endif ()
+
#----------------------------------------------------------------
# Build libraries
#----------------------------------------------------------------
@@ -601,7 +629,11 @@ endif()
# Install built libraries
#----------------------------------------------------------------
-set (BUILT_LIBS)
+if (${Protobuf_VERSION} VERSION_GREATER_EQUAL "3.21.0.0")
+ set (BUILT_LIBS proto-objects)
+else ()
+ set (BUILT_LIBS)
+endif ()
set(targets_export_name "${PROJECT_NAME}-targets")
if (BUILD_STATIC_LIB)

View File

@ -1,11 +1,12 @@
Name: libphonenumber
Version: 8.13.28
Release: 1%{?dist}
Release: 2%{?dist}
Summary: Library to handle international phone numbers
# The project itself is ASL 2.0 but contains files from Chromium which are BSD and MIT.
License: ASL 2.0 and BSD and MIT
URL: https://github.com/google/libphonenumber/
Source0: https://github.com/google/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz
Patch1: libphonenumber-8.13.27-new-protobuf-cmake-logic.patch
BuildRequires: abseil-cpp-devel
BuildRequires: boost-devel
@ -78,6 +79,9 @@ popd
%changelog
* Thu Jan 18 2024 Sérgio Basto <sergio@serjux.com> - 8.13.28-2
- add support to protobuf 3.25.1
* Thu Jan 18 2024 Packit <hello@packit.dev> - 8.13.28-1
- [maven-release-plugin] prepare release v8.13.28 (Mandali Reddy)
- Metadata updates for release 8.13.28 (#3383) (mandlil)