Skip to content

Conversation

@EricRahm
Copy link
Collaborator

@EricRahm EricRahm commented Oct 1, 2025

Downstream users of emboss have been hand-rolling a list of file dependencies needed to build with and use emboss. This PR adds a set of scripts to help generate a canonical file list build.json and then a set of generated build system files under gen/.

Fixes #152
Fixes #172

Supersedes #171.

@EricRahm EricRahm requested a review from jasongraffius October 1, 2025 22:28
This commit introduces a new script, `manage_build_json.py`, which
queries Bazel to determine the source files for the Emboss compiler
and C++ runtime.

The script generates a `build.json` file in the project root, which
will serve as the source of truth for generating build helper files
for other build systems.

The script also adds support for verifying that `build.json` is in
sync with the bazel build targets.
Adds a check to the `verify-pull-request` CI workflow to make sure that
`build.json` is in sync with the bazel build targets.
Adds a `generate_build_files.py` script that is used to generate build
files for use in bazel, cmake, and GN. Additionally a clean json file is
added for more generic usage. These files are intended to be included in
downstream build systems to explicitly list out the files required by
embossc and the C++ runtime.

The generated build files are included as well.
Add details on how to update `build.json` and generate the build files.
@EricRahm EricRahm force-pushed the feature/build-helper-generation branch from e47bec9 to e2de64f Compare October 2, 2025 21:43
@EricRahm EricRahm merged commit ef974c7 into google:master Oct 2, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Keep build_info.json up to date and in sync with bazel build Add .gni containing lists of files needed by GN

2 participants