2.4 KiB
2.4 KiB
Instructions de build
Prérequis
- OS : Linux (testé sur distributions récentes)
- Compilateur : Clang (recommandé) ou GCC
- Système de build : Meson + Ninja
- Dépendances : ncursesw (ncurses avec support Unicode)
- Langage : C17
Installation des dépendances
# Debian / Ubuntu
sudo apt install clang meson ninja-build libncursesw5-dev pkg-config
# Fedora
sudo dnf install clang meson ninja-build ncurses-devel pkg-config
# Arch
sudo pacman -S clang meson ninja ncurses pkgconf
Build standard
CC=clang meson setup build --wipe
meson compile -C build -j8
Options utiles
# Build de debug (défaut)
meson setup build --wipe
# Build de release
meson setup build --wipe --buildtype=release
# Build avec optimisations aggressive
meson setup build --wipe --buildtype=release -Db_lto=true
Validation
# Tests unitaires
meson test -C build --print-errorlogs
# Vérification du style (whitespace)
git diff --check
Build ASan/UBSan (debug mémoire)
À exécuter pour tout ticket touchant la mémoire, les durées de vie ou les allocations :
meson setup build-asan --wipe \
-Db_sanitize=address,undefined \
-Db_static=false
meson compile -C build-asan -j8
meson test -C build-asan --print-errorlogs
Build TSan (concurrence)
À exécuter pour tout ticket touchant la concurrence (pthread, mutex, variables de condition, états partagés) :
meson setup build-tsan --wipe \
-Db_sanitize=thread \
-Db_static=false
meson compile -C build-tsan -j8
meson test -C build-tsan --print-errorlogs
Variables d'environnement
| Variable | Description |
|---|---|
CC |
Compilateur C (défaut : gcc) |
CFLAGS |
Drapeaux de compilation supplémentaires |
LDFLAGS |
Drapeaux de liaison supplémentaires |
Structure du build
build/
├── src/ # objets et binaires
├── tests/ # binaires de tests
└── compile_commands.json # pour LSP / clangd
Dépannage
Erreur : ncursesw introuvable
# Vérifier l'installation
pkg-config --libs ncursesw
# Si absent, installer le paquet de développement ncursesw
Erreur : clang introuvable
# Utiliser gcc en alternative
meson setup build --wipe
# ou installer clang
sudo apt install clang
Build lent
# Réduire la parallélisation
meson compile -C build -j4
# ou utiliser ccache
CC="ccache clang" meson setup build --wipe