FTXUI 7.0.3
C++ functional terminal UI.
Loading...
Searching...
No Matches
Meson

FTXUIは代替のビルドシステムとしてMesonをサポートしています。

前提条件

  • C++17対応コンパイラ(GCC >= 7、Clang >= 5、MSVC >= 2017)
  • Meson >= 1.1.0
  • Ninja(推奨バックエンド)

クイックスタート

# Configure (library only)
meson setup builddir
# Build
ninja -C builddir
# Install
ninja -C builddir install

ビルドオプション

オプション デフォルト 説明
examples false サンプルアプリケーションをビルドする
tests false テストをビルドして実行する

サンプルを含めてビルドする

meson setup builddir -Dexamples=true
ninja -C builddir

テストを含めてビルドする

meson setup builddir -Dtests=true
ninja -C builddir
meson test -C builddir

すべてをビルドする

meson setup builddir -Dexamples=true -Dtests=true
ninja -C builddir
meson test -C builddir

依存関係

Google Test(テストのみ)

テストが有効な場合、FTXUIはGoogle Test(v1.17.0)に依存します。

依存関係の解決はCMakeビルドと同じ戦略に従います:

  1. システムにインストールされたgtest: gtestがpkg-configやシステムパス経由で利用可能な場合、それが直接使用されます。
  2. 自動ダウンロード(フォールバック): システム上に見つからない場合、Mesonはsubprojects/gtest.wrapファイルを使用してWrapDB経由でgtest v1.17.0を自動的にダウンロードします。

手動での操作は不要です — Mesonがこれを透過的に処理します。

ライブラリターゲット

このビルドは3つのライブラリを生成します:

ライブラリ 説明
libftxui-screen ターミナルの描画と入力
libftxui-dom レイアウトとスタイリング要素
libftxui-component インタラクティブなUIコンポーネント

それらの間の依存関係:

component → dom → screen

FTXUIをMesonサブプロジェクトとして使用する

自分のMesonプロジェクトでFTXUIを使用するには、subprojects/ftxui.wrapに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

次に、あなたのmeson.buildで:

ftxui_component_dep = dependency('ftxui-component',
fallback: ['ftxui', 'ftxui_component_dep'],
)
executable('my_app',
'main.cpp',
dependencies: ftxui_component_dep,
)

再設定

初期設定後にオプションを変更するには:

meson configure builddir -Dtests=true
ninja -C builddir

クリーンビルド

rm -rf builddir
meson setup builddir