mirror of
https://git.freebsd.org/ports.git
synced 2025-04-29 01:56:37 -04:00
pybind11_protobuf provides pybind11 bindings for Google's Protocol Buffers. These adapters make Protocol Buffer message types work with Pybind11 bindings.
169 lines
5.7 KiB
Text
169 lines
5.7 KiB
Text
--- CMakeLists.txt.orig 2024-08-09 17:15:35 UTC
|
|
+++ CMakeLists.txt
|
|
@@ -39,9 +39,9 @@ if(USE_SYSTEM_PROTOBUF)
|
|
set(_absl_package_args 20230125)
|
|
endif()
|
|
if(USE_SYSTEM_PROTOBUF)
|
|
- set(_protobuf_package_args 4.23.3 REQUIRED)
|
|
+ set(_protobuf_package_args REQUIRED)
|
|
else()
|
|
- set(_protobuf_package_args 4.23.3)
|
|
+ set(_protobuf_package_args)
|
|
endif()
|
|
if(USE_SYSTEM_PYBIND)
|
|
set(_pybind11_package_args 2.11.1 REQUIRED)
|
|
@@ -52,32 +52,11 @@ set(ABSL_ENABLE_INSTALL ON)
|
|
set(ABSL_PROPAGATE_CXX_STD ON)
|
|
set(ABSL_ENABLE_INSTALL ON)
|
|
|
|
-include(FetchContent)
|
|
-FetchContent_Declare(
|
|
- absl
|
|
- GIT_REPOSITORY "https://github.com/abseil/abseil-cpp.git"
|
|
- GIT_TAG 20230125.3
|
|
- FIND_PACKAGE_ARGS ${_absl_package_args} NAMES absl)
|
|
-
|
|
-# cmake-format: off
|
|
-FetchContent_Declare(
|
|
- Protobuf
|
|
- GIT_REPOSITORY "https://github.com/protocolbuffers/protobuf.git"
|
|
- GIT_TAG v23.3
|
|
- GIT_SUBMODULES ""
|
|
- FIND_PACKAGE_ARGS ${_protobuf_package_args} NAMES protobuf)
|
|
-set(protobuf_BUILD_TESTS OFF CACHE INTERNAL "")
|
|
-# cmake-format: on
|
|
-
|
|
-FetchContent_Declare(
|
|
- pybind11
|
|
- GIT_REPOSITORY "https://github.com/pybind/pybind11.git"
|
|
- GIT_TAG v2.11.1
|
|
- FIND_PACKAGE_ARGS ${_pybind11_package_args} NAMES pybind11)
|
|
-
|
|
message(CHECK_START "Checking for external dependencies")
|
|
+find_package(absl ${_absl_package_args})
|
|
+find_package(protobuf ${_protobuf_package_args})
|
|
+find_package(pybind11 ${_pybind11_package_args})
|
|
list(APPEND CMAKE_MESSAGE_INDENT " ")
|
|
-FetchContent_MakeAvailable(absl Protobuf pybind11)
|
|
list(POP_BACK CMAKE_MESSAGE_INDENT)
|
|
|
|
# ============================================================================
|
|
@@ -97,7 +76,7 @@ add_library(
|
|
# ============================================================================
|
|
# pybind11_native_proto_caster shared library
|
|
add_library(
|
|
- pybind11_native_proto_caster STATIC
|
|
+ pybind11_native_proto_caster SHARED
|
|
# bazel: pybind_library: native_proto_caster
|
|
pybind11_protobuf/native_proto_caster.h
|
|
# bazel: pybind_library: enum_type_caster
|
|
@@ -106,6 +85,16 @@ add_library(
|
|
pybind11_protobuf/proto_cast_util.cc
|
|
pybind11_protobuf/proto_cast_util.h
|
|
pybind11_protobuf/proto_caster_impl.h)
|
|
+add_library(
|
|
+ pybind11_native_proto_caster_static STATIC
|
|
+ # bazel: pybind_library: native_proto_caster
|
|
+ pybind11_protobuf/native_proto_caster.h
|
|
+ # bazel: pybind_library: enum_type_caster
|
|
+ pybind11_protobuf/enum_type_caster.h
|
|
+ # bazel: pybind_library: proto_cast_util
|
|
+ pybind11_protobuf/proto_cast_util.cc
|
|
+ pybind11_protobuf/proto_cast_util.h
|
|
+ pybind11_protobuf/proto_caster_impl.h)
|
|
|
|
target_link_libraries(
|
|
pybind11_native_proto_caster
|
|
@@ -117,22 +106,45 @@ target_link_libraries(
|
|
protobuf::libprotobuf
|
|
pybind11::pybind11
|
|
${Python_LIBRARIES})
|
|
+target_link_libraries(
|
|
+ pybind11_native_proto_caster_static
|
|
+ absl::flat_hash_map
|
|
+ absl::flat_hash_set
|
|
+ absl::hash
|
|
+ absl::strings
|
|
+ absl::optional
|
|
+ protobuf::libprotobuf
|
|
+ pybind11::pybind11
|
|
+ ${Python_LIBRARIES})
|
|
|
|
target_include_directories(
|
|
pybind11_native_proto_caster
|
|
PRIVATE ${PROJECT_SOURCE_DIR} ${protobuf_INCLUDE_DIRS} ${protobuf_SOURCE_DIR}
|
|
${pybind11_INCLUDE_DIRS})
|
|
+target_include_directories(
|
|
+ pybind11_native_proto_caster_static
|
|
+ PRIVATE ${PROJECT_SOURCE_DIR} ${protobuf_INCLUDE_DIRS} ${protobuf_SOURCE_DIR}
|
|
+ ${pybind11_INCLUDE_DIRS})
|
|
+set_target_properties(pybind11_native_proto_caster_static PROPERTIES OUTPUT_NAME pybind11_native_proto_caster)
|
|
|
|
# ============================================================================
|
|
# pybind11_wrapped_proto_caster shared library
|
|
add_library(
|
|
- pybind11_wrapped_proto_caster STATIC
|
|
+ pybind11_wrapped_proto_caster SHARED
|
|
# bazel: pybind_library: wrapped_proto_caster
|
|
pybind11_protobuf/wrapped_proto_caster.h
|
|
# bazel: pybind_library: proto_cast_util
|
|
pybind11_protobuf/proto_cast_util.cc
|
|
pybind11_protobuf/proto_cast_util.h
|
|
pybind11_protobuf/proto_caster_impl.h)
|
|
+add_library(
|
|
+ pybind11_wrapped_proto_caster_static STATIC
|
|
+ # bazel: pybind_library: wrapped_proto_caster
|
|
+ pybind11_protobuf/wrapped_proto_caster.h
|
|
+ # bazel: pybind_library: proto_cast_util
|
|
+ pybind11_protobuf/proto_cast_util.cc
|
|
+ pybind11_protobuf/proto_cast_util.h
|
|
+ pybind11_protobuf/proto_caster_impl.h)
|
|
|
|
target_link_libraries(
|
|
pybind11_wrapped_proto_caster
|
|
@@ -144,11 +156,26 @@ target_link_libraries(
|
|
protobuf::libprotobuf
|
|
pybind11::pybind11
|
|
${Python_LIBRARIES})
|
|
+target_link_libraries(
|
|
+ pybind11_wrapped_proto_caster_static
|
|
+ absl::flat_hash_map
|
|
+ absl::flat_hash_set
|
|
+ absl::hash
|
|
+ absl::strings
|
|
+ absl::optional
|
|
+ protobuf::libprotobuf
|
|
+ pybind11::pybind11
|
|
+ ${Python_LIBRARIES})
|
|
|
|
target_include_directories(
|
|
pybind11_wrapped_proto_caster
|
|
PRIVATE ${PROJECT_SOURCE_DIR} ${protobuf_INCLUDE_DIRS} ${protobuf_SOURCE_DIR}
|
|
${pybind11_INCLUDE_DIRS})
|
|
+target_include_directories(
|
|
+ pybind11_wrapped_proto_caster_static
|
|
+ PRIVATE ${PROJECT_SOURCE_DIR} ${protobuf_INCLUDE_DIRS} ${protobuf_SOURCE_DIR}
|
|
+ ${pybind11_INCLUDE_DIRS})
|
|
+set_target_properties(pybind11_wrapped_proto_caster_static PROPERTIES OUTPUT_NAME pybind11_wrapped_proto_caster)
|
|
|
|
if(BUILD_TESTING)
|
|
add_subdirectory(pybind11_protobuf/tests)
|
|
@@ -171,3 +198,18 @@ endif()
|
|
#
|
|
# proto_cast_util
|
|
#
|
|
+
|
|
+install(
|
|
+ TARGETS pybind11_native_proto_caster pybind11_native_proto_caster_static pybind11_wrapped_proto_caster pybind11_wrapped_proto_caster_static
|
|
+ EXPORT pybind11_protobufTargets
|
|
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
+)
|
|
+install(
|
|
+ TARGETS pybind11_proto_utils
|
|
+ EXPORT pybind11_protobufTargets
|
|
+ LIBRARY DESTINATION ${CMAKE_INSTALL_PYDIR}
|
|
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_PYDIR}
|
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_PYDIR}
|
|
+)
|