On 2019-10-04 16:25, Samuel Thibault wrote: > Hello, > > Mo Zhou, le ven. 04 oct. 2019 09:04:25 -0700, a ecrit: >> Another angle for addressing the building problem is in the >> reverse-engineering style: parse the bazel buildlog, rebuild the >> dependency graph and generate a ninja build for it. See [2]. > > Interesting :) But then if one wants to add some files to the software, > which changes the dependencies, are we able to insert it correctly in > the build process? Being able to change the set of files to be built is > part of being able to modify the software, for it to be free :/
Minor modifications won't be too difficult. For example the object list for building libtensorflow.so is explicitly listed here[1]. During build the object list is passed to compiler via -Wl,@libtensorflow.......params I did manually edit the object list to customize the shared object, and the changes will be reflected in the dependency graph[2]. (FYI: ninja writer's "implicit" argument stores dependencies) On the other hand, ff the user wants significantly different stuff, they have to re-generate a buildlog and update the parser accordingly. Not bad, right? [1] https://salsa.debian.org/science-team/tensorflow/blob/lumin/debian/buildlogs/libtensorflow.so.2.0.0-2.params [2] https://salsa.debian.org/science-team/tensorflow/blob/lumin/debian/fakebazel.py#L413-417