godot/misc/hooks
Rémi Verschelde ad7710ae5e
Dynamically load libudev.so.1 on Linux if `udev=yes`
This makes it possibly to run Linux binaries compiled with udev support on
Linux systems which do not provide udev (typically systemd-less distros).

If udev is missing, we fall back to parsing `/dev/input` like when compiled
without udev support (`udev=no`).

Also adding some verbose debug statements to know which method we're using
when debugging Linux joypad issues.

The libudev so wrappers were generated on Mageia 8 with libudev 246.9 using
https://github.com/hpvb/dynload-wrapper:
```
./generate-wrapper.py --include /usr/include/libudev.h --sys-include '<libudev.h>' \
  --soname libudev.so.1 --init-name libudev --omit-prefix gnu_ \
  --output-header libudev-so_wrap.h --output-implementation libudev-so_wrap.c
```

(cherry picked from commits a10c259c1d
and e26a1f807b)

Edit: Updated to version 0.2 of dynload-wrapper to fix symbols clobbering as
done in #46143.
2021-02-18 10:31:31 +01:00
..
README.md
canonicalize_filename.sh
pre-commit
pre-commit-black Git Hooks: Suppress "which" error messages. 2020-06-10 15:33:27 +02:00
pre-commit-clang-format Dynamically load libudev.so.1 on Linux if `udev=yes` 2021-02-18 10:31:31 +01:00
pre-commit-makerst
winmessage.ps1 Cleanup: Remove executable bit from files which don't need it 2021-01-26 17:00:15 +01:00

README.md

Git hooks for Godot Engine

This folder contains Git hooks meant to be installed locally by Godot Engine contributors to make sure they comply with our requirements.

List of hooks

  • Pre-commit hook for clang-format: Applies clang-format to the staged files before accepting a commit; blocks the commit and generates a patch if the style is not respected. You may need to edit the file if your clang-format binary is not in the PATH, or if you want to enable colored output with pygmentize.
  • Pre-commit hook for black: Applies black to the staged Python files before accepting a commit.
  • Pre-commit hook for makerst: Checks the class reference syntax using makerst.py.

Installation

Copy all the files from this folder into your .git/hooks folder, and make sure the hooks and helper scripts are executable.

Linux/MacOS

The hooks rely on bash scripts and tools which should be in the system PATH, so they should work out of the box on Linux/macOS.

Windows

clang-format
black
  • Python installation: make sure Python is added to the PATH
  • Install black - in any console: pip3 install black