On 08-09-2022 03:17, jgart wrote: > Hi Maxime, > > how does antioxidant build system for rust work at a high level? > > https://notabug.org/maximed/cargoless-rust-experiments > > all best, There are two parts: * The actual build system (antioxidant.scm) -- it reads the Cargo.toml to see what the dependencies are, looks for the (compiled!) dependencies in the 'inputs' and 'native-inputs', runs build.rs, compiles it (with 'rustc') and install the compiled result (sources aren't installed).  It also runs tests. * The cargo -> antioxidant transformation code.  The procedure vitaminate/auto* takes a package, and rewrites it to fit with antioxidant -- one of these is moving #:cargo-inputs into 'inputs', and (recursively) rewriting these inputs. Sometimes phases need to be adjusted, sometimes for cargo there was #:skip-build? but antioxidant doesn't do that, and it runs tests, so it sometimes turns out tests need to be disabled. (This will have to later be changed to _source code_ transformations, maybe with "guix style", to integrate things into Guix proper) There are also some other small things with some checks for vendoring, #:test-options Greetings, Maxime.