Closed hackedy closed 1 year ago
This will not support only building and installing poulet4
but not poulet4_Ccomp
in order to test VerifiableP4
, right?
This will not support only building and installing
poulet4
but notpoulet4_Ccomp
in order to testVerifiableP4
, right?
I just took a look and
dune build -p poulet4
dune install poulet4
only builds and installs poulet4 👍
Currently there are three distinct
dune-project
roots corresponding to three separate OPAM packages../dune-project
for the petr4 package../deps/poulet4/dune-project
for the poulet4 package../deps/poulet4_Ccomp/dune-project
for the poulet4_Ccomp package.The build system builds the stuff in
deps
first, then installs it to the global OPAM folders on your machine, and then buildspetr4
treating the dependencies as external packages. This is bad--it clobbers any installed version ofpoulet4
you might have. It also makes incremental builds break in weird ways and prevents parallelism.The changes in this PR reorganize the repo so that everything is associated with a single dune-project but it retains the separate opam packages, which aren't installed until you actually ask dune or OPAM to install them. All build files go in
_build
in the root instead of being scattered across separate_build
dirs.I know the diff looks huge but most of it is directory changes along these lines:
There were noticeable improvements to build time for a clean build. But I expect the main quality of life improvement will be in incremental builds.