Treating build definitions independent of their origin
- Track: Lightning Talks
- Room: H.2215 (Ferrer)
- Day: Saturday
- Start: 14:10
- End: 14:25
- Video only: h2215
- Chat: Join the conversation!
Most software build systems, following the tradition of make, refer to artifacts by an assigned location on the file system. However, when developing software, one is usually more interested in the contents of the file than its location. So why not take the definition itself as key? Similarly, when building typical complex targets, like libraries, additional information has to be considered when using them, e.g., transitive dependencies when linking. So why not make that part of the data of the analyzed library? In this way, we obtain definitions that are independent of their origin and hence can meaningfully be cached. This high-level caching allows a seamless transition between fine-granular building and traditional package building (obtaining all artifacts by a single lookup). As an additional benefit, when using remote build execution, it is enough to have the sources of the project you're working on, while still having the benefits of a bootstrapped build.
All those concepts are implemented in the open-source build system justbuild, available, at https://github.com/just-buildsystem/justbuild
Speakers
Klaus Aehlig |