fwt_software/cmake/Ftxui.cmake

32 lines
1.3 KiB
CMake

# Ftxui.cmake - provide FTXUI (https://github.com/ArthurSonzogni/FTXUI) via
# FetchContent, mirroring cmake/Paho.cmake. FTXUI powers the optional terminal
# dashboard (TuiUi); headless builds (-DWITH_TUI=OFF) never fetch it.
#
# HARDENING (recommended): the tag below is a mutable ref. For maximum integrity
# pin FTXUI_TAG to a full commit SHA (immutable), or switch to URL + URL_HASH
# (SHA256) of the signed release tarball and verify out-of-band. Bump the version
# deliberately, not silently.
include(FetchContent)
set(FTXUI_TAG "v5.0.0" CACHE STRING "FTXUI git tag/commit")
# Keep the dependency lean: we only need the libraries, not its examples/docs/tests.
set(FTXUI_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
set(FTXUI_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(FTXUI_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(FTXUI_ENABLE_INSTALL OFF CACHE BOOL "" FORCE)
# FTXUI's bundled CMakeLists declares a cmake_minimum_required below CMake 4's
# floor; allow it to configure under modern CMake (same shim used for Paho/doctest).
set(CMAKE_POLICY_VERSION_MINIMUM 3.5)
FetchContent_Declare(ftxui
GIT_REPOSITORY https://github.com/ArthurSonzogni/FTXUI.git
GIT_TAG ${FTXUI_TAG}
GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(ftxui)
unset(CMAKE_POLICY_VERSION_MINIMUM)