Skip to content

Componentwise hooks #7350

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
gergoerdi opened this issue Apr 6, 2021 · 4 comments
Open

Componentwise hooks #7350

gergoerdi opened this issue Apr 6, 2021 · 4 comments

Comments

@gergoerdi
Copy link

I have a use case for running some random IO action just before each component is built. It is important that my action is run interleaved with the build itself, since the IO action for a component may require the build artifacts of other components that are earlier in the dependency list. The IO action returns an edited BuildInfo, which is then passed to the normal build hook.

I have a prototype implementation at https://github.com/gergoerdi/clashilator/blob/c2561e8465ba235aa4836e3bfae35f84fa578d26/src/Clash/Clashilator/Cabal.hs. I'm not too happy with how deeply it has to fiddle with Cabal internals, so it would be better if this, or something similar to this, was exposed via the Cabal API.

@mpickering
Copy link
Collaborator

Similar to #2910

@sheaf
Copy link
Collaborator

sheaf commented May 8, 2024

I believe this is now possible with a per-component pre-build hook, using build-type: Hooks.

@gergoerdi
Copy link
Author

I believe this is now possible with a per-component pre-build hook, using build-type: Hooks.

Is there documentation for this new build type somewhere?

@sheaf
Copy link
Collaborator

sheaf commented May 8, 2024

I believe this is now possible with a per-component pre-build hook, using build-type: Hooks.

Is there documentation for this new build type somewhere?

It's going to be included in the next Cabal release, 3.14. The documentation is here, but some links won't work due to the fact that the Cabal-hooks package has not yet been uploaded to Hackage. Unfortunately it's the Haddocks for that package that contain the most detailed information.

For the time being, I would suggest reading the HF tech proposal. (I'm updating the link in a separate PR as it is currently wrong in the documentation, I realise.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants