Skip to content

Fix build failure#20

Closed
kirpy0x wants to merge 2 commits intoBANANASJIM:mainfrom
kirpy0x:fix-build-failure
Closed

Fix build failure#20
kirpy0x wants to merge 2 commits intoBANANASJIM:mainfrom
kirpy0x:fix-build-failure

Conversation

@kirpy0x
Copy link
Copy Markdown
Contributor

@kirpy0x kirpy0x commented Mar 10, 2026

  • Add a dependency check to let users know if they need to install clang.
  • Turn clang_tidy off by default so warnings don't stop users ability to install.

Summary by CodeRabbit

  • New Features

    • Installation process now validates cmake is available before building, providing clear error messaging if missing
  • Chores

    • Updated default build configuration settings

kirpy0x added 2 commits March 10, 2026 12:41
disable clang-tidy by default since it's strict `--warnings-as-errors=*`
flag was causing build to fail.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 10, 2026

📝 Walkthrough

Walkthrough

The pull request modifies the default build configuration to disable clang-tidy by default and adds a new dependency validation function to the installation script that checks for cmake availability before attempting to build.

Changes

Cohort / File(s) Summary
Build Configuration
CMakeLists.txt
Changed ENABLE_CLANG_TIDY option default value from ON to OFF. Conditional logic remains unchanged.
Installation Scripts
install/install.sh
Added check_deps() function to validate cmake availability before build; function logs errors and exits with status 1 if cmake is missing. Modified build() to invoke check_deps() at startup.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 A carrot of change, simple and clean,
Clang-tidy now sleeps by default, serene,
While cmake's checked first, a safety embrace,
Dependencies dance in their proper place,
Hopping forward with caution and grace!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Fix build failure' accurately summarizes the main objective of the pull request, which is to address build failures by disabling clang-tidy by default and adding a dependency check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@install/install.sh`:
- Around line 13-19: The check_deps() function currently only verifies cmake but
must also verify a usable C++ compiler because CMakeLists.txt declares LANGUAGES
CXX and requires CMAKE_CXX_STANDARD 23; update check_deps() to probe for common
C++ compilers (e.g., c++, g++, clang++) by checking command -v for each or
attempting a simple compiler --version invocation, and if none are found emit an
error like "Missing required dependency: C++ compiler" with an actionable
install hint (e.g., install build-essential or g++) and exit 1 so the configure
step fails early.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 80e87cdf-d2db-4c7b-b212-63cc65e24340

📥 Commits

Reviewing files that changed from the base of the PR and between 9170223 and 1d4ae0d.

📒 Files selected for processing (2)
  • CMakeLists.txt
  • install/install.sh

Comment thread install/install.sh
Comment on lines +13 to +19
check_deps() {
if ! command -v cmake &> /dev/null; then
error "Missing required dependency: cmake"
echo "Install with: sudo apt install cmake"
exit 1
fi
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# Find CMakeLists.txt and install.sh files
find . -name "CMakeLists.txt" -o -name "install.sh" | head -20

Repository: BANANASJIM/flydigi-vader5

Length of output: 126


🏁 Script executed:

# Look at the install/install.sh file to see the context
head -30 install/install.sh

Repository: BANANASJIM/flydigi-vader5

Length of output: 934


🏁 Script executed:

# Check if CMakeLists.txt exists and examine its first few lines
if [ -f "CMakeLists.txt" ]; then
  echo "=== CMakeLists.txt ===" && head -20 CMakeLists.txt
fi

Repository: BANANASJIM/flydigi-vader5

Length of output: 554


🏁 Script executed:

# Search for README, BUILD, or documentation files
find . -type f \( -name "README*" -o -name "BUILD*" -o -name "CONTRIBUTING*" -o -name "*.md" \) | head -20

Repository: BANANASJIM/flydigi-vader5

Length of output: 1150


🏁 Script executed:

# Check driver/install.sh to see if there's similar logic
cat driver/install.sh | head -40

Repository: BANANASJIM/flydigi-vader5

Length of output: 379


🏁 Script executed:

# Check README for build requirements and toolchain info
cat README.md | head -100

Repository: BANANASJIM/flydigi-vader5

Length of output: 3144


🏁 Script executed:

# Also check CONTRIBUTING.md for build setup instructions
cat CONTRIBUTING.md | head -80

Repository: BANANASJIM/flydigi-vader5

Length of output: 1538


Add C++ compiler check to preflight validation.

The current check_deps() function only verifies cmake, but CMakeLists.txt (line 2) declares LANGUAGES CXX and (line 4) requires CMAKE_CXX_STANDARD 23 with CMAKE_CXX_STANDARD_REQUIRED ON. A machine with cmake but no C++ compiler will still fail during the configure step instead of receiving an early, actionable error. Add a compiler probe to check for any usable C++ compiler (e.g., c++, g++, or clang++).

Suggested fix
 check_deps() {
     if ! command -v cmake &> /dev/null; then
         error "Missing required dependency: cmake"
         echo "Install with: sudo apt install cmake"
         exit 1
     fi
+    if ! command -v c++ &> /dev/null && ! command -v g++ &> /dev/null && ! command -v clang++ &> /dev/null; then
+        error "Missing required dependency: C++ compiler"
+        echo "Please install a C++23-capable compiler and rerun this script."
+        exit 1
+    fi
 }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
check_deps() {
if ! command -v cmake &> /dev/null; then
error "Missing required dependency: cmake"
echo "Install with: sudo apt install cmake"
exit 1
fi
}
check_deps() {
if ! command -v cmake &> /dev/null; then
error "Missing required dependency: cmake"
echo "Install with: sudo apt install cmake"
exit 1
fi
if ! command -v c++ &> /dev/null && ! command -v g++ &> /dev/null && ! command -v clang++ &> /dev/null; then
error "Missing required dependency: C++ compiler"
echo "Please install a C++23-capable compiler and rerun this script."
exit 1
fi
}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@install/install.sh` around lines 13 - 19, The check_deps() function currently
only verifies cmake but must also verify a usable C++ compiler because
CMakeLists.txt declares LANGUAGES CXX and requires CMAKE_CXX_STANDARD 23; update
check_deps() to probe for common C++ compilers (e.g., c++, g++, clang++) by
checking command -v for each or attempting a simple compiler --version
invocation, and if none are found emit an error like "Missing required
dependency: C++ compiler" with an actionable install hint (e.g., install
build-essential or g++) and exit 1 so the configure step fails early.

Copy link
Copy Markdown
Owner

@BANANASJIM BANANASJIM left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR!

A couple of suggestions:

  1. clang-tidy default: When clang-tidy isn't found, find_program should already skip it gracefully, so the build failure might have a different root cause. Could you share the error log? Happy to help debug it.

  2. Dependency check: The sudo apt install cmake hint won't work on non-Debian distros (e.g. this project is developed on Arch). A more portable approach would be:

    check_deps() {
        for cmd in cmake g++; do
            if ! command -v "$cmd" &> /dev/null; then
                error "Missing required dependency: $cmd"
                exit 1
            fi
        done
    }

    This just tells the user what's missing and lets them install it with their own package manager.

@kirpy0x
Copy link
Copy Markdown
Contributor Author

kirpy0x commented Mar 11, 2026

Sure thing! Here you go

bazzite@bazzite:~/flydigi-vader5$ ./install/install.sh install
==> Building...
-- ┌─ FTXUI options ─────────────────────
-- │ FTXUI_ENABLE_INSTALL     : ON
-- │ FTXUI_BUILD_EXAMPLES     : OFF
-- │ FTXUI_QUIET              : OFF
-- │ FTXUI_BUILD_DOCS         : OFF
-- │ FTXUI_BUILD_TESTS        : OFF
-- │ FTXUI_BUILD_TESTS_FUZZER : OFF
-- │ FTXUI_ENABLE_COVERAGE    : OFF
-- │ FTXUI_DEV_WARNINGS       : OFF
-- │ FTXUI_CLANG_TIDY         : OFF
-- └─────────────────────────────────────
-- Configuring done (0.6s)
-- Generating done (0.1s)
-- Build files have been written to: /home/bazzite/flydigi-vader5/build
[  2%] Built target test-debug-iface
[  5%] Building CXX object CMakeFiles/test-remap.dir/src/tools/test_remap.cpp.o
[ 10%] Built target screen
[ 11%] Building CXX object CMakeFiles/test-uinput-elite.dir/src/config.cpp.o
[ 12%] Building CXX object CMakeFiles/test-remap.dir/src/config.cpp.o
[ 13%] Building CXX object CMakeFiles/test-uinput-elite.dir/src/tools/test_uinput_elite.cpp.o
[ 15%] Building CXX object CMakeFiles/vader5d.dir/src/config.cpp.o
[ 16%] Building CXX object CMakeFiles/vader5d.dir/src/daemon/main.cpp.o
[ 17%] Building CXX object CMakeFiles/vader5d.dir/src/gamepad.cpp.o
[ 18%] Building CXX object CMakeFiles/vader5d.dir/src/uinput.cpp.o
[ 61%] Built target dom
[ 88%] Built target component
[ 91%] Built target vader5-debug
^Cgmake[2]: *** [CMakeFiles/vader5d.dir/build.make:79: CMakeFiles/vader5d.dir/src/daemon/main.cpp.o] Interrupt
gmake[2]: *** [CMakeFiles/vader5d.dir/build.make:121: CMakeFiles/vader5d.dir/src/gamepad.cpp.o] Interrupt
gmake[2]: *** [CMakeFiles/vader5d.dir/build.make:107: CMakeFiles/vader5d.dir/src/uinput.cpp.o] Interrupt
gmake[2]: *** wait: No child processes.  Stop.
gmake[2]: *** Waiting for unfinished jobs....
gmake[2]: *** wait: No child processes.  Stop.
gmake[2]: *** [CMakeFiles/test-uinput-elite.dir/build.make:79: CMakeFiles/test-uinput-elite.dir/src/tools/test_uinput_elite.cpp.o] Interrupt
gmake[1]: *** [CMakeFiles/Makefile2:195: CMakeFiles/vader5d.dir/all] Error 2
gmake[2]: *** [CMakeFiles/test-remap.dir/build.make:79: CMakeFiles/test-remap.dir/src/tools/test_remap.cpp.o] Interrupt
gmake[2]: *** wait: No child processes.  Stop.
gmake[2]: *** Waiting for unfinished jobs....
gmake[2]: *** wait: No child processes.  Stop.
gmake[1]: *** [CMakeFiles/Makefile2:293: CMakeFiles/test-remap.dir/all] Error 2

gmake[2]: *** [CMakeFiles/test-uinput-elite.dir/build.make:93: CMakeFiles/test-uinput-elite.dir/src/config.cpp.o] Interrupt
gmake[1]: *** [CMakeFiles/Makefile2:325: CMakeFiles/test-uinput-elite.dir/all] Interrupt
gmake: *** [Makefile:156: all] Interrupt
bazzite@bazzite:~/flydigi-vader5$ ./install/install.sh uninstall
==> Uninstalling...
[sudo] password for bazzite:               
==> Uninstalled
bazzite@bazzite:~/flydigi-vader5$ ./install/install.sh install
==> Building...
-- ┌─ FTXUI options ─────────────────────
-- │ FTXUI_ENABLE_INSTALL     : ON
-- │ FTXUI_BUILD_EXAMPLES     : OFF
-- │ FTXUI_QUIET              : OFF
-- │ FTXUI_BUILD_DOCS         : OFF
-- │ FTXUI_BUILD_TESTS        : OFF
-- │ FTXUI_BUILD_TESTS_FUZZER : OFF
-- │ FTXUI_ENABLE_COVERAGE    : OFF
-- │ FTXUI_DEV_WARNINGS       : OFF
-- │ FTXUI_CLANG_TIDY         : OFF
-- └─────────────────────────────────────
-- Configuring done (0.5s)
-- Generating done (0.0s)
-- Build files have been written to: /home/bazzite/flydigi-vader5/build
[  2%] Built target test-debug-iface
[  3%] Building CXX object CMakeFiles/test-remap.dir/src/config.cpp.o
[  4%] Building CXX object CMakeFiles/test-remap.dir/src/tools/test_remap.cpp.o
[  5%] Building CXX object CMakeFiles/test-uinput-elite.dir/src/config.cpp.o
[  6%] Building CXX object CMakeFiles/test-uinput-elite.dir/src/tools/test_uinput_elite.cpp.o
[ 13%] Built target screen
[ 15%] Building CXX object CMakeFiles/vader5d.dir/src/config.cpp.o
[ 16%] Building CXX object CMakeFiles/vader5d.dir/src/uinput.cpp.o
[ 17%] Building CXX object CMakeFiles/vader5d.dir/src/daemon/main.cpp.o
[ 18%] Building CXX object CMakeFiles/vader5d.dir/src/gamepad.cpp.o
[ 61%] Built target dom
[ 88%] Built target component
[ 91%] Built target vader5-debug
[ 92%] Linking CXX executable vader5d
[ 93%] Linking CXX executable test-uinput-elite
[ 94%] Linking CXX executable test-remap
[ 97%] Built target vader5d
[ 98%] Built target test-uinput-elite
[100%] Built target test-remap
==> Build complete
==> Installing udev rules (requires sudo)...
==> udev rules installed
==> Config already exists at /home/bazzite/.config/vader5/config.toml
==> Installing binaries to /usr/local/bin (requires sudo)...
==> Binaries installed
==> Installing systemd service (requires sudo)...
==> systemd service installed
bazzite@bazzite:~/flydigi-vader5$ ./install/install.sh uninstall
==> Uninstalling...
==> Uninstalled
bazzite@bazzite:~/flydigi-vader5$ https://github.com/BANANASJIM/flydigi-vader5.git vader5^C
bazzite@bazzite:~/flydigi-vader5$ cd ..
bazzite@bazzite:~$ git clone https://github.com/BANANASJIM/flydigi-vader5.git vader5
Cloning into 'vader5'...
remote: Enumerating objects: 714, done.
remote: Counting objects: 100% (194/194), done.
remote: Compressing objects: 100% (104/104), done.
remote: Total 714 (delta 109), reused 129 (delta 75), pack-reused 520 (from 1)
Receiving objects: 100% (714/714), 334.51 KiB | 839.00 KiB/s, done.
Resolving deltas: 100% (307/307), done.
bazzite@bazzite:~$ ./install/in^C
bazzite@bazzite:~$ cd vader5/
bazzite@bazzite:~/vader5$ ./in
include/ install/ 
bazzite@bazzite:~/vader5$ ./install/install.sh install
==> Building...
-- The CXX compiler identification is GNU 15.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- ┌─ FTXUI options ─────────────────────
-- │ FTXUI_ENABLE_INSTALL     : ON
-- │ FTXUI_BUILD_EXAMPLES     : OFF
-- │ FTXUI_QUIET              : OFF
-- │ FTXUI_BUILD_DOCS         : OFF
-- │ FTXUI_BUILD_TESTS        : OFF
-- │ FTXUI_BUILD_TESTS_FUZZER : OFF
-- │ FTXUI_ENABLE_COVERAGE    : OFF
-- │ FTXUI_DEV_WARNINGS       : OFF
-- │ FTXUI_CLANG_TIDY         : OFF
-- └─────────────────────────────────────
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Configuring done (11.1s)
-- Generating done (0.1s)
-- Build files have been written to: /home/bazzite/vader5/build
[  2%] Building CXX object CMakeFiles/test-remap.dir/src/tools/test_remap.cpp.o
[  2%] Building CXX object _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/color.cpp.o
[  3%] Building CXX object _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/color_info.cpp.o
[  4%] Building CXX object CMakeFiles/test-uinput-elite.dir/src/config.cpp.o
[  7%] Building CXX object _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/box.cpp.o
[  7%] Building CXX object CMakeFiles/test-debug-iface.dir/src/tools/test_debug_iface.cpp.o
[  7%] Building CXX object CMakeFiles/vader5d.dir/src/daemon/main.cpp.o
[  9%] Building CXX object CMakeFiles/vader5d.dir/src/uinput.cpp.o
[  9%] Building CXX object CMakeFiles/vader5d.dir/src/hidraw.cpp.o
[ 11%] Building CXX object CMakeFiles/vader5d.dir/src/gamepad.cpp.o
[ 11%] Building CXX object CMakeFiles/test-uinput-elite.dir/src/tools/test_uinput_elite.cpp.o
[ 12%] Building CXX object _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/screen.cpp.o
[ 13%] Building CXX object CMakeFiles/test-remap.dir/src/keycodes.cpp.o
[ 15%] Building CXX object CMakeFiles/test-remap.dir/src/config.cpp.o
[ 16%] Building CXX object CMakeFiles/vader5d.dir/src/config.cpp.o
[ 17%] Building CXX object CMakeFiles/test-uinput-elite.dir/src/keycodes.cpp.o
[ 18%] Building CXX object _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/string.cpp.o
[ 19%] Building CXX object _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/terminal.cpp.o
[ 20%] Building CXX object CMakeFiles/vader5d.dir/src/keycodes.cpp.o
[ 21%] Building CXX object CMakeFiles/vader5d.dir/src/mouse.cpp.o
/home/bazzite/vader5/include/vader5/keycodes.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
7845 warnings generated.
Suppressed 7844 warnings (7844 in non-user code).
Use -header-filter=.* or leave it as default to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning treated as error
gmake[2]: *** [CMakeFiles/vader5d.dir/build.make:149: CMakeFiles/vader5d.dir/src/keycodes.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
[ 22%] Linking CXX executable test-debug-iface
[ 22%] Built target test-debug-iface
/home/bazzite/vader5/include/vader5/mouse.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/types.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/types.hpp:43:6: error: enum 'Button' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   43 | enum Button : uint16_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:58:6: error: enum 'ExtButton' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   58 | enum ExtButton : uint8_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:70:6: error: enum 'ExtButton2' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   70 | enum ExtButton2 : uint8_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:75:6: error: enum 'Dpad' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   75 | enum Dpad : uint8_t {
      |      ^
11877 warnings generated.
Suppressed 11871 warnings (11871 in non-user code).
Use -header-filter=.* or leave it as default to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings treated as errors
gmake[2]: *** [CMakeFiles/vader5d.dir/build.make:163: CMakeFiles/vader5d.dir/src/mouse.cpp.o] Error 1
[ 23%] Linking CXX static library libftxui-screen.a
[ 23%] Built target screen
[ 24%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/automerge.cpp.o
[ 25%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/blink.cpp.o
[ 26%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/bold.cpp.o
[ 27%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/hyperlink.cpp.o
[ 29%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/border.cpp.o
[ 30%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/canvas.cpp.o
[ 31%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/box_helper.cpp.o
[ 32%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/clear_under.cpp.o
[ 33%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/color.cpp.o
[ 34%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/composite_decorator.cpp.o
[ 35%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/dbox.cpp.o
/home/bazzite/vader5/include/vader5/hidraw.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/protocol.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/protocol.hpp:23:55: error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors]
   23 |     return static_cast<int16_t>(static_cast<uint16_t>(data[0]) |
      |                                                       ^
/home/bazzite/vader5/include/vader5/protocol.hpp:24:56: error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors]
   24 |                                 (static_cast<uint16_t>(data[1]) << 8));
      |                                                        ^
/home/bazzite/vader5/include/vader5/protocol.hpp:28:20: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   28 |     return DPAD_MAP[b11 & 0x0F];
      |                    ^~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:28:27: error: 0x0F is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors]
   28 |     return DPAD_MAP[b11 & 0x0F];
      |                           ^
/home/bazzite/vader5/include/vader5/protocol.hpp:59:28: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   59 |     if ((b11 & B11_A) != 0)
      |                            ^
      |                             {
   60 |         btns |= PAD_A;
      |                       
/home/bazzite/vader5/include/vader5/protocol.hpp:61:28: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   61 |     if ((b11 & B11_B) != 0)
      |                            ^
      |                             {
   62 |         btns |= PAD_B;
      |                       
/home/bazzite/vader5/include/vader5/protocol.hpp:63:28: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   63 |     if ((b11 & B11_X) != 0)
      |                            ^
      |                             {
   64 |         btns |= PAD_X;
      |                       
/home/bazzite/vader5/include/vader5/protocol.hpp:65:28: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   65 |     if ((b12 & B12_Y) != 0)
      |                            ^
      |                             {
   66 |         btns |= PAD_Y;
      |                       
/home/bazzite/vader5/include/vader5/protocol.hpp:67:29: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   67 |     if ((b12 & B12_LB) != 0)
      |                             ^
      |                              {
   68 |         btns |= PAD_LB;
      |                        
/home/bazzite/vader5/include/vader5/protocol.hpp:69:29: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   69 |     if ((b12 & B12_RB) != 0)
      |                             ^
      |                              {
   70 |         btns |= PAD_RB;
      |                        
/home/bazzite/vader5/include/vader5/protocol.hpp:71:33: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   71 |     if ((b11 & B11_SELECT) != 0)
      |                                 ^
      |                                  {
   72 |         btns |= PAD_SELECT;
      |                            
/home/bazzite/vader5/include/vader5/protocol.hpp:73:32: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   73 |     if ((b12 & B12_START) != 0)
      |                                ^
      |                                 {
   74 |         btns |= PAD_START;
      |                           
/home/bazzite/vader5/include/vader5/protocol.hpp:75:29: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   75 |     if ((b12 & B12_L3) != 0)
      |                             ^
      |                              {
   76 |         btns |= PAD_L3;
      |                        
/home/bazzite/vader5/include/vader5/protocol.hpp:77:29: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   77 |     if ((b12 & B12_R3) != 0)
      |                             ^
      |                              {
   78 |         btns |= PAD_R3;
      |                        
/home/bazzite/vader5/include/vader5/protocol.hpp:83:32: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   83 |     if (data.size() < MIN_SIZE)
      |                                ^
      |                                 {
   84 |         return std::nullopt;
      |                             
/home/bazzite/vader5/include/vader5/protocol.hpp:85:13: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   85 |     if (data[0] != MAGIC_5A || data[1] != MAGIC_A5 || data[2] != MAGIC_EF) {
      |             ^~~
/home/bazzite/vader5/include/vader5/protocol.hpp:85:36: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   85 |     if (data[0] != MAGIC_5A || data[1] != MAGIC_A5 || data[2] != MAGIC_EF) {
      |                                    ^~~
/home/bazzite/vader5/include/vader5/protocol.hpp:85:59: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   85 |     if (data[0] != MAGIC_5A || data[1] != MAGIC_A5 || data[2] != MAGIC_EF) {
      |                                                           ^~~
/home/bazzite/vader5/include/vader5/protocol.hpp:90:34: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   90 |     state.left_x = read_s16(&data[OFF_LX]);
      |                                  ^~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:91:84: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   91 |     state.left_y = static_cast<int16_t>(std::clamp(-static_cast<int>(read_s16(&data[OFF_LX + 2])), -32767, 32767));
      |                                                                                    ^~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:91:101: error: 32767 is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors]
   91 |     state.left_y = static_cast<int16_t>(std::clamp(-static_cast<int>(read_s16(&data[OFF_LX + 2])), -32767, 32767));
      |                                                                                                     ^
/home/bazzite/vader5/include/vader5/protocol.hpp:91:108: error: 32767 is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors]
   91 |     state.left_y = static_cast<int16_t>(std::clamp(-static_cast<int>(read_s16(&data[OFF_LX + 2])), -32767, 32767));
      |                                                                                                            ^
/home/bazzite/vader5/include/vader5/protocol.hpp:92:35: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   92 |     state.right_x = read_s16(&data[OFF_LX + 4]);
      |                                   ^~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:93:85: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   93 |     state.right_y = static_cast<int16_t>(std::clamp(-static_cast<int>(read_s16(&data[OFF_LX + 6])), -32767, 32767));
      |                                                                                     ^~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:93:102: error: 32767 is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors]
   93 |     state.right_y = static_cast<int16_t>(std::clamp(-static_cast<int>(read_s16(&data[OFF_LX + 6])), -32767, 32767));
      |                                                                                                      ^
/home/bazzite/vader5/include/vader5/protocol.hpp:93:109: error: 32767 is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors]
   93 |     state.right_y = static_cast<int16_t>(std::clamp(-static_cast<int>(read_s16(&data[OFF_LX + 6])), -32767, 32767));
      |                                                                                                             ^
/home/bazzite/vader5/include/vader5/protocol.hpp:95:29: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   95 |     const uint8_t b11 = data[OFF_BTNS];
      |                             ^~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:96:29: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   96 |     const uint8_t b12 = data[OFF_BTNS + 1];
      |                             ^~~~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:99:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   99 |     state.left_trigger = data[OFF_LT];
      |                              ^~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:100:31: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  100 |     state.right_trigger = data[OFF_RT];
      |                               ^~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:101:29: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  101 |     state.ext_buttons = data[OFF_EXT1];
      |                             ^~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:102:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  102 |     state.ext_buttons2 = data[OFF_EXT2];
      |                              ^~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:105:38: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  105 |         state.gyro_x = read_s16(&data[OFF_GYRO]);
      |                                      ^~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:106:38: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  106 |         state.gyro_y = read_s16(&data[OFF_GYRO + 2]);
      |                                      ^~~~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:107:38: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  107 |         state.gyro_z = read_s16(&data[OFF_GYRO + 4]);
      |                                      ^~~~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:108:39: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  108 |         state.accel_x = read_s16(&data[OFF_ACCEL]);
      |                                       ^~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:109:39: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  109 |         state.accel_y = read_s16(&data[OFF_ACCEL + 2]);
      |                                       ^~~~~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:110:39: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  110 |         state.accel_z = read_s16(&data[OFF_ACCEL + 4]);
      |                                       ^~~~~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/types.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/types.hpp:43:6: error: enum 'Button' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   43 | enum Button : uint16_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:58:6: error: enum 'ExtButton' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   58 | enum ExtButton : uint8_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:70:6: error: enum 'ExtButton2' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   70 | enum ExtButton2 : uint8_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:75:6: error: enum 'Dpad' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   75 | enum Dpad : uint8_t {
      |      ^
/home/bazzite/vader5/src/hidraw.cpp:147:42: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  147 |     if (data.size() == REPORT_24G && data[1] == SUBTYPE_24G) {
      |                                          ^~~
/home/bazzite/vader5/src/hidraw.cpp:166:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  166 |     const uint8_t misc = data[OFF_MISC];
      |                              ^~~~~~~~~~
/home/bazzite/vader5/src/hidraw.cpp:167:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  167 |     const uint8_t btns = data[OFF_BTNS];
      |                              ^~~~~~~~~~
/home/bazzite/vader5/src/hidraw.cpp:168:26: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  168 |     state.dpad = DPAD_MAP[misc & DPAD_MASK];
      |                          ^~~~~~~~~~~~~~~~~~
/home/bazzite/vader5/src/hidraw.cpp:175:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  175 |     state.left_trigger = data[OFF_LT];
      |                              ^~~~~~~~
/home/bazzite/vader5/src/hidraw.cpp:176:31: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  176 |     state.right_trigger = data[OFF_RT];
      |                               ^~~~~~~~
/home/bazzite/vader5/src/hidraw.cpp:177:34: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  177 |     state.left_x = read_s16(&data[OFF_LX]);
      |                                  ^~~~~~~~
/home/bazzite/vader5/src/hidraw.cpp:178:56: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  178 |     state.left_y = static_cast<int16_t>(-read_s16(&data[OFF_LY]));
      |                                                        ^~~~~~~~
/home/bazzite/vader5/src/hidraw.cpp:179:35: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  179 |     state.right_x = read_s16(&data[OFF_RX]);
      |                                   ^~~~~~~~
/home/bazzite/vader5/src/hidraw.cpp:180:57: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  180 |     state.right_y = static_cast<int16_t>(-read_s16(&data[OFF_RY]));
      |                                                         ^~~~~~~~
/home/bazzite/vader5/src/hidraw.cpp:181:29: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  181 |     state.ext_buttons = data[OFF_EXT1];
      |                             ^~~~~~~~~~
/home/bazzite/vader5/src/hidraw.cpp:182:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  182 |     state.ext_buttons2 = data[OFF_EXT2];
      |                              ^~~~~~~~~~
15082 warnings generated.
Suppressed 14998 warnings (14998 in non-user code).
Use -header-filter=.* or leave it as default to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
57 warnings treated as errors
gmake[2]: *** [CMakeFiles/vader5d.dir/build.make:93: CMakeFiles/vader5d.dir/src/hidraw.cpp.o] Error 1
[ 36%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/dim.cpp.o
[ 37%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/flex.cpp.o
[ 38%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/flexbox.cpp.o
[ 39%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/flexbox_config.cpp.o
[ 40%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/flexbox_helper.cpp.o
[ 41%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/focus.cpp.o
[ 43%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/frame.cpp.o
[ 44%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/gauge.cpp.o
[ 45%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/graph.cpp.o
[ 46%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/gridbox.cpp.o
[ 47%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/hbox.cpp.o
[ 48%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/inverted.cpp.o
[ 49%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/linear_gradient.cpp.o
[ 50%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/node.cpp.o
[ 51%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/node_decorator.cpp.o
[ 52%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/paragraph.cpp.o
[ 53%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/reflect.cpp.o
[ 54%] Linking CXX executable test-uinput-elite
[ 55%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/scroll_indicator.cpp.o
[ 55%] Built target test-uinput-elite
[ 56%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/separator.cpp.o
[ 58%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/size.cpp.o
[ 59%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/spinner.cpp.o
[ 60%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/strikethrough.cpp.o
[ 61%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/table.cpp.o
[ 62%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/text.cpp.o
[ 63%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/underlined.cpp.o
[ 64%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/underlined_double.cpp.o
/home/bazzite/vader5/include/vader5/config.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/config.hpp:14:10: error: enum 'Type' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:14:10: error: enum 'Type' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:14:17: error: invalid case style for enum constant 'Disabled' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                 ^~~~~~~~
      |                 DISABLED
/home/bazzite/vader5/include/vader5/config.hpp:14:27: error: invalid case style for enum constant 'Key' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                           ^~~
      |                           KEY
   15 |     Type type{Key};
      |               ~~~
      |               KEY
/home/bazzite/vader5/include/vader5/config.hpp:14:32: error: invalid case style for enum constant 'MouseButton' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                                ^~~~~~~~~~~
      |                                MOUSE_BUTTON
/home/bazzite/vader5/include/vader5/config.hpp:14:45: error: invalid case style for enum constant 'MouseMove' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                                             ^~~~~~~~~
      |                                             MOUSE_MOVE
/home/bazzite/vader5/include/vader5/config.hpp:14:56: error: invalid case style for enum constant 'GamepadButton' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                                                        ^~~~~~~~~~~~~
      |                                                        GAMEPAD_BUTTON
/home/bazzite/vader5/include/vader5/config.hpp:22:10: error: enum 'Mode' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   22 |     enum Mode { Off, Mouse, Joystick };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:22:10: error: enum 'Mode' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:22:17: error: invalid case style for enum constant 'Off' [readability-identifier-naming,-warnings-as-errors]
   22 |     enum Mode { Off, Mouse, Joystick };
      |                 ^~~
      |                 OFF
   23 |     Mode mode{Off};
      |               ~~~
      |               OFF
/home/bazzite/vader5/include/vader5/config.hpp:22:22: error: invalid case style for enum constant 'Mouse' [readability-identifier-naming,-warnings-as-errors]
   22 |     enum Mode { Off, Mouse, Joystick };
      |                      ^~~~~
      |                      MOUSE
/home/bazzite/vader5/include/vader5/config.hpp:22:29: error: invalid case style for enum constant 'Joystick' [readability-identifier-naming,-warnings-as-errors]
   22 |     enum Mode { Off, Mouse, Joystick };
      |                             ^~~~~~~~
      |                             JOYSTICK
/home/bazzite/vader5/include/vader5/config.hpp:24:25: error: 1.5F is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors]
   24 |     float sensitivity_x{1.5F};
      |                         ^
/home/bazzite/vader5/include/vader5/config.hpp:25:25: error: 1.5F is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors]
   25 |     float sensitivity_y{1.5F};
      |                         ^
/home/bazzite/vader5/include/vader5/config.hpp:27:21: error: 0.3F is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors]
   27 |     float smoothing{0.3F};
      |                     ^
/home/bazzite/vader5/include/vader5/config.hpp:34:10: error: enum 'Mode' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   34 |     enum Mode { Gamepad, Mouse, Scroll };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:34:10: error: enum 'Mode' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:34:17: error: invalid case style for enum constant 'Gamepad' [readability-identifier-naming,-warnings-as-errors]
   34 |     enum Mode { Gamepad, Mouse, Scroll };
      |                 ^~~~~~~
      |                 GAMEPAD
   35 |     Mode mode{Gamepad};
      |               ~~~~~~~
      |               GAMEPAD
/home/bazzite/vader5/include/vader5/config.hpp:34:26: error: invalid case style for enum constant 'Mouse' [readability-identifier-naming,-warnings-as-errors]
   34 |     enum Mode { Gamepad, Mouse, Scroll };
      |                          ^~~~~
      |                          MOUSE
/home/bazzite/vader5/include/vader5/config.hpp:34:33: error: invalid case style for enum constant 'Scroll' [readability-identifier-naming,-warnings-as-errors]
   34 |     enum Mode { Gamepad, Mouse, Scroll };
      |                                 ^~~~~~
      |                                 SCROLL
/home/bazzite/vader5/include/vader5/config.hpp:41:10: error: enum 'Mode' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   41 |     enum Mode { Gamepad, Arrows };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:41:10: error: enum 'Mode' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:41:17: error: invalid case style for enum constant 'Gamepad' [readability-identifier-naming,-warnings-as-errors]
   41 |     enum Mode { Gamepad, Arrows };
      |                 ^~~~~~~
      |                 GAMEPAD
   42 |     Mode mode{Gamepad};
      |               ~~~~~~~
      |               GAMEPAD
/home/bazzite/vader5/include/vader5/config.hpp:41:26: error: invalid case style for enum constant 'Arrows' [readability-identifier-naming,-warnings-as-errors]
   41 |     enum Mode { Gamepad, Arrows };
      |                          ^~~~~~
      |                          ARROWS
/home/bazzite/vader5/include/vader5/config.hpp:46:10: error: enum 'Activation' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   46 |     enum Activation { Hold, Toggle };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:46:10: error: enum 'Activation' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:46:23: error: invalid case style for enum constant 'Hold' [readability-identifier-naming,-warnings-as-errors]
   46 |     enum Activation { Hold, Toggle };
      |                       ^~~~
      |                       HOLD
   47 |     std::string name;
   48 |     std::string trigger;
   49 |     std::optional<RemapTarget> tap;
   50 |     int hold_timeout{200};
   51 |     Activation activation{Hold};
      |                           ~~~~
      |                           HOLD
/home/bazzite/vader5/include/vader5/config.hpp:46:29: error: invalid case style for enum constant 'Toggle' [readability-identifier-naming,-warnings-as-errors]
   46 |     enum Activation { Hold, Toggle };
      |                             ^~~~~~
      |                             TOGGLE
/home/bazzite/vader5/include/vader5/config.hpp:50:22: error: 200 is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors]
   50 |     int hold_timeout{200};
      |                      ^
/home/bazzite/vader5/include/vader5/types.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/types.hpp:43:6: error: enum 'Button' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   43 | enum Button : uint16_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:58:6: error: enum 'ExtButton' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   58 | enum ExtButton : uint8_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:70:6: error: enum 'ExtButton2' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   70 | enum ExtButton2 : uint8_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:75:6: error: enum 'Dpad' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   75 | enum Dpad : uint8_t {
      |      ^
/home/bazzite/vader5/include/vader5/uinput.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/uinput.hpp:44:44: error: initializer for member 'events_buffer_' is redundant [readability-redundant-member-init,-warnings-as-errors]
   44 |     std::vector<input_event> events_buffer_{};
      |                                            ^~
/home/bazzite/vader5/include/vader5/uinput.hpp:71:44: error: initializer for member 'events_buffer_' is redundant [readability-redundant-member-init,-warnings-as-errors]
   71 |     std::vector<input_event> events_buffer_{};
      |                                            ^~
/home/bazzite/vader5/src/uinput.cpp:257:57: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  257 |         const bool curr = (state.ext_buttons & EXT_MASKS[idx]) != 0;
      |                                                         ^~~~~
/home/bazzite/vader5/src/uinput.cpp:258:55: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  258 |         const bool old = (prev.ext_buttons & EXT_MASKS[idx]) != 0;
      |                                                       ^~~~~
/home/bazzite/vader5/src/uinput.cpp:260:43: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  260 |             const int code = ext_mappings_[idx].value_or(DEFAULT_EXT_CODES[idx]);
      |                                           ^~~~~
/home/bazzite/vader5/src/uinput.cpp:260:75: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  260 |             const int code = ext_mappings_[idx].value_or(DEFAULT_EXT_CODES[idx]);
      |                                                                           ^~~~~
/home/bazzite/vader5/src/uinput.cpp:324:28: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  324 |                 ff_effects_[static_cast<size_t>(upload.effect.id)] = {
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/bazzite/vader5/src/uinput.cpp:341:28: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  341 |                 ff_effects_[erase.effect_id] = {};
      |                            ^~~~~~~~~~~~~~~~~
/home/bazzite/vader5/src/uinput.cpp:349:48: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  349 |             result = ev.value > 0 ? ff_effects_[ev.code] : RumbleEffect{0, 0};
      |                                                ^~~~~~~~~
14248 warnings generated.
Suppressed 14191 warnings (14191 in non-user code).
Use -header-filter=.* or leave it as default to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
45 warnings treated as errors
gmake[2]: *** [CMakeFiles/vader5d.dir/build.make:107: CMakeFiles/vader5d.dir/src/uinput.cpp.o] Error 1
[ 65%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/util.cpp.o
[ 66%] Building CXX object _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/vbox.cpp.o
[ 67%] Linking CXX executable test-remap
[ 67%] Built target test-remap
[ 68%] Linking CXX static library libftxui-dom.a
[ 68%] Built target dom
[ 69%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/animation.cpp.o
[ 70%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/button.cpp.o
[ 73%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/catch_event.cpp.o
[ 73%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/component_options.cpp.o
[ 74%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/container.cpp.o
[ 76%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/collapsible.cpp.o
[ 76%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/dropdown.cpp.o
[ 77%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/checkbox.cpp.o
[ 78%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/component.cpp.o
[ 79%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/event.cpp.o
[ 80%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/hoverable.cpp.o
/home/bazzite/vader5/include/vader5/config.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/config.hpp:14:10: error: enum 'Type' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:14:10: error: enum 'Type' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:14:17: error: invalid case style for enum constant 'Disabled' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                 ^~~~~~~~
      |                 DISABLED
/home/bazzite/vader5/include/vader5/config.hpp:14:27: error: invalid case style for enum constant 'Key' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                           ^~~
      |                           KEY
   15 |     Type type{Key};
      |               ~~~
      |               KEY
/home/bazzite/vader5/include/vader5/config.hpp:14:32: error: invalid case style for enum constant 'MouseButton' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                                ^~~~~~~~~~~
      |                                MOUSE_BUTTON
/home/bazzite/vader5/include/vader5/config.hpp:14:45: error: invalid case style for enum constant 'MouseMove' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                                             ^~~~~~~~~
      |                                             MOUSE_MOVE
/home/bazzite/vader5/include/vader5/config.hpp:14:56: error: invalid case style for enum constant 'GamepadButton' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                                                        ^~~~~~~~~~~~~
      |                                                        GAMEPAD_BUTTON
/home/bazzite/vader5/include/vader5/config.hpp:22:10: error: enum 'Mode' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   22 |     enum Mode { Off, Mouse, Joystick };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:22:10: error: enum 'Mode' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:22:17: error: invalid case style for enum constant 'Off' [readability-identifier-naming,-warnings-as-errors]
   22 |     enum Mode { Off, Mouse, Joystick };
      |                 ^~~
      |                 OFF
   23 |     Mode mode{Off};
      |               ~~~
      |               OFF
/home/bazzite/vader5/include/vader5/config.hpp:22:22: error: invalid case style for enum constant 'Mouse' [readability-identifier-naming,-warnings-as-errors]
   22 |     enum Mode { Off, Mouse, Joystick };
      |                      ^~~~~
      |                      MOUSE
/home/bazzite/vader5/include/vader5/config.hpp:22:29: error: invalid case style for enum constant 'Joystick' [readability-identifier-naming,-warnings-as-errors]
   22 |     enum Mode { Off, Mouse, Joystick };
      |                             ^~~~~~~~
      |                             JOYSTICK
/home/bazzite/vader5/include/vader5/config.hpp:34:10: error: enum 'Mode' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   34 |     enum Mode { Gamepad, Mouse, Scroll };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:34:10: error: enum 'Mode' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:34:17: error: invalid case style for enum constant 'Gamepad' [readability-identifier-naming,-warnings-as-errors]
   34 |     enum Mode { Gamepad, Mouse, Scroll };
      |                 ^~~~~~~
      |                 GAMEPAD
   35 |     Mode mode{Gamepad};
      |               ~~~~~~~
      |               GAMEPAD
/home/bazzite/vader5/include/vader5/config.hpp:34:26: error: invalid case style for enum constant 'Mouse' [readability-identifier-naming,-warnings-as-errors]
   34 |     enum Mode { Gamepad, Mouse, Scroll };
      |                          ^~~~~
      |                          MOUSE
/home/bazzite/vader5/include/vader5/config.hpp:34:33: error: invalid case style for enum constant 'Scroll' [readability-identifier-naming,-warnings-as-errors]
   34 |     enum Mode { Gamepad, Mouse, Scroll };
      |                                 ^~~~~~
      |                                 SCROLL
/home/bazzite/vader5/include/vader5/config.hpp:41:10: error: enum 'Mode' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   41 |     enum Mode { Gamepad, Arrows };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:41:10: error: enum 'Mode' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:41:17: error: invalid case style for enum constant 'Gamepad' [readability-identifier-naming,-warnings-as-errors]
   41 |     enum Mode { Gamepad, Arrows };
      |                 ^~~~~~~
      |                 GAMEPAD
   42 |     Mode mode{Gamepad};
      |               ~~~~~~~
      |               GAMEPAD
/home/bazzite/vader5/include/vader5/config.hpp:41:26: error: invalid case style for enum constant 'Arrows' [readability-identifier-naming,-warnings-as-errors]
   41 |     enum Mode { Gamepad, Arrows };
      |                          ^~~~~~
      |                          ARROWS
/home/bazzite/vader5/include/vader5/config.hpp:46:10: error: enum 'Activation' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   46 |     enum Activation { Hold, Toggle };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:46:10: error: enum 'Activation' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:46:23: error: invalid case style for enum constant 'Hold' [readability-identifier-naming,-warnings-as-errors]
   46 |     enum Activation { Hold, Toggle };
      |                       ^~~~
      |                       HOLD
   47 |     std::string name;
   48 |     std::string trigger;
   49 |     std::optional<RemapTarget> tap;
   50 |     int hold_timeout{200};
   51 |     Activation activation{Hold};
      |                           ~~~~
      |                           HOLD
/home/bazzite/vader5/include/vader5/config.hpp:46:29: error: invalid case style for enum constant 'Toggle' [readability-identifier-naming,-warnings-as-errors]
   46 |     enum Activation { Hold, Toggle };
      |                             ^~~~~~
      |                             TOGGLE
/home/bazzite/vader5/include/vader5/gamepad.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/hidraw.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/types.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/types.hpp:43:6: error: enum 'Button' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   43 | enum Button : uint16_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:58:6: error: enum 'ExtButton' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   58 | enum ExtButton : uint8_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:70:6: error: enum 'ExtButton2' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   70 | enum ExtButton2 : uint8_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:75:6: error: enum 'Dpad' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   75 | enum Dpad : uint8_t {
      |      ^
/home/bazzite/vader5/include/vader5/uinput.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/uinput.hpp:44:44: error: initializer for member 'events_buffer_' is redundant [readability-redundant-member-init,-warnings-as-errors]
   44 |     std::vector<input_event> events_buffer_{};
      |                                            ^~
/home/bazzite/vader5/include/vader5/uinput.hpp:71:44: error: initializer for member 'events_buffer_' is redundant [readability-redundant-member-init,-warnings-as-errors]
   71 |     std::vector<input_event> events_buffer_{};
      |                                            ^~
/home/bazzite/vader5/src/daemon/main.cpp:33:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   33 |         if ((std::strcmp(args[i], "-c") == 0 || std::strcmp(args[i], "--config") == 0) &&
      |                              ^~~
/home/bazzite/vader5/src/daemon/main.cpp:33:65: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   33 |         if ((std::strcmp(args[i], "-c") == 0 || std::strcmp(args[i], "--config") == 0) &&
      |                                                                 ^~~
/home/bazzite/vader5/src/daemon/main.cpp:35:31: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   35 |             config_path = args[++i];
      |                               ^~~~~
/home/bazzite/vader5/src/daemon/main.cpp:36:37: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   36 |         } else if ((std::strcmp(args[i], "-d") == 0 || std::strcmp(args[i], "--device") == 0) &&
      |                                     ^~~
/home/bazzite/vader5/src/daemon/main.cpp:36:72: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   36 |         } else if ((std::strcmp(args[i], "-d") == 0 || std::strcmp(args[i], "--device") == 0) &&
      |                                                                        ^~~
/home/bazzite/vader5/src/daemon/main.cpp:38:31: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   38 |             device_name = args[++i];
      |                               ^~~~~
/home/bazzite/vader5/src/daemon/main.cpp:95:33: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   95 |             if (ret > 0 && (pfds[0].revents & POLLIN) != 0) {
      |                                 ^~~
/home/bazzite/vader5/src/daemon/main.cpp:110:33: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  110 |             if (ret > 0 && (pfds[1].revents & POLLIN) != 0) {
      |                                 ^~~
/home/bazzite/vader5/src/daemon/main.cpp:114:22: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  114 |             if ((pfds[0].revents & (POLLHUP | POLLERR)) != 0) {
      |                      ^~~
20824 warnings generated.
Suppressed 20779 warnings (20779 in non-user code).
Use -header-filter=.* or leave it as default to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
45 warnings treated as errors
gmake[2]: *** [CMakeFiles/vader5d.dir/build.make:79: CMakeFiles/vader5d.dir/src/daemon/main.cpp.o] Error 1
[ 81%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/input.cpp.o
[ 82%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/loop.cpp.o
[ 83%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/maybe.cpp.o
[ 84%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/menu.cpp.o
[ 86%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/modal.cpp.o
/home/bazzite/vader5/include/vader5/config.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/config.hpp:14:10: error: enum 'Type' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:14:10: error: enum 'Type' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:14:17: error: invalid case style for enum constant 'Disabled' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                 ^~~~~~~~
      |                 DISABLED
/home/bazzite/vader5/include/vader5/config.hpp:14:27: error: invalid case style for enum constant 'Key' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                           ^~~
      |                           KEY
   15 |     Type type{Key};
      |               ~~~
      |               KEY
/home/bazzite/vader5/include/vader5/config.hpp:14:32: error: invalid case style for enum constant 'MouseButton' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                                ^~~~~~~~~~~
      |                                MOUSE_BUTTON
/home/bazzite/vader5/include/vader5/config.hpp:14:45: error: invalid case style for enum constant 'MouseMove' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                                             ^~~~~~~~~
      |                                             MOUSE_MOVE
/home/bazzite/vader5/include/vader5/config.hpp:14:56: error: invalid case style for enum constant 'GamepadButton' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                                                        ^~~~~~~~~~~~~
      |                                                        GAMEPAD_BUTTON
/home/bazzite/vader5/include/vader5/config.hpp:22:10: error: enum 'Mode' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   22 |     enum Mode { Off, Mouse, Joystick };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:22:10: error: enum 'Mode' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:22:17: error: invalid case style for enum constant 'Off' [readability-identifier-naming,-warnings-as-errors]
   22 |     enum Mode { Off, Mouse, Joystick };
      |                 ^~~
      |                 OFF
   23 |     Mode mode{Off};
      |               ~~~
      |               OFF
/home/bazzite/vader5/include/vader5/config.hpp:22:22: error: invalid case style for enum constant 'Mouse' [readability-identifier-naming,-warnings-as-errors]
   22 |     enum Mode { Off, Mouse, Joystick };
      |                      ^~~~~
      |                      MOUSE
/home/bazzite/vader5/include/vader5/config.hpp:22:29: error: invalid case style for enum constant 'Joystick' [readability-identifier-naming,-warnings-as-errors]
   22 |     enum Mode { Off, Mouse, Joystick };
      |                             ^~~~~~~~
      |                             JOYSTICK
/home/bazzite/vader5/include/vader5/config.hpp:34:10: error: enum 'Mode' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   34 |     enum Mode { Gamepad, Mouse, Scroll };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:34:10: error: enum 'Mode' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:34:17: error: invalid case style for enum constant 'Gamepad' [readability-identifier-naming,-warnings-as-errors]
   34 |     enum Mode { Gamepad, Mouse, Scroll };
      |                 ^~~~~~~
      |                 GAMEPAD
   35 |     Mode mode{Gamepad};
      |               ~~~~~~~
      |               GAMEPAD
/home/bazzite/vader5/include/vader5/config.hpp:34:26: error: invalid case style for enum constant 'Mouse' [readability-identifier-naming,-warnings-as-errors]
   34 |     enum Mode { Gamepad, Mouse, Scroll };
      |                          ^~~~~
      |                          MOUSE
/home/bazzite/vader5/include/vader5/config.hpp:34:33: error: invalid case style for enum constant 'Scroll' [readability-identifier-naming,-warnings-as-errors]
   34 |     enum Mode { Gamepad, Mouse, Scroll };
      |                                 ^~~~~~
      |                                 SCROLL
/home/bazzite/vader5/include/vader5/config.hpp:41:10: error: enum 'Mode' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   41 |     enum Mode { Gamepad, Arrows };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:41:10: error: enum 'Mode' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:41:17: error: invalid case style for enum constant 'Gamepad' [readability-identifier-naming,-warnings-as-errors]
   41 |     enum Mode { Gamepad, Arrows };
      |                 ^~~~~~~
      |                 GAMEPAD
   42 |     Mode mode{Gamepad};
      |               ~~~~~~~
      |               GAMEPAD
/home/bazzite/vader5/include/vader5/config.hpp:41:26: error: invalid case style for enum constant 'Arrows' [readability-identifier-naming,-warnings-as-errors]
   41 |     enum Mode { Gamepad, Arrows };
      |                          ^~~~~~
      |                          ARROWS
/home/bazzite/vader5/include/vader5/config.hpp:46:10: error: enum 'Activation' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   46 |     enum Activation { Hold, Toggle };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:46:10: error: enum 'Activation' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:46:23: error: invalid case style for enum constant 'Hold' [readability-identifier-naming,-warnings-as-errors]
   46 |     enum Activation { Hold, Toggle };
      |                       ^~~~
      |                       HOLD
   47 |     std::string name;
   48 |     std::string trigger;
   49 |     std::optional<RemapTarget> tap;
   50 |     int hold_timeout{200};
   51 |     Activation activation{Hold};
      |                           ~~~~
      |                           HOLD
/home/bazzite/vader5/include/vader5/config.hpp:46:29: error: invalid case style for enum constant 'Toggle' [readability-identifier-naming,-warnings-as-errors]
   46 |     enum Activation { Hold, Toggle };
      |                             ^~~~~~
      |                             TOGGLE
/home/bazzite/vader5/include/vader5/debug.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/keycodes.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/types.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/types.hpp:43:6: error: enum 'Button' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   43 | enum Button : uint16_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:58:6: error: enum 'ExtButton' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   58 | enum ExtButton : uint8_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:70:6: error: enum 'ExtButton2' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   70 | enum ExtButton2 : uint8_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:75:6: error: enum 'Dpad' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   75 | enum Dpad : uint8_t {
      |      ^
/home/bazzite/vader5/src/config.cpp:41:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   41 |     if (const auto* val = tbl["mode"].as_string()) {
      |                              ^~~~~~~~
/home/bazzite/vader5/src/config.cpp:44:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   44 |     if (const auto* val = tbl["sensitivity"].as_floating_point()) {
      |                              ^~~~~~~~~~~~~~~
/home/bazzite/vader5/src/config.cpp:47:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   47 |     if (const auto* val = tbl["sensitivity_x"].as_floating_point()) {
      |                              ^~~~~~~~~~~~~~~~~
/home/bazzite/vader5/src/config.cpp:50:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   50 |     if (const auto* val = tbl["sensitivity_y"].as_floating_point()) {
      |                              ^~~~~~~~~~~~~~~~~
/home/bazzite/vader5/src/config.cpp:53:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   53 |     if (const auto* val = tbl["deadzone"].as_integer()) {
      |                              ^~~~~~~~~~~~
/home/bazzite/vader5/src/config.cpp:56:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   56 |     if (const auto* val = tbl["smoothing"].as_floating_point()) {
      |                              ^~~~~~~~~~~~~
/home/bazzite/vader5/src/config.cpp:59:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   59 |     if (const auto* val = tbl["curve"].as_floating_point()) {
      |                              ^~~~~~~~~
/home/bazzite/vader5/src/config.cpp:62:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   62 |     if (const auto* val = tbl["invert_x"].as_boolean()) {
      |                              ^~~~~~~~~~~~
/home/bazzite/vader5/src/config.cpp:65:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   65 |     if (const auto* val = tbl["invert_y"].as_boolean()) {
      |                              ^~~~~~~~~~~~
/home/bazzite/vader5/src/config.cpp:71:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   71 |     if (const auto* val = tbl["mode"].as_string()) {
      |                              ^~~~~~~~
/home/bazzite/vader5/src/config.cpp:74:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   74 |     if (const auto* val = tbl["deadzone"].as_integer()) {
      |                              ^~~~~~~~~~~~
/home/bazzite/vader5/src/config.cpp:77:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   77 |     if (const auto* val = tbl["sensitivity"].as_floating_point()) {
      |                              ^~~~~~~~~~~~~~~
/home/bazzite/vader5/src/config.cpp:83:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   83 |     if (const auto* val = tbl["mode"].as_string()) {
      |                              ^~~~~~~~
/home/bazzite/vader5/src/config.cpp:92:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   92 |     if (const auto* val = tbl["trigger"].as_string()) {
      |                              ^~~~~~~~~~~
/home/bazzite/vader5/src/config.cpp:95:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   95 |     if (const auto* val = tbl["tap"].as_string()) {
      |                              ^~~~~~~
/home/bazzite/vader5/src/config.cpp:98:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   98 |     if (const auto* val = tbl["hold_timeout"].as_integer()) {
      |                              ^~~~~~~~~~~~~~~~
/home/bazzite/vader5/src/config.cpp:101:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  101 |     if (const auto* val = tbl["activation"].as_string()) {
      |                              ^~~~~~~~~~~~~~
/home/bazzite/vader5/src/config.cpp:104:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  104 |     if (const auto* sub = tbl["gyro"].as_table()) {
      |                              ^~~~~~~~
/home/bazzite/vader5/src/config.cpp:109:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  109 |     if (const auto* sub = tbl["stick_left"].as_table()) {
      |                              ^~~~~~~~~~~~~~
/home/bazzite/vader5/src/config.cpp:114:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  114 |     if (const auto* sub = tbl["stick_right"].as_table()) {
      |                              ^~~~~~~~~~~~~~~
/home/bazzite/vader5/src/config.cpp:119:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  119 |     if (const auto* sub = tbl["dpad"].as_table()) {
      |                              ^~~~~~~~
/home/bazzite/vader5/src/config.cpp:124:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  124 |     if (const auto* sub = tbl["remap"].as_table()) {
      |                              ^~~~~~~~~
/home/bazzite/vader5/src/config.cpp:193:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  193 |     if (const auto* val = tbl["emulate_elite"].as_boolean()) {
      |                              ^~~~~~~~~~~~~~~~~
/home/bazzite/vader5/src/config.cpp:197:36: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  197 |     if (const auto* remap_tbl = tbl["remap"].as_table()) {
      |                                    ^~~~~~~~~
/home/bazzite/vader5/src/config.cpp:201:48: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  201 |                     if (key == EXT_BUTTON_NAMES[idx]) {
      |                                                ^~~~~
/home/bazzite/vader5/src/config.cpp:202:41: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  202 |                         cfg.ext_mappings[idx] = keycode_from_name(str->get());
      |                                         ^~~~~
/home/bazzite/vader5/src/config.cpp:213:35: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  213 |     if (const auto* gyro_tbl = tbl["gyro"].as_table()) {
      |                                   ^~~~~~~~
/home/bazzite/vader5/src/config.cpp:216:35: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  216 |     if (const auto* left_tbl = tbl["stick"]["left"].as_table()) {
      |                                   ^~~~~~~~~
/home/bazzite/vader5/src/config.cpp:216:44: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  216 |     if (const auto* left_tbl = tbl["stick"]["left"].as_table()) {
      |                                            ^~~~~~~~
/home/bazzite/vader5/src/config.cpp:219:36: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  219 |     if (const auto* right_tbl = tbl["stick"]["right"].as_table()) {
      |                                    ^~~~~~~~~
/home/bazzite/vader5/src/config.cpp:219:45: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  219 |     if (const auto* right_tbl = tbl["stick"]["right"].as_table()) {
      |                                             ^~~~~~~~~
/home/bazzite/vader5/src/config.cpp:222:35: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  222 |     if (const auto* dpad_tbl = tbl["dpad"].as_table()) {
      |                                   ^~~~~~~~
/home/bazzite/vader5/src/config.cpp:226:36: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  226 |     if (const auto* layer_tbl = tbl["layer"].as_table()) {
      |                                    ^~~~~~~~~
/home/bazzite/vader5/src/config.cpp:234:36: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  234 |     if (const auto* shift_tbl = tbl["mode_shift"].as_table()) {
      |                                    ^~~~~~~~~~~~~~
19632 warnings generated.
Suppressed 19566 warnings (19565 in non-user code, 1 NOLINT).
Use -header-filter=.* or leave it as default to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
67 warnings treated as errors
gmake[2]: *** [CMakeFiles/vader5d.dir/build.make:135: CMakeFiles/vader5d.dir/src/config.cpp.o] Error 1
[ 87%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/radiobox.cpp.o
[ 88%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/renderer.cpp.o
[ 89%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/resizable_split.cpp.o
[ 90%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/screen_interactive.cpp.o
[ 91%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/slider.cpp.o
[ 92%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/terminal_input_parser.cpp.o
[ 93%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/util.cpp.o
[ 94%] Building CXX object _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/window.cpp.o
/home/bazzite/vader5/include/vader5/config.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/config.hpp:14:10: error: enum 'Type' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:14:10: error: enum 'Type' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:14:17: error: invalid case style for enum constant 'Disabled' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                 ^~~~~~~~
      |                 DISABLED
/home/bazzite/vader5/include/vader5/config.hpp:14:27: error: invalid case style for enum constant 'Key' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                           ^~~
      |                           KEY
   15 |     Type type{Key};
      |               ~~~
      |               KEY
/home/bazzite/vader5/include/vader5/config.hpp:14:32: error: invalid case style for enum constant 'MouseButton' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                                ^~~~~~~~~~~
      |                                MOUSE_BUTTON
/home/bazzite/vader5/include/vader5/config.hpp:14:45: error: invalid case style for enum constant 'MouseMove' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                                             ^~~~~~~~~
      |                                             MOUSE_MOVE
/home/bazzite/vader5/include/vader5/config.hpp:14:56: error: invalid case style for enum constant 'GamepadButton' [readability-identifier-naming,-warnings-as-errors]
   14 |     enum Type { Disabled, Key, MouseButton, MouseMove, GamepadButton };
      |                                                        ^~~~~~~~~~~~~
      |                                                        GAMEPAD_BUTTON
/home/bazzite/vader5/include/vader5/config.hpp:22:10: error: enum 'Mode' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   22 |     enum Mode { Off, Mouse, Joystick };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:22:10: error: enum 'Mode' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:22:17: error: invalid case style for enum constant 'Off' [readability-identifier-naming,-warnings-as-errors]
   22 |     enum Mode { Off, Mouse, Joystick };
      |                 ^~~
      |                 OFF
   23 |     Mode mode{Off};
      |               ~~~
      |               OFF
/home/bazzite/vader5/include/vader5/config.hpp:22:22: error: invalid case style for enum constant 'Mouse' [readability-identifier-naming,-warnings-as-errors]
   22 |     enum Mode { Off, Mouse, Joystick };
      |                      ^~~~~
      |                      MOUSE
/home/bazzite/vader5/include/vader5/config.hpp:22:29: error: invalid case style for enum constant 'Joystick' [readability-identifier-naming,-warnings-as-errors]
   22 |     enum Mode { Off, Mouse, Joystick };
      |                             ^~~~~~~~
      |                             JOYSTICK
/home/bazzite/vader5/include/vader5/config.hpp:24:25: error: 1.5F is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors]
   24 |     float sensitivity_x{1.5F};
      |                         ^
/home/bazzite/vader5/include/vader5/config.hpp:25:25: error: 1.5F is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors]
   25 |     float sensitivity_y{1.5F};
      |                         ^
/home/bazzite/vader5/include/vader5/config.hpp:27:21: error: 0.3F is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors]
   27 |     float smoothing{0.3F};
      |                     ^
/home/bazzite/vader5/include/vader5/config.hpp:34:10: error: enum 'Mode' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   34 |     enum Mode { Gamepad, Mouse, Scroll };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:34:10: error: enum 'Mode' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:34:17: error: invalid case style for enum constant 'Gamepad' [readability-identifier-naming,-warnings-as-errors]
   34 |     enum Mode { Gamepad, Mouse, Scroll };
      |                 ^~~~~~~
      |                 GAMEPAD
   35 |     Mode mode{Gamepad};
      |               ~~~~~~~
      |               GAMEPAD
/home/bazzite/vader5/include/vader5/config.hpp:34:26: error: invalid case style for enum constant 'Mouse' [readability-identifier-naming,-warnings-as-errors]
   34 |     enum Mode { Gamepad, Mouse, Scroll };
      |                          ^~~~~
      |                          MOUSE
/home/bazzite/vader5/include/vader5/config.hpp:34:33: error: invalid case style for enum constant 'Scroll' [readability-identifier-naming,-warnings-as-errors]
   34 |     enum Mode { Gamepad, Mouse, Scroll };
      |                                 ^~~~~~
      |                                 SCROLL
/home/bazzite/vader5/include/vader5/config.hpp:41:10: error: enum 'Mode' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   41 |     enum Mode { Gamepad, Arrows };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:41:10: error: enum 'Mode' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:41:17: error: invalid case style for enum constant 'Gamepad' [readability-identifier-naming,-warnings-as-errors]
   41 |     enum Mode { Gamepad, Arrows };
      |                 ^~~~~~~
      |                 GAMEPAD
   42 |     Mode mode{Gamepad};
      |               ~~~~~~~
      |               GAMEPAD
/home/bazzite/vader5/include/vader5/config.hpp:41:26: error: invalid case style for enum constant 'Arrows' [readability-identifier-naming,-warnings-as-errors]
   41 |     enum Mode { Gamepad, Arrows };
      |                          ^~~~~~
      |                          ARROWS
/home/bazzite/vader5/include/vader5/config.hpp:46:10: error: enum 'Activation' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   46 |     enum Activation { Hold, Toggle };
      |          ^
/home/bazzite/vader5/include/vader5/config.hpp:46:10: error: enum 'Activation' uses a larger base type ('unsigned int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size [performance-enum-size,-warnings-as-errors]
/home/bazzite/vader5/include/vader5/config.hpp:46:23: error: invalid case style for enum constant 'Hold' [readability-identifier-naming,-warnings-as-errors]
   46 |     enum Activation { Hold, Toggle };
      |                       ^~~~
      |                       HOLD
   47 |     std::string name;
   48 |     std::string trigger;
   49 |     std::optional<RemapTarget> tap;
   50 |     int hold_timeout{200};
   51 |     Activation activation{Hold};
      |                           ~~~~
      |                           HOLD
/home/bazzite/vader5/include/vader5/config.hpp:46:29: error: invalid case style for enum constant 'Toggle' [readability-identifier-naming,-warnings-as-errors]
   46 |     enum Activation { Hold, Toggle };
      |                             ^~~~~~
      |                             TOGGLE
/home/bazzite/vader5/include/vader5/debug.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/gamepad.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/hidraw.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/protocol.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/protocol.hpp:23:55: error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors]
   23 |     return static_cast<int16_t>(static_cast<uint16_t>(data[0]) |
      |                                                       ^
/home/bazzite/vader5/include/vader5/protocol.hpp:24:56: error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors]
   24 |                                 (static_cast<uint16_t>(data[1]) << 8));
      |                                                        ^
/home/bazzite/vader5/include/vader5/protocol.hpp:28:20: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   28 |     return DPAD_MAP[b11 & 0x0F];
      |                    ^~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:28:27: error: 0x0F is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors]
   28 |     return DPAD_MAP[b11 & 0x0F];
      |                           ^
/home/bazzite/vader5/include/vader5/protocol.hpp:59:28: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   59 |     if ((b11 & B11_A) != 0)
      |                            ^
      |                             {
   60 |         btns |= PAD_A;
      |                       
/home/bazzite/vader5/include/vader5/protocol.hpp:61:28: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   61 |     if ((b11 & B11_B) != 0)
      |                            ^
      |                             {
   62 |         btns |= PAD_B;
      |                       
/home/bazzite/vader5/include/vader5/protocol.hpp:63:28: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   63 |     if ((b11 & B11_X) != 0)
      |                            ^
      |                             {
   64 |         btns |= PAD_X;
      |                       
/home/bazzite/vader5/include/vader5/protocol.hpp:65:28: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   65 |     if ((b12 & B12_Y) != 0)
      |                            ^
      |                             {
   66 |         btns |= PAD_Y;
      |                       
/home/bazzite/vader5/include/vader5/protocol.hpp:67:29: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   67 |     if ((b12 & B12_LB) != 0)
      |                             ^
      |                              {
   68 |         btns |= PAD_LB;
      |                        
/home/bazzite/vader5/include/vader5/protocol.hpp:69:29: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   69 |     if ((b12 & B12_RB) != 0)
      |                             ^
      |                              {
   70 |         btns |= PAD_RB;
      |                        
/home/bazzite/vader5/include/vader5/protocol.hpp:71:33: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   71 |     if ((b11 & B11_SELECT) != 0)
      |                                 ^
      |                                  {
   72 |         btns |= PAD_SELECT;
      |                            
/home/bazzite/vader5/include/vader5/protocol.hpp:73:32: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   73 |     if ((b12 & B12_START) != 0)
      |                                ^
      |                                 {
   74 |         btns |= PAD_START;
      |                           
/home/bazzite/vader5/include/vader5/protocol.hpp:75:29: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   75 |     if ((b12 & B12_L3) != 0)
      |                             ^
      |                              {
   76 |         btns |= PAD_L3;
      |                        
/home/bazzite/vader5/include/vader5/protocol.hpp:77:29: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   77 |     if ((b12 & B12_R3) != 0)
      |                             ^
      |                              {
   78 |         btns |= PAD_R3;
      |                        
/home/bazzite/vader5/include/vader5/protocol.hpp:83:32: error: statement should be inside braces [google-readability-braces-around-statements,hicpp-braces-around-statements,readability-braces-around-statements,-warnings-as-errors]
   83 |     if (data.size() < MIN_SIZE)
      |                                ^
      |                                 {
   84 |         return std::nullopt;
      |                             
/home/bazzite/vader5/include/vader5/protocol.hpp:85:13: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   85 |     if (data[0] != MAGIC_5A || data[1] != MAGIC_A5 || data[2] != MAGIC_EF) {
      |             ^~~
/home/bazzite/vader5/include/vader5/protocol.hpp:85:36: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   85 |     if (data[0] != MAGIC_5A || data[1] != MAGIC_A5 || data[2] != MAGIC_EF) {
      |                                    ^~~
/home/bazzite/vader5/include/vader5/protocol.hpp:85:59: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   85 |     if (data[0] != MAGIC_5A || data[1] != MAGIC_A5 || data[2] != MAGIC_EF) {
      |                                                           ^~~
/home/bazzite/vader5/include/vader5/protocol.hpp:90:34: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   90 |     state.left_x = read_s16(&data[OFF_LX]);
      |                                  ^~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:91:84: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   91 |     state.left_y = static_cast<int16_t>(std::clamp(-static_cast<int>(read_s16(&data[OFF_LX + 2])), -32767, 32767));
      |                                                                                    ^~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:91:101: error: 32767 is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors]
   91 |     state.left_y = static_cast<int16_t>(std::clamp(-static_cast<int>(read_s16(&data[OFF_LX + 2])), -32767, 32767));
      |                                                                                                     ^
/home/bazzite/vader5/include/vader5/protocol.hpp:91:108: error: 32767 is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors]
   91 |     state.left_y = static_cast<int16_t>(std::clamp(-static_cast<int>(read_s16(&data[OFF_LX + 2])), -32767, 32767));
      |                                                                                                            ^
/home/bazzite/vader5/include/vader5/protocol.hpp:92:35: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   92 |     state.right_x = read_s16(&data[OFF_LX + 4]);
      |                                   ^~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:93:85: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   93 |     state.right_y = static_cast<int16_t>(std::clamp(-static_cast<int>(read_s16(&data[OFF_LX + 6])), -32767, 32767));
      |                                                                                     ^~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:93:102: error: 32767 is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors]
   93 |     state.right_y = static_cast<int16_t>(std::clamp(-static_cast<int>(read_s16(&data[OFF_LX + 6])), -32767, 32767));
      |                                                                                                      ^
/home/bazzite/vader5/include/vader5/protocol.hpp:93:109: error: 32767 is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors]
   93 |     state.right_y = static_cast<int16_t>(std::clamp(-static_cast<int>(read_s16(&data[OFF_LX + 6])), -32767, 32767));
      |                                                                                                             ^
/home/bazzite/vader5/include/vader5/protocol.hpp:95:29: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   95 |     const uint8_t b11 = data[OFF_BTNS];
      |                             ^~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:96:29: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   96 |     const uint8_t b12 = data[OFF_BTNS + 1];
      |                             ^~~~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:99:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
   99 |     state.left_trigger = data[OFF_LT];
      |                              ^~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:100:31: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  100 |     state.right_trigger = data[OFF_RT];
      |                               ^~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:101:29: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  101 |     state.ext_buttons = data[OFF_EXT1];
      |                             ^~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:102:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  102 |     state.ext_buttons2 = data[OFF_EXT2];
      |                              ^~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:105:38: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  105 |         state.gyro_x = read_s16(&data[OFF_GYRO]);
      |                                      ^~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:106:38: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  106 |         state.gyro_y = read_s16(&data[OFF_GYRO + 2]);
      |                                      ^~~~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:107:38: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  107 |         state.gyro_z = read_s16(&data[OFF_GYRO + 4]);
      |                                      ^~~~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:108:39: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  108 |         state.accel_x = read_s16(&data[OFF_ACCEL]);
      |                                       ^~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:109:39: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  109 |         state.accel_y = read_s16(&data[OFF_ACCEL + 2]);
      |                                       ^~~~~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/protocol.hpp:110:39: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors]
  110 |         state.accel_z = read_s16(&data[OFF_ACCEL + 4]);
      |                                       ^~~~~~~~~~~~~~~
/home/bazzite/vader5/include/vader5/types.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/types.hpp:43:6: error: enum 'Button' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   43 | enum Button : uint16_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:58:6: error: enum 'ExtButton' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   58 | enum ExtButton : uint8_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:70:6: error: enum 'ExtButton2' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   70 | enum ExtButton2 : uint8_t {
      |      ^
/home/bazzite/vader5/include/vader5/types.hpp:75:6: error: enum 'Dpad' is unscoped, use 'enum class' instead [cppcoreguidelines-use-enum-class,-warnings-as-errors]
   75 | enum Dpad : uint8_t {
      |      ^
/home/bazzite/vader5/include/vader5/uinput.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
/home/bazzite/vader5/include/vader5/uinput.hpp:44:44: error: initializer for member 'events_buffer_' is redundant [readability-redundant-member-init,-warnings-as-errors]
   44 |     std::vector<input_event> events_buffer_{};
      |                                            ^~
/home/bazzite/vader5/include/vader5/uinput.hpp:71:44: error: initializer for member 'events_buffer_' is redundant [readability-redundant-member-init,-warnings-as-errors]
   71 |     std::vector<input_event> events_buffer_{};
      |                                            ^~
22528 warnings generated.
Suppressed 22414 warnings (22413 in non-user code, 1 NOLINT).
Use -header-filter=.* or leave it as default to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
79 warnings treated as errors
gmake[2]: *** [CMakeFiles/vader5d.dir/build.make:121: CMakeFiles/vader5d.dir/src/gamepad.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:195: CMakeFiles/vader5d.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
[ 95%] Linking CXX static library libftxui-component.a
[ 95%] Built target component
gmake: *** [Makefile:156: all] Error 2
==> Build complete
==> Installing udev rules (requires sudo)...
==> udev rules installed
==> Config already exists at /home/bazzite/.config/vader5/config.toml
==> Installing binaries to /usr/local/bin (requires sudo)...
install: cannot stat '/home/bazzite/vader5/build/vader5d': No such file or directory
install: cannot stat '/home/bazzite/vader5/build/vader5-debug': No such file or directory
==> Binaries installed
==> Installing systemd service (requires sudo)...
==> systemd service installed

@BANANASJIM
Copy link
Copy Markdown
Owner

The build failure has been fixed in #26 (replaced std::format for GCC 12 compat + added Debian 12 CI job). The clang-tidy default change isn't needed since find_program already skips gracefully when it's not installed.

@BANANASJIM BANANASJIM closed this Mar 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants