Skip to content

Reduce build dependencies #201

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Rahix opened this issue May 4, 2025 · 1 comment
Open

Reduce build dependencies #201

Rahix opened this issue May 4, 2025 · 1 comment
Labels
buildsystem Related to generating the device-modules from ATDF files.

Comments

@Rahix
Copy link
Owner

Rahix commented May 4, 2025

Due to the new build system as of #157, we have quite a lot of additional build-time dependencies. Among them are also quite a few that we don't really need, like clap, env_logger, url, and similar. These are pulled in as child-dependencies of libraries we use for code-generation.

Similar to what I have done in #200 / Rahix/atdf2svd#81 for atdf2svd, we should try making these dependencies optional upstream to make our build-process more lean. I don't think this has to happen right now, but we should strive to get rid of all the unnecessary bloat over time.

Cc: @LuigiPiucco

@Rahix Rahix added the buildsystem Related to generating the device-modules from ATDF files. label May 4, 2025
LuigiPiucco added a commit to LuigiPiucco/svdtools that referenced this issue May 7, 2025
This is made by adding a "bin" feature that's enabled by default,
inspired by what was done in
rust-embedded/svd2rust#619.

Additionally, support for JSON and YAML configs has also been made
optional but default. This includes what should be the only behavior
change: if neither were enabled at build-time, passing a config file is
an error.

The motivation came from Rahix/avr-device#201,
but this should be a generally beneficial change for everybody.

Since some of the features of the CLI aren't very useful when using
svdtools as a library, they just vanish without the "bin" feature. This
is for two reasons: one is to reduce diff size, and two is to avoid
having to refactor all capabilities to have a library equivalent. There
is little disadvantage to this, for instance in avr-device we only use
the patching functionality (which is kept), and there's little prospect
of needing more.
@LuigiPiucco
Copy link
Contributor

From my inspection, the only crate that doesn't yet enable us to do this is svdtools, so I opened rust-embedded/svdtools#289. Once that's released, I have the changes to make dependencies optional ready locally, I'll open a PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
buildsystem Related to generating the device-modules from ATDF files.
Projects
None yet
Development

No branches or pull requests

2 participants