| #!/bin/sh |
| |
| # Copyright 2017 Google Inc. |
| # |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| cd "$(dirname "$0")/.." |
| |
| compile_header() { |
| # test each header for self-sufficiency and idempotency. |
| printf '#include "%s"\n#include "%s"\n' "$1" "$1" | \ |
| c++ --std=c++11 \ |
| -Iinclude/core \ |
| -Iinclude/config \ |
| -Iinclude/android \ |
| -Iinclude/c \ |
| -Iinclude/codec \ |
| -Iinclude/effects \ |
| -Iinclude/gpu \ |
| -Iinclude/gpu/gl \ |
| -Iinclude/pathops \ |
| -Iinclude/ports \ |
| -Iinclude/private \ |
| -Iinclude/svg \ |
| -Iinclude/utils \ |
| -Iinclude/utils/mac \ |
| -Iinclude/views \ |
| -Iinclude/xml \ |
| -Isrc/codec \ |
| -Isrc/core \ |
| -Isrc/effects \ |
| -Isrc/effects/gradients \ |
| -Isrc/fonts \ |
| -Isrc/gpu \ |
| -Isrc/image \ |
| -Isrc/images \ |
| -Isrc/lazy \ |
| -Isrc/opts \ |
| -Isrc/pathops \ |
| -Isrc/ports \ |
| -Isrc/sfnt \ |
| -Isrc/sksl \ |
| -Isrc/utils \ |
| -Isrc/utils/win \ |
| -Igm \ |
| -Itests \ |
| -Itools \ |
| -Itools/debugger \ |
| -Itools/flags \ |
| -Itools/gpu \ |
| -Itools/timer \ |
| -Ithird_party/etc1 \ |
| -Ithird_party/externals/jsoncpp/include \ |
| -Ithird_party/externals/sfntly/cpp/src \ |
| -Ithird_party/externals/zlib \ |
| -Ithird_party/gif \ |
| -o /dev/null -c -x c++ - |
| } |
| |
| FAIL=0 |
| for header in $(git ls-files | grep '\.h$'); do |
| # The following headers don't pass this test for one reason or another. |
| case $header in |
| */osmesa_wrapper.h) continue;; |
| debugger/QT/*) continue;; |
| example/*) continue;; |
| experimental/*) continue;; |
| include/config/*) continue;; |
| include/core/SkPostConfig.h) continue;; |
| include/gpu/vk/*) continue;; |
| include/ports/SkFontMgr_android.h) continue;; |
| include/ports/SkFontMgr_fontconfig.h) continue;; |
| include/ports/SkTypeface_win.h) continue;; |
| include/private/*_impl.h) continue;; |
| include/utils/mac/SkCGUtils.h) continue;; |
| include/views/SkOSWindow_*.h) continue;; |
| src/c/sk_c_from_to.h) continue;; |
| src/codec/SkJpegDecoderMgr.h) continue;; |
| src/codec/SkJpegUtility.h) continue;; |
| src/core/*Template.h) continue;; |
| src/core/SkBitmapProcState_*.h) continue;; |
| src/core/SkFDot6Constants.h) continue;; |
| src/core/SkLinearBitmapPipeline.h) continue;; |
| src/core/SkLinearBitmapPipeline_*.h) continue;; |
| src/core/SkUnPreMultiplyPriv.h) continue;; |
| src/gpu/vk/*.h) continue;; |
| src/images/SkJPEGWriteUtility.h) continue;; |
| src/opts/*_SSE2.h) continue;; |
| src/opts/*_SSSE3.h) continue;; |
| src/opts/*_neon.h) continue;; |
| src/opts/*_sse.h) continue;; |
| src/opts/Sk4px_*.h) continue;; |
| src/ports/*) continue;; |
| src/utils/*_win.h) continue;; |
| src/utils/win/*) continue;; |
| src/views/*) continue;; |
| third_party/*) continue;; |
| tools/fiddle/*) continue;; |
| tools/viewer/*) continue;; |
| esac |
| if ! compile_header "$header"; then |
| echo "FAILURE: $header" |
| FAIL=1 |
| fi |
| done |
| exit $FAIL |