- Avertissement
- Cette fonctionnalité est encore en développement, et l'API pourrait changer dans les futures versions. Votre contribution est nécessaire pour nous aider à améliorer la compatibilité et l'utilisabilité des modules C++ dans FTXUI. Si vous rencontrez des problèmes ou avez des suggestions, veuillez ouvrir une issue.
FTXUI prend en charge expérimentalement les modules C++20 pour réduire les temps de compilation et améliorer l'organisation du code. Chaque partie de la bibliothèque a un module correspondant, divisé en partitions par chaque en-tête.
Utilisez l'option FTXUI_BUILD_MODULES pour compiler le projet FTXUI lui-même afin de fournir des modules C++20, par exemple avec CMake et Ninja :
cmake \
-DCMAKE_GENERATOR=Ninja \
-DFTXUI_BUILD_MODULES=ON \
..
ninja
- Note
- Pour utiliser les modules, vous avez besoin d'un compilateur compatible C++≥20, de CMake version 3.20 ou supérieure, et d'utiliser un générateur compatible comme Ninja. Notez que les générateurs Makefile ne supportent pas les modules.
Ensuite, dans votre propre code, vous pouvez consommer les modules et le code comme d'habitude :
using ftxui::Button;
auto screen = ScreenInteractive::TerminalOutput();
auto button = Button(
"Click me",
screen.QuitClosure());
return 0;
}
ScreenInteractive est un Screen qui peut gérer les événements, exécuter une boucle principale et gére...
Fichier de module ré-exportant tous les sous-modules FTXUI.
Notez le module de commodité ftxui qui rassemble simplement tous les modules :
Fichier module pour les opérations des composants FTXUI.
Fichier module pour les opérations DOM de FTXUI.
Fichier module pour les opérations d'écran FTXUI.
Fichier de module pour les opérations utilitaires de FTXUI.
Vous pouvez importer uniquement le ou les modules dont vous avez besoin si vous le souhaitez.
Pour trouver et lier correctement les modules avec CMake, utilisez target_link_libraries pour obtenir les bons flags de compilateur, linker, etc.
target_link_libraries(my_executable
#...whatever...
PRIVATE ftxui::modules
)
Liste des modules
Les modules référencent directement l'en-tête correspondant, ou un groupe d'en-têtes liés pour fournir une interface plus pratique. Les modules suivants sont disponibles :