diff --git a/.gitignore b/.gitignore index 8546e5d27..6117aa6b6 100644 --- a/.gitignore +++ b/.gitignore @@ -27,5 +27,9 @@ kandinsky/src/font.h apps/picview/image.raw apps/picview/image.c +# No AST file +*.ast +*.ast.json + # Quiz output quiz/src/symbols.c diff --git a/build/struct_layout/Makefile b/build/struct_layout/Makefile index 9579e8091..ec26bacb5 100644 --- a/build/struct_layout/Makefile +++ b/build/struct_layout/Makefile @@ -1,8 +1,9 @@ -products += build/struct_layout/apps_container_layout.json -build/struct_layout/apps_container_layout.json: - @echo "AST $@" - @clang -cc1 -x c++ -v -fdump-record-layouts apps/main.cpp -Iescher/include -Ikandinsky/include -Iion/include -Ipoincare/include -std=c++11 -emit-llvm-only -o /dev/null > foo.txt - @echo "JSON $@" - @cat foo.txt | ruby build/struct_layout/ast_to_json.rb AppsContainer > $@ - @rm foo.txt +products += apps/main.ast build/struct_layout/data.json +%.ast: %.cpp %.o + @echo "AST $@" + @$(CXX) -fno-color-diagnostics -Xclang -fdump-record-layouts $(SFLAGS) $(CXXFLAGS) -MF /dev/null -c $< -o /dev/null > $@ + +%.ast.json: %.ast + @echo "JSON $@" + @cat $< | ruby build/struct_layout/ast_to_json.rb AppsContainer > $@ diff --git a/build/struct_layout/visualisation.html b/build/struct_layout/visualisation.html index 88d0d59c5..fc9e0e93a 100644 --- a/build/struct_layout/visualisation.html +++ b/build/struct_layout/visualisation.html @@ -104,7 +104,7 @@ grandparent.append("text") .attr("y", 6 - margin.top) .attr("dy", ".75em"); -d3.json("apps_container_layout.json", function(root) { +d3.json("../apps/main.ast.json", function(root) { initialize(root); accumulate(root); layout(root);