Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CMake: Fix abseil_dll target name when using find_package(absl) (prot…
…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
- Loading branch information