FTXUI 安装

本篇文章主要讲解 FTXUI 框架所支持的构建系统与包管理器的集成方式

FTXUI 可以使用多种构建系统和包管理器集成到您的项目中

所支持的方式

CMake

使用 CMake 的三种集成 FTXUI 方式

使用 FetchContent

这种方式会在编译时自动下载 FTXUI,不需要在系统上安装

include(FetchContent)
 
FetchContent_Declare(ftxui
  GIT_REPOSITORY https://github.com/ArthurSonzogni/FTXUI
  GIT_TAG v6.1.9  # Replace with a version, tag, or commit hash
)
 
FetchContent_MakeAvailable(ftxui)
 
add_executable(main main.cpp)
target_link_libraries(main
  PRIVATE ftxui::screen
  PRIVATE ftxui::dom
  PRIVATE ftxui::component
)

使用 find_package

如果 FTXUI 已系统上安装或通过包管理器(例如 VcPkg 或 Conan)安装,您可以使用此方式

find_package(ftxui REQUIRED)
 
add_executable(main main.cpp)
target_link_libraries(main
  PRIVATE ftxui::screen
  PRIVATE ftxui::dom
  PRIVATE ftxui::component
)

使用 git submodule

将 FTXUI 添加为 Git 子模块,使其成为您仓库的一部分

git submodule add https://github.com/ArthurSonzogni/FTXUI external/ftxui
git submodule update --init --recursive

当克隆一个已经包含 FTXUI 作为子模块的仓库时,请确保使用以下命令获取子模块

git clone --recurse-submodules <your-repo>
# Or, if already cloned:
git submodule update --init --recursive

然后在您的 CMakeLists.txt 中添加

add_subdirectory(external/ftxui)
 
add_executable(main main.cpp)
target_link_libraries(main
  PRIVATE ftxui::screen
  PRIVATE ftxui::dom
  PRIVATE ftxui::component
)

可选 CMake 选项

FTXUI 支持以下 CMake 选项

选项描述默认
FTXUI_BUILD_EXAMPLES构建捆绑示例OFF
FTXUI_BUILD_DOCS构建文档OFF
FTXUI_BUILD_TESTS启用测试OFF
FTXUI_ENABLE_INSTALL生成安装目标OFF
FTXUI_MICROSOFT_TERMINAL_FALLBACK改进 Windows 兼容性ON/OFF

如果要启用一个选项:

cmake -DFTXUI_BUILD_EXAMPLES=ON ..

Bazel

FTXUI 可以使用 Bazel 和 BzlMod 集成到您的项目中,该库已在 Bazel Central Registry 中注册

MODULE.Bzael

bazel_dep(name = "ftxui", version = "6.1.9")

BUILD.Bazel

cc_binary(
    name = "main",
    srcs = ["main.cpp"],
    deps = [
        "@ftxui//:component",
        "@ftxui//:dom",
        "@ftxui//:screen",
    ],
)

VcPkg

要在 VcPkg 中使用 FTXUI 库,你可以将以下内容稍作修改后添加到你的 VcPkg.Json 中:

{
  "name": "your-project",
  "version-string": "0.1.0",
  "dependencies": [
    {
        "name": "ftxui",
        "version>=": "6.1.9"
    }
  ]
}

使用 VcPkg 安装 FTXUI

vcpkg install --triplet x64-linux  # 或 x64-windows / arm64-osx 等.

配置构建系统

如果您正在使用 CMake,您可以在 CMakeLists.txt 中使用以下内容:

CMakeLists.txt

cmake_minimum_required(VERSION 3.15)
project(my_project)
 
# Make sure vcpkg toolchain file is passed at configure time
find_package(ftxui CONFIG REQUIRED)
 
add_executable(main main.cpp)
target_link_libraries(main
    PRIVATE ftxui::screen
    PRIVATE ftxui::dom
    PRIVATE ftxui::component
)

Main.CPP

#include <ftxui/component/screen_interactive.hpp>
#include <ftxui/component/component.hpp>
#include <ftxui/component/component_options.hpp>
 
int main() {
  using namespace ftxui;
 
  auto screen = ScreenInteractive::TerminalOutput();
  auto button = Button("Click me", [] { std::cout << "Clicked!\n"; });
 
  screen.Loop(button);
}

配置并构建项目

cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build build
./build/main

Debian/Ubuntu

在终端中使用以下命令进行安装

sudo apt-get install libftxui-dev

安装后可将以下内容添加到 CMakeLists.txt 中:

find_package(ftxui REQUIRED)
add_executable(main main.cpp)
target_link_libraries(main
  PRIVATE ftxui::screen
  PRIVATE ftxui::dom
  PRIVATE ftxui::component
)
本站文章均为原创 转载请标注文章来源
使用 Hugo 构建
主题 StackJimmy 设计
本博客已稳定运行
发表了16篇文章 · 总计6.97k字