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
建置選項
| Option | Default | Description |
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 建置相同:
- **系統已安裝的 gtest**:如果透過
pkg-config 或系統路徑可以取得 gtest,就會直接使用它。
- **自動下載(後備方案)**:如果系統上找不到,Meson 會透過 WrapDB 使用
subprojects/gtest.wrap 檔案自動下載 gtest v1.17.0。
不需要任何手動介入——Meson 會透明地處理這件事。
函式庫目標
建置會產生三個函式庫:
| Library | Description |
libftxui-screen | 終端機渲染與輸入 |
libftxui-dom | 版面配置與樣式元素 |
libftxui-component | 互動式 UI 元件 |
它們之間的相依關係:
將 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