protobuf/upb/cmake
Protobuf Team Bot d7f032ad15 Move private definitions out of //bazel
This is needed to make protobuf/bazel package minimal for other proto rules.

Keep 4 public bzl files in upb/bazel. They end up under protobuf/bazel, and they are legitimately used by other repositories.

Move upb_proto_library_internal/* under bazel/private. Those are utilities used in the rules. Moving them one level deeper makes protobuf/bazel package clean for other rules.

Move build_defs.bzl and amalgamation under /upb/bazel. Those are utilities used in the build.

Move lua.BUILD and python* uner /python/dist. Those are used in the WORKSPACE dependency setup.

PiperOrigin-RevId: 621442236
2024-04-03 01:37:51 -07:00
..
google/protobuf Auto-generate files after cl/621365246 2024-04-03 02:43:54 +00:00
BUILD.bazel Move private definitions out of //bazel 2024-04-03 01:37:51 -07:00
CMakeLists.txt Auto-generate files after cl/597923328 2024-01-12 20:54:13 +00:00
README.md
build_defs.bzl
make_cmakelists.py Move utf8_range into the protobuf repo 2023-11-08 15:43:35 -08:00
push_auto_update.sh
staleness_test.py
staleness_test_lib.py

README.md

upb CMake build (EXPERIMENTAL)

upb's CMake support is experimental. The core library builds successfully under CMake, and this is verified by the Bazel tests in this directory. However there is no support for building the upb compiler or for generating .upb.c/upb.h files. This means upb's CMake support is incomplete at best, unless your application is intended to be purely reflective.

If you find this CMake setup useful in its current state, please consider filing an issue so we know. If you have suggestions for how it could be more useful (and particularly if you can contribute some code for it) please feel free to file an issue for that too. Do keep in mind that upb does not currently provide any ABI stability, so we want to avoid providing a shared library.

The CMakeLists.txt is generated from the Bazel BUILD files using the Python scripts in this directory. We want to avoid having two separate sources of truth that both need to be updated when a file is added or removed.

This directory also contains some generated files that would be created on the fly during a Bazel build. These are automaticaly kept in sync by the Bazel test //cmake:test_generated_files.