You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
3.2 KiB
106 lines
3.2 KiB
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
ALL_DIRECTORIES="./arm_compute ./src ./examples ./tests ./utils ./support"
|
|
|
|
#If no arguments were passed: default to check all the folders:
|
|
if [ ! -n "$1" ]
|
|
then
|
|
FILES=$ALL_DIRECTORIES
|
|
else
|
|
#else only check the files that were passed on the command line:
|
|
FILES=$@
|
|
fi
|
|
|
|
grep -HrnP --exclude-dir=assembly --exclude-dir=convolution --exclude-dir=arm_gemm "/\*\*$" $FILES | tee bad_style.log
|
|
if (( `cat bad_style.log | wc -l` > 0 ))
|
|
then
|
|
echo ""
|
|
echo "ERROR: Doxygen comments should start on the first line: \"/** My comment\""
|
|
exit -1
|
|
fi
|
|
|
|
grep -Hnr --exclude-dir=assembly --exclude-dir=convolution --exclude-dir=arm_gemm --exclude=Doxyfile "@brief" $FILES | tee bad_style.log
|
|
if (( `cat bad_style.log | wc -l` > 0 ))
|
|
then
|
|
echo ""
|
|
echo "ERROR: Doxygen comments shouldn't use '@brief'"
|
|
exit -1
|
|
fi
|
|
|
|
grep -HnRE --exclude-dir=assembly --exclude-dir=convolution --exclude-dir=arm_gemm "\buint " --exclude-dir=cl_kernels --exclude-dir=cs_shaders $FILES | tee bad_style.log
|
|
if [[ $(cat bad_style.log | wc -l) > 0 ]]
|
|
then
|
|
echo ""
|
|
echo "ERROR: C/C++ don't define 'uint'. Use 'unsigned int' instead."
|
|
exit -1
|
|
fi
|
|
|
|
grep -HnR --exclude-dir=assembly --exclude-dir=convolution --exclude-dir=arm_gemm "float32_t" $FILES | tee bad_style.log
|
|
if [[ $(cat bad_style.log | wc -l) > 0 ]]
|
|
then
|
|
echo ""
|
|
echo "ERROR: C/C++ don't define 'float32_t'. Use 'float' instead."
|
|
exit -1
|
|
fi
|
|
|
|
grep -Hnir --exclude-dir=assembly --exclude-dir=convolution --exclude-dir=arm_gemm "arm[_ ]\?cv" $FILES | tee bad_style.log
|
|
if [[ $(cat bad_style.log | wc -l) > 0 ]]
|
|
then
|
|
echo ""
|
|
echo "ERROR: Reference to arm_cv detected in the files above (Replace with arm_compute)"
|
|
exit -1
|
|
fi
|
|
|
|
grep -Hnir --exclude-dir=assembly --exclude-dir=convolution --exclude-dir=arm_gemm "#.*if.*defined[^(]" $FILES | tee bad_style.log
|
|
if [[ $(cat bad_style.log | wc -l) > 0 ]]
|
|
then
|
|
echo ""
|
|
echo "ERROR: use parenthesis after #if defined(MY_PREPROCESSOR)"
|
|
exit -1
|
|
fi
|
|
|
|
grep -Hnir --exclude-dir=assembly --exclude-dir=convolution --exclude-dir=arm_gemm "#else$\|#endif$" $FILES | tee bad_style.log
|
|
if [[ $(cat bad_style.log | wc -l) > 0 ]]
|
|
then
|
|
echo ""
|
|
echo "ERROR: #else and #endif should be followed by a comment of the guard they refer to (e.g /* ARM_COMPUTE_AARCH64_V8_2 */ )"
|
|
exit -1
|
|
fi
|
|
|
|
grep -Hnir --exclude-dir=assembly --exclude-dir=convolution --exclude-dir=arm_gemm "ARM_COMPUTE_AARCH64_V8_2" ./tests/validation/CL | tee bad_style.log
|
|
if [[ $(cat bad_style.log | wc -l) > 0 ]]
|
|
then
|
|
echo ""
|
|
echo "ERROR: Found ARM_COMPUTE_AARCH64_V8_2 in CL tests though armv8.2 features (FP16) are always supported for OpenCL"
|
|
exit -1
|
|
fi
|
|
|
|
spdx_missing=0
|
|
for f in $(find $FILES -type f)
|
|
do
|
|
if [[ $(grep SPDX $f | wc -l) == 0 ]]
|
|
then
|
|
# List of exceptions:
|
|
case `basename $f` in
|
|
"arm_compute_version.embed");;
|
|
".clang-format");;
|
|
".clang-tidy");;
|
|
"README.md");;
|
|
#It's an error for other files to not contain the MIT header:
|
|
*)
|
|
spdx_missing=1
|
|
echo $f;
|
|
;;
|
|
esac
|
|
fi;
|
|
done
|
|
|
|
if [[ $spdx_missing > 0 ]]
|
|
then
|
|
echo ""
|
|
echo "ERROR: MIT Copyright header missing from the file(s) above."
|
|
exit -1
|
|
fi
|