Fix declared dependencies for pkg-config (#12518)
Closes #12439
Closes #12518
PiperOrigin-RevId: 526689125
diff --git a/cmake/install.cmake b/cmake/install.cmake
index f7a0d9e..af891ca 100644
--- a/cmake/install.cmake
+++ b/cmake/install.cmake
@@ -1,5 +1,14 @@
include(GNUInstallDirs)
+foreach(_target IN LISTS protobuf_ABSL_USED_TARGETS)
+ string(REPLACE :: _ _modified_target ${_target})
+ list(APPEND _pc_targets ${_modified_target})
+endforeach()
+list(APPEND _pc_targets "utf8_range")
+
+string(JOIN " " _pc_target_list ${_pc_targets})
+set(_protobuf_PC_REQUIRES ${_pc_target_list})
+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/protobuf.pc.cmake
${CMAKE_CURRENT_BINARY_DIR}/protobuf.pc @ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/protobuf-lite.pc.cmake
diff --git a/cmake/protobuf-lite.pc.cmake b/cmake/protobuf-lite.pc.cmake
index 9745cb8..7f742c0 100644
--- a/cmake/protobuf-lite.pc.cmake
+++ b/cmake/protobuf-lite.pc.cmake
@@ -6,6 +6,7 @@
Name: Protocol Buffers
Description: Google's Data Interchange Format
Version: @protobuf_VERSION@
+Requires: @_protobuf_PC_REQUIRES@
Libs: -L${libdir} -lprotobuf-lite @CMAKE_THREAD_LIBS_INIT@
Cflags: -I${includedir}
Conflicts: protobuf
diff --git a/cmake/protobuf.pc.cmake b/cmake/protobuf.pc.cmake
index f068e69..21bbf47 100644
--- a/cmake/protobuf.pc.cmake
+++ b/cmake/protobuf.pc.cmake
@@ -6,6 +6,7 @@
Name: Protocol Buffers
Description: Google's Data Interchange Format
Version: @protobuf_VERSION@
+Requires: @_protobuf_PC_REQUIRES@
Libs: -L${libdir} -lprotobuf @CMAKE_THREAD_LIBS_INIT@
Cflags: -I${includedir}
Conflicts: protobuf-lite
diff --git a/third_party/utf8_range/.github/workflows/bazel_tests.yml b/third_party/utf8_range/.github/workflows/bazel_tests.yml
index ae3e970..adf7118 100644
--- a/third_party/utf8_range/.github/workflows/bazel_tests.yml
+++ b/third_party/utf8_range/.github/workflows/bazel_tests.yml
@@ -29,8 +29,15 @@
steps:
- uses: actions/checkout@v2
+ - name: Setup Bazel
+ run: |
+ echo "BAZEL=bazel" >> $GITHUB_ENV
+ echo "USE_BAZEL_VERSION=5.1.1" >> $GITHUB_ENV
+ - name: Setup Bazel (macOS)
+ if: runner.os == 'macOS'
+ run: echo "BAZEL=bazelisk" >> $GITHUB_ENV
- name: Install dependencies
run: sudo apt update && sudo apt install -y ${{ matrix.install }}
if: matrix.install != ''
- name: Run tests
- run: cd ${{ github.workspace }} && CC=${{ matrix.CC }} bazel test --test_output=errors ... ${{ matrix.flags }}
+ run: cd ${{ github.workspace }} && CC=${{ matrix.CC }} ${{ env.BAZEL }} test --test_output=errors ... ${{ matrix.flags }}
diff --git a/third_party/utf8_range/CMakeLists.txt b/third_party/utf8_range/CMakeLists.txt
index 69a4d89..344952d 100644
--- a/third_party/utf8_range/CMakeLists.txt
+++ b/third_party/utf8_range/CMakeLists.txt
@@ -73,6 +73,11 @@
install(FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
)
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/utf8_range.pc.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/utf8_range.pc @ONLY)
+ install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/utf8_range.pc
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
# Install public headers explicitly.
install(FILES utf8_range.h utf8_validity.h
diff --git a/third_party/utf8_range/cmake/utf8_range.pc.cmake b/third_party/utf8_range/cmake/utf8_range.pc.cmake
new file mode 100644
index 0000000..5801b43
--- /dev/null
+++ b/third_party/utf8_range/cmake/utf8_range.pc.cmake
@@ -0,0 +1,12 @@
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=@CMAKE_INSTALL_PREFIX@
+libdir=@CMAKE_INSTALL_FULL_LIBDIR@
+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
+
+Name: UTF8 Range
+Description: Google's UTF8 Library
+Version: 1.0
+Requires: absl_strings
+Libs: -L${libdir} -lprotobuf-lite @CMAKE_THREAD_LIBS_INIT@
+Cflags: -I${includedir}
+Conflicts: protobuf
diff --git a/update_subtrees.sh b/update_subtrees.sh
old mode 100644
new mode 100755
index df75ba3..fee33f5
--- a/update_subtrees.sh
+++ b/update_subtrees.sh
@@ -1,4 +1,4 @@
-#! /bin/bash -eux
+#!/bin/bash -eux
set -eux