#!/bin/bash # # Copyright 2019 PDFium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # # Generate a chart of dependencies and includes in "dot" format. # Invoke in pdfium/ top-level directory BUILD_DIR=out/Default function crunch { echo ' edge [color=black,constraint=true]' gn desc $BUILD_DIR $1 deps | grep -v '//:' | grep -v test | \ grep -v constants | grep -v samples | grep -v matches | \ sed "s|\\(.*\\)| \"$1\" -> \"\\1\"|" echo ' edge [color=red,constraint=false]' gn desc $BUILD_DIR $1 allow_circular_includes_from | grep -v '//:' | \ grep -v test | grep -v samples | grep -v matches | \ grep -v 'how to display' | sed "s|\\(.*\\)| \"\\1\" -> \"$1\"|" } TARGETS=`gn ls $BUILD_DIR | grep -v test | grep -v v8 | grep -v third_party | \ grep -v build | grep -v '//:'` echo 'digraph FRED {' echo ' node [shape=rectangle]' for TARGET in $TARGETS; do crunch $TARGET done echo '}'