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.
