crosvm/system_api
Dennis Kempin 891455563b system_api: Add copy of ChromeOS's system_api
Adds a script that copies the bindings we need upstream. We cannot
use the original repository, as it's part of the large platform2 git
repository, and the original build.rs depends on ChromeOS tooling to
generate these bindings.

So instead, this change adds a script that can be called from a
chromiumos checkout of crosvm to update the upstream bindings.

This allows us to enable certain features that talk to ChromeOS
dbus services. They won't be functional upstream, but at least we
can compile and test the code.

To make things more consistent, we no longer replace the crate
with the ChromeOS version when building for ChromeOS.

BUG=b:244618505
TEST=presubmit

Change-Id: I504cbf6d12b0cb50d9935f5e49b7fa72b692d45c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3919814
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2022-09-28 18:13:00 +00:00
..
src system_api: Add copy of ChromeOS's system_api 2022-09-28 18:13:00 +00:00
Cargo.toml system_api: Add copy of ChromeOS's system_api 2022-09-28 18:13:00 +00:00
README.md system_api: Add copy of ChromeOS's system_api 2022-09-28 18:13:00 +00:00
update_bindings.sh system_api: Add copy of ChromeOS's system_api 2022-09-28 18:13:00 +00:00

Crosvm version of ChromeOS's system_api

system_api is used by ChromeOS to interact with other system services and mainly contains automatically generated bindings for dbus services and proto types.

The ground truth for this crate is in the ChromeOS codebase at platform2/system_api.

To allow us to build ChromeOS features in upstream crosvm, we need to copy a subset of the generated files into this repository. The update_bindings.sh script can be used to update them.

Note: Originally, the ChromeOS build would replace this crate with the ChromeOS platform2/system_api crate. This is no longer the case and crosvm will always be built against the version in this directory.