[Bzlmod] Support non-bazel builds while enabling bzlmod.
- Dominant language
- C++
- Stars
- 45.3k
- Forks
- 11.4k
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 47
Description
Parent issue: https://github.com/grpc/grpc/issues/41487
The `generate_projects.sh` scripts (together with other programs such as artifact_gen/ etc) draw information from bazel and generate project files using inja+YAML files.
Most of our C core sources/tests already works fine with bzlmod. For non-bazel build things are a bit trickier because of a few changes that comes along with bzlmod:
* Different repo name mapping. Each repo now has 2 names: canonical and immediate names. An analogy would be the python `import lib as my_lib`. We need to manually provide mapping info for the driver program to properly construct dependency graph. (affects cmake and wrapper languages)
* `//external` is deprecated and can't be used to query `http_archive` rules anymore. This means we need to find some workaround to retrieve metadata on package URL and patches (needed by cmake builds)
* Slight version mismatch: git submodules in `third_party/` may not always match a bcr version and requires manual patching.
Contributor guide
Assessment
This issue has not been assessed yet.