[nanopb] update to 0.4.8 (#37619)

This commit is contained in:
Cheney Wang 2024-03-29 04:57:12 +08:00 committed by GitHub
parent fbc542fd5c
commit 740c7e31b0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 81 additions and 83 deletions

View File

@ -1,49 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8d241c5..4a3d31e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,11 +14,6 @@ option(nanopb_BUILD_RUNTIME "Build the headers and libraries needed at runtime"
option(nanopb_BUILD_GENERATOR "Build the protoc plugin for code generation" ON)
option(nanopb_MSVC_STATIC_RUNTIME "Link static runtime libraries" ON)
-find_program(nanopb_PROTOC_PATH protoc HINTS generator-bin generator)
-if(NOT EXISTS ${nanopb_PROTOC_PATH})
- message(FATAL_ERROR "protoc compiler not found")
-endif()
-
if(NOT DEFINED CMAKE_DEBUG_POSTFIX)
set(CMAKE_DEBUG_POSTFIX "d")
endif()
@@ -39,7 +34,6 @@ if(NOT DEFINED CMAKE_INSTALL_CMAKEDIR)
set(CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/nanopb")
endif()
-find_package(Python REQUIRED COMPONENTS Interpreter)
execute_process(
COMMAND ${Python_EXECUTABLE} -c
"import os.path, sys, sysconfig; print(os.path.relpath(sysconfig.get_path('purelib'), start=sys.prefix))"
@@ -49,7 +43,9 @@ execute_process(
if(nanopb_BUILD_GENERATOR)
set(generator_protos nanopb)
-
+ if(NOT DEFINED nanopb_PROTOC_PATH)
+ message(FATAL_ERROR "nanopb_PROTOC_PATH not defined")
+ endif()
foreach(generator_proto IN LISTS generator_protos)
string(REGEX REPLACE "([^;]+)" "${PROJECT_SOURCE_DIR}/generator/proto/\\1.proto" generator_proto_file "${generator_proto}")
string(REGEX REPLACE "([^;]+)" "\\1_pb2.py" generator_proto_py_file "${generator_proto}")
diff --git a/pb.h b/pb.h
index 5b3e1ef..693262b 100644
--- a/pb.h
+++ b/pb.h
@@ -170,6 +170,9 @@ extern "C" {
# if defined(__ICCARM__)
/* IAR has static_assert keyword but no _Static_assert */
# define PB_STATIC_ASSERT(COND,MSG) static_assert(COND,#MSG);
+# elif defined(_MSC_VER)
+ /* MSVC has static_assert keyword but no _Static_assert */
+# define PB_STATIC_ASSERT(COND,MSG) static_assert(COND,#MSG);
# elif defined(PB_C99_STATIC_ASSERT)
/* Classic negative-size-array static assert mechanism */
# define PB_STATIC_ASSERT(COND,MSG) typedef char PB_STATIC_ASSERT_MSG(MSG, __LINE__, __COUNTER__)[(COND)?1:-1];

View File

@ -0,0 +1,62 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 273a841..02fb40c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -16,11 +16,6 @@ option(nanopb_MSVC_STATIC_RUNTIME "Link static runtime libraries" ON)
set(nanopb_PYTHON_INSTDIR_OVERRIDE "" CACHE PATH "Override the default python installation directory with the given path")
-find_program(nanopb_PROTOC_PATH protoc HINTS generator-bin generator)
-if(NOT EXISTS ${nanopb_PROTOC_PATH})
- message(FATAL_ERROR "protoc compiler not found")
-endif()
-
if(NOT DEFINED CMAKE_DEBUG_POSTFIX)
set(CMAKE_DEBUG_POSTFIX "d")
endif()
@@ -43,7 +38,6 @@ endif()
# Determine Python module installation path
if (NOT nanopb_PYTHON_INSTDIR_OVERRIDE)
- find_package(Python REQUIRED COMPONENTS Interpreter)
file(TO_CMAKE_PATH "${Python_SITELIB}" PYTHON_INSTDIR)
else()
set(PYTHON_INSTDIR ${nanopb_PYTHON_INSTDIR_OVERRIDE})
@@ -53,6 +47,10 @@ message(STATUS "Python install dir: ${PYTHON_INSTDIR}")
# Package nanopb generator as Python module 'nanopb'
if(nanopb_BUILD_GENERATOR)
# Copy Python code files related to the generator
+ if(NOT EXISTS ${nanopb_PROTOC_PATH})
+ message(FATAL_ERROR "protoc compiler not found")
+ endif()
+
add_custom_target(nanopb_generator ALL
COMMAND ${CMAKE_COMMAND} -E make_directory
${PROJECT_BINARY_DIR}/nanopb/generator/proto
@@ -82,24 +80,14 @@ if(nanopb_BUILD_GENERATOR)
# Install Python module files
install(
- DIRECTORY ${PROJECT_BINARY_DIR}/nanopb
- DESTINATION ${PYTHON_INSTDIR}
+ DIRECTORY ${PROJECT_BINARY_DIR}/nanopb/generator
+ DESTINATION ${CMAKE_INSTALL_BINDIR}
FILES_MATCHING
PATTERN *.py
PATTERN *.proto
PATTERN __pycache__ EXCLUDE
)
- # Generate a wrapper script that calls nanopb.generator Python module when invoked
- configure_file(
- extra/script_wrappers/nanopb_generator.py.in
- ${PROJECT_BINARY_DIR}/nanopb_generator.py
- )
- install(
- PROGRAMS ${PROJECT_BINARY_DIR}/nanopb_generator.py
- DESTINATION ${CMAKE_INSTALL_BINDIR}
- )
-
# Install shell/bat script wrappers for invoking nanopb_generator.py.
# protoc-gen-nanopb is automatically used by protoc when --nanopb_out= option is used.
if(WIN32)

View File

@ -1,22 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4a3d31e..82611ef 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -58,12 +58,15 @@ if(nanopb_BUILD_GENERATOR)
install(
FILES ${PROJECT_BINARY_DIR}/${generator_proto_py_file}
${generator_proto_file}
- DESTINATION ${PYTHON_INSTDIR}/proto/
+ DESTINATION ${CMAKE_INSTALL_BINDIR}/proto/
)
endforeach()
install( FILES generator/proto/_utils.py
- DESTINATION ${PYTHON_INSTDIR}/proto/ )
+ DESTINATION ${CMAKE_INSTALL_BINDIR}/proto/ )
+
+ install( FILES generator/proto/__init__.py
+ DESTINATION ${CMAKE_INSTALL_BINDIR}/proto/ )
endif()
if(WIN32)

View File

@ -3,12 +3,11 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github( vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH OUT_SOURCE_PATH SOURCE_PATH
REPO nanopb/nanopb REPO nanopb/nanopb
REF 0.4.7 REF ${VERSION}
SHA512 7fb46dad8a432898c8f9e7faa90a55276670dea3b13f15b68010fe126d7f6251ef5715d0dfe5bce66582e80cfdc5d4b1e7f5947e96a058fa7181f0a45da20860 SHA512 635577498dfbfb46fd64b8ec83b2a4a9b03b57c665f3c9f67d35c272810c0330b0e9011d7c0e43623e9da74d6ee3a4c1f012878e2bff7e1a7e57fb7c0857ad42
HEAD_REF master HEAD_REF master
PATCHES PATCHES
fix-cmakelist-and-pb-header.patch fix-cmakelist.patch
fix-install-location.patch
) )
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" nanopb_BUILD_STATIC_LIBS) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" nanopb_BUILD_STATIC_LIBS)
@ -32,6 +31,9 @@ vcpkg_cmake_configure(
-Dnanopb_PROTOC_PATH="${CURRENT_HOST_INSTALLED_DIR}/tools/protobuf/protoc${VCPKG_HOST_EXECUTABLE_SUFFIX}" -Dnanopb_PROTOC_PATH="${CURRENT_HOST_INSTALLED_DIR}/tools/protobuf/protoc${VCPKG_HOST_EXECUTABLE_SUFFIX}"
${FEATURE_OPTIONS} ${FEATURE_OPTIONS}
-DCMAKE_INSTALL_DATADIR=share/${PORT} -DCMAKE_INSTALL_DATADIR=share/${PORT}
MAYBE_UNUSED_VARIABLES
Python_EXECUTABLE
nanopb_PROTOC_PATH
) )
vcpkg_cmake_install() vcpkg_cmake_install()
@ -39,18 +41,19 @@ vcpkg_copy_pdbs()
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share")
if(nanopb_BUILD_GENERATOR) if(nanopb_BUILD_GENERATOR)
file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/nanopb_generator.py" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/generator/" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
if(WIN32) if(WIN32)
file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/nanopb_generator.bat" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/protoc-gen-nanopb.bat" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/protoc-gen-nanopb.bat" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/proto/" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/proto")
else() else()
file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/nanopb_generator" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/protoc-gen-nanopb" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/protoc-gen-nanopb" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
endif() endif()
endif() endif()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share")
if(nanopb_BUILD_STATIC_LIBS) if(nanopb_BUILD_STATIC_LIBS)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
endif() endif()

View File

@ -1,7 +1,6 @@
{ {
"name": "nanopb", "name": "nanopb",
"version-semver": "0.4.7", "version-semver": "0.4.8",
"port-version": 2,
"description": "A small code-size Protocol Buffers implementation in ANSI C.", "description": "A small code-size Protocol Buffers implementation in ANSI C.",
"homepage": "https://jpa.kapsi.fi/nanopb/", "homepage": "https://jpa.kapsi.fi/nanopb/",
"license": "Zlib", "license": "Zlib",

View File

@ -6005,8 +6005,8 @@
"port-version": 1 "port-version": 1
}, },
"nanopb": { "nanopb": {
"baseline": "0.4.7", "baseline": "0.4.8",
"port-version": 2 "port-version": 0
}, },
"nanoprintf": { "nanoprintf": {
"baseline": "0.3.4", "baseline": "0.3.4",

View File

@ -1,5 +1,10 @@
{ {
"versions": [ "versions": [
{
"git-tree": "4081435b822c87880779d5b6e9a763ee0389aa79",
"version-semver": "0.4.8",
"port-version": 0
},
{ {
"git-tree": "b27e85ab51605be4fee299a1dcb14f4fe0ac2429", "git-tree": "b27e85ab51605be4fee299a1dcb14f4fe0ac2429",
"version-semver": "0.4.7", "version-semver": "0.4.7",