Commit Graph

72 Commits

Author SHA1 Message Date
Esun Kim 303e568f27
[Build] Removed gRPC_PROTOBUF_PACKAGE_TYPE, supporting config only (#32988)
`FindProtobuf` isn't working as Protobuf began to use Abseil so gRPC is
now using `CONFIG` mode for protobuf module
(Context: https://gitlab.kitware.com/cmake/cmake/-/issues/24321)
2023-05-04 13:55:42 -07:00
Jan Tattermusch 0f1afec5a8
[protobuf] Upgrade third_party/protobuf to 22.x (#32606)
The very non-trivial upgrade of third_party/protobuf to 22.x
This PR strives to be as small as possible and many changes that were
compatible with protobuf 21.x and didn't have to be merged atomically
with the upgrade were already merged.
Due to the complexity of the upgrade, this PR wasn't created
automatically by a tool, but manually. Subsequent upgraded of
third_party/protobuf with our OSS release script should work again once
this change is merged.

This is best reviewed commit-by-commit, I tried to group changes in
logical areas.

Notable changes:
- the upgrade of third_party/protobuf submodule, the bazel protobuf
dependency itself
- upgrade of UPB dependency to 22.x (in the past, we used to always
upgrade upb to "main", but upb now has release branch as well). UPB
needs to be upgraded atomically with protobuf since there's a de-facto
circular dependency (new protobuf depends on new upb, which depends on
new protobuf for codegen).
- some protobuf and upb bazel rules are now aliases, so `
extract_metadata_from_bazel_xml.py` and `gen_upb_api_from_bazel_xml.py`
had to be modified to be able to follow aliases and reach the actual
aliased targets.
- some protobuf public headers were renamed, so especially
`src/compiler` needed to be updated to use the new headers.
- protobuf and upb now both depend on utf8_range project, so since we
bundle upb with grpc in some languages, we now have to bundle utf8_range
as well (hence changes in build for python, PHP, objC, cmake etc).
- protoc now depends on absl and utf8_range (previously protobuf had
absl dependency, but not for the codegen part), so python's
make_grpcio_tools.py required partial rewrite to be able to handle those
dependencies in the grpcio_tools build.
- many updates and fixes required for C++ distribtests (currently they
all pass, but we'll probably need to follow up, make protobuf's and
grpc's handling of dependencies more aligned and revisit the
distribtests)
- bunch of other changes mostly due to overhaul of protobuf's and upb's
internal build layout.

TODOs:
- [DONE] make sure IWYU and clang_tidy_code pass
- create a list of followups (e.g. work to reenable the few tests I had
to disable and to remove workaround I had to use)
- [DONE in cl/523706129] figure out problem(s) with internal import

---------

Co-authored-by: Craig Tiller <ctiller@google.com>
2023-04-12 18:43:58 +02:00
Jan Tattermusch 43c3d1f932
Switch all VS2017 builds to VS2019 (#32662)
(part of removing support for VS2017)

Also see https://github.com/grpc/grpc/pull/32649
Also see https://github.com/grpc/grpc/pull/32615

The switch to grpc-win2019 windows workers has already happened:
(cl/517400022).

Once this PR lands, I'll backport to 1.53.x branch as well (since that
release removes the VS2017 support).
2023-03-23 16:44:39 +01:00
Jan Tattermusch 3fde13929b
Switch to protobuf's /CMakeLists.txt instead of /cmake/CMakeLists.txt (#32678)
Try to react to https://github.com/protocolbuffers/protobuf/issues/12263
and https://github.com/protocolbuffers/protobuf/pull/12295

Protobuf's /cmake/CMakeLists.txt is now deprecated if favor of
/CMakeLists.txt


58ecf38aa5/cmake/CMakeLists.txt (L3)

In this PR:
- Adjust `cmake/protobuf.cmake` to use the right CMakeLists.txt
- adjust the C++ distribtests accordingly
2023-03-22 09:14:04 -07:00
Jan Tattermusch 5873ba96dc
Ensure compatibility with the new custom kokoro win2019 image (#32649)
Fix incompatibilities identified when running adhoc runs on the new
custom win2019 image.
After merging this, it should be possible to switch to the new image
without breaking any tests.

- for most fixes I added a comment that explains why they're necessary.
- the new image won't have VS2015 installed, so I'm switching the protoc
artifact build to VS2017

This PR will need to be backported to older release branches to ensure
the windows tests continue working on those branches as well (IMHO I
haven't made any changes that would be difficult to backport and I tried
to keeps the diff as small as possible to avoid issues when
backporting).

After we switch to the new image (and all the windows tests are green),
we can incrementally move the builds that are still using VS2017 to
VS2019.
2023-03-20 16:03:50 +01:00
Esun Kim 564a46291b
Update all Debian:9 to Debian:10 (#31917) 2023-01-23 10:50:41 -08:00
Esun Kim 5fb4c2364d
Clean-up pkgconfig (#31660)
* Clean-up pkgconfig

* Removed run_distrib_test_cmake_module_install_pkgconfig.sh

* Proper re2

* Clean up pkgconfig.sh test script
2022-11-22 10:51:17 -08:00
Lidi Zheng 99752b173c
[xDS Proto] Enhence gRPC buildgen for 3rd party proto compilation (#29254)
* [xDS Proto] Enhence gRPC buildgen for 3rd party proto compilation

* Rebase from master to update envoy-api version

* Address reviewer's comments

* Address reviewer's comment

* Regenerate project

* Rename external_library

* Address reviewer's comments

* Add comments for the internals of generate C++ proto code

* Add proto file as a dependency to the custom command
2022-04-13 14:26:08 -07:00
Jan Tattermusch 7924a5fde7
add task_runner.py --inner_jobs support for C++ distribtests (#28594)
* add support for task_runner.py --inner_jobs for C++ distribtests

* fine tune linux c++ distribtests parallelism

* yapf code
2022-01-18 18:45:13 +01:00
Esun Kim 192928c997
Use gRPC_BUILD_MSVC_MP_COUNT for windows cmake distrib tests (#28202) 2021-11-29 11:22:07 -08:00
Esun Kim 84b9bda290
Install absel along with gRPC (#26802) 2021-08-05 11:31:16 -07:00
Esun Kim f862a2259f
Add abseil thread annotations to grpcpp/sync (#25560)
* Add abseil annotation to grpcpp/sync
* Bump alpine linux to 3.11 from 3.9
2021-03-03 08:39:20 -08:00
Esun Kim 160cb1b215
Changed RPI build test to general ARM build test (#25580)
* Change rpi build test to arm test
* Having a separate docker and targetting aarch64
2021-03-02 08:46:03 -08:00
capstan 1f670397ce Remove gflags.
With the move to abseil's flags, this removed the now-unnecessary submodule and installation commands.
2020-11-14 03:03:55 +01:00
Jan Tattermusch 4f96118724 move routeguide c++ distribtest under cmake_pkgconfig 2020-07-15 08:56:46 +02:00
Donna Dionne 8dd0cb4712 Add support for xDS regex matchers. 2020-07-07 13:17:25 -07:00
Jan Tattermusch 87f7674248 cleanup C++ distribtests 2020-02-04 10:14:46 -05:00
Jan Tattermusch b8aa71ded7
Merge pull request #21833 from jtattermusch/reintroduce_again_21527
Reintroduce #21527 (boringssl submodule unification - take two)
2020-01-31 16:57:22 +01:00
Jan Tattermusch f098606c4a Revert "Revert "Reintroduce #21527 (boringssl submodule unification)""
This reverts commit cca892022b.
2020-01-29 09:18:51 -05:00
Esun Kim 8a23a9c4fe Add cmake_pkgconfig_simple 2020-01-28 19:48:59 -08:00
hcaseyal cca892022b
Revert "Reintroduce #21527 (boringssl submodule unification)" 2020-01-27 13:46:10 -08:00
Jan Tattermusch e7e5d0198f Revert "Revert "Unify boringssl submodules and use non-developer boringssl cmake build""
This reverts commit fe2242e603.
2020-01-27 05:04:05 -05:00
Jan Tattermusch fe2242e603
Revert "Unify boringssl submodules and use non-developer boringssl cmake build" 2020-01-20 14:27:31 +01:00
Jan Tattermusch 742c61294b use boringssl-with-bazel instead of third_party/boringssl 2020-01-16 03:53:03 -05:00
Esun Kim 5207eba9ff Add abseil 2020-01-03 19:29:55 -08:00
Zack Galbreath 0be62b021a Add distrib test for CMake FetchContent build 2019-12-19 09:36:25 -05:00
Zack Galbreath c8175b66c4 Add distrib test for raspberry pi build 2019-12-18 12:54:47 -05:00
Jan Tattermusch cd56d66643
Merge pull request #21411 from zackgalbreath/thirdparty_install
Allow gRPC_INSTALL with module providers
2019-12-13 17:30:48 +01:00
Zack Galbreath 0916ee4e1d Add distribtest for install-from-module 2019-12-11 10:44:40 -05:00
Jan Tattermusch 767bb73543
Update run_distrib_test_cmake.sh 2019-12-09 10:39:02 +01:00
Kyle Edwards bb01a12394 Add c-ares note to run_distrib_test_cmake.sh 2019-12-06 11:22:25 -05:00
Esun Kim a416a20d0e Update by review 2019-11-04 09:18:48 -08:00
Esun Kim f43cb1a2a1 Update by review 2019-11-04 08:49:18 -08:00
Esun Kim aeb19f5d50 Clean up scripts for cmake tests 2019-11-01 15:33:07 -07:00
Jan Tattermusch 18bd3f8b7a improve C++ distribtests 2019-10-22 01:49:34 -04:00
Zack Galbreath d6f48913a1 Add distrib test for CMake pkg-config 2019-10-09 12:42:30 -04:00
Michael Lumish e6cd312346
Merge pull request #18530 from murgatroid99/jessie-backports_url_fix
Update jessie-backports URL
2019-03-29 09:58:15 -07:00
murgatroid99 2a12b47f0b Fix other docker build issues 2019-03-28 15:56:08 -07:00
murgatroid99 961f25bd27 Slightly different check-valid-until fix 2019-03-27 11:13:02 -07:00
murgatroid99 93dc0d6ec3 Update fix with new information from post 2019-03-26 17:43:20 -07:00
murgatroid99 084ebec9af Update jessie-backports URL 2019-03-26 15:41:19 -07:00
Fabian Holler 113e84b8dd update cares to version cares-1_15_0
This fixes the issue: https://github.com/grpc/grpc/issues/16688

Which causes that grpc can not be build because of the following
compiler error:
  third_party/cares/cares/ares_init.c: In function ‘ares_dup’:
  third_party/cares/cares/ares_init.c:301:17: error: argument to ‘sizeof’ in ‘strncpy’ call is the same expression as the source; did you mean to use the size of the destination? [-Werror=sizeof-pointer- memaccess] sizeof(src->local_dev_name));
2019-03-26 13:13:49 -07:00
Jan Tattermusch 18aac34e29 try fixing cxx distrib test 2018-08-07 14:28:41 +02:00
Jan Tattermusch d4c1c9b18c try fixing protobuf build in win distribtest 2018-08-07 14:28:41 +02:00
Jan Tattermusch 4a510960c6 add distribtest for grpc being added with cmake add_subdirectory 2018-03-29 14:12:10 +02:00
Jan Tattermusch 2286c633c2 cmake "superbuild" example using externalprojects 2018-03-28 19:30:44 +02:00
Mehrdad Afshari 59aefe61e2 Fix run_distrib_test_routeguide.sh to pass shellcheck 2018-02-07 13:34:35 -08:00
Mehrdad Afshari 9d2f806dac Fix run_distrib_test_cmake.sh to pass shellcheck 2018-02-07 13:34:13 -08:00
Jan Tattermusch 5e9cfd9a99 cleanup the way openssl and zlib are used 2018-02-06 16:11:24 +01:00
Stefan Hacker 93f13871d8 Fix helloworld zlib include directory confusion in run_distrib_test_cmake.bat
We have to give cmake the explicit zlib location as the internal testing
environment has C:/msys64/usr/bin in the PATH and zlib-devel installed.
cmake has heuristics in find_package which sees this /bin suffix in PATH
and adds C:/msys64/usr/ to the find_package search locations. Doing a
find_package(zlib) in this environment makes the find module for it (FindZLIB)
find the header zlib.h in C:/msys64/usr/include while the library will still
be taken from the testinstall location masking the issue in the log. To satisfy
the dependency cmake adds C:/msys64/usr/include as an include directory. This
makes cl.exe build with mixed C and C++ standard lib headers breaking the
build.

This issue was previously masked by cmake writing absolute paths for zlib and
other dependencies into the grpc cmake exports.
2018-01-28 03:44:32 +01:00