FTXUI supporte Meson comme système de build alternatif.
Prérequis
- Un compilateur compatible C++17 (GCC >= 7, Clang >= 5, MSVC >= 2017)
- Meson >= 1.1.0
- Ninja (backend recommandé)
Démarrage rapide
# Configure (library only)
meson setup builddir
# Build
ninja -C builddir
# Install
ninja -C builddir install
Options de build
| Option | Défaut | Description |
examples | false | Compiler les exemples d'applications |
tests | false | Compiler et exécuter les tests |
Compiler avec les exemples
meson setup builddir -Dexamples=true
ninja -C builddir
Compiler avec les tests
meson setup builddir -Dtests=true
ninja -C builddir
meson test -C builddir
Tout compiler
meson setup builddir -Dexamples=true -Dtests=true
ninja -C builddir
meson test -C builddir
Dépendances
Google Test (tests uniquement)
Lorsque les tests sont activés, FTXUI dépend de Google Test (v1.17.0).
La résolution de la dépendance suit la même stratégie que le build CMake :
- gtest installé sur le système : Si
gtest est disponible via pkg-config ou les chemins système, il sera utilisé directement.
- Téléchargement automatique (solution de repli) : S'il n'est pas trouvé sur le système, Meson téléchargera automatiquement gtest v1.17.0 via le WrapDB en utilisant le fichier
subprojects/gtest.wrap.
Aucune intervention manuelle n'est nécessaire — Meson gère cela de manière transparente.
Cibles de la bibliothèque
Le build produit trois bibliothèques :
| Bibliothèque | Description |
libftxui-screen | Rendu terminal et entrées |
libftxui-dom | Éléments de mise en page et de style |
libftxui-component | Composants d'interface interactifs |
Dépendances entre elles :
Utiliser FTXUI comme sous-projet Meson
Pour utiliser FTXUI dans votre propre projet Meson, créez un fichier wrap à subprojects/ftxui.wrap :
[wrap-git]
url = https://github.com/ArthurSonzogni/FTXUI.git
revision = v7.0.3
[provide]
ftxui-screen = ftxui_screen_dep
ftxui-dom = ftxui_dom_dep
ftxui-component = ftxui_component_dep
Puis dans votre meson.build :
ftxui_component_dep = dependency('ftxui-component',
fallback: ['ftxui', 'ftxui_component_dep'],
)
executable('my_app',
'main.cpp',
dependencies: ftxui_component_dep,
)
Reconfiguration
Pour changer les options après la configuration initiale :
meson configure builddir -Dtests=true
ninja -C builddir
Build propre
rm -rf builddir
meson setup builddir