Self-service distributions of BuildInfer.
We usually like to be on-hand to guide the transpilation process and fix any issues that arise. If that does not work for your use-case, then we also provide this self-service page.
If you run into any problems, please get in-touch ([email protected]) or create an issue.
Make sure that you have strace
installed on your system. For Debian, this is:
sudo apt-get update
sudo apt-get install -y strace
Fetch the latest release from the releases page:
wget -O buildinfer https://github.com/LoopPerfect/build-infer/releases/download/v1.0.0/buildinfer
chmod +x ./buildinfer
Create an alias so that you can call BuildInfer from anywhere:
alias buildinfer=`pwd`/buildinfer
Test that it works:
$ buildinfer
BuildInfer - LoopPerfect
https://buildinfer.loopperfect.com/
Usage:
1. Navigate to your build folder
2. Run `buildinfer record <build-command>`
e.g. `buildinfer record make -j4`
3. cd to your project-root
4. Run `buildinfer analyze <project-root> <build-root>`
Now, cd
to your C/C++ project.
Record the build:
mkdir build
cd ./build
cmake ..
buildinfer record make
Analyze the trace:
cd ../
buildinfer analyze . ./build
Generate the new build script:
buildinfer transpile > BUCK
If you do not already have Buck installed, we recommend using the Debian package.
View the build script:
cat ./BUCK
View the targets:
touch .buckconfig
buck targets //...
BuildInfer provides some functionality to generate a *.dot
file that can be used to render using GraphViz
-
buildinfer graph > graph.dot
renders whole dependency graph
-
buildinfer graph-minimal > graph-minimal.dot
renders interaction graph between applications and files
You can then use for example sfdp
from the grapviz package to render an svg:
sfdp -Tsvg -Goutputmode=edgesfirst -Goverlap=prism graph.dot > graph.svg