Skip to content
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

Use VCPKG to maintain dependencies #76

Open
fruffy opened this issue Feb 18, 2025 · 2 comments
Open

Use VCPKG to maintain dependencies #76

fruffy opened this issue Feb 18, 2025 · 2 comments
Labels
enhancement New feature or request

Comments

@fruffy
Copy link
Contributor

fruffy commented Feb 18, 2025

Dependency installation currently takes up the majority of CI time. We could possibly speed this up using a modern package manager. vcpkg and cmake seem to be a popular combination. We should consider it.

This could also be a GSoC project.

@fruffy fruffy added the enhancement New feature or request label Feb 18, 2025
@vgurevich
Copy link
Contributor

vgurevich commented Feb 18, 2025

@fruffy -- you might want to look at this project, that uses NIX to manage SDE dependencies.

If you do have access, you can read the full thread here.

@alexandergall has a lot of experience working with the SDE and is very helpful.

@alexandergall
Copy link

@vgurevich thanks for the mention. I'm currently working on porting the Nix packaging from the Intel SDE to open-p4studio. That includes separate packaging of p4c. So in my build, I don't use the p4c submodule in open-p4studio but use a pre-built p4c as a dependency of open-p4studio. This also relates to p4lang/project-ideas#22. Note that Nix completely decouples the build from the native package manager, i.e. there would be no restrictions on the Linux distribution used by the build host.

To take advantage of that for CI, it would be worth looking at Nix' own CI system called Hydra (https://hydra.nixos.org/build/290086623/download/1/hydra/). It would allow to create build environments in a deterministic and efficient manner. Hydra is used to build the Nixpkgs collection itself: https://hydra.nixos.org/.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants