[23.x] Backport some changes necessary for google-cloud-cpp resp. conda-forge#12987
Merged
fowles merged 3 commits intoprotocolbuffers:23.xfrom Jun 6, 2023
Merged
[23.x] Backport some changes necessary for google-cloud-cpp resp. conda-forge#12987fowles merged 3 commits intoprotocolbuffers:23.xfrom
fowles merged 3 commits intoprotocolbuffers:23.xfrom
Conversation
This is a macro on some (older) versions of GCC, and macOS, and Windows. Sigh. I moved the `#undef` block to a common section. I also took the opportunity to add a regression test for all these macros that need to be `#undef`'d. Part of the work for googleapis/google-cloud-cpp#8125 Closes protocolbuffers#12903 PiperOrigin-RevId: 535649278
…ocolbuffers#12978) This additional if is necessary as of abseil 20230125.3 when abseil is consumed via add_subdirectory, the abseil_dll target is named abseil_dll, while if abseil is consumed via find_package, the target is called `absl::abseil_dll` . Once abseil/abseil-cpp#1466 is merged and released in the minimum version of abseil required by protobuf, it is possible to always link `absl::abseil_dll` and `absl::abseil_test_dll` and remove the if. You may wonder how linking worked at all before when `protobuf_ABSL_PROVIDER STREQUAL "package"`, as `abseil_dll` was not an imported target defined by `find_package(absl)`. The reason behind this is that if a name that is not an imported target is passed to `target_link_libraries`, it is just regarded as a C++ library name. So, in the end the `abseil_dll` library was correctly linked, simply all the transitive usage requirements defined by the `absl::abseil_dll` target were not propagated, that could lead to compilation errors if abseil was compiled with the `ABSL_PROPAGATE_CXX_STD` CMake option enabled. Closes protocolbuffers#12978 COPYBARA_INTEGRATE_REVIEW=protocolbuffers#12978 from traversaro:patch-1 39dd074 PiperOrigin-RevId: 537990391
h-vetinari
commented
Jun 5, 2023
Contributor
Author
h-vetinari
left a comment
There was a problem hiding this comment.
There were some trivial conflicts here that I resolved while backporting #12903. Here's some short comments about where they appeared.
fowles
approved these changes
Jun 6, 2023
PiperOrigin-RevId: 537042088
Contributor
Author
fowles
approved these changes
Jun 6, 2023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I don't know what the procedure is on backporting to maintenance branches, but I thought I'd try by opening a PR.
In conda-forge, we'd definitely need:
DOMAINmacro #12903 by @coryan (because google-cloud-cpp will otherwise not compile with the 23.x series)libprotobuf's public API are hidden #12932CC @fowles @mkruskal-google