- ftxui v6.1.9 fetched at configure time; vendored .a + headers dropped. - TUI: visualisation area on top, input prompt at the bottom; ↑/↓ history, Tab completion (commands + file paths), Esc cancels prompts. History is persisted (XDG on Linux, %LOCALAPPDATA% on Windows when ported). - Command registry: `new`, `load`, `search`, `clear`, `help`, `quit`/`exit`. Inline params or interactive prompts; either way the canonical inline form is what gets stored in history. - `search`: second full-screen mode with module + parts/signals menus and a live-filtered list; Tab cycles focus, Esc returns to the main shell. - Domain: `System::modules()` accessor + `SystemElementContainer::size()` to support load summary + search. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
38 lines
807 B
CMake
38 lines
807 B
CMake
cmake_minimum_required(VERSION 3.14)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
project(essim
|
|
LANGUAGES CXX
|
|
VERSION 0.1
|
|
DESCRIPTION "System digital twin."
|
|
)
|
|
|
|
include(FetchContent)
|
|
|
|
set(FTXUI_BUILD_DOCS OFF CACHE INTERNAL "")
|
|
set(FTXUI_BUILD_EXAMPLES OFF CACHE INTERNAL "")
|
|
set(FTXUI_BUILD_TESTS OFF CACHE INTERNAL "")
|
|
set(FTXUI_ENABLE_INSTALL OFF CACHE INTERNAL "")
|
|
|
|
FetchContent_Declare(ftxui
|
|
GIT_REPOSITORY https://github.com/ArthurSonzogni/FTXUI.git
|
|
GIT_TAG v6.1.9
|
|
GIT_SHALLOW TRUE
|
|
)
|
|
FetchContent_MakeAvailable(ftxui)
|
|
|
|
file(GLOB_RECURSE ALL_SOURCES "src/*.cpp")
|
|
|
|
add_executable(essim ${ALL_SOURCES})
|
|
|
|
target_include_directories(essim PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
|
|
|
target_link_libraries(essim
|
|
PRIVATE
|
|
ftxui::screen
|
|
ftxui::dom
|
|
ftxui::component
|
|
)
|