From 22bd8a9bd54d7ba973e7a6adac1571c669678458 Mon Sep 17 00:00:00 2001 From: Eldred Habert Date: Sat, 11 Jul 2026 22:11:14 +0200 Subject: [PATCH] Enable automatic generation of `compile_flags.txt` for `clang-tidy` via `make tidy` (#2008) --- .gitignore | 1 + Makefile | 10 +++++++--- compile_flags.txt | 6 ------ docs/ARCHITECTURE.md | 3 --- 4 files changed, 8 insertions(+), 12 deletions(-) delete mode 100644 compile_flags.txt diff --git a/.gitignore b/.gitignore index f53fd04a..79a4f896 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ *.gcno *.gcda *.gcov +/compile_flags.txt CMakeCache.txt CMakeFiles/ cmake_install.cmake diff --git a/Makefile b/Makefile index 6f70ab8d..315b0703 100644 --- a/Makefile +++ b/Makefile @@ -33,11 +33,13 @@ WARNFLAGS := -Wall -pedantic -Wno-unknown-warning-option \ # Overridable CXXFLAGS CXXFLAGS ?= -O3 -flto -DNDEBUG # Non-overridable CXXFLAGS -REALCXXFLAGS := ${CXXFLAGS} ${WARNFLAGS} -std=c++20 -I include -fno-exceptions -fno-rtti +REQUIREDCXXFLAGS := -std=c++20 -I include -fno-exceptions -fno-rtti +REALCXXFLAGS := ${CXXFLAGS} ${WARNFLAGS} ${REQUIREDCXXFLAGS} # Overridable LDFLAGS LDFLAGS ?= # Non-overridable LDFLAGS -REALLDFLAGS := ${LDFLAGS} ${WARNFLAGS} -DBUILD_VERSION_STRING=\"${VERSION_STRING}\" +REQUIREDLDFLAGS := -DBUILD_VERSION_STRING=\"${VERSION_STRING}\" +REALLDFLAGS := ${LDFLAGS} ${WARNFLAGS} ${REQUIREDLDFLAGS} # Wrapper around bison that passes flags depending on what the version supports BISON := src/bison.sh @@ -250,8 +252,10 @@ format: # Target used in development to check code with clang-tidy. # Requires Bison-generated header files to exist. -tidy: src/asm/parser.hpp src/link/script.hpp +tidy: src/asm/parser.hpp src/link/script.hpp compile_flags.txt $Qclang-tidy -p . $$(git ls-files '*.[hc]pp') +compile_flags.txt: + $Qprintf '%s\n' ${REQUIREDCXXFLAGS} ${REQUIREDLDFLAGS} >$@ # Target used in development to remove unused `#include` headers. iwyu: diff --git a/compile_flags.txt b/compile_flags.txt deleted file mode 100644 index 6b8032ce..00000000 --- a/compile_flags.txt +++ /dev/null @@ -1,6 +0,0 @@ --std=c++20 --I -include --fno-exceptions --fno-rtti --fno-caret-diagnostics diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index e8c75d26..0adf5222 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -65,7 +65,6 @@ rgbds/ ├── .clang-tidy ├── CMakeLists.txt ├── CMakePresets.json -├── compile_flags.txt ├── Dockerfile └── Makefile ``` @@ -129,8 +128,6 @@ rgbds/ Defines how to build RGBDS with CMake. - **`CMakePresets.json`:** Defines some [presets](https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) useful for working with our CMake. -- **`compile_flags.txt`:** - Compiler flags for `clang-tidy`. - **`Dockerfile`:** Defines how to build RGBDS with Docker (which we do in CI to provide a [container image](https://github.com/gbdev/rgbds/pkgs/container/rgbds)). - **`Makefile`:**