one silly thing please.build does is do all the building in a sandbox. it will symlink (?) in dependencies that are specifically tagged in to a rule. so if you say a file requires these headers and depends on that package, it will only hardlink in the listed headers and exports of the package.
so dependent files are always known in the build script.
it will also hash all of that shit in to the name of a target and it will also cache those results (incl. some fancy shared cache thing i haven’t messed with much.)
so you can end up if properly configured a situation where you just check out the git repo for the program, run please build and it will pull what it can from your local cache (ex. if the project downloads and builds GSL or Janet to do some scripting it will just reach out to the pre-compiled one you already have if you have one lying around) and run everything in little semi-isolated boxes.
i don’t like to think about the wear on the drive from making all those symlinks tho.
@icedquinn I use MonoGame (an open-source implementation of XNA) and the pipeline tool just seems pointless and cumbersome.