Ok, I'll file one.

On Sunday, January 19, 2020 at 9:36:25 PM UTC-8, [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/48f864cb-349c-4079-9d24-9f11c174a1df%40googlegroups.com.

Reply via email to