This probably should be an issue filed on github.
On Sun, Jan 19, 2020 at 9:36 PM <[email protected]> wrote:
> My project already has abseil-cpp, which works just fine in my external
> directory and the following in CMakeLists.txt
> add_subdirectory(abseil-cpp EXCLUDE_FROM_ALL)
>
> If I then also add grpc, I get build errors like this:
> CMake Error at external/grpc/third_party/abseil-cpp/CMake/AbseilHelpers.
> cmake:148 (add_library):
> add_library cannot create target "absl_atomic_hook" because another
> target
> with the same name already exists. The existing target is an interface
> library created in source directory
> "/path/to/project/external/abseil-cpp/absl/base". See
> documentation for policy CMP0002 for more details.
> Call Stack (most recent call first):
> external/grpc/third_party/abseil-cpp/absl/base/CMakeLists.txt:19 (
> absl_cc_library)
>
> Clearly duplicate targets.
>
> Looking at the abseil cmake files in grpc/cmake, I tried setting
> ABSL_ROOT_DIR so that grpc can use my abseil-cpp submodule instead of its
> own.
> set(ABSL_ROOT_DIR "${PROJECT_SOURCE_DIR}/external/abseil-cpp")
>
> But that yields the following similar error:
>
> CMake Error at *external**/abseil-cpp/CMake/AbseilHelpers.cmake:148* (
> add_library):
> add_library cannot create target "absl_atomic_hook" because another
> target
> with the same name already exists. The existing target is an interface
> library created in source directory
> "/path/to/project/external/abseil-cpp/absl/base". See
> documentation for policy CMP0002 for more details.
> Call Stack (most recent call first):
> external/abseil-cpp/absl/base/CMakeLists.txt:19 (absl_cc_library)
>
> Because grpc always adds abseil-cpp in grpc/cmake/abseil-cpp.cmake,
> there's no clean way to avoid this double-add.
>
> So far the only way I have found is to set gRPC_ABSL_PROVIDER to something
> other than "module" or "package", since that will cause it just not include
> absl at all, but with the top project including it separately it's still
> found.
> Would be nice if abseil-cpp.cmake could detect if abseil was already
> available before trying to add it locally.
>
> --
> You received this message because you are subscribed to the Google Groups "
> grpc.io" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/grpc-io/9e00fef9-343d-43bf-b42a-827565903975%40googlegroups.com
> <https://groups.google.com/d/msgid/grpc-io/9e00fef9-343d-43bf-b42a-827565903975%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
--
You received this message because you are subscribed to the Google Groups
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/grpc-io/CAEvr0PENXa%2BDsYhbBZb6xJvAY1gRmV43n54800aVsrdzRoyfiA%40mail.gmail.com.