| #!/bin/bash |
| |
| set -ex |
| |
| ignore_warning() { |
| # Invert match to filter out $1. |
| set +e |
| grep -v "$1" doxygen-log.txt > temp.txt |
| set -e |
| mv temp.txt doxygen-log.txt |
| } |
| |
| command -v doxygen >/dev/null 2>&1 || { echo >&2 "doxygen is not supported. Aborting."; exit 1; } |
| |
| pushd "$(dirname "$0")/../../.." |
| |
| cp torch/_utils_internal.py tools/shared |
| |
| python -m torchgen.gen --source-path aten/src/ATen |
| |
| python tools/setup_helpers/generate_code.py \ |
| --native-functions-path aten/src/ATen/native/native_functions.yaml \ |
| --tags-path aten/src/ATen/native/tags.yaml |
| popd |
| |
| # Run doxygen and log all output. |
| doxygen "$(dirname $0)" 2> original-doxygen-log.txt |
| cp original-doxygen-log.txt doxygen-log.txt |
| |
| # Uncomment this if you need it for debugging; we're not printing this |
| # by default because it is confusing. |
| # echo "Original output" |
| # cat original-doxygen-log.txt |
| |
| # Filter out some warnings. |
| ignore_warning "warning: no uniquely matching class member found for" |
| ignore_warning "warning: explicit link request to 'Item' could not be resolved" |
| ignore_warning "warning: Included by graph for 'types.h' not generated, too many nodes" |
| |
| # Count the number of remaining warnings. |
| warnings="$(grep 'warning:' doxygen-log.txt | wc -l)" |
| |
| echo "Treating all remaining warnings as errors" |
| |
| if [[ "$warnings" -ne "0" ]]; then |
| echo "Failing Doxygen test because the following warnings were treated fatally:" |
| cat doxygen-log.txt |
| echo "Please fix these warnings. To run this test locally, use docs/cpp/source/check-doxygen.sh" |
| rm -f doxygen-log.txt original-doxygen-log.txt |
| exit 1 |
| fi |
| |
| rm -f doxygen-log.txt original-doxygen-log.txt |