Update CMake configuration to add a dependency on Abseil (#10401)
* Rolling https://github.com/protocolbuffers/protobuf/pull/9793 forward * Removing private label on conformance linkage * no-op comment addedpull/10404/head
parent
ce1cd3dec2
commit
cac9765af0
12 changed files with 65 additions and 2 deletions
@ -1,4 +1,5 @@ |
||||
# These are fetched as external repositories. |
||||
third_party/abseil-cpp |
||||
third_party/benchmark |
||||
third_party/googletest |
||||
_build/ |
||||
|
@ -0,0 +1,32 @@ |
||||
# Setup our dependency on Abseil. |
||||
|
||||
set(ABSL_PROPAGATE_CXX_STD ON) |
||||
|
||||
if(protobuf_ABSL_PROVIDER STREQUAL "module") |
||||
if(NOT ABSL_ROOT_DIR) |
||||
set(ABSL_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/abseil-cpp) |
||||
endif() |
||||
if(EXISTS "${ABSL_ROOT_DIR}/CMakeLists.txt") |
||||
if(protobuf_INSTALL) |
||||
# When protobuf_INSTALL is enabled and Abseil will be built as a module, |
||||
# Abseil will be installed along with protobuf for convenience. |
||||
set(ABSL_ENABLE_INSTALL ON) |
||||
endif() |
||||
add_subdirectory(${ABSL_ROOT_DIR} third_party/abseil-cpp) |
||||
else() |
||||
message(WARNING "protobuf_ABSL_PROVIDER is \"module\" but ABSL_ROOT_DIR is wrong") |
||||
endif() |
||||
if(protobuf_INSTALL AND NOT _protobuf_INSTALL_SUPPORTED_FROM_MODULE) |
||||
message(WARNING "protobuf_INSTALL will be forced to FALSE because protobuf_ABSL_PROVIDER is \"module\" and CMake version (${CMAKE_VERSION}) is less than 3.13.") |
||||
set(protobuf_INSTALL FALSE) |
||||
endif() |
||||
elseif(protobuf_ABSL_PROVIDER STREQUAL "package") |
||||
# Use "CONFIG" as there is no built-in cmake module for absl. |
||||
find_package(absl REQUIRED CONFIG) |
||||
endif() |
||||
set(_protobuf_FIND_ABSL "if(NOT TARGET absl::strings)\n find_package(absl CONFIG)\nendif()") |
||||
|
||||
set(protobuf_ABSL_USED_TARGETS |
||||
absl::strings |
||||
absl::strings_internal |
||||
) |
@ -0,0 +1 @@ |
||||
Subproject commit 8c6e53ef3adb1227fffa442c50349dab134a54bc |
Loading…
Reference in new issue