You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
This prevents errors when encountering options which have been defined in newer
versions of clang-format, and are invalid in the YAML for the old version.
Bump minimum supported clang-format version to 12 (where `--Wno-error=unknown`
was added).
Use clang-format 12 on CI (13 is not available yet on the Ubuntu 20.04 images).
(cherry picked from commit 55d05565d0)
59 lines
1.9 KiB
Bash
Executable File
59 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# This script runs clang-format and fixes copyright headers on all relevant files in the repo.
|
|
# This is the primary script responsible for fixing style violations.
|
|
|
|
set -uo pipefail
|
|
IFS=$'\n\t'
|
|
|
|
CLANG_FORMAT_FILE_EXTS=(".c" ".h" ".cpp" ".hpp" ".cc" ".hh" ".cxx" ".m" ".mm" ".inc" ".java" ".glsl")
|
|
|
|
# Loops through all text files tracked by Git.
|
|
git grep -zIl '' |
|
|
while IFS= read -rd '' f; do
|
|
# Exclude some files.
|
|
if [[ "$f" == "thirdparty"* ]]; then
|
|
continue
|
|
elif [[ "$f" == "platform/android/java/lib/src/com/google"* ]]; then
|
|
continue
|
|
elif [[ "$f" == *"-so_wrap."* ]]; then
|
|
continue
|
|
fi
|
|
|
|
for extension in ${CLANG_FORMAT_FILE_EXTS[@]}; do
|
|
if [[ "$f" == *"$extension" ]]; then
|
|
# Run clang-format.
|
|
clang-format --Wno-error=unknown -i "$f"
|
|
# Fix copyright headers, but not all files get them.
|
|
if [[ "$f" == *"inc" ]]; then
|
|
continue 2
|
|
elif [[ "$f" == *"glsl" ]]; then
|
|
continue 2
|
|
elif [[ "$f" == *"theme_data.h" ]]; then
|
|
continue 2
|
|
elif [[ "$f" == "platform/android/java/lib/src/org/godotengine/godot/input/InputManager"* ]]; then
|
|
continue 2
|
|
fi
|
|
python misc/scripts/copyright_headers.py "$f"
|
|
continue 2
|
|
fi
|
|
done
|
|
done
|
|
|
|
git diff --color > patch.patch
|
|
|
|
# If no patch has been generated all is OK, clean up, and exit.
|
|
if [ ! -s patch.patch ] ; then
|
|
printf "Files in this commit comply with the clang-format style rules.\n"
|
|
rm -f patch.patch
|
|
exit 0
|
|
fi
|
|
|
|
# A patch has been created, notify the user, clean up, and exit.
|
|
printf "\n*** The following differences were found between the code "
|
|
printf "and the formatting rules:\n\n"
|
|
cat patch.patch
|
|
printf "\n*** Aborting, please fix your commit(s) with 'git commit --amend' or 'git rebase -i <hash>'\n"
|
|
rm -f patch.patch
|
|
exit 1
|