llvm-project/libcxx/utils/generate_ignore_format.sh
Mark de Wever f7f86451ec [libc++] Improve the format ignorelist generation.
Several improvements
- Only add files that we actually want to format.
- Sort according to a fixed locale.

Some drive-by fixes
- Rename a text file, this avoids a filter exception.
- Adds a some missing source files extensions.
- Removes unused extensions hh, hxx, cc, and cxx from clang-format.

Reviewed By: philnik, #libc

Differential Revision: https://reviews.llvm.org/D144126
2023-02-17 18:01:57 +01:00

29 lines
910 B
Bash
Executable File

#!/bin/bash
# Generate a list of headers that aren't formatted yet
if [ -z "${CLANG_FORMAT}" ]; then
CLANG_FORMAT=clang-format
fi
rm libcxx/utils/data/ignore_format.txt
# This uses the same matches as the check-format CI step.
#
# Since it's hard to match empty extensions the following
# method is used, remove all files with an extension, then
# add the list of extensions that should be formatted.
for file in $(find libcxx/{benchmarks,include,src}/ -type f -not -name '*.*' -or \( \
-name "*.h" -or -name "*.hpp" -or \
-name "*.c" -or -name "*.cpp" -or \
-name "*.inc" -or -name "*.ipp" \
\) ); do
${CLANG_FORMAT} --Werror --dry-run ${file} >& /dev/null
if [ $? != 0 ]; then
echo ${file} >> libcxx/utils/data/ignore_format.txt
fi
done
# Force sorting not to depend on the system's locale.
LC_ALL=C sort libcxx/utils/data/ignore_format.txt -d -o libcxx/utils/data/ignore_format.txt