mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-20 09:16:01 +08:00
106 lines
2.6 KiB
Bash
Executable File
106 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
|
|
|
|
# Source logging utilities
|
|
source "$dir/logging/logging.sh"
|
|
|
|
log_title "C/C++ Formatting"
|
|
|
|
# Store original directory
|
|
pushd "$dir" > /dev/null
|
|
|
|
log_action "Checking for formatters/.clang-format"
|
|
if [ -f ".clang-format" ]; then
|
|
log_ok
|
|
else
|
|
log_fail
|
|
popd > /dev/null
|
|
exit 1
|
|
fi
|
|
|
|
# Define C/C++ source directories - be specific to avoid engine sources
|
|
cpp_dirs=(
|
|
# spine-cpp
|
|
"../spine-cpp/include/spine"
|
|
"../spine-cpp/src/spine"
|
|
"../spine-cpp/spine-cpp-lite"
|
|
"../spine-cpp/tests"
|
|
|
|
# spine-c
|
|
"../spine-c/include"
|
|
"../spine-c/src"
|
|
"../spine-c/src/generated"
|
|
"../spine-c/tests"
|
|
|
|
# spine-godot
|
|
"../spine-godot/spine_godot"
|
|
|
|
# spine-ue
|
|
"../spine-ue/Source/SpineUE"
|
|
"../spine-ue/Plugins/SpinePlugin/Source/SpinePlugin/Public"
|
|
"../spine-ue/Plugins/SpinePlugin/Source/SpinePlugin/Private"
|
|
"../spine-ue/Plugins/SpinePlugin/Source/SpineEditorPlugin/Public"
|
|
"../spine-ue/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private"
|
|
|
|
# spine-glfw
|
|
"../spine-glfw/src"
|
|
"../spine-glfw/example"
|
|
|
|
# spine-sdl
|
|
"../spine-sdl/src"
|
|
"../spine-sdl/example"
|
|
|
|
# spine-sfml
|
|
"../spine-sfml/c/src/spine"
|
|
"../spine-sfml/c/example"
|
|
"../spine-sfml/cpp/src/spine"
|
|
"../spine-sfml/cpp/example"
|
|
|
|
# spine-cocos2dx
|
|
"../spine-cocos2dx/spine-cocos2dx/src/spine"
|
|
"../spine-cocos2dx/example/Classes"
|
|
|
|
# spine-ios
|
|
"../spine-ios/Sources/SpineCppLite"
|
|
"../spine-ios/Sources/SpineCppLite/include"
|
|
"../spine-ios/Sources/SpineShadersStructs"
|
|
"../spine-ios/Example/Spine iOS Example"
|
|
|
|
# spine-flutter
|
|
"../spine-flutter/ios/Classes"
|
|
"../spine-flutter/macos/Classes"
|
|
"../spine-flutter/src"
|
|
)
|
|
|
|
# Collect all C/C++ files from specified directories
|
|
files=()
|
|
for cpp_dir in "${cpp_dirs[@]}"; do
|
|
if [ -d "$cpp_dir" ]; then
|
|
while IFS= read -r -d '' file; do
|
|
files+=("$file")
|
|
done < <(find "$cpp_dir" \( -name "*.c" -o -name "*.cpp" -o -name "*.h" \) \
|
|
-not -path "*/.*" \
|
|
-not -path "*/build/*" \
|
|
-not -path "*/cmake-build-*/*" \
|
|
-not -path "*/third_party/*" \
|
|
-not -path "*/external/*" \
|
|
-not -type l \
|
|
-print0)
|
|
fi
|
|
done
|
|
|
|
|
|
log_action "Formatting ${#files[@]} C/C++ files"
|
|
if FORMAT_OUTPUT=$(clang-format -i -style=file:".clang-format" "${files[@]}" 2>&1); then
|
|
log_ok
|
|
else
|
|
log_fail
|
|
log_error_output "$FORMAT_OUTPUT"
|
|
popd > /dev/null
|
|
exit 1
|
|
fi
|
|
|
|
# Return to original directory
|
|
popd > /dev/null |