[*] basic in-house cpp linting (#4039)

- add `#pragma once` to remainder files
- "correcter" defines (ANDROID), see https://groups.google.com/g/android-ndk/c/cf9_f1SLXls
- extra miscelly fixups

Signed-off-by: lizzie <lizzie@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4039
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: crueter <crueter@eden-emu.dev>
This commit is contained in:
lizzie 2026-06-04 05:49:07 +02:00 committed by crueter
parent 978d9d935d
commit 89199f4d27
No known key found for this signature in database
GPG key ID: 425ACD2D4830EBC6
53 changed files with 176 additions and 153 deletions

55
tools/cpp-lint.sh Executable file
View file

@ -0,0 +1,55 @@
#!/bin/sh -ex
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later
# tools/../
ROOTDIR=$(CDPATH='' cd -- "$(dirname -- "$0")/../" && pwd)
BUILD_DIR="$ROOTDIR"/build
SRC_DIR="$ROOTDIR"/src
die() {
echo "-- $*" >&2
exit 1
}
usage() {
cat <<EOF
Usage: $0 [command]
Dumb script that serves as a ad-hoc cpp-linter
Commands:
once Check for #pragma once prescence in header files
osdef Finds OS defines that are not recommended to use.
inchk Check includes being valid/toolchain not being stupid
EOF
}
while :; do
case "$1" in
once)
find "$SRC_DIR" -type f -name "*.h" -exec grep -L "#pragma once" {} +
break
;;
osdef)
# not recommended macros
PATTERN="ANDROID\|_WIN64\|__linux\|__unix\|APPLE\|__APPLE"
strings=("ANDROID" "_WIN64" "__linux" "__unix" "APPLE" "__APPLE" "linux" "unix")
for item in "${strings[@]}"; do
PATTERN="$PATTERN\|ifdef $item\|($item)"
done
# if statements for macros that shouldn't be if
strings=("_WIN32" "_AIX" "__managarm__" "__unix__" "__linux__" "__FreeBSD__" "__NetBSD__" \
"__OpenBSD__" "__DragonFly__" "__redox__" "__HAIKU__" "__OHOS__" "__FIREOS__")
for item in "${strings[@]}"; do
PATTERN="$PATTERN\|if $item"
done
find "$SRC_DIR" -type f -name "*.h" -exec grep -nw "$PATTERN" {} + || echo
break
;;
*) usage ;;
esac
shift
done