From f7e2e0b301f52df1f2fdab32dd9bf5567d970d92 Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Thu, 26 May 2022 12:13:41 -0700 Subject: [PATCH] Remove Abseil dependency from CMake build (#10056) * Revert "Added cmake abseil include guard" This reverts commit b6ee841d7cf1792ff6d21a349c4f838255c4fd7f. * Revert "Update CMake configuration to add a dependency on Abseil (#9793)" This reverts commit e9246cd789d250727cbc03884795d92ed1f09a88. --- .bazelignore | 1 - .gitmodules | 4 --- CMakeLists.txt | 13 -------- Makefile.am | 1 - cmake/abseil-cpp.cmake | 31 ------------------- cmake/libprotobuf-lite.cmake | 3 -- cmake/libprotobuf.cmake | 3 -- cmake/libprotoc.cmake | 3 -- cmake/protobuf-config.cmake.in | 1 - cmake/protoc.cmake | 1 - cmake/tests.cmake | 17 ++-------- .../release/python/linux/build_artifacts.sh | 2 +- .../release/python/macos/build_artifacts.sh | 2 +- .../python/windows/build_artifacts.bat | 7 +---- .../python/windows/build_single_artifact.bat | 2 +- third_party/abseil-cpp | 1 - 16 files changed, 6 insertions(+), 86 deletions(-) delete mode 100644 cmake/abseil-cpp.cmake delete mode 160000 third_party/abseil-cpp diff --git a/.bazelignore b/.bazelignore index b92bad0bf4..5c3a81cce9 100644 --- a/.bazelignore +++ b/.bazelignore @@ -1,5 +1,4 @@ # These are fetched as external repositories. -third_party/abseil-cpp third_party/benchmark third_party/googletest _build/ diff --git a/.gitmodules b/.gitmodules index a287f070e8..bcd125a495 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,7 +5,3 @@ path = third_party/googletest url = https://github.com/google/googletest.git ignore = dirty -[submodule "third_party/abseil-cpp"] - path = third_party/abseil-cpp - url = https://github.com/abseil/abseil-cpp.git - branch = lts_2021_11_02 diff --git a/CMakeLists.txt b/CMakeLists.txt index dd8977843a..04cb3303ac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -162,15 +162,6 @@ file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/cmaketest.map) find_package(Threads REQUIRED) -# We can install dependencies from submodules if we're running -# CMake v3.13 or newer. -if(CMAKE_VERSION VERSION_LESS 3.13) - set(_protobuf_INSTALL_SUPPORTED_FROM_MODULE OFF) -else() - set(_protobuf_INSTALL_SUPPORTED_FROM_MODULE ON) -endif() - - set(_protobuf_FIND_ZLIB) if (protobuf_WITH_ZLIB) find_package(ZLIB) @@ -313,10 +304,6 @@ if (protobuf_UNICODE) add_definitions(-DUNICODE -D_UNICODE) endif (protobuf_UNICODE) -set(protobuf_ABSL_PROVIDER "module" CACHE STRING "Provider of absl library") -set_property(CACHE protobuf_ABSL_PROVIDER PROPERTY STRINGS "module" "package") - -include(${protobuf_SOURCE_DIR}/cmake/abseil-cpp.cmake) include(${protobuf_SOURCE_DIR}/cmake/libprotobuf-lite.cmake) include(${protobuf_SOURCE_DIR}/cmake/libprotobuf.cmake) if (protobuf_BUILD_LIBPROTOC) diff --git a/Makefile.am b/Makefile.am index 22c85a4059..cb52f37911 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1212,7 +1212,6 @@ EXTRA_DIST = $(@DIST_LANG@_EXTRA_DIST) \ build_files_updated_unittest.sh \ cmake/CMakeLists.txt \ cmake/README.md \ - cmake/abseil-cpp.cmake \ cmake/conformance.cmake \ cmake/examples.cmake \ cmake/extract_includes.bat.in \ diff --git a/cmake/abseil-cpp.cmake b/cmake/abseil-cpp.cmake deleted file mode 100644 index 8aff9d6a23..0000000000 --- a/cmake/abseil-cpp.cmake +++ /dev/null @@ -1,31 +0,0 @@ -if(TARGET absl::strings) - # If absl is included already, skip including it. - # (https://github.com/grpc/grpc/issues/29608) -elseif(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 -) diff --git a/cmake/libprotobuf-lite.cmake b/cmake/libprotobuf-lite.cmake index 1e4444e20c..83e970312c 100644 --- a/cmake/libprotobuf-lite.cmake +++ b/cmake/libprotobuf-lite.cmake @@ -98,9 +98,6 @@ if(protobuf_HAVE_LD_VERSION_SCRIPT) LINK_DEPENDS ${protobuf_SOURCE_DIR}/src/libprotobuf-lite.map) endif() target_link_libraries(libprotobuf-lite PRIVATE ${CMAKE_THREAD_LIBS_INIT}) -target_include_directories(libprotobuf-lite - PRIVATE ${ABSL_ROOT_DIR} -) if(protobuf_LINK_LIBATOMIC) target_link_libraries(libprotobuf-lite PRIVATE atomic) endif() diff --git a/cmake/libprotobuf.cmake b/cmake/libprotobuf.cmake index e597959d20..07e4bcf57f 100644 --- a/cmake/libprotobuf.cmake +++ b/cmake/libprotobuf.cmake @@ -111,9 +111,6 @@ if(protobuf_HAVE_LD_VERSION_SCRIPT) LINK_DEPENDS ${protobuf_SOURCE_DIR}/src/libprotobuf.map) endif() target_link_libraries(libprotobuf PRIVATE ${CMAKE_THREAD_LIBS_INIT}) -target_include_directories(libprotobuf - PRIVATE ${ABSL_ROOT_DIR} -) if(protobuf_WITH_ZLIB) target_link_libraries(libprotobuf PRIVATE ${ZLIB_LIBRARIES}) endif() diff --git a/cmake/libprotoc.cmake b/cmake/libprotoc.cmake index 7506b0220f..15a47e53fa 100644 --- a/cmake/libprotoc.cmake +++ b/cmake/libprotoc.cmake @@ -122,9 +122,6 @@ if(protobuf_HAVE_LD_VERSION_SCRIPT) LINK_DEPENDS ${protobuf_SOURCE_DIR}/src/libprotoc.map) endif() target_link_libraries(libprotoc PRIVATE libprotobuf) -target_include_directories(libprotoc - PRIVATE ${ABSL_ROOT_DIR} -) if(protobuf_BUILD_SHARED_LIBS) target_compile_definitions(libprotoc PUBLIC PROTOBUF_USE_DLLS diff --git a/cmake/protobuf-config.cmake.in b/cmake/protobuf-config.cmake.in index 597f588603..61669118cd 100644 --- a/cmake/protobuf-config.cmake.in +++ b/cmake/protobuf-config.cmake.in @@ -3,7 +3,6 @@ include("${CMAKE_CURRENT_LIST_DIR}/protobuf-options.cmake") # Depend packages @_protobuf_FIND_ZLIB@ -@_protobuf_FIND_ABSL@ # Imported targets include("${CMAKE_CURRENT_LIST_DIR}/protobuf-targets.cmake") diff --git a/cmake/protoc.cmake b/cmake/protoc.cmake index 385a7a3f39..472b6421b5 100644 --- a/cmake/protoc.cmake +++ b/cmake/protoc.cmake @@ -6,7 +6,6 @@ add_executable(protoc ${protoc_files} ${protobuf_version_rc_file}) target_link_libraries(protoc libprotoc libprotobuf - ${protobuf_ABSL_USED_TARGETS} ) add_executable(protobuf::protoc ALIAS protoc) diff --git a/cmake/tests.cmake b/cmake/tests.cmake index 1f8bbc9d43..1905673bd4 100644 --- a/cmake/tests.cmake +++ b/cmake/tests.cmake @@ -21,7 +21,6 @@ else() set(googlemock_source_dir "${protobuf_SOURCE_DIR}/third_party/googletest/googlemock") set(googletest_source_dir "${protobuf_SOURCE_DIR}/third_party/googletest/googletest") include_directories( - ${ABSL_ROOT_DIR} ${googlemock_source_dir} ${googletest_source_dir} ${googletest_source_dir}/include @@ -255,14 +254,7 @@ if (MSVC) /wd4146 # unary minus operator applied to unsigned type, result still unsigned ) endif() -target_link_libraries(tests - protobuf-lite-test-common - protobuf-test-common - libprotoc - libprotobuf - GTest::gmock_main - ${protobuf_ABSL_USED_TARGETS} -) +target_link_libraries(tests protobuf-lite-test-common protobuf-test-common libprotoc libprotobuf GTest::gmock_main) set(test_plugin_files ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/mock_code_generator.cc @@ -272,12 +264,7 @@ set(test_plugin_files ) add_executable(test_plugin ${test_plugin_files}) -target_link_libraries(test_plugin - libprotoc - libprotobuf - GTest::gmock - ${protobuf_ABSL_USED_TARGETS} -) +target_link_libraries(test_plugin libprotoc libprotobuf GTest::gmock) set(lite_test_files ${protobuf_SOURCE_DIR}/src/google/protobuf/lite_unittest.cc diff --git a/kokoro/release/python/linux/build_artifacts.sh b/kokoro/release/python/linux/build_artifacts.sh index 3ddec7444f..9a3fc5841f 100755 --- a/kokoro/release/python/linux/build_artifacts.sh +++ b/kokoro/release/python/linux/build_artifacts.sh @@ -30,7 +30,7 @@ git clone https://github.com/matthew-brett/multibuild.git # silently creeping in (see https://github.com/protocolbuffers/protobuf/issues/9180). # IMPORTANT: always pin multibuild at the same commit for: # - linux/build_artifacts.sh -# - macos/build_artifacts.sh +# - linux/build_artifacts.sh # - windows/build_artifacts.bat (cd multibuild; git checkout b89bb903e94308be79abefa4f436bf123ebb1313) cp kokoro/release/python/linux/config.sh config.sh diff --git a/kokoro/release/python/macos/build_artifacts.sh b/kokoro/release/python/macos/build_artifacts.sh index bd60d75fa3..aeb4242a6b 100755 --- a/kokoro/release/python/macos/build_artifacts.sh +++ b/kokoro/release/python/macos/build_artifacts.sh @@ -30,7 +30,7 @@ git clone https://github.com/matthew-brett/multibuild.git # silently creeping in (see https://github.com/protocolbuffers/protobuf/issues/9180). # IMPORTANT: always pin multibuild at the same commit for: # - linux/build_artifacts.sh -# - macos/build_artifacts.sh +# - linux/build_artifacts.sh # - windows/build_artifacts.bat (cd multibuild; git checkout b89bb903e94308be79abefa4f436bf123ebb1313) cp kokoro/release/python/macos/config.sh config.sh diff --git a/kokoro/release/python/windows/build_artifacts.bat b/kokoro/release/python/windows/build_artifacts.bat index 32fbec4e1c..121283a438 100644 --- a/kokoro/release/python/windows/build_artifacts.bat +++ b/kokoro/release/python/windows/build_artifacts.bat @@ -18,7 +18,7 @@ REM Pin multibuild scripts at a known commit to avoid potentially unwanted futur REM silently creeping in (see https://github.com/protocolbuffers/protobuf/issues/9180). REM IMPORTANT: always pin multibuild at the same commit for: REM - linux/build_artifacts.sh -REM - macos/build_artifacts.sh +REM - linux/build_artifacts.sh REM - windows/build_artifacts.bat cd multibuild git checkout b89bb903e94308be79abefa4f436bf123ebb1313 @@ -34,11 +34,6 @@ SET ZLIB_ROOT=%cd%\zlib del /Q zlib.zip del /Q zlib-src.zip -REM Update Submodules -REM This is needed because this build uses CMake <3.13. -git submodule update --init --recursive -SET ABSL_ROOT_DIR=%cd%\third_party\abseil-cpp - REM Create directory for artifacts SET ARTIFACT_DIR=%cd%\artifacts mkdir %ARTIFACT_DIR% diff --git a/kokoro/release/python/windows/build_single_artifact.bat b/kokoro/release/python/windows/build_single_artifact.bat index d2c96c3463..af2d265263 100644 --- a/kokoro/release/python/windows/build_single_artifact.bat +++ b/kokoro/release/python/windows/build_single_artifact.bat @@ -49,7 +49,7 @@ mkdir src\.libs mkdir vcprojects pushd vcprojects -cmake -G "%generator%" -Dprotobuf_BUILD_SHARED_LIBS=%BUILD_DLL% -Dprotobuf_UNICODE=%UNICODE% -Dprotobuf_BUILD_TESTS=OFF -DABSL_ROOT_DIR=%ABSL_ROOT_DIR% ../cmake || goto :error +cmake -G "%generator%" -Dprotobuf_BUILD_SHARED_LIBS=%BUILD_DLL% -Dprotobuf_UNICODE=%UNICODE% -Dprotobuf_BUILD_TESTS=OFF ../cmake || goto :error msbuild protobuf.sln /p:Platform=%vcplatform% /p:Configuration=Release || goto :error dir /s /b popd diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp deleted file mode 160000 index 8c6e53ef3a..0000000000 --- a/third_party/abseil-cpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8c6e53ef3adb1227fffa442c50349dab134a54bc