diff --git a/CMakeLists.txt b/CMakeLists.txt index 714ada0..3efe459 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,7 @@ project(fire_gimbal_control LANGUAGES C CXX) # --------------------------------------------------------------------------- option(WITH_VIMBA "Build with Allied Vision Vimba X camera support" ON) option(WITH_MQTT "Build with Eclipse Paho MQTT support" ON) +option(WITH_TUI "Build the terminal UI dashboard (FTXUI)" ON) option(BUILD_TESTING "Build unit tests" OFF) set(CMAKE_CXX_STANDARD 17) @@ -49,6 +50,8 @@ add_library(fgc_core STATIC src/core/TelemetryParser.cpp src/core/CaptureScheduler.cpp src/core/CommandParser.cpp + src/ui/UiSnapshot.cpp + src/ui/HeadlessUi.cpp ini.c ) target_include_directories(fgc_core PUBLIC @@ -112,6 +115,21 @@ else() message(STATUS "WITH_VIMBA=OFF: building without Vimba X camera support (mock cameras only)") endif() +# --------------------------------------------------------------------------- +# Optional: terminal UI (FTXUI). The TuiUi source and the FTXUI link are added +# only when ON; the SDK-independent core (HeadlessUi, UiSnapshot) is unaffected, +# so a headless build needs no extra dependency. +# --------------------------------------------------------------------------- +if(WITH_TUI) + include(cmake/Ftxui.cmake) + target_sources(fire_gimbal_control PRIVATE src/ui/TuiUi.cpp) + target_link_libraries(fire_gimbal_control PRIVATE ftxui::component ftxui::dom ftxui::screen) + target_compile_definitions(fire_gimbal_control PRIVATE FGC_WITH_TUI=1) +else() + target_compile_definitions(fire_gimbal_control PRIVATE FGC_WITH_TUI=0) + message(STATUS "WITH_TUI=OFF: building without the terminal dashboard (headless console only)") +endif() + # --------------------------------------------------------------------------- # Tests # --------------------------------------------------------------------------- @@ -128,5 +146,6 @@ message(STATUS "fire_gimbal_control configuration") message(STATUS " build type : ${CMAKE_BUILD_TYPE}") message(STATUS " WITH_VIMBA : ${WITH_VIMBA}") message(STATUS " WITH_MQTT : ${WITH_MQTT}") +message(STATUS " WITH_TUI : ${WITH_TUI}") message(STATUS " tests : ${BUILD_TESTING}") message(STATUS "------------------------------------------------------------") diff --git a/README.md b/README.md index 480e895..c91b695 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,9 @@ scripts/run.sh --init --start # find endstops first # Development, no hardware or broker: scripts/run.sh --mock-serial --mock-camera --no-mqtt --start --log-level debug + +# Same, but with the full-screen terminal dashboard: +scripts/run.sh --tui --mock-serial --mock-camera --no-mqtt ``` `run.sh` resolves the binary relative to the repo, so it works from any checkout; extra args are forwarded to @@ -80,6 +83,7 @@ cp config/config.example.ini config.ini # then edit | `--no-mqtt` | Disable MQTT; use a null control channel (overrides `enable_mqtt`). | | `--mock-camera` | Use a simulated camera — no Vimba hardware needed. | | `--mock-serial` | Use a simulated motor controller — no serial hardware needed. | +| `--tui` / `--no-tui` | Show the full-screen terminal dashboard / force the headless console (overrides `[UI] enable_tui`). | | `--log-level ` | `trace`, `debug`, `info`, `warn`, `error`, or `off`. | | `--trace ` | Verbatim wire tracing; comma list of `serial,mqtt,camera,control,all,none`. | | `-h, --help` | Print options and exit. | diff --git a/build-notui/CTestTestfile.cmake b/build-notui/CTestTestfile.cmake new file mode 100644 index 0000000..b9f4d6d --- /dev/null +++ b/build-notui/CTestTestfile.cmake @@ -0,0 +1,7 @@ +# CMake generated Testfile for +# Source directory: /home/pedro/code/fwt_2a/software +# Build directory: /home/pedro/code/fwt_2a/software/build-notui +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. +subdirs("tests") diff --git a/build-notui/Makefile b/build-notui/Makefile new file mode 100644 index 0000000..d36dfc6 --- /dev/null +++ b/build-notui/Makefile @@ -0,0 +1,688 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 4.3 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pedro/code/fwt_2a/software + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pedro/code/fwt_2a/software/build-notui + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running tests..." + /usr/bin/ctest $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..." + /usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-notui/CMakeFiles /home/pedro/code/fwt_2a/software/build-notui//CMakeFiles/progress.marks + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-notui/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named fgc_core + +# Build rule for target. +fgc_core: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 fgc_core +.PHONY : fgc_core + +# fast build rule for target. +fgc_core/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/build +.PHONY : fgc_core/fast + +#============================================================================= +# Target rules for targets named fire_gimbal_control + +# Build rule for target. +fire_gimbal_control: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 fire_gimbal_control +.PHONY : fire_gimbal_control + +# fast build rule for target. +fire_gimbal_control/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/build +.PHONY : fire_gimbal_control/fast + +#============================================================================= +# Target rules for targets named fgc_tests + +# Build rule for target. +fgc_tests: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 fgc_tests +.PHONY : fgc_tests + +# fast build rule for target. +fgc_tests/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/build +.PHONY : fgc_tests/fast + +#============================================================================= +# Target rules for targets named doctest_with_main + +# Build rule for target. +doctest_with_main: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 doctest_with_main +.PHONY : doctest_with_main + +# fast build rule for target. +doctest_with_main/fast: + $(MAKE) $(MAKESILENT) -f _deps/doctest-build/CMakeFiles/doctest_with_main.dir/build.make _deps/doctest-build/CMakeFiles/doctest_with_main.dir/build +.PHONY : doctest_with_main/fast + +ini.o: ini.c.o +.PHONY : ini.o + +# target to build an object file +ini.c.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/ini.c.o +.PHONY : ini.c.o + +ini.i: ini.c.i +.PHONY : ini.i + +# target to preprocess a source file +ini.c.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/ini.c.i +.PHONY : ini.c.i + +ini.s: ini.c.s +.PHONY : ini.s + +# target to generate assembly for a file +ini.c.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/ini.c.s +.PHONY : ini.c.s + +main.o: main.cpp.o +.PHONY : main.o + +# target to build an object file +main.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/main.cpp.o +.PHONY : main.cpp.o + +main.i: main.cpp.i +.PHONY : main.i + +# target to preprocess a source file +main.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/main.cpp.i +.PHONY : main.cpp.i + +main.s: main.cpp.s +.PHONY : main.s + +# target to generate assembly for a file +main.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/main.cpp.s +.PHONY : main.cpp.s + +src/camera/ImagePipeline.o: src/camera/ImagePipeline.cpp.o +.PHONY : src/camera/ImagePipeline.o + +# target to build an object file +src/camera/ImagePipeline.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/camera/ImagePipeline.cpp.o +.PHONY : src/camera/ImagePipeline.cpp.o + +src/camera/ImagePipeline.i: src/camera/ImagePipeline.cpp.i +.PHONY : src/camera/ImagePipeline.i + +# target to preprocess a source file +src/camera/ImagePipeline.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/camera/ImagePipeline.cpp.i +.PHONY : src/camera/ImagePipeline.cpp.i + +src/camera/ImagePipeline.s: src/camera/ImagePipeline.cpp.s +.PHONY : src/camera/ImagePipeline.s + +# target to generate assembly for a file +src/camera/ImagePipeline.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/camera/ImagePipeline.cpp.s +.PHONY : src/camera/ImagePipeline.cpp.s + +src/camera/JpegXlEncoder.o: src/camera/JpegXlEncoder.cpp.o +.PHONY : src/camera/JpegXlEncoder.o + +# target to build an object file +src/camera/JpegXlEncoder.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/camera/JpegXlEncoder.cpp.o +.PHONY : src/camera/JpegXlEncoder.cpp.o + +src/camera/JpegXlEncoder.i: src/camera/JpegXlEncoder.cpp.i +.PHONY : src/camera/JpegXlEncoder.i + +# target to preprocess a source file +src/camera/JpegXlEncoder.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/camera/JpegXlEncoder.cpp.i +.PHONY : src/camera/JpegXlEncoder.cpp.i + +src/camera/JpegXlEncoder.s: src/camera/JpegXlEncoder.cpp.s +.PHONY : src/camera/JpegXlEncoder.s + +# target to generate assembly for a file +src/camera/JpegXlEncoder.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/camera/JpegXlEncoder.cpp.s +.PHONY : src/camera/JpegXlEncoder.cpp.s + +src/core/Application.o: src/core/Application.cpp.o +.PHONY : src/core/Application.o + +# target to build an object file +src/core/Application.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/core/Application.cpp.o +.PHONY : src/core/Application.cpp.o + +src/core/Application.i: src/core/Application.cpp.i +.PHONY : src/core/Application.i + +# target to preprocess a source file +src/core/Application.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/core/Application.cpp.i +.PHONY : src/core/Application.cpp.i + +src/core/Application.s: src/core/Application.cpp.s +.PHONY : src/core/Application.s + +# target to generate assembly for a file +src/core/Application.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/core/Application.cpp.s +.PHONY : src/core/Application.cpp.s + +src/core/CaptureScheduler.o: src/core/CaptureScheduler.cpp.o +.PHONY : src/core/CaptureScheduler.o + +# target to build an object file +src/core/CaptureScheduler.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/CaptureScheduler.cpp.o +.PHONY : src/core/CaptureScheduler.cpp.o + +src/core/CaptureScheduler.i: src/core/CaptureScheduler.cpp.i +.PHONY : src/core/CaptureScheduler.i + +# target to preprocess a source file +src/core/CaptureScheduler.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/CaptureScheduler.cpp.i +.PHONY : src/core/CaptureScheduler.cpp.i + +src/core/CaptureScheduler.s: src/core/CaptureScheduler.cpp.s +.PHONY : src/core/CaptureScheduler.s + +# target to generate assembly for a file +src/core/CaptureScheduler.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/CaptureScheduler.cpp.s +.PHONY : src/core/CaptureScheduler.cpp.s + +src/core/CommandParser.o: src/core/CommandParser.cpp.o +.PHONY : src/core/CommandParser.o + +# target to build an object file +src/core/CommandParser.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/CommandParser.cpp.o +.PHONY : src/core/CommandParser.cpp.o + +src/core/CommandParser.i: src/core/CommandParser.cpp.i +.PHONY : src/core/CommandParser.i + +# target to preprocess a source file +src/core/CommandParser.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/CommandParser.cpp.i +.PHONY : src/core/CommandParser.cpp.i + +src/core/CommandParser.s: src/core/CommandParser.cpp.s +.PHONY : src/core/CommandParser.s + +# target to generate assembly for a file +src/core/CommandParser.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/CommandParser.cpp.s +.PHONY : src/core/CommandParser.cpp.s + +src/core/Config.o: src/core/Config.cpp.o +.PHONY : src/core/Config.o + +# target to build an object file +src/core/Config.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Config.cpp.o +.PHONY : src/core/Config.cpp.o + +src/core/Config.i: src/core/Config.cpp.i +.PHONY : src/core/Config.i + +# target to preprocess a source file +src/core/Config.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Config.cpp.i +.PHONY : src/core/Config.cpp.i + +src/core/Config.s: src/core/Config.cpp.s +.PHONY : src/core/Config.s + +# target to generate assembly for a file +src/core/Config.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Config.cpp.s +.PHONY : src/core/Config.cpp.s + +src/core/Geometry.o: src/core/Geometry.cpp.o +.PHONY : src/core/Geometry.o + +# target to build an object file +src/core/Geometry.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Geometry.cpp.o +.PHONY : src/core/Geometry.cpp.o + +src/core/Geometry.i: src/core/Geometry.cpp.i +.PHONY : src/core/Geometry.i + +# target to preprocess a source file +src/core/Geometry.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Geometry.cpp.i +.PHONY : src/core/Geometry.cpp.i + +src/core/Geometry.s: src/core/Geometry.cpp.s +.PHONY : src/core/Geometry.s + +# target to generate assembly for a file +src/core/Geometry.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Geometry.cpp.s +.PHONY : src/core/Geometry.cpp.s + +src/core/Logger.o: src/core/Logger.cpp.o +.PHONY : src/core/Logger.o + +# target to build an object file +src/core/Logger.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Logger.cpp.o +.PHONY : src/core/Logger.cpp.o + +src/core/Logger.i: src/core/Logger.cpp.i +.PHONY : src/core/Logger.i + +# target to preprocess a source file +src/core/Logger.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Logger.cpp.i +.PHONY : src/core/Logger.cpp.i + +src/core/Logger.s: src/core/Logger.cpp.s +.PHONY : src/core/Logger.s + +# target to generate assembly for a file +src/core/Logger.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Logger.cpp.s +.PHONY : src/core/Logger.cpp.s + +src/core/Paths.o: src/core/Paths.cpp.o +.PHONY : src/core/Paths.o + +# target to build an object file +src/core/Paths.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Paths.cpp.o +.PHONY : src/core/Paths.cpp.o + +src/core/Paths.i: src/core/Paths.cpp.i +.PHONY : src/core/Paths.i + +# target to preprocess a source file +src/core/Paths.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Paths.cpp.i +.PHONY : src/core/Paths.cpp.i + +src/core/Paths.s: src/core/Paths.cpp.s +.PHONY : src/core/Paths.s + +# target to generate assembly for a file +src/core/Paths.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Paths.cpp.s +.PHONY : src/core/Paths.cpp.s + +src/core/ScanGrid.o: src/core/ScanGrid.cpp.o +.PHONY : src/core/ScanGrid.o + +# target to build an object file +src/core/ScanGrid.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/ScanGrid.cpp.o +.PHONY : src/core/ScanGrid.cpp.o + +src/core/ScanGrid.i: src/core/ScanGrid.cpp.i +.PHONY : src/core/ScanGrid.i + +# target to preprocess a source file +src/core/ScanGrid.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/ScanGrid.cpp.i +.PHONY : src/core/ScanGrid.cpp.i + +src/core/ScanGrid.s: src/core/ScanGrid.cpp.s +.PHONY : src/core/ScanGrid.s + +# target to generate assembly for a file +src/core/ScanGrid.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/ScanGrid.cpp.s +.PHONY : src/core/ScanGrid.cpp.s + +src/core/TelemetryParser.o: src/core/TelemetryParser.cpp.o +.PHONY : src/core/TelemetryParser.o + +# target to build an object file +src/core/TelemetryParser.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/TelemetryParser.cpp.o +.PHONY : src/core/TelemetryParser.cpp.o + +src/core/TelemetryParser.i: src/core/TelemetryParser.cpp.i +.PHONY : src/core/TelemetryParser.i + +# target to preprocess a source file +src/core/TelemetryParser.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/TelemetryParser.cpp.i +.PHONY : src/core/TelemetryParser.cpp.i + +src/core/TelemetryParser.s: src/core/TelemetryParser.cpp.s +.PHONY : src/core/TelemetryParser.s + +# target to generate assembly for a file +src/core/TelemetryParser.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/TelemetryParser.cpp.s +.PHONY : src/core/TelemetryParser.cpp.s + +src/serial/SerialMotorController.o: src/serial/SerialMotorController.cpp.o +.PHONY : src/serial/SerialMotorController.o + +# target to build an object file +src/serial/SerialMotorController.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/serial/SerialMotorController.cpp.o +.PHONY : src/serial/SerialMotorController.cpp.o + +src/serial/SerialMotorController.i: src/serial/SerialMotorController.cpp.i +.PHONY : src/serial/SerialMotorController.i + +# target to preprocess a source file +src/serial/SerialMotorController.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/serial/SerialMotorController.cpp.i +.PHONY : src/serial/SerialMotorController.cpp.i + +src/serial/SerialMotorController.s: src/serial/SerialMotorController.cpp.s +.PHONY : src/serial/SerialMotorController.s + +# target to generate assembly for a file +src/serial/SerialMotorController.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/serial/SerialMotorController.cpp.s +.PHONY : src/serial/SerialMotorController.cpp.s + +src/ui/HeadlessUi.o: src/ui/HeadlessUi.cpp.o +.PHONY : src/ui/HeadlessUi.o + +# target to build an object file +src/ui/HeadlessUi.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/ui/HeadlessUi.cpp.o +.PHONY : src/ui/HeadlessUi.cpp.o + +src/ui/HeadlessUi.i: src/ui/HeadlessUi.cpp.i +.PHONY : src/ui/HeadlessUi.i + +# target to preprocess a source file +src/ui/HeadlessUi.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/ui/HeadlessUi.cpp.i +.PHONY : src/ui/HeadlessUi.cpp.i + +src/ui/HeadlessUi.s: src/ui/HeadlessUi.cpp.s +.PHONY : src/ui/HeadlessUi.s + +# target to generate assembly for a file +src/ui/HeadlessUi.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/ui/HeadlessUi.cpp.s +.PHONY : src/ui/HeadlessUi.cpp.s + +src/ui/UiSnapshot.o: src/ui/UiSnapshot.cpp.o +.PHONY : src/ui/UiSnapshot.o + +# target to build an object file +src/ui/UiSnapshot.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/ui/UiSnapshot.cpp.o +.PHONY : src/ui/UiSnapshot.cpp.o + +src/ui/UiSnapshot.i: src/ui/UiSnapshot.cpp.i +.PHONY : src/ui/UiSnapshot.i + +# target to preprocess a source file +src/ui/UiSnapshot.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/ui/UiSnapshot.cpp.i +.PHONY : src/ui/UiSnapshot.cpp.i + +src/ui/UiSnapshot.s: src/ui/UiSnapshot.cpp.s +.PHONY : src/ui/UiSnapshot.s + +# target to generate assembly for a file +src/ui/UiSnapshot.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/ui/UiSnapshot.cpp.s +.PHONY : src/ui/UiSnapshot.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... doctest_with_main" + @echo "... fgc_core" + @echo "... fgc_tests" + @echo "... fire_gimbal_control" + @echo "... ini.o" + @echo "... ini.i" + @echo "... ini.s" + @echo "... main.o" + @echo "... main.i" + @echo "... main.s" + @echo "... src/camera/ImagePipeline.o" + @echo "... src/camera/ImagePipeline.i" + @echo "... src/camera/ImagePipeline.s" + @echo "... src/camera/JpegXlEncoder.o" + @echo "... src/camera/JpegXlEncoder.i" + @echo "... src/camera/JpegXlEncoder.s" + @echo "... src/core/Application.o" + @echo "... src/core/Application.i" + @echo "... src/core/Application.s" + @echo "... src/core/CaptureScheduler.o" + @echo "... src/core/CaptureScheduler.i" + @echo "... src/core/CaptureScheduler.s" + @echo "... src/core/CommandParser.o" + @echo "... src/core/CommandParser.i" + @echo "... src/core/CommandParser.s" + @echo "... src/core/Config.o" + @echo "... src/core/Config.i" + @echo "... src/core/Config.s" + @echo "... src/core/Geometry.o" + @echo "... src/core/Geometry.i" + @echo "... src/core/Geometry.s" + @echo "... src/core/Logger.o" + @echo "... src/core/Logger.i" + @echo "... src/core/Logger.s" + @echo "... src/core/Paths.o" + @echo "... src/core/Paths.i" + @echo "... src/core/Paths.s" + @echo "... src/core/ScanGrid.o" + @echo "... src/core/ScanGrid.i" + @echo "... src/core/ScanGrid.s" + @echo "... src/core/TelemetryParser.o" + @echo "... src/core/TelemetryParser.i" + @echo "... src/core/TelemetryParser.s" + @echo "... src/serial/SerialMotorController.o" + @echo "... src/serial/SerialMotorController.i" + @echo "... src/serial/SerialMotorController.s" + @echo "... src/ui/HeadlessUi.o" + @echo "... src/ui/HeadlessUi.i" + @echo "... src/ui/HeadlessUi.s" + @echo "... src/ui/UiSnapshot.o" + @echo "... src/ui/UiSnapshot.i" + @echo "... src/ui/UiSnapshot.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build-notui/Testing/Temporary/CTestCostData.txt b/build-notui/Testing/Temporary/CTestCostData.txt new file mode 100644 index 0000000..c1463dc --- /dev/null +++ b/build-notui/Testing/Temporary/CTestCostData.txt @@ -0,0 +1,37 @@ +parseCommand handles single-verb commands 1 0.00355966 +parseCommand splits device and trailing numeric value 1 0.00445292 +parseCommand keeps option plus value 1 0.00346469 +parseCommand keeps non-numeric option (raw motor command) 1 0.00475817 +parseCommand on empty input 1 0.00347597 +ConfigLoader maps and defaults typed values 1 0.00270282 +environment overrides file credentials 1 0.00221621 +ConfigLoader validates input 1 0.00298553 +AxisMap converts degrees and counts with an offset 1 0.00230693 +AxisMap clamps to the soft range on the way out 1 0.002558 +AxisMap supports a negative (flipped) direction 1 0.00332187 +AxisMap toDeg guards against a zero scale 1 0.00316496 +parseCategories maps names, all/none, and flags unknown tokens 1 0.0029767 +catFromString round-trips and flags unknown 1 0.00489377 +category enable/disable/set round-trip 1 0.00363933 +LOG_TRACE_CAT gating is independent of the linear level 1 0.00382581 +expandUser expands ~ and environment variables 1 0.00350332 +configSearchPaths honours the CLI argument first 1 0.00459609 +parseScanCsv reads waypoints and skips comments/blanks 1 0.0033773 +parseScanCsv throws on a malformed line 1 0.00301251 +generateScanGrid produces yaw_intervals x pitch_levels points 1 0.00422159 +ScanGrid cursor ping-pongs at both ends 1 0.00240321 +ScanGrid single point and empty are safe 1 0.00278729 +CaptureScheduler sweeps the scan grid with MOVE + settle + trigger 1 0.00287004 +CaptureScheduler ControlCode 1 drives yaw to the target heading 1 0.00311307 +CaptureScheduler clamps the target heading to the soft range 1 0.00324622 +CaptureScheduler stays idle when capture inactive 1 0.00263608 +parseTelemetryLine reads a two-axis ST line 1 0.00286897 +parseTelemetryLine reads a yaw-only ST line (no flags field) 1 0.00273373 +parseTelemetryLine rejects non-ST and malformed lines 1 0.0025402 +parseTelemetryLine tolerates trailing CR 1 0.00300437 +axisStateLabel maps every state 1 0.00241024 +axisStateColor signals health 1 0.00260139 +formatDegrees: one decimal, sign preserved, degree sign appended 1 0.00250799 +formatTimeAgo: buckets and the never case 1 0.00247251 +pendingSensorsView: all fields absent until drivers land 1 0.00252874 +--- diff --git a/build-notui/Testing/Temporary/LastTest.log b/build-notui/Testing/Temporary/LastTest.log new file mode 100644 index 0000000..ef410c7 --- /dev/null +++ b/build-notui/Testing/Temporary/LastTest.log @@ -0,0 +1,759 @@ +Start testing: Jun 23 12:12 CEST +---------------------------------------------------------- +1/36 Testing: parseCommand handles single-verb commands +1/36 Test: parseCommand handles single-verb commands +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=parseCommand handles single-verb commands" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"parseCommand handles single-verb commands" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 3 | 3 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"parseCommand handles single-verb commands" end time: Jun 23 12:12 CEST +"parseCommand handles single-verb commands" time elapsed: 00:00:00 +---------------------------------------------------------- + +2/36 Testing: parseCommand splits device and trailing numeric value +2/36 Test: parseCommand splits device and trailing numeric value +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=parseCommand splits device and trailing numeric value" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"parseCommand splits device and trailing numeric value" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 5 | 5 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"parseCommand splits device and trailing numeric value" end time: Jun 23 12:12 CEST +"parseCommand splits device and trailing numeric value" time elapsed: 00:00:00 +---------------------------------------------------------- + +3/36 Testing: parseCommand keeps option plus value +3/36 Test: parseCommand keeps option plus value +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=parseCommand keeps option plus value" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"parseCommand keeps option plus value" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 3 | 3 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"parseCommand keeps option plus value" end time: Jun 23 12:12 CEST +"parseCommand keeps option plus value" time elapsed: 00:00:00 +---------------------------------------------------------- + +4/36 Testing: parseCommand keeps non-numeric option (raw motor command) +4/36 Test: parseCommand keeps non-numeric option (raw motor command) +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=parseCommand keeps non-numeric option (raw motor command)" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"parseCommand keeps non-numeric option (raw motor command)" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 3 | 3 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"parseCommand keeps non-numeric option (raw motor command)" end time: Jun 23 12:12 CEST +"parseCommand keeps non-numeric option (raw motor command)" time elapsed: 00:00:00 +---------------------------------------------------------- + +5/36 Testing: parseCommand on empty input +5/36 Test: parseCommand on empty input +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=parseCommand on empty input" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"parseCommand on empty input" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 2 | 2 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"parseCommand on empty input" end time: Jun 23 12:12 CEST +"parseCommand on empty input" time elapsed: 00:00:00 +---------------------------------------------------------- + +6/36 Testing: ConfigLoader maps and defaults typed values +6/36 Test: ConfigLoader maps and defaults typed values +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=ConfigLoader maps and defaults typed values" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"ConfigLoader maps and defaults typed values" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 10 | 10 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"ConfigLoader maps and defaults typed values" end time: Jun 23 12:12 CEST +"ConfigLoader maps and defaults typed values" time elapsed: 00:00:00 +---------------------------------------------------------- + +7/36 Testing: environment overrides file credentials +7/36 Test: environment overrides file credentials +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=environment overrides file credentials" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"environment overrides file credentials" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 1 | 1 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"environment overrides file credentials" end time: Jun 23 12:12 CEST +"environment overrides file credentials" time elapsed: 00:00:00 +---------------------------------------------------------- + +8/36 Testing: ConfigLoader validates input +8/36 Test: ConfigLoader validates input +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=ConfigLoader validates input" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"ConfigLoader validates input" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 3 | 3 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"ConfigLoader validates input" end time: Jun 23 12:12 CEST +"ConfigLoader validates input" time elapsed: 00:00:00 +---------------------------------------------------------- + +9/36 Testing: AxisMap converts degrees and counts with an offset +9/36 Test: AxisMap converts degrees and counts with an offset +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=AxisMap converts degrees and counts with an offset" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"AxisMap converts degrees and counts with an offset" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 4 | 4 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"AxisMap converts degrees and counts with an offset" end time: Jun 23 12:12 CEST +"AxisMap converts degrees and counts with an offset" time elapsed: 00:00:00 +---------------------------------------------------------- + +10/36 Testing: AxisMap clamps to the soft range on the way out +10/36 Test: AxisMap clamps to the soft range on the way out +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=AxisMap clamps to the soft range on the way out" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"AxisMap clamps to the soft range on the way out" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 3 | 3 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"AxisMap clamps to the soft range on the way out" end time: Jun 23 12:12 CEST +"AxisMap clamps to the soft range on the way out" time elapsed: 00:00:00 +---------------------------------------------------------- + +11/36 Testing: AxisMap supports a negative (flipped) direction +11/36 Test: AxisMap supports a negative (flipped) direction +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=AxisMap supports a negative (flipped) direction" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"AxisMap supports a negative (flipped) direction" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 2 | 2 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"AxisMap supports a negative (flipped) direction" end time: Jun 23 12:12 CEST +"AxisMap supports a negative (flipped) direction" time elapsed: 00:00:00 +---------------------------------------------------------- + +12/36 Testing: AxisMap toDeg guards against a zero scale +12/36 Test: AxisMap toDeg guards against a zero scale +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=AxisMap toDeg guards against a zero scale" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"AxisMap toDeg guards against a zero scale" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 1 | 1 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"AxisMap toDeg guards against a zero scale" end time: Jun 23 12:12 CEST +"AxisMap toDeg guards against a zero scale" time elapsed: 00:00:00 +---------------------------------------------------------- + +13/36 Testing: parseCategories maps names, all/none, and flags unknown tokens +13/36 Test: parseCategories maps names, all/none, and flags unknown tokens +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=parseCategories maps names\, all/none\, and flags unknown tokens" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"parseCategories maps names, all/none, and flags unknown tokens" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 12 | 12 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"parseCategories maps names, all/none, and flags unknown tokens" end time: Jun 23 12:12 CEST +"parseCategories maps names, all/none, and flags unknown tokens" time elapsed: 00:00:00 +---------------------------------------------------------- + +14/36 Testing: catFromString round-trips and flags unknown +14/36 Test: catFromString round-trips and flags unknown +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=catFromString round-trips and flags unknown" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"catFromString round-trips and flags unknown" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 4 | 4 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"catFromString round-trips and flags unknown" end time: Jun 23 12:12 CEST +"catFromString round-trips and flags unknown" time elapsed: 00:00:00 +---------------------------------------------------------- + +15/36 Testing: category enable/disable/set round-trip +15/36 Test: category enable/disable/set round-trip +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=category enable/disable/set round-trip" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"category enable/disable/set round-trip" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 9 | 9 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"category enable/disable/set round-trip" end time: Jun 23 12:12 CEST +"category enable/disable/set round-trip" time elapsed: 00:00:00 +---------------------------------------------------------- + +16/36 Testing: LOG_TRACE_CAT gating is independent of the linear level +16/36 Test: LOG_TRACE_CAT gating is independent of the linear level +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=LOG_TRACE_CAT gating is independent of the linear level" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"LOG_TRACE_CAT gating is independent of the linear level" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 5 | 5 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"LOG_TRACE_CAT gating is independent of the linear level" end time: Jun 23 12:12 CEST +"LOG_TRACE_CAT gating is independent of the linear level" time elapsed: 00:00:00 +---------------------------------------------------------- + +17/36 Testing: expandUser expands ~ and environment variables +17/36 Test: expandUser expands ~ and environment variables +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=expandUser expands ~ and environment variables" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"expandUser expands ~ and environment variables" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 6 | 6 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"expandUser expands ~ and environment variables" end time: Jun 23 12:12 CEST +"expandUser expands ~ and environment variables" time elapsed: 00:00:00 +---------------------------------------------------------- + +18/36 Testing: configSearchPaths honours the CLI argument first +18/36 Test: configSearchPaths honours the CLI argument first +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=configSearchPaths honours the CLI argument first" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"configSearchPaths honours the CLI argument first" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 2 | 2 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"configSearchPaths honours the CLI argument first" end time: Jun 23 12:12 CEST +"configSearchPaths honours the CLI argument first" time elapsed: 00:00:00 +---------------------------------------------------------- + +19/36 Testing: parseScanCsv reads waypoints and skips comments/blanks +19/36 Test: parseScanCsv reads waypoints and skips comments/blanks +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=parseScanCsv reads waypoints and skips comments/blanks" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"parseScanCsv reads waypoints and skips comments/blanks" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 4 | 4 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"parseScanCsv reads waypoints and skips comments/blanks" end time: Jun 23 12:12 CEST +"parseScanCsv reads waypoints and skips comments/blanks" time elapsed: 00:00:00 +---------------------------------------------------------- + +20/36 Testing: parseScanCsv throws on a malformed line +20/36 Test: parseScanCsv throws on a malformed line +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=parseScanCsv throws on a malformed line" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"parseScanCsv throws on a malformed line" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 2 | 2 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"parseScanCsv throws on a malformed line" end time: Jun 23 12:12 CEST +"parseScanCsv throws on a malformed line" time elapsed: 00:00:00 +---------------------------------------------------------- + +21/36 Testing: generateScanGrid produces yaw_intervals x pitch_levels points +21/36 Test: generateScanGrid produces yaw_intervals x pitch_levels points +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=generateScanGrid produces yaw_intervals x pitch_levels points" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"generateScanGrid produces yaw_intervals x pitch_levels points" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 6 | 6 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"generateScanGrid produces yaw_intervals x pitch_levels points" end time: Jun 23 12:12 CEST +"generateScanGrid produces yaw_intervals x pitch_levels points" time elapsed: 00:00:00 +---------------------------------------------------------- + +22/36 Testing: ScanGrid cursor ping-pongs at both ends +22/36 Test: ScanGrid cursor ping-pongs at both ends +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=ScanGrid cursor ping-pongs at both ends" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"ScanGrid cursor ping-pongs at both ends" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 6 | 6 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"ScanGrid cursor ping-pongs at both ends" end time: Jun 23 12:12 CEST +"ScanGrid cursor ping-pongs at both ends" time elapsed: 00:00:00 +---------------------------------------------------------- + +23/36 Testing: ScanGrid single point and empty are safe +23/36 Test: ScanGrid single point and empty are safe +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=ScanGrid single point and empty are safe" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"ScanGrid single point and empty are safe" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 2 | 2 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"ScanGrid single point and empty are safe" end time: Jun 23 12:12 CEST +"ScanGrid single point and empty are safe" time elapsed: 00:00:00 +---------------------------------------------------------- + +24/36 Testing: CaptureScheduler sweeps the scan grid with MOVE + settle + trigger +24/36 Test: CaptureScheduler sweeps the scan grid with MOVE + settle + trigger +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=CaptureScheduler sweeps the scan grid with MOVE + settle + trigger" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"CaptureScheduler sweeps the scan grid with MOVE + settle + trigger" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 9 | 9 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"CaptureScheduler sweeps the scan grid with MOVE + settle + trigger" end time: Jun 23 12:12 CEST +"CaptureScheduler sweeps the scan grid with MOVE + settle + trigger" time elapsed: 00:00:00 +---------------------------------------------------------- + +25/36 Testing: CaptureScheduler ControlCode 1 drives yaw to the target heading +25/36 Test: CaptureScheduler ControlCode 1 drives yaw to the target heading +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=CaptureScheduler ControlCode 1 drives yaw to the target heading" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"CaptureScheduler ControlCode 1 drives yaw to the target heading" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 3 | 3 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"CaptureScheduler ControlCode 1 drives yaw to the target heading" end time: Jun 23 12:12 CEST +"CaptureScheduler ControlCode 1 drives yaw to the target heading" time elapsed: 00:00:00 +---------------------------------------------------------- + +26/36 Testing: CaptureScheduler clamps the target heading to the soft range +26/36 Test: CaptureScheduler clamps the target heading to the soft range +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=CaptureScheduler clamps the target heading to the soft range" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"CaptureScheduler clamps the target heading to the soft range" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 1 | 1 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"CaptureScheduler clamps the target heading to the soft range" end time: Jun 23 12:12 CEST +"CaptureScheduler clamps the target heading to the soft range" time elapsed: 00:00:00 +---------------------------------------------------------- + +27/36 Testing: CaptureScheduler stays idle when capture inactive +27/36 Test: CaptureScheduler stays idle when capture inactive +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=CaptureScheduler stays idle when capture inactive" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"CaptureScheduler stays idle when capture inactive" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 2 | 2 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"CaptureScheduler stays idle when capture inactive" end time: Jun 23 12:12 CEST +"CaptureScheduler stays idle when capture inactive" time elapsed: 00:00:00 +---------------------------------------------------------- + +28/36 Testing: parseTelemetryLine reads a two-axis ST line +28/36 Test: parseTelemetryLine reads a two-axis ST line +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=parseTelemetryLine reads a two-axis ST line" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"parseTelemetryLine reads a two-axis ST line" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 15 | 15 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"parseTelemetryLine reads a two-axis ST line" end time: Jun 23 12:12 CEST +"parseTelemetryLine reads a two-axis ST line" time elapsed: 00:00:00 +---------------------------------------------------------- + +29/36 Testing: parseTelemetryLine reads a yaw-only ST line (no flags field) +29/36 Test: parseTelemetryLine reads a yaw-only ST line (no flags field) +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=parseTelemetryLine reads a yaw-only ST line (no flags field)" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"parseTelemetryLine reads a yaw-only ST line (no flags field)" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 5 | 5 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"parseTelemetryLine reads a yaw-only ST line (no flags field)" end time: Jun 23 12:12 CEST +"parseTelemetryLine reads a yaw-only ST line (no flags field)" time elapsed: 00:00:00 +---------------------------------------------------------- + +30/36 Testing: parseTelemetryLine rejects non-ST and malformed lines +30/36 Test: parseTelemetryLine rejects non-ST and malformed lines +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=parseTelemetryLine rejects non-ST and malformed lines" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"parseTelemetryLine rejects non-ST and malformed lines" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 7 | 7 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"parseTelemetryLine rejects non-ST and malformed lines" end time: Jun 23 12:12 CEST +"parseTelemetryLine rejects non-ST and malformed lines" time elapsed: 00:00:00 +---------------------------------------------------------- + +31/36 Testing: parseTelemetryLine tolerates trailing CR +31/36 Test: parseTelemetryLine tolerates trailing CR +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=parseTelemetryLine tolerates trailing CR" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"parseTelemetryLine tolerates trailing CR" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 2 | 2 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"parseTelemetryLine tolerates trailing CR" end time: Jun 23 12:12 CEST +"parseTelemetryLine tolerates trailing CR" time elapsed: 00:00:00 +---------------------------------------------------------- + +32/36 Testing: axisStateLabel maps every state +32/36 Test: axisStateLabel maps every state +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=axisStateLabel maps every state" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"axisStateLabel maps every state" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 6 | 6 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"axisStateLabel maps every state" end time: Jun 23 12:12 CEST +"axisStateLabel maps every state" time elapsed: 00:00:00 +---------------------------------------------------------- + +33/36 Testing: axisStateColor signals health +33/36 Test: axisStateColor signals health +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=axisStateColor signals health" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"axisStateColor signals health" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 6 | 6 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"axisStateColor signals health" end time: Jun 23 12:12 CEST +"axisStateColor signals health" time elapsed: 00:00:00 +---------------------------------------------------------- + +34/36 Testing: formatDegrees: one decimal, sign preserved, degree sign appended +34/36 Test: formatDegrees: one decimal, sign preserved, degree sign appended +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=formatDegrees: one decimal\, sign preserved\, degree sign appended" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"formatDegrees: one decimal, sign preserved, degree sign appended" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 3 | 3 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"formatDegrees: one decimal, sign preserved, degree sign appended" end time: Jun 23 12:12 CEST +"formatDegrees: one decimal, sign preserved, degree sign appended" time elapsed: 00:00:00 +---------------------------------------------------------- + +35/36 Testing: formatTimeAgo: buckets and the never case +35/36 Test: formatTimeAgo: buckets and the never case +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=formatTimeAgo: buckets and the never case" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"formatTimeAgo: buckets and the never case" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 5 | 5 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"formatTimeAgo: buckets and the never case" end time: Jun 23 12:12 CEST +"formatTimeAgo: buckets and the never case" time elapsed: 00:00:00 +---------------------------------------------------------- + +36/36 Testing: pendingSensorsView: all fields absent until drivers land +36/36 Test: pendingSensorsView: all fields absent until drivers land +Command: "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests" "--test-case=pendingSensorsView: all fields absent until drivers land" +Directory: /home/pedro/code/fwt_2a/software/build-notui/tests +"pendingSensorsView: all fields absent until drivers land" start time: Jun 23 12:12 CEST +Output: +---------------------------------------------------------- +[doctest] doctest version is "2.4.11" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 35 skipped +[doctest] assertions: 15 | 15 passed | 0 failed | +[doctest] Status: SUCCESS! + +Test time = 0.00 sec +---------------------------------------------------------- +Test Passed. +"pendingSensorsView: all fields absent until drivers land" end time: Jun 23 12:12 CEST +"pendingSensorsView: all fields absent until drivers land" time elapsed: 00:00:00 +---------------------------------------------------------- + +End testing: Jun 23 12:12 CEST diff --git a/build-notui/_deps/doctest-build/CTestTestfile.cmake b/build-notui/_deps/doctest-build/CTestTestfile.cmake new file mode 100644 index 0000000..2b80d3f --- /dev/null +++ b/build-notui/_deps/doctest-build/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src +# Build directory: /home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-build +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/build-notui/_deps/doctest-build/Makefile b/build-notui/_deps/doctest-build/Makefile new file mode 100644 index 0000000..da57ec1 --- /dev/null +++ b/build-notui/_deps/doctest-build/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 4.3 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pedro/code/fwt_2a/software + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pedro/code/fwt_2a/software/build-notui + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running tests..." + /usr/bin/ctest $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..." + /usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd /home/pedro/code/fwt_2a/software/build-notui && $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-notui/CMakeFiles /home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-build//CMakeFiles/progress.marks + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/doctest-build/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-notui/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/doctest-build/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/doctest-build/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/doctest-build/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/pedro/code/fwt_2a/software/build-notui && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +_deps/doctest-build/CMakeFiles/doctest_with_main.dir/rule: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/doctest-build/CMakeFiles/doctest_with_main.dir/rule +.PHONY : _deps/doctest-build/CMakeFiles/doctest_with_main.dir/rule + +# Convenience name for target. +doctest_with_main: _deps/doctest-build/CMakeFiles/doctest_with_main.dir/rule +.PHONY : doctest_with_main + +# fast build rule for target. +doctest_with_main/fast: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f _deps/doctest-build/CMakeFiles/doctest_with_main.dir/build.make _deps/doctest-build/CMakeFiles/doctest_with_main.dir/build +.PHONY : doctest_with_main/fast + +doctest/parts/doctest.o: doctest/parts/doctest.cpp.o +.PHONY : doctest/parts/doctest.o + +# target to build an object file +doctest/parts/doctest.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f _deps/doctest-build/CMakeFiles/doctest_with_main.dir/build.make _deps/doctest-build/CMakeFiles/doctest_with_main.dir/doctest/parts/doctest.cpp.o +.PHONY : doctest/parts/doctest.cpp.o + +doctest/parts/doctest.i: doctest/parts/doctest.cpp.i +.PHONY : doctest/parts/doctest.i + +# target to preprocess a source file +doctest/parts/doctest.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f _deps/doctest-build/CMakeFiles/doctest_with_main.dir/build.make _deps/doctest-build/CMakeFiles/doctest_with_main.dir/doctest/parts/doctest.cpp.i +.PHONY : doctest/parts/doctest.cpp.i + +doctest/parts/doctest.s: doctest/parts/doctest.cpp.s +.PHONY : doctest/parts/doctest.s + +# target to generate assembly for a file +doctest/parts/doctest.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f _deps/doctest-build/CMakeFiles/doctest_with_main.dir/build.make _deps/doctest-build/CMakeFiles/doctest_with_main.dir/doctest/parts/doctest.cpp.s +.PHONY : doctest/parts/doctest.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... doctest_with_main" + @echo "... doctest/parts/doctest.o" + @echo "... doctest/parts/doctest.i" + @echo "... doctest/parts/doctest.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/pedro/code/fwt_2a/software/build-notui && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build-notui/_deps/doctest-build/generated/doctestConfig.cmake b/build-notui/_deps/doctest-build/generated/doctestConfig.cmake new file mode 100644 index 0000000..7ec5ace --- /dev/null +++ b/build-notui/_deps/doctest-build/generated/doctestConfig.cmake @@ -0,0 +1,6 @@ +if(NOT TARGET doctest::doctest) + # Provide path for scripts + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") + + include("${CMAKE_CURRENT_LIST_DIR}/doctestTargets.cmake") +endif() diff --git a/build-notui/_deps/doctest-build/generated/doctestConfigVersion.cmake b/build-notui/_deps/doctest-build/generated/doctestConfigVersion.cmake new file mode 100644 index 0000000..1b53975 --- /dev/null +++ b/build-notui/_deps/doctest-build/generated/doctestConfigVersion.cmake @@ -0,0 +1,65 @@ +# This is a basic version file for the Config-mode of find_package(). +# It is used by write_basic_package_version_file() as input file for configure_file() +# to create a version-file which can be installed along a config.cmake file. +# +# The created file sets PACKAGE_VERSION_EXACT if the current version string and +# the requested version string are exactly the same and it sets +# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version, +# but only if the requested major version is the same as the current one. +# The variable CVF_VERSION must be set before calling configure_file(). + + +set(PACKAGE_VERSION "2.4.11") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + + if("2.4.11" MATCHES "^([0-9]+)\\.") + set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}") + if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0) + string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}") + endif() + else() + set(CVF_VERSION_MAJOR "2.4.11") + endif() + + if(PACKAGE_FIND_VERSION_RANGE) + # both endpoints of the range must have the expected major version + math (EXPR CVF_VERSION_MAJOR_NEXT "${CVF_VERSION_MAJOR} + 1") + if (NOT PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR + OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND NOT PACKAGE_FIND_VERSION_MAX_MAJOR STREQUAL CVF_VERSION_MAJOR) + OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND NOT PACKAGE_FIND_VERSION_MAX VERSION_LESS_EQUAL CVF_VERSION_MAJOR_NEXT))) + set(PACKAGE_VERSION_COMPATIBLE FALSE) + elseif(PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR + AND ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS_EQUAL PACKAGE_FIND_VERSION_MAX) + OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MAX))) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + else() + if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() + endif() +endif() + + +# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: +if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "" STREQUAL "") + return() +endif() + +# check that the installed version has the same 32/64bit-ness as the one which is currently searching: +if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "") + math(EXPR installedBits " * 8") + set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") + set(PACKAGE_VERSION_UNSUITABLE TRUE) +endif() diff --git a/build-notui/_deps/doctest-src b/build-notui/_deps/doctest-src new file mode 160000 index 0000000..ae7a135 --- /dev/null +++ b/build-notui/_deps/doctest-src @@ -0,0 +1 @@ +Subproject commit ae7a13539fb71f270b87eb2e874fbac80bc8dda2 diff --git a/build-notui/_deps/doctest-subbuild/CMakeLists.txt b/build-notui/_deps/doctest-subbuild/CMakeLists.txt new file mode 100644 index 0000000..c5b99f4 --- /dev/null +++ b/build-notui/_deps/doctest-subbuild/CMakeLists.txt @@ -0,0 +1,42 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file LICENSE.rst or https://cmake.org/licensing for details. + +cmake_minimum_required(VERSION 4.3.3) + +# Reject any attempt to use a toolchain file. We must not use one because +# we could be downloading it here. If the CMAKE_TOOLCHAIN_FILE environment +# variable is set, the cache variable will have been initialized from it. +unset(CMAKE_TOOLCHAIN_FILE CACHE) +unset(ENV{CMAKE_TOOLCHAIN_FILE}) + +# We name the project and the target for the ExternalProject_Add() call +# to something that will highlight to the user what we are working on if +# something goes wrong and an error message is produced. + +project(doctest-populate NONE) + + +# Pass through things we've already detected in the main project to avoid +# paying the cost of redetecting them again in ExternalProject_Add() +set(GIT_EXECUTABLE [==[/usr/bin/git]==]) +set(Git_VERSION [==[2.54.0]==]) +set_property(GLOBAL PROPERTY _CMAKE_FindGit_GIT_EXECUTABLE_VERSION + [==[/usr/bin/git;2.54.0]==] +) + + +include(ExternalProject) +ExternalProject_Add(doctest-populate + "UPDATE_DISCONNECTED" "False" "GIT_REPOSITORY" "https://github.com/doctest/doctest.git" "EXTERNALPROJECT_INTERNAL_ARGUMENT_SEPARATOR" "GIT_TAG" "v2.4.11" "GIT_SHALLOW" "TRUE" + SOURCE_DIR "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + BINARY_DIR "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-build" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + TEST_COMMAND "" + USES_TERMINAL_DOWNLOAD YES + USES_TERMINAL_UPDATE YES + USES_TERMINAL_PATCH YES +) + + diff --git a/build-notui/_deps/doctest-subbuild/Makefile b/build-notui/_deps/doctest-subbuild/Makefile new file mode 100644 index 0000000..8e4ad5e --- /dev/null +++ b/build-notui/_deps/doctest-subbuild/Makefile @@ -0,0 +1,162 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 4.3 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..." + /usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/CMakeFiles /home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild//CMakeFiles/progress.marks + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/CMakeFiles 0 +.PHONY : all + +# The main codegen target +codegen: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/CMakeFiles /home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild//CMakeFiles/progress.marks + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 codegen + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/CMakeFiles 0 +.PHONY : codegen + +# The main clean target +clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named doctest-populate + +# Build rule for target. +doctest-populate: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 doctest-populate +.PHONY : doctest-populate + +# fast build rule for target. +doctest-populate/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/doctest-populate.dir/build.make CMakeFiles/doctest-populate.dir/build +.PHONY : doctest-populate/fast + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... codegen" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... doctest-populate" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-build b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-build new file mode 100644 index 0000000..e69de29 diff --git a/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-configure b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-configure new file mode 100644 index 0000000..e69de29 diff --git a/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-done b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-done new file mode 100644 index 0000000..e69de29 diff --git a/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-download b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-download new file mode 100644 index 0000000..e69de29 diff --git a/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-gitclone-lastrun.txt b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-gitclone-lastrun.txt new file mode 100644 index 0000000..c6f931b --- /dev/null +++ b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-gitclone-lastrun.txt @@ -0,0 +1,15 @@ +# This is a generated file and its contents are an internal implementation detail. +# The download step will be re-executed if anything in this file changes. +# No other meaning or use of this file is supported. + +method=git +command=/usr/bin/cmake;-DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE;-P;/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/tmp/doctest-populate-gitclone.cmake +source_dir=/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src +work_dir=/home/pedro/code/fwt_2a/software/build-notui/_deps +repository=https://github.com/doctest/doctest.git +remote=origin +init_submodules=TRUE +recurse_submodules=--recursive +submodules= +CMP0097=NEW + diff --git a/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-gitinfo.txt b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-gitinfo.txt new file mode 100644 index 0000000..c6f931b --- /dev/null +++ b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-gitinfo.txt @@ -0,0 +1,15 @@ +# This is a generated file and its contents are an internal implementation detail. +# The download step will be re-executed if anything in this file changes. +# No other meaning or use of this file is supported. + +method=git +command=/usr/bin/cmake;-DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE;-P;/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/tmp/doctest-populate-gitclone.cmake +source_dir=/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src +work_dir=/home/pedro/code/fwt_2a/software/build-notui/_deps +repository=https://github.com/doctest/doctest.git +remote=origin +init_submodules=TRUE +recurse_submodules=--recursive +submodules= +CMP0097=NEW + diff --git a/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-install b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-install new file mode 100644 index 0000000..e69de29 diff --git a/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-mkdir b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-mkdir new file mode 100644 index 0000000..e69de29 diff --git a/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-patch b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-patch new file mode 100644 index 0000000..e69de29 diff --git a/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-patch-info.txt b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-patch-info.txt new file mode 100644 index 0000000..53e1e1e --- /dev/null +++ b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-patch-info.txt @@ -0,0 +1,6 @@ +# This is a generated file and its contents are an internal implementation detail. +# The update step will be re-executed if anything in this file changes. +# No other meaning or use of this file is supported. + +command= +work_dir= diff --git a/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-test b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-test new file mode 100644 index 0000000..e69de29 diff --git a/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-update-info.txt b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-update-info.txt new file mode 100644 index 0000000..638e6b0 --- /dev/null +++ b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-update-info.txt @@ -0,0 +1,7 @@ +# This is a generated file and its contents are an internal implementation detail. +# The patch step will be re-executed if anything in this file changes. +# No other meaning or use of this file is supported. + +command (connected)=/usr/bin/cmake;-Dcan_fetch=YES;-DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE;-P;/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/tmp/doctest-populate-gitupdate.cmake +command (disconnected)=/usr/bin/cmake;-Dcan_fetch=NO;-DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE;-P;/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/tmp/doctest-populate-gitupdate.cmake +work_dir=/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src diff --git a/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/tmp/doctest-populate-cfgcmd.txt b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/tmp/doctest-populate-cfgcmd.txt new file mode 100644 index 0000000..6a6ed5f --- /dev/null +++ b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/tmp/doctest-populate-cfgcmd.txt @@ -0,0 +1 @@ +cmd='' diff --git a/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/tmp/doctest-populate-gitclone.cmake b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/tmp/doctest-populate-gitclone.cmake new file mode 100644 index 0000000..1bdd3d5 --- /dev/null +++ b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/tmp/doctest-populate-gitclone.cmake @@ -0,0 +1,87 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file LICENSE.rst or https://cmake.org/licensing for details. + +cmake_minimum_required(VERSION ${CMAKE_VERSION}) # this file comes with cmake + +if(EXISTS "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-gitclone-lastrun.txt" AND EXISTS "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-gitinfo.txt" AND + "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-gitclone-lastrun.txt" IS_NEWER_THAN "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-gitinfo.txt") + message(VERBOSE + "Avoiding repeated git clone, stamp file is up to date: " + "'/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-gitclone-lastrun.txt'" + ) + return() +endif() + +# Even at VERBOSE level, we don't want to see the commands executed, but +# enabling them to be shown for DEBUG may be useful to help diagnose problems. +cmake_language(GET_MESSAGE_LOG_LEVEL active_log_level) +if(active_log_level MATCHES "DEBUG|TRACE") + set(maybe_show_command COMMAND_ECHO STDOUT) +else() + set(maybe_show_command "") +endif() + +execute_process( + COMMAND ${CMAKE_COMMAND} -E rm -rf "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + RESULT_VARIABLE error_code + ${maybe_show_command} +) +if(error_code) + message(FATAL_ERROR "Failed to remove directory: '/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src'") +endif() + +# try the clone 3 times in case there is an odd git clone issue +set(error_code 1) +set(number_of_tries 0) +while(error_code AND number_of_tries LESS 3) + execute_process( + COMMAND "/usr/bin/git" + clone --no-checkout --depth 1 --no-single-branch --config "advice.detachedHead=false" "https://github.com/doctest/doctest.git" "doctest-src" + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps" + RESULT_VARIABLE error_code + ${maybe_show_command} + ) + math(EXPR number_of_tries "${number_of_tries} + 1") +endwhile() +if(number_of_tries GREATER 1) + message(NOTICE "Had to git clone more than once: ${number_of_tries} times.") +endif() +if(error_code) + message(FATAL_ERROR "Failed to clone repository: 'https://github.com/doctest/doctest.git'") +endif() + +execute_process( + COMMAND "/usr/bin/git" + checkout "v2.4.11" -- + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + RESULT_VARIABLE error_code + ${maybe_show_command} +) +if(error_code) + message(FATAL_ERROR "Failed to checkout tag: 'v2.4.11'") +endif() + +set(init_submodules TRUE) +if(init_submodules) + execute_process( + COMMAND "/usr/bin/git" + submodule update --recursive --init + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + RESULT_VARIABLE error_code + ${maybe_show_command} + ) +endif() +if(error_code) + message(FATAL_ERROR "Failed to update submodules in: '/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src'") +endif() + +# Complete success, update the script-last-run stamp file: +# +execute_process( + COMMAND ${CMAKE_COMMAND} -E copy "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-gitinfo.txt" "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-gitclone-lastrun.txt" + RESULT_VARIABLE error_code + ${maybe_show_command} +) +if(error_code) + message(FATAL_ERROR "Failed to copy script-last-run stamp file: '/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/doctest-populate-gitclone-lastrun.txt'") +endif() diff --git a/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/tmp/doctest-populate-gitupdate.cmake b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/tmp/doctest-populate-gitupdate.cmake new file mode 100644 index 0000000..dccc5ad --- /dev/null +++ b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/tmp/doctest-populate-gitupdate.cmake @@ -0,0 +1,317 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file LICENSE.rst or https://cmake.org/licensing for details. + +cmake_minimum_required(VERSION ${CMAKE_VERSION}) # this file comes with cmake + +# Even at VERBOSE level, we don't want to see the commands executed, but +# enabling them to be shown for DEBUG may be useful to help diagnose problems. +cmake_language(GET_MESSAGE_LOG_LEVEL active_log_level) +if(active_log_level MATCHES "DEBUG|TRACE") + set(maybe_show_command COMMAND_ECHO STDOUT) +else() + set(maybe_show_command "") +endif() + +function(do_fetch) + message(VERBOSE "Fetching latest from the remote origin") + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git fetch --tags --force "origin" + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + COMMAND_ERROR_IS_FATAL LAST + ${maybe_show_command} + ) +endfunction() + +function(get_hash_for_ref ref out_var err_var) + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git rev-parse "${ref}^0" + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + RESULT_VARIABLE error_code + OUTPUT_VARIABLE ref_hash + ERROR_VARIABLE error_msg + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + if(error_code) + set(${out_var} "" PARENT_SCOPE) + else() + set(${out_var} "${ref_hash}" PARENT_SCOPE) + endif() + set(${err_var} "${error_msg}" PARENT_SCOPE) +endfunction() + +get_hash_for_ref(HEAD head_sha error_msg) +if(head_sha STREQUAL "") + message(FATAL_ERROR "Failed to get the hash for HEAD:\n${error_msg}") +endif() + +if("${can_fetch}" STREQUAL "") + set(can_fetch "YES") +endif() + +execute_process( + COMMAND "/usr/bin/git" --git-dir=.git show-ref "v2.4.11" + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + OUTPUT_VARIABLE show_ref_output +) +if(show_ref_output MATCHES "^[a-z0-9]+[ \\t]+refs/remotes/") + # Given a full remote/branch-name and we know about it already. Since + # branches can move around, we should always fetch, if permitted. + if(can_fetch) + do_fetch() + endif() + set(checkout_name "v2.4.11") + +elseif(show_ref_output MATCHES "^[a-z0-9]+[ \\t]+refs/tags/") + # Given a tag name that we already know about. We don't know if the tag we + # have matches the remote though (tags can move), so we should fetch. As a + # special case to preserve backward compatibility, if we are already at the + # same commit as the tag we hold locally, don't do a fetch and assume the tag + # hasn't moved on the remote. + # FIXME: We should provide an option to always fetch for this case + get_hash_for_ref("v2.4.11" tag_sha error_msg) + if(tag_sha STREQUAL head_sha) + message(VERBOSE "Already at requested tag: v2.4.11") + return() + endif() + + if(can_fetch) + do_fetch() + endif() + set(checkout_name "v2.4.11") + +elseif(show_ref_output MATCHES "^[a-z0-9]+[ \\t]+refs/heads/") + # Given a branch name without any remote and we already have a branch by that + # name. We might already have that branch checked out or it might be a + # different branch. It isn't fully safe to use a bare branch name without the + # remote, so do a fetch (if allowed) and replace the ref with one that + # includes the remote. + if(can_fetch) + do_fetch() + endif() + set(checkout_name "origin/v2.4.11") + +else() + get_hash_for_ref("v2.4.11" tag_sha error_msg) + if(tag_sha STREQUAL head_sha) + # Have the right commit checked out already + message(VERBOSE "Already at requested ref: ${tag_sha}") + return() + + elseif(tag_sha STREQUAL "") + # We don't know about this ref yet, so we have no choice but to fetch. + if(NOT can_fetch) + message(FATAL_ERROR + "Requested git ref \"v2.4.11\" is not present locally, and not " + "allowed to contact remote due to UPDATE_DISCONNECTED setting." + ) + endif() + + # We deliberately swallow any error message at the default log level + # because it can be confusing for users to see a failed git command. + # That failure is being handled here, so it isn't an error. + if(NOT error_msg STREQUAL "") + message(DEBUG "${error_msg}") + endif() + do_fetch() + set(checkout_name "v2.4.11") + + else() + # We have the commit, so we know we were asked to find a commit hash + # (otherwise it would have been handled further above), but we don't + # have that commit checked out yet. We don't need to fetch from the remote. + set(checkout_name "v2.4.11") + if(NOT error_msg STREQUAL "") + message(WARNING "${error_msg}") + endif() + + endif() +endif() + +set(git_update_strategy "REBASE") +if(git_update_strategy STREQUAL "") + # Backward compatibility requires REBASE as the default behavior + set(git_update_strategy REBASE) +endif() + +if(git_update_strategy MATCHES "^REBASE(_CHECKOUT)?$") + # Asked to potentially try to rebase first, maybe with fallback to checkout. + # We can't if we aren't already on a branch and we shouldn't if that local + # branch isn't tracking the one we want to checkout. + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git symbolic-ref -q HEAD + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + OUTPUT_VARIABLE current_branch + OUTPUT_STRIP_TRAILING_WHITESPACE + # Don't test for an error. If this isn't a branch, we get a non-zero error + # code but empty output. + ) + + if(current_branch STREQUAL "") + # Not on a branch, checkout is the only sensible option since any rebase + # would always fail (and backward compatibility requires us to checkout in + # this situation) + set(git_update_strategy CHECKOUT) + + else() + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git for-each-ref "--format=%(upstream:short)" "${current_branch}" + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + OUTPUT_VARIABLE upstream_branch + OUTPUT_STRIP_TRAILING_WHITESPACE + COMMAND_ERROR_IS_FATAL ANY # There is no error if no upstream is set + ) + if(NOT upstream_branch STREQUAL checkout_name) + # Not safe to rebase when asked to checkout a different branch to the one + # we are tracking. If we did rebase, we could end up with arbitrary + # commits added to the ref we were asked to checkout if the current local + # branch happens to be able to rebase onto the target branch. There would + # be no error message and the user wouldn't know this was occurring. + set(git_update_strategy CHECKOUT) + endif() + + endif() +elseif(NOT git_update_strategy STREQUAL "CHECKOUT") + message(FATAL_ERROR "Unsupported git update strategy: ${git_update_strategy}") +endif() + + +# Check if stash is needed +execute_process( + COMMAND "/usr/bin/git" --git-dir=.git status --porcelain + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + RESULT_VARIABLE error_code + OUTPUT_VARIABLE repo_status +) +if(error_code) + message(FATAL_ERROR "Failed to get the status") +endif() +string(LENGTH "${repo_status}" need_stash) + +# If not in clean state, stash changes in order to be able to perform a +# rebase or checkout without losing those changes permanently +if(need_stash) + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git stash save --quiet;--include-untracked + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + COMMAND_ERROR_IS_FATAL ANY + ${maybe_show_command} + ) +endif() + +if(git_update_strategy STREQUAL "CHECKOUT") + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git checkout "${checkout_name}" + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + COMMAND_ERROR_IS_FATAL ANY + ${maybe_show_command} + ) +else() + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git rebase "${checkout_name}" + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + RESULT_VARIABLE error_code + OUTPUT_VARIABLE rebase_output + ERROR_VARIABLE rebase_output + ) + if(error_code) + # Rebase failed, undo the rebase attempt before continuing + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git rebase --abort + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + ${maybe_show_command} + ) + + if(NOT git_update_strategy STREQUAL "REBASE_CHECKOUT") + # Not allowed to do a checkout as a fallback, so cannot proceed + if(need_stash) + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git stash pop --index --quiet + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + ${maybe_show_command} + ) + endif() + message(FATAL_ERROR "\nFailed to rebase in: '/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src'." + "\nOutput from the attempted rebase follows:" + "\n${rebase_output}" + "\n\nYou will have to resolve the conflicts manually") + endif() + + # Fall back to checkout. We create an annotated tag so that the user + # can manually inspect the situation and revert if required. + # We can't log the failed rebase output because MSVC sees it and + # intervenes, causing the build to fail even though it completes. + # Write it to a file instead. + string(TIMESTAMP tag_timestamp "%Y%m%dT%H%M%S" UTC) + set(tag_name _cmake_ExternalProject_moved_from_here_${tag_timestamp}Z) + set(error_log_file ${CMAKE_CURRENT_LIST_DIR}/rebase_error_${tag_timestamp}Z.log) + file(WRITE ${error_log_file} "${rebase_output}") + message(WARNING "Rebase failed, output has been saved to ${error_log_file}" + "\nFalling back to checkout, previous commit tagged as ${tag_name}") + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git tag -a + -m "ExternalProject attempting to move from here to ${checkout_name}" + ${tag_name} + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + COMMAND_ERROR_IS_FATAL ANY + ${maybe_show_command} + ) + + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git checkout "${checkout_name}" + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + COMMAND_ERROR_IS_FATAL ANY + ${maybe_show_command} + ) + endif() +endif() + +if(need_stash) + # Put back the stashed changes + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git stash pop --index --quiet + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + RESULT_VARIABLE error_code + ${maybe_show_command} + ) + if(error_code) + # Stash pop --index failed: Try again dropping the index + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git reset --hard --quiet + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + ${maybe_show_command} + ) + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git stash pop --quiet + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + RESULT_VARIABLE error_code + ${maybe_show_command} + ) + if(error_code) + # Stash pop failed: Restore previous state. + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git reset --hard --quiet ${head_sha} + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + ${maybe_show_command} + ) + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git stash pop --index --quiet + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + ${maybe_show_command} + ) + message(FATAL_ERROR "\nFailed to unstash changes in: '/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src'." + "\nYou will have to resolve the conflicts manually") + endif() + endif() +endif() + +set(init_submodules "TRUE") +if(init_submodules) + execute_process( + COMMAND "/usr/bin/git" + --git-dir=.git + submodule update --recursive --init + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src" + COMMAND_ERROR_IS_FATAL ANY + ${maybe_show_command} + ) +endif() diff --git a/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/tmp/doctest-populate-mkdirs.cmake b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/tmp/doctest-populate-mkdirs.cmake new file mode 100644 index 0000000..6050332 --- /dev/null +++ b/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/tmp/doctest-populate-mkdirs.cmake @@ -0,0 +1,27 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file LICENSE.rst or https://cmake.org/licensing for details. + +cmake_minimum_required(VERSION ${CMAKE_VERSION}) # this file comes with cmake + +# If CMAKE_DISABLE_SOURCE_CHANGES is set to true and the source directory is an +# existing directory in our source tree, calling file(MAKE_DIRECTORY) on it +# would cause a fatal error, even though it would be a no-op. +if(NOT EXISTS "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src") + file(MAKE_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-src") +endif() +file(MAKE_DIRECTORY + "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-build" + "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix" + "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/tmp" + "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp" + "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src" + "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp" +) + +set(configSubDirs ) +foreach(subDir IN LISTS configSubDirs) + file(MAKE_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp/${subDir}") +endforeach() +if(cfgdir) + file(MAKE_DIRECTORY "/home/pedro/code/fwt_2a/software/build-notui/_deps/doctest-subbuild/doctest-populate-prefix/src/doctest-populate-stamp${cfgdir}") # cfgdir has leading slash +endif() diff --git a/build-notui/fire_gimbal_control b/build-notui/fire_gimbal_control new file mode 100755 index 0000000..05d68a7 Binary files /dev/null and b/build-notui/fire_gimbal_control differ diff --git a/build-notui/libfgc_core.a b/build-notui/libfgc_core.a new file mode 100644 index 0000000..04d383d Binary files /dev/null and b/build-notui/libfgc_core.a differ diff --git a/build-notui/tests/CTestTestfile.cmake b/build-notui/tests/CTestTestfile.cmake new file mode 100644 index 0000000..b65007f --- /dev/null +++ b/build-notui/tests/CTestTestfile.cmake @@ -0,0 +1,8 @@ +# CMake generated Testfile for +# Source directory: /home/pedro/code/fwt_2a/software/tests +# Build directory: /home/pedro/code/fwt_2a/software/build-notui/tests +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. +include("/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests_include-b858cb2.cmake") +subdirs("../_deps/doctest-build") diff --git a/build-notui/tests/Makefile b/build-notui/tests/Makefile new file mode 100644 index 0000000..d321c08 --- /dev/null +++ b/build-notui/tests/Makefile @@ -0,0 +1,485 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 4.3 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pedro/code/fwt_2a/software + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pedro/code/fwt_2a/software/build-notui + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running tests..." + /usr/bin/ctest $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..." + /usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd /home/pedro/code/fwt_2a/software/build-notui && $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-notui/CMakeFiles /home/pedro/code/fwt_2a/software/build-notui/tests//CMakeFiles/progress.marks + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-notui/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/pedro/code/fwt_2a/software/build-notui && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +tests/CMakeFiles/fgc_tests.dir/rule: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/fgc_tests.dir/rule +.PHONY : tests/CMakeFiles/fgc_tests.dir/rule + +# Convenience name for target. +fgc_tests: tests/CMakeFiles/fgc_tests.dir/rule +.PHONY : fgc_tests + +# fast build rule for target. +fgc_tests/fast: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/build +.PHONY : fgc_tests/fast + +doctest_main.o: doctest_main.cpp.o +.PHONY : doctest_main.o + +# target to build an object file +doctest_main.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/doctest_main.cpp.o +.PHONY : doctest_main.cpp.o + +doctest_main.i: doctest_main.cpp.i +.PHONY : doctest_main.i + +# target to preprocess a source file +doctest_main.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/doctest_main.cpp.i +.PHONY : doctest_main.cpp.i + +doctest_main.s: doctest_main.cpp.s +.PHONY : doctest_main.s + +# target to generate assembly for a file +doctest_main.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/doctest_main.cpp.s +.PHONY : doctest_main.cpp.s + +test_command.o: test_command.cpp.o +.PHONY : test_command.o + +# target to build an object file +test_command.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_command.cpp.o +.PHONY : test_command.cpp.o + +test_command.i: test_command.cpp.i +.PHONY : test_command.i + +# target to preprocess a source file +test_command.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_command.cpp.i +.PHONY : test_command.cpp.i + +test_command.s: test_command.cpp.s +.PHONY : test_command.s + +# target to generate assembly for a file +test_command.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_command.cpp.s +.PHONY : test_command.cpp.s + +test_config.o: test_config.cpp.o +.PHONY : test_config.o + +# target to build an object file +test_config.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_config.cpp.o +.PHONY : test_config.cpp.o + +test_config.i: test_config.cpp.i +.PHONY : test_config.i + +# target to preprocess a source file +test_config.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_config.cpp.i +.PHONY : test_config.cpp.i + +test_config.s: test_config.cpp.s +.PHONY : test_config.s + +# target to generate assembly for a file +test_config.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_config.cpp.s +.PHONY : test_config.cpp.s + +test_geometry.o: test_geometry.cpp.o +.PHONY : test_geometry.o + +# target to build an object file +test_geometry.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_geometry.cpp.o +.PHONY : test_geometry.cpp.o + +test_geometry.i: test_geometry.cpp.i +.PHONY : test_geometry.i + +# target to preprocess a source file +test_geometry.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_geometry.cpp.i +.PHONY : test_geometry.cpp.i + +test_geometry.s: test_geometry.cpp.s +.PHONY : test_geometry.s + +# target to generate assembly for a file +test_geometry.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_geometry.cpp.s +.PHONY : test_geometry.cpp.s + +test_logger.o: test_logger.cpp.o +.PHONY : test_logger.o + +# target to build an object file +test_logger.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_logger.cpp.o +.PHONY : test_logger.cpp.o + +test_logger.i: test_logger.cpp.i +.PHONY : test_logger.i + +# target to preprocess a source file +test_logger.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_logger.cpp.i +.PHONY : test_logger.cpp.i + +test_logger.s: test_logger.cpp.s +.PHONY : test_logger.s + +# target to generate assembly for a file +test_logger.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_logger.cpp.s +.PHONY : test_logger.cpp.s + +test_paths.o: test_paths.cpp.o +.PHONY : test_paths.o + +# target to build an object file +test_paths.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_paths.cpp.o +.PHONY : test_paths.cpp.o + +test_paths.i: test_paths.cpp.i +.PHONY : test_paths.i + +# target to preprocess a source file +test_paths.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_paths.cpp.i +.PHONY : test_paths.cpp.i + +test_paths.s: test_paths.cpp.s +.PHONY : test_paths.s + +# target to generate assembly for a file +test_paths.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_paths.cpp.s +.PHONY : test_paths.cpp.s + +test_scangrid.o: test_scangrid.cpp.o +.PHONY : test_scangrid.o + +# target to build an object file +test_scangrid.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_scangrid.cpp.o +.PHONY : test_scangrid.cpp.o + +test_scangrid.i: test_scangrid.cpp.i +.PHONY : test_scangrid.i + +# target to preprocess a source file +test_scangrid.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_scangrid.cpp.i +.PHONY : test_scangrid.cpp.i + +test_scangrid.s: test_scangrid.cpp.s +.PHONY : test_scangrid.s + +# target to generate assembly for a file +test_scangrid.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_scangrid.cpp.s +.PHONY : test_scangrid.cpp.s + +test_scheduler.o: test_scheduler.cpp.o +.PHONY : test_scheduler.o + +# target to build an object file +test_scheduler.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_scheduler.cpp.o +.PHONY : test_scheduler.cpp.o + +test_scheduler.i: test_scheduler.cpp.i +.PHONY : test_scheduler.i + +# target to preprocess a source file +test_scheduler.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_scheduler.cpp.i +.PHONY : test_scheduler.cpp.i + +test_scheduler.s: test_scheduler.cpp.s +.PHONY : test_scheduler.s + +# target to generate assembly for a file +test_scheduler.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_scheduler.cpp.s +.PHONY : test_scheduler.cpp.s + +test_telemetry.o: test_telemetry.cpp.o +.PHONY : test_telemetry.o + +# target to build an object file +test_telemetry.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_telemetry.cpp.o +.PHONY : test_telemetry.cpp.o + +test_telemetry.i: test_telemetry.cpp.i +.PHONY : test_telemetry.i + +# target to preprocess a source file +test_telemetry.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_telemetry.cpp.i +.PHONY : test_telemetry.cpp.i + +test_telemetry.s: test_telemetry.cpp.s +.PHONY : test_telemetry.s + +# target to generate assembly for a file +test_telemetry.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_telemetry.cpp.s +.PHONY : test_telemetry.cpp.s + +test_uisnapshot.o: test_uisnapshot.cpp.o +.PHONY : test_uisnapshot.o + +# target to build an object file +test_uisnapshot.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_uisnapshot.cpp.o +.PHONY : test_uisnapshot.cpp.o + +test_uisnapshot.i: test_uisnapshot.cpp.i +.PHONY : test_uisnapshot.i + +# target to preprocess a source file +test_uisnapshot.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_uisnapshot.cpp.i +.PHONY : test_uisnapshot.cpp.i + +test_uisnapshot.s: test_uisnapshot.cpp.s +.PHONY : test_uisnapshot.s + +# target to generate assembly for a file +test_uisnapshot.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-notui && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/fgc_tests.dir/build.make tests/CMakeFiles/fgc_tests.dir/test_uisnapshot.cpp.s +.PHONY : test_uisnapshot.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... fgc_tests" + @echo "... doctest_main.o" + @echo "... doctest_main.i" + @echo "... doctest_main.s" + @echo "... test_command.o" + @echo "... test_command.i" + @echo "... test_command.s" + @echo "... test_config.o" + @echo "... test_config.i" + @echo "... test_config.s" + @echo "... test_geometry.o" + @echo "... test_geometry.i" + @echo "... test_geometry.s" + @echo "... test_logger.o" + @echo "... test_logger.i" + @echo "... test_logger.s" + @echo "... test_paths.o" + @echo "... test_paths.i" + @echo "... test_paths.s" + @echo "... test_scangrid.o" + @echo "... test_scangrid.i" + @echo "... test_scangrid.s" + @echo "... test_scheduler.o" + @echo "... test_scheduler.i" + @echo "... test_scheduler.s" + @echo "... test_telemetry.o" + @echo "... test_telemetry.i" + @echo "... test_telemetry.s" + @echo "... test_uisnapshot.o" + @echo "... test_uisnapshot.i" + @echo "... test_uisnapshot.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/pedro/code/fwt_2a/software/build-notui && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build-notui/tests/fgc_tests b/build-notui/tests/fgc_tests new file mode 100755 index 0000000..9722049 Binary files /dev/null and b/build-notui/tests/fgc_tests differ diff --git a/build-notui/tests/fgc_tests_include-b858cb2.cmake b/build-notui/tests/fgc_tests_include-b858cb2.cmake new file mode 100644 index 0000000..67e4b87 --- /dev/null +++ b/build-notui/tests/fgc_tests_include-b858cb2.cmake @@ -0,0 +1,5 @@ +if(EXISTS "/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests_tests-b858cb2.cmake") + include("/home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests_tests-b858cb2.cmake") +else() + add_test(fgc_tests_NOT_BUILT-b858cb2 fgc_tests_NOT_BUILT-b858cb2) +endif() diff --git a/build-notui/tests/fgc_tests_tests-b858cb2.cmake b/build-notui/tests/fgc_tests_tests-b858cb2.cmake new file mode 100644 index 0000000..f9d00ff --- /dev/null +++ b/build-notui/tests/fgc_tests_tests-b858cb2.cmake @@ -0,0 +1,73 @@ +add_test( [==[parseCommand handles single-verb commands]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=parseCommand handles single-verb commands]==]) +set_tests_properties( [==[parseCommand handles single-verb commands]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[parseCommand splits device and trailing numeric value]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=parseCommand splits device and trailing numeric value]==]) +set_tests_properties( [==[parseCommand splits device and trailing numeric value]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[parseCommand keeps option plus value]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=parseCommand keeps option plus value]==]) +set_tests_properties( [==[parseCommand keeps option plus value]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[parseCommand keeps non-numeric option (raw motor command)]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=parseCommand keeps non-numeric option (raw motor command)]==]) +set_tests_properties( [==[parseCommand keeps non-numeric option (raw motor command)]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[parseCommand on empty input]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=parseCommand on empty input]==]) +set_tests_properties( [==[parseCommand on empty input]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[ConfigLoader maps and defaults typed values]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=ConfigLoader maps and defaults typed values]==]) +set_tests_properties( [==[ConfigLoader maps and defaults typed values]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[environment overrides file credentials]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=environment overrides file credentials]==]) +set_tests_properties( [==[environment overrides file credentials]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[ConfigLoader validates input]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=ConfigLoader validates input]==]) +set_tests_properties( [==[ConfigLoader validates input]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[AxisMap converts degrees and counts with an offset]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=AxisMap converts degrees and counts with an offset]==]) +set_tests_properties( [==[AxisMap converts degrees and counts with an offset]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[AxisMap clamps to the soft range on the way out]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=AxisMap clamps to the soft range on the way out]==]) +set_tests_properties( [==[AxisMap clamps to the soft range on the way out]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[AxisMap supports a negative (flipped) direction]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=AxisMap supports a negative (flipped) direction]==]) +set_tests_properties( [==[AxisMap supports a negative (flipped) direction]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[AxisMap toDeg guards against a zero scale]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=AxisMap toDeg guards against a zero scale]==]) +set_tests_properties( [==[AxisMap toDeg guards against a zero scale]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[parseCategories maps names, all/none, and flags unknown tokens]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=parseCategories maps names\, all/none\, and flags unknown tokens]==]) +set_tests_properties( [==[parseCategories maps names, all/none, and flags unknown tokens]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[catFromString round-trips and flags unknown]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=catFromString round-trips and flags unknown]==]) +set_tests_properties( [==[catFromString round-trips and flags unknown]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[category enable/disable/set round-trip]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=category enable/disable/set round-trip]==]) +set_tests_properties( [==[category enable/disable/set round-trip]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[LOG_TRACE_CAT gating is independent of the linear level]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=LOG_TRACE_CAT gating is independent of the linear level]==]) +set_tests_properties( [==[LOG_TRACE_CAT gating is independent of the linear level]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[expandUser expands ~ and environment variables]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=expandUser expands ~ and environment variables]==]) +set_tests_properties( [==[expandUser expands ~ and environment variables]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[configSearchPaths honours the CLI argument first]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=configSearchPaths honours the CLI argument first]==]) +set_tests_properties( [==[configSearchPaths honours the CLI argument first]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[parseScanCsv reads waypoints and skips comments/blanks]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=parseScanCsv reads waypoints and skips comments/blanks]==]) +set_tests_properties( [==[parseScanCsv reads waypoints and skips comments/blanks]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[parseScanCsv throws on a malformed line]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=parseScanCsv throws on a malformed line]==]) +set_tests_properties( [==[parseScanCsv throws on a malformed line]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[generateScanGrid produces yaw_intervals x pitch_levels points]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=generateScanGrid produces yaw_intervals x pitch_levels points]==]) +set_tests_properties( [==[generateScanGrid produces yaw_intervals x pitch_levels points]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[ScanGrid cursor ping-pongs at both ends]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=ScanGrid cursor ping-pongs at both ends]==]) +set_tests_properties( [==[ScanGrid cursor ping-pongs at both ends]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[ScanGrid single point and empty are safe]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=ScanGrid single point and empty are safe]==]) +set_tests_properties( [==[ScanGrid single point and empty are safe]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[CaptureScheduler sweeps the scan grid with MOVE + settle + trigger]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=CaptureScheduler sweeps the scan grid with MOVE + settle + trigger]==]) +set_tests_properties( [==[CaptureScheduler sweeps the scan grid with MOVE + settle + trigger]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[CaptureScheduler ControlCode 1 drives yaw to the target heading]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=CaptureScheduler ControlCode 1 drives yaw to the target heading]==]) +set_tests_properties( [==[CaptureScheduler ControlCode 1 drives yaw to the target heading]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[CaptureScheduler clamps the target heading to the soft range]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=CaptureScheduler clamps the target heading to the soft range]==]) +set_tests_properties( [==[CaptureScheduler clamps the target heading to the soft range]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[CaptureScheduler stays idle when capture inactive]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=CaptureScheduler stays idle when capture inactive]==]) +set_tests_properties( [==[CaptureScheduler stays idle when capture inactive]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[parseTelemetryLine reads a two-axis ST line]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=parseTelemetryLine reads a two-axis ST line]==]) +set_tests_properties( [==[parseTelemetryLine reads a two-axis ST line]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[parseTelemetryLine reads a yaw-only ST line (no flags field)]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=parseTelemetryLine reads a yaw-only ST line (no flags field)]==]) +set_tests_properties( [==[parseTelemetryLine reads a yaw-only ST line (no flags field)]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[parseTelemetryLine rejects non-ST and malformed lines]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=parseTelemetryLine rejects non-ST and malformed lines]==]) +set_tests_properties( [==[parseTelemetryLine rejects non-ST and malformed lines]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[parseTelemetryLine tolerates trailing CR]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=parseTelemetryLine tolerates trailing CR]==]) +set_tests_properties( [==[parseTelemetryLine tolerates trailing CR]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[axisStateLabel maps every state]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=axisStateLabel maps every state]==]) +set_tests_properties( [==[axisStateLabel maps every state]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[axisStateColor signals health]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=axisStateColor signals health]==]) +set_tests_properties( [==[axisStateColor signals health]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[formatDegrees: one decimal, sign preserved, degree sign appended]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=formatDegrees: one decimal\, sign preserved\, degree sign appended]==]) +set_tests_properties( [==[formatDegrees: one decimal, sign preserved, degree sign appended]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[formatTimeAgo: buckets and the never case]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=formatTimeAgo: buckets and the never case]==]) +set_tests_properties( [==[formatTimeAgo: buckets and the never case]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +add_test( [==[pendingSensorsView: all fields absent until drivers land]==] /home/pedro/code/fwt_2a/software/build-notui/tests/fgc_tests [==[--test-case=pendingSensorsView: all fields absent until drivers land]==]) +set_tests_properties( [==[pendingSensorsView: all fields absent until drivers land]==] PROPERTIES WORKING_DIRECTORY /home/pedro/code/fwt_2a/software/build-notui/tests LABELS) +set( fgc_tests_TESTS [==[parseCommand handles single-verb commands]==] [==[parseCommand splits device and trailing numeric value]==] [==[parseCommand keeps option plus value]==] [==[parseCommand keeps non-numeric option (raw motor command)]==] [==[parseCommand on empty input]==] [==[ConfigLoader maps and defaults typed values]==] [==[environment overrides file credentials]==] [==[ConfigLoader validates input]==] [==[AxisMap converts degrees and counts with an offset]==] [==[AxisMap clamps to the soft range on the way out]==] [==[AxisMap supports a negative (flipped) direction]==] [==[AxisMap toDeg guards against a zero scale]==] [==[parseCategories maps names, all/none, and flags unknown tokens]==] [==[catFromString round-trips and flags unknown]==] [==[category enable/disable/set round-trip]==] [==[LOG_TRACE_CAT gating is independent of the linear level]==] [==[expandUser expands ~ and environment variables]==] [==[configSearchPaths honours the CLI argument first]==] [==[parseScanCsv reads waypoints and skips comments/blanks]==] [==[parseScanCsv throws on a malformed line]==] [==[generateScanGrid produces yaw_intervals x pitch_levels points]==] [==[ScanGrid cursor ping-pongs at both ends]==] [==[ScanGrid single point and empty are safe]==] [==[CaptureScheduler sweeps the scan grid with MOVE + settle + trigger]==] [==[CaptureScheduler ControlCode 1 drives yaw to the target heading]==] [==[CaptureScheduler clamps the target heading to the soft range]==] [==[CaptureScheduler stays idle when capture inactive]==] [==[parseTelemetryLine reads a two-axis ST line]==] [==[parseTelemetryLine reads a yaw-only ST line (no flags field)]==] [==[parseTelemetryLine rejects non-ST and malformed lines]==] [==[parseTelemetryLine tolerates trailing CR]==] [==[axisStateLabel maps every state]==] [==[axisStateColor signals health]==] [==[formatDegrees: one decimal, sign preserved, degree sign appended]==] [==[formatTimeAgo: buckets and the never case]==] [==[pendingSensorsView: all fields absent until drivers land]==]) diff --git a/build-tui/Makefile b/build-tui/Makefile new file mode 100644 index 0000000..836776d --- /dev/null +++ b/build-tui/Makefile @@ -0,0 +1,669 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 4.3 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pedro/code/fwt_2a/software + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pedro/code/fwt_2a/software/build-tui + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..." + /usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-tui/CMakeFiles /home/pedro/code/fwt_2a/software/build-tui//CMakeFiles/progress.marks + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-tui/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named fgc_core + +# Build rule for target. +fgc_core: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 fgc_core +.PHONY : fgc_core + +# fast build rule for target. +fgc_core/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/build +.PHONY : fgc_core/fast + +#============================================================================= +# Target rules for targets named fire_gimbal_control + +# Build rule for target. +fire_gimbal_control: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 fire_gimbal_control +.PHONY : fire_gimbal_control + +# fast build rule for target. +fire_gimbal_control/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/build +.PHONY : fire_gimbal_control/fast + +#============================================================================= +# Target rules for targets named screen + +# Build rule for target. +screen: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 screen +.PHONY : screen + +# fast build rule for target. +screen/fast: + $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/build +.PHONY : screen/fast + +#============================================================================= +# Target rules for targets named dom + +# Build rule for target. +dom: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dom +.PHONY : dom + +# fast build rule for target. +dom/fast: + $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/build +.PHONY : dom/fast + +#============================================================================= +# Target rules for targets named component + +# Build rule for target. +component: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 component +.PHONY : component + +# fast build rule for target. +component/fast: + $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/build +.PHONY : component/fast + +ini.o: ini.c.o +.PHONY : ini.o + +# target to build an object file +ini.c.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/ini.c.o +.PHONY : ini.c.o + +ini.i: ini.c.i +.PHONY : ini.i + +# target to preprocess a source file +ini.c.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/ini.c.i +.PHONY : ini.c.i + +ini.s: ini.c.s +.PHONY : ini.s + +# target to generate assembly for a file +ini.c.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/ini.c.s +.PHONY : ini.c.s + +main.o: main.cpp.o +.PHONY : main.o + +# target to build an object file +main.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/main.cpp.o +.PHONY : main.cpp.o + +main.i: main.cpp.i +.PHONY : main.i + +# target to preprocess a source file +main.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/main.cpp.i +.PHONY : main.cpp.i + +main.s: main.cpp.s +.PHONY : main.s + +# target to generate assembly for a file +main.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/main.cpp.s +.PHONY : main.cpp.s + +src/camera/ImagePipeline.o: src/camera/ImagePipeline.cpp.o +.PHONY : src/camera/ImagePipeline.o + +# target to build an object file +src/camera/ImagePipeline.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/camera/ImagePipeline.cpp.o +.PHONY : src/camera/ImagePipeline.cpp.o + +src/camera/ImagePipeline.i: src/camera/ImagePipeline.cpp.i +.PHONY : src/camera/ImagePipeline.i + +# target to preprocess a source file +src/camera/ImagePipeline.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/camera/ImagePipeline.cpp.i +.PHONY : src/camera/ImagePipeline.cpp.i + +src/camera/ImagePipeline.s: src/camera/ImagePipeline.cpp.s +.PHONY : src/camera/ImagePipeline.s + +# target to generate assembly for a file +src/camera/ImagePipeline.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/camera/ImagePipeline.cpp.s +.PHONY : src/camera/ImagePipeline.cpp.s + +src/camera/JpegXlEncoder.o: src/camera/JpegXlEncoder.cpp.o +.PHONY : src/camera/JpegXlEncoder.o + +# target to build an object file +src/camera/JpegXlEncoder.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/camera/JpegXlEncoder.cpp.o +.PHONY : src/camera/JpegXlEncoder.cpp.o + +src/camera/JpegXlEncoder.i: src/camera/JpegXlEncoder.cpp.i +.PHONY : src/camera/JpegXlEncoder.i + +# target to preprocess a source file +src/camera/JpegXlEncoder.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/camera/JpegXlEncoder.cpp.i +.PHONY : src/camera/JpegXlEncoder.cpp.i + +src/camera/JpegXlEncoder.s: src/camera/JpegXlEncoder.cpp.s +.PHONY : src/camera/JpegXlEncoder.s + +# target to generate assembly for a file +src/camera/JpegXlEncoder.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/camera/JpegXlEncoder.cpp.s +.PHONY : src/camera/JpegXlEncoder.cpp.s + +src/core/Application.o: src/core/Application.cpp.o +.PHONY : src/core/Application.o + +# target to build an object file +src/core/Application.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/core/Application.cpp.o +.PHONY : src/core/Application.cpp.o + +src/core/Application.i: src/core/Application.cpp.i +.PHONY : src/core/Application.i + +# target to preprocess a source file +src/core/Application.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/core/Application.cpp.i +.PHONY : src/core/Application.cpp.i + +src/core/Application.s: src/core/Application.cpp.s +.PHONY : src/core/Application.s + +# target to generate assembly for a file +src/core/Application.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/core/Application.cpp.s +.PHONY : src/core/Application.cpp.s + +src/core/CaptureScheduler.o: src/core/CaptureScheduler.cpp.o +.PHONY : src/core/CaptureScheduler.o + +# target to build an object file +src/core/CaptureScheduler.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/CaptureScheduler.cpp.o +.PHONY : src/core/CaptureScheduler.cpp.o + +src/core/CaptureScheduler.i: src/core/CaptureScheduler.cpp.i +.PHONY : src/core/CaptureScheduler.i + +# target to preprocess a source file +src/core/CaptureScheduler.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/CaptureScheduler.cpp.i +.PHONY : src/core/CaptureScheduler.cpp.i + +src/core/CaptureScheduler.s: src/core/CaptureScheduler.cpp.s +.PHONY : src/core/CaptureScheduler.s + +# target to generate assembly for a file +src/core/CaptureScheduler.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/CaptureScheduler.cpp.s +.PHONY : src/core/CaptureScheduler.cpp.s + +src/core/CommandParser.o: src/core/CommandParser.cpp.o +.PHONY : src/core/CommandParser.o + +# target to build an object file +src/core/CommandParser.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/CommandParser.cpp.o +.PHONY : src/core/CommandParser.cpp.o + +src/core/CommandParser.i: src/core/CommandParser.cpp.i +.PHONY : src/core/CommandParser.i + +# target to preprocess a source file +src/core/CommandParser.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/CommandParser.cpp.i +.PHONY : src/core/CommandParser.cpp.i + +src/core/CommandParser.s: src/core/CommandParser.cpp.s +.PHONY : src/core/CommandParser.s + +# target to generate assembly for a file +src/core/CommandParser.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/CommandParser.cpp.s +.PHONY : src/core/CommandParser.cpp.s + +src/core/Config.o: src/core/Config.cpp.o +.PHONY : src/core/Config.o + +# target to build an object file +src/core/Config.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Config.cpp.o +.PHONY : src/core/Config.cpp.o + +src/core/Config.i: src/core/Config.cpp.i +.PHONY : src/core/Config.i + +# target to preprocess a source file +src/core/Config.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Config.cpp.i +.PHONY : src/core/Config.cpp.i + +src/core/Config.s: src/core/Config.cpp.s +.PHONY : src/core/Config.s + +# target to generate assembly for a file +src/core/Config.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Config.cpp.s +.PHONY : src/core/Config.cpp.s + +src/core/Geometry.o: src/core/Geometry.cpp.o +.PHONY : src/core/Geometry.o + +# target to build an object file +src/core/Geometry.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Geometry.cpp.o +.PHONY : src/core/Geometry.cpp.o + +src/core/Geometry.i: src/core/Geometry.cpp.i +.PHONY : src/core/Geometry.i + +# target to preprocess a source file +src/core/Geometry.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Geometry.cpp.i +.PHONY : src/core/Geometry.cpp.i + +src/core/Geometry.s: src/core/Geometry.cpp.s +.PHONY : src/core/Geometry.s + +# target to generate assembly for a file +src/core/Geometry.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Geometry.cpp.s +.PHONY : src/core/Geometry.cpp.s + +src/core/Logger.o: src/core/Logger.cpp.o +.PHONY : src/core/Logger.o + +# target to build an object file +src/core/Logger.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Logger.cpp.o +.PHONY : src/core/Logger.cpp.o + +src/core/Logger.i: src/core/Logger.cpp.i +.PHONY : src/core/Logger.i + +# target to preprocess a source file +src/core/Logger.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Logger.cpp.i +.PHONY : src/core/Logger.cpp.i + +src/core/Logger.s: src/core/Logger.cpp.s +.PHONY : src/core/Logger.s + +# target to generate assembly for a file +src/core/Logger.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Logger.cpp.s +.PHONY : src/core/Logger.cpp.s + +src/core/Paths.o: src/core/Paths.cpp.o +.PHONY : src/core/Paths.o + +# target to build an object file +src/core/Paths.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Paths.cpp.o +.PHONY : src/core/Paths.cpp.o + +src/core/Paths.i: src/core/Paths.cpp.i +.PHONY : src/core/Paths.i + +# target to preprocess a source file +src/core/Paths.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Paths.cpp.i +.PHONY : src/core/Paths.cpp.i + +src/core/Paths.s: src/core/Paths.cpp.s +.PHONY : src/core/Paths.s + +# target to generate assembly for a file +src/core/Paths.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/Paths.cpp.s +.PHONY : src/core/Paths.cpp.s + +src/core/ScanGrid.o: src/core/ScanGrid.cpp.o +.PHONY : src/core/ScanGrid.o + +# target to build an object file +src/core/ScanGrid.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/ScanGrid.cpp.o +.PHONY : src/core/ScanGrid.cpp.o + +src/core/ScanGrid.i: src/core/ScanGrid.cpp.i +.PHONY : src/core/ScanGrid.i + +# target to preprocess a source file +src/core/ScanGrid.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/ScanGrid.cpp.i +.PHONY : src/core/ScanGrid.cpp.i + +src/core/ScanGrid.s: src/core/ScanGrid.cpp.s +.PHONY : src/core/ScanGrid.s + +# target to generate assembly for a file +src/core/ScanGrid.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/ScanGrid.cpp.s +.PHONY : src/core/ScanGrid.cpp.s + +src/core/TelemetryParser.o: src/core/TelemetryParser.cpp.o +.PHONY : src/core/TelemetryParser.o + +# target to build an object file +src/core/TelemetryParser.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/TelemetryParser.cpp.o +.PHONY : src/core/TelemetryParser.cpp.o + +src/core/TelemetryParser.i: src/core/TelemetryParser.cpp.i +.PHONY : src/core/TelemetryParser.i + +# target to preprocess a source file +src/core/TelemetryParser.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/TelemetryParser.cpp.i +.PHONY : src/core/TelemetryParser.cpp.i + +src/core/TelemetryParser.s: src/core/TelemetryParser.cpp.s +.PHONY : src/core/TelemetryParser.s + +# target to generate assembly for a file +src/core/TelemetryParser.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/core/TelemetryParser.cpp.s +.PHONY : src/core/TelemetryParser.cpp.s + +src/serial/SerialMotorController.o: src/serial/SerialMotorController.cpp.o +.PHONY : src/serial/SerialMotorController.o + +# target to build an object file +src/serial/SerialMotorController.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/serial/SerialMotorController.cpp.o +.PHONY : src/serial/SerialMotorController.cpp.o + +src/serial/SerialMotorController.i: src/serial/SerialMotorController.cpp.i +.PHONY : src/serial/SerialMotorController.i + +# target to preprocess a source file +src/serial/SerialMotorController.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/serial/SerialMotorController.cpp.i +.PHONY : src/serial/SerialMotorController.cpp.i + +src/serial/SerialMotorController.s: src/serial/SerialMotorController.cpp.s +.PHONY : src/serial/SerialMotorController.s + +# target to generate assembly for a file +src/serial/SerialMotorController.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/serial/SerialMotorController.cpp.s +.PHONY : src/serial/SerialMotorController.cpp.s + +src/ui/HeadlessUi.o: src/ui/HeadlessUi.cpp.o +.PHONY : src/ui/HeadlessUi.o + +# target to build an object file +src/ui/HeadlessUi.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/ui/HeadlessUi.cpp.o +.PHONY : src/ui/HeadlessUi.cpp.o + +src/ui/HeadlessUi.i: src/ui/HeadlessUi.cpp.i +.PHONY : src/ui/HeadlessUi.i + +# target to preprocess a source file +src/ui/HeadlessUi.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/ui/HeadlessUi.cpp.i +.PHONY : src/ui/HeadlessUi.cpp.i + +src/ui/HeadlessUi.s: src/ui/HeadlessUi.cpp.s +.PHONY : src/ui/HeadlessUi.s + +# target to generate assembly for a file +src/ui/HeadlessUi.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/ui/HeadlessUi.cpp.s +.PHONY : src/ui/HeadlessUi.cpp.s + +src/ui/TuiUi.o: src/ui/TuiUi.cpp.o +.PHONY : src/ui/TuiUi.o + +# target to build an object file +src/ui/TuiUi.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/ui/TuiUi.cpp.o +.PHONY : src/ui/TuiUi.cpp.o + +src/ui/TuiUi.i: src/ui/TuiUi.cpp.i +.PHONY : src/ui/TuiUi.i + +# target to preprocess a source file +src/ui/TuiUi.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/ui/TuiUi.cpp.i +.PHONY : src/ui/TuiUi.cpp.i + +src/ui/TuiUi.s: src/ui/TuiUi.cpp.s +.PHONY : src/ui/TuiUi.s + +# target to generate assembly for a file +src/ui/TuiUi.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fire_gimbal_control.dir/build.make CMakeFiles/fire_gimbal_control.dir/src/ui/TuiUi.cpp.s +.PHONY : src/ui/TuiUi.cpp.s + +src/ui/UiSnapshot.o: src/ui/UiSnapshot.cpp.o +.PHONY : src/ui/UiSnapshot.o + +# target to build an object file +src/ui/UiSnapshot.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/ui/UiSnapshot.cpp.o +.PHONY : src/ui/UiSnapshot.cpp.o + +src/ui/UiSnapshot.i: src/ui/UiSnapshot.cpp.i +.PHONY : src/ui/UiSnapshot.i + +# target to preprocess a source file +src/ui/UiSnapshot.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/ui/UiSnapshot.cpp.i +.PHONY : src/ui/UiSnapshot.cpp.i + +src/ui/UiSnapshot.s: src/ui/UiSnapshot.cpp.s +.PHONY : src/ui/UiSnapshot.s + +# target to generate assembly for a file +src/ui/UiSnapshot.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/fgc_core.dir/build.make CMakeFiles/fgc_core.dir/src/ui/UiSnapshot.cpp.s +.PHONY : src/ui/UiSnapshot.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... component" + @echo "... dom" + @echo "... fgc_core" + @echo "... fire_gimbal_control" + @echo "... screen" + @echo "... ini.o" + @echo "... ini.i" + @echo "... ini.s" + @echo "... main.o" + @echo "... main.i" + @echo "... main.s" + @echo "... src/camera/ImagePipeline.o" + @echo "... src/camera/ImagePipeline.i" + @echo "... src/camera/ImagePipeline.s" + @echo "... src/camera/JpegXlEncoder.o" + @echo "... src/camera/JpegXlEncoder.i" + @echo "... src/camera/JpegXlEncoder.s" + @echo "... src/core/Application.o" + @echo "... src/core/Application.i" + @echo "... src/core/Application.s" + @echo "... src/core/CaptureScheduler.o" + @echo "... src/core/CaptureScheduler.i" + @echo "... src/core/CaptureScheduler.s" + @echo "... src/core/CommandParser.o" + @echo "... src/core/CommandParser.i" + @echo "... src/core/CommandParser.s" + @echo "... src/core/Config.o" + @echo "... src/core/Config.i" + @echo "... src/core/Config.s" + @echo "... src/core/Geometry.o" + @echo "... src/core/Geometry.i" + @echo "... src/core/Geometry.s" + @echo "... src/core/Logger.o" + @echo "... src/core/Logger.i" + @echo "... src/core/Logger.s" + @echo "... src/core/Paths.o" + @echo "... src/core/Paths.i" + @echo "... src/core/Paths.s" + @echo "... src/core/ScanGrid.o" + @echo "... src/core/ScanGrid.i" + @echo "... src/core/ScanGrid.s" + @echo "... src/core/TelemetryParser.o" + @echo "... src/core/TelemetryParser.i" + @echo "... src/core/TelemetryParser.s" + @echo "... src/serial/SerialMotorController.o" + @echo "... src/serial/SerialMotorController.i" + @echo "... src/serial/SerialMotorController.s" + @echo "... src/ui/HeadlessUi.o" + @echo "... src/ui/HeadlessUi.i" + @echo "... src/ui/HeadlessUi.s" + @echo "... src/ui/TuiUi.o" + @echo "... src/ui/TuiUi.i" + @echo "... src/ui/TuiUi.s" + @echo "... src/ui/UiSnapshot.o" + @echo "... src/ui/UiSnapshot.i" + @echo "... src/ui/UiSnapshot.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build-tui/_deps/ftxui-build/Makefile b/build-tui/_deps/ftxui-build/Makefile new file mode 100644 index 0000000..f33eefa --- /dev/null +++ b/build-tui/_deps/ftxui-build/Makefile @@ -0,0 +1,2048 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 4.3 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pedro/code/fwt_2a/software + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pedro/code/fwt_2a/software/build-tui + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..." + /usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# The main all target +all: cmake_check_build_system + cd /home/pedro/code/fwt_2a/software/build-tui && $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-tui/CMakeFiles /home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-build//CMakeFiles/progress.marks + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/ftxui-build/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-tui/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/ftxui-build/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/ftxui-build/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/ftxui-build/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/pedro/code/fwt_2a/software/build-tui && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +_deps/ftxui-build/CMakeFiles/screen.dir/rule: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/ftxui-build/CMakeFiles/screen.dir/rule +.PHONY : _deps/ftxui-build/CMakeFiles/screen.dir/rule + +# Convenience name for target. +screen: _deps/ftxui-build/CMakeFiles/screen.dir/rule +.PHONY : screen + +# fast build rule for target. +screen/fast: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/build +.PHONY : screen/fast + +# Convenience name for target. +_deps/ftxui-build/CMakeFiles/dom.dir/rule: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/ftxui-build/CMakeFiles/dom.dir/rule +.PHONY : _deps/ftxui-build/CMakeFiles/dom.dir/rule + +# Convenience name for target. +dom: _deps/ftxui-build/CMakeFiles/dom.dir/rule +.PHONY : dom + +# fast build rule for target. +dom/fast: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/build +.PHONY : dom/fast + +# Convenience name for target. +_deps/ftxui-build/CMakeFiles/component.dir/rule: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/ftxui-build/CMakeFiles/component.dir/rule +.PHONY : _deps/ftxui-build/CMakeFiles/component.dir/rule + +# Convenience name for target. +component: _deps/ftxui-build/CMakeFiles/component.dir/rule +.PHONY : component + +# fast build rule for target. +component/fast: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/build +.PHONY : component/fast + +src/ftxui/component/animation.o: src/ftxui/component/animation.cpp.o +.PHONY : src/ftxui/component/animation.o + +# target to build an object file +src/ftxui/component/animation.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/animation.cpp.o +.PHONY : src/ftxui/component/animation.cpp.o + +src/ftxui/component/animation.i: src/ftxui/component/animation.cpp.i +.PHONY : src/ftxui/component/animation.i + +# target to preprocess a source file +src/ftxui/component/animation.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/animation.cpp.i +.PHONY : src/ftxui/component/animation.cpp.i + +src/ftxui/component/animation.s: src/ftxui/component/animation.cpp.s +.PHONY : src/ftxui/component/animation.s + +# target to generate assembly for a file +src/ftxui/component/animation.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/animation.cpp.s +.PHONY : src/ftxui/component/animation.cpp.s + +src/ftxui/component/button.o: src/ftxui/component/button.cpp.o +.PHONY : src/ftxui/component/button.o + +# target to build an object file +src/ftxui/component/button.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/button.cpp.o +.PHONY : src/ftxui/component/button.cpp.o + +src/ftxui/component/button.i: src/ftxui/component/button.cpp.i +.PHONY : src/ftxui/component/button.i + +# target to preprocess a source file +src/ftxui/component/button.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/button.cpp.i +.PHONY : src/ftxui/component/button.cpp.i + +src/ftxui/component/button.s: src/ftxui/component/button.cpp.s +.PHONY : src/ftxui/component/button.s + +# target to generate assembly for a file +src/ftxui/component/button.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/button.cpp.s +.PHONY : src/ftxui/component/button.cpp.s + +src/ftxui/component/catch_event.o: src/ftxui/component/catch_event.cpp.o +.PHONY : src/ftxui/component/catch_event.o + +# target to build an object file +src/ftxui/component/catch_event.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/catch_event.cpp.o +.PHONY : src/ftxui/component/catch_event.cpp.o + +src/ftxui/component/catch_event.i: src/ftxui/component/catch_event.cpp.i +.PHONY : src/ftxui/component/catch_event.i + +# target to preprocess a source file +src/ftxui/component/catch_event.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/catch_event.cpp.i +.PHONY : src/ftxui/component/catch_event.cpp.i + +src/ftxui/component/catch_event.s: src/ftxui/component/catch_event.cpp.s +.PHONY : src/ftxui/component/catch_event.s + +# target to generate assembly for a file +src/ftxui/component/catch_event.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/catch_event.cpp.s +.PHONY : src/ftxui/component/catch_event.cpp.s + +src/ftxui/component/checkbox.o: src/ftxui/component/checkbox.cpp.o +.PHONY : src/ftxui/component/checkbox.o + +# target to build an object file +src/ftxui/component/checkbox.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/checkbox.cpp.o +.PHONY : src/ftxui/component/checkbox.cpp.o + +src/ftxui/component/checkbox.i: src/ftxui/component/checkbox.cpp.i +.PHONY : src/ftxui/component/checkbox.i + +# target to preprocess a source file +src/ftxui/component/checkbox.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/checkbox.cpp.i +.PHONY : src/ftxui/component/checkbox.cpp.i + +src/ftxui/component/checkbox.s: src/ftxui/component/checkbox.cpp.s +.PHONY : src/ftxui/component/checkbox.s + +# target to generate assembly for a file +src/ftxui/component/checkbox.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/checkbox.cpp.s +.PHONY : src/ftxui/component/checkbox.cpp.s + +src/ftxui/component/collapsible.o: src/ftxui/component/collapsible.cpp.o +.PHONY : src/ftxui/component/collapsible.o + +# target to build an object file +src/ftxui/component/collapsible.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/collapsible.cpp.o +.PHONY : src/ftxui/component/collapsible.cpp.o + +src/ftxui/component/collapsible.i: src/ftxui/component/collapsible.cpp.i +.PHONY : src/ftxui/component/collapsible.i + +# target to preprocess a source file +src/ftxui/component/collapsible.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/collapsible.cpp.i +.PHONY : src/ftxui/component/collapsible.cpp.i + +src/ftxui/component/collapsible.s: src/ftxui/component/collapsible.cpp.s +.PHONY : src/ftxui/component/collapsible.s + +# target to generate assembly for a file +src/ftxui/component/collapsible.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/collapsible.cpp.s +.PHONY : src/ftxui/component/collapsible.cpp.s + +src/ftxui/component/component.o: src/ftxui/component/component.cpp.o +.PHONY : src/ftxui/component/component.o + +# target to build an object file +src/ftxui/component/component.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/component.cpp.o +.PHONY : src/ftxui/component/component.cpp.o + +src/ftxui/component/component.i: src/ftxui/component/component.cpp.i +.PHONY : src/ftxui/component/component.i + +# target to preprocess a source file +src/ftxui/component/component.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/component.cpp.i +.PHONY : src/ftxui/component/component.cpp.i + +src/ftxui/component/component.s: src/ftxui/component/component.cpp.s +.PHONY : src/ftxui/component/component.s + +# target to generate assembly for a file +src/ftxui/component/component.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/component.cpp.s +.PHONY : src/ftxui/component/component.cpp.s + +src/ftxui/component/component_options.o: src/ftxui/component/component_options.cpp.o +.PHONY : src/ftxui/component/component_options.o + +# target to build an object file +src/ftxui/component/component_options.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/component_options.cpp.o +.PHONY : src/ftxui/component/component_options.cpp.o + +src/ftxui/component/component_options.i: src/ftxui/component/component_options.cpp.i +.PHONY : src/ftxui/component/component_options.i + +# target to preprocess a source file +src/ftxui/component/component_options.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/component_options.cpp.i +.PHONY : src/ftxui/component/component_options.cpp.i + +src/ftxui/component/component_options.s: src/ftxui/component/component_options.cpp.s +.PHONY : src/ftxui/component/component_options.s + +# target to generate assembly for a file +src/ftxui/component/component_options.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/component_options.cpp.s +.PHONY : src/ftxui/component/component_options.cpp.s + +src/ftxui/component/container.o: src/ftxui/component/container.cpp.o +.PHONY : src/ftxui/component/container.o + +# target to build an object file +src/ftxui/component/container.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/container.cpp.o +.PHONY : src/ftxui/component/container.cpp.o + +src/ftxui/component/container.i: src/ftxui/component/container.cpp.i +.PHONY : src/ftxui/component/container.i + +# target to preprocess a source file +src/ftxui/component/container.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/container.cpp.i +.PHONY : src/ftxui/component/container.cpp.i + +src/ftxui/component/container.s: src/ftxui/component/container.cpp.s +.PHONY : src/ftxui/component/container.s + +# target to generate assembly for a file +src/ftxui/component/container.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/container.cpp.s +.PHONY : src/ftxui/component/container.cpp.s + +src/ftxui/component/dropdown.o: src/ftxui/component/dropdown.cpp.o +.PHONY : src/ftxui/component/dropdown.o + +# target to build an object file +src/ftxui/component/dropdown.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/dropdown.cpp.o +.PHONY : src/ftxui/component/dropdown.cpp.o + +src/ftxui/component/dropdown.i: src/ftxui/component/dropdown.cpp.i +.PHONY : src/ftxui/component/dropdown.i + +# target to preprocess a source file +src/ftxui/component/dropdown.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/dropdown.cpp.i +.PHONY : src/ftxui/component/dropdown.cpp.i + +src/ftxui/component/dropdown.s: src/ftxui/component/dropdown.cpp.s +.PHONY : src/ftxui/component/dropdown.s + +# target to generate assembly for a file +src/ftxui/component/dropdown.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/dropdown.cpp.s +.PHONY : src/ftxui/component/dropdown.cpp.s + +src/ftxui/component/event.o: src/ftxui/component/event.cpp.o +.PHONY : src/ftxui/component/event.o + +# target to build an object file +src/ftxui/component/event.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/event.cpp.o +.PHONY : src/ftxui/component/event.cpp.o + +src/ftxui/component/event.i: src/ftxui/component/event.cpp.i +.PHONY : src/ftxui/component/event.i + +# target to preprocess a source file +src/ftxui/component/event.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/event.cpp.i +.PHONY : src/ftxui/component/event.cpp.i + +src/ftxui/component/event.s: src/ftxui/component/event.cpp.s +.PHONY : src/ftxui/component/event.s + +# target to generate assembly for a file +src/ftxui/component/event.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/event.cpp.s +.PHONY : src/ftxui/component/event.cpp.s + +src/ftxui/component/hoverable.o: src/ftxui/component/hoverable.cpp.o +.PHONY : src/ftxui/component/hoverable.o + +# target to build an object file +src/ftxui/component/hoverable.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/hoverable.cpp.o +.PHONY : src/ftxui/component/hoverable.cpp.o + +src/ftxui/component/hoverable.i: src/ftxui/component/hoverable.cpp.i +.PHONY : src/ftxui/component/hoverable.i + +# target to preprocess a source file +src/ftxui/component/hoverable.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/hoverable.cpp.i +.PHONY : src/ftxui/component/hoverable.cpp.i + +src/ftxui/component/hoverable.s: src/ftxui/component/hoverable.cpp.s +.PHONY : src/ftxui/component/hoverable.s + +# target to generate assembly for a file +src/ftxui/component/hoverable.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/hoverable.cpp.s +.PHONY : src/ftxui/component/hoverable.cpp.s + +src/ftxui/component/input.o: src/ftxui/component/input.cpp.o +.PHONY : src/ftxui/component/input.o + +# target to build an object file +src/ftxui/component/input.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/input.cpp.o +.PHONY : src/ftxui/component/input.cpp.o + +src/ftxui/component/input.i: src/ftxui/component/input.cpp.i +.PHONY : src/ftxui/component/input.i + +# target to preprocess a source file +src/ftxui/component/input.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/input.cpp.i +.PHONY : src/ftxui/component/input.cpp.i + +src/ftxui/component/input.s: src/ftxui/component/input.cpp.s +.PHONY : src/ftxui/component/input.s + +# target to generate assembly for a file +src/ftxui/component/input.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/input.cpp.s +.PHONY : src/ftxui/component/input.cpp.s + +src/ftxui/component/loop.o: src/ftxui/component/loop.cpp.o +.PHONY : src/ftxui/component/loop.o + +# target to build an object file +src/ftxui/component/loop.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/loop.cpp.o +.PHONY : src/ftxui/component/loop.cpp.o + +src/ftxui/component/loop.i: src/ftxui/component/loop.cpp.i +.PHONY : src/ftxui/component/loop.i + +# target to preprocess a source file +src/ftxui/component/loop.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/loop.cpp.i +.PHONY : src/ftxui/component/loop.cpp.i + +src/ftxui/component/loop.s: src/ftxui/component/loop.cpp.s +.PHONY : src/ftxui/component/loop.s + +# target to generate assembly for a file +src/ftxui/component/loop.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/loop.cpp.s +.PHONY : src/ftxui/component/loop.cpp.s + +src/ftxui/component/maybe.o: src/ftxui/component/maybe.cpp.o +.PHONY : src/ftxui/component/maybe.o + +# target to build an object file +src/ftxui/component/maybe.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/maybe.cpp.o +.PHONY : src/ftxui/component/maybe.cpp.o + +src/ftxui/component/maybe.i: src/ftxui/component/maybe.cpp.i +.PHONY : src/ftxui/component/maybe.i + +# target to preprocess a source file +src/ftxui/component/maybe.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/maybe.cpp.i +.PHONY : src/ftxui/component/maybe.cpp.i + +src/ftxui/component/maybe.s: src/ftxui/component/maybe.cpp.s +.PHONY : src/ftxui/component/maybe.s + +# target to generate assembly for a file +src/ftxui/component/maybe.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/maybe.cpp.s +.PHONY : src/ftxui/component/maybe.cpp.s + +src/ftxui/component/menu.o: src/ftxui/component/menu.cpp.o +.PHONY : src/ftxui/component/menu.o + +# target to build an object file +src/ftxui/component/menu.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/menu.cpp.o +.PHONY : src/ftxui/component/menu.cpp.o + +src/ftxui/component/menu.i: src/ftxui/component/menu.cpp.i +.PHONY : src/ftxui/component/menu.i + +# target to preprocess a source file +src/ftxui/component/menu.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/menu.cpp.i +.PHONY : src/ftxui/component/menu.cpp.i + +src/ftxui/component/menu.s: src/ftxui/component/menu.cpp.s +.PHONY : src/ftxui/component/menu.s + +# target to generate assembly for a file +src/ftxui/component/menu.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/menu.cpp.s +.PHONY : src/ftxui/component/menu.cpp.s + +src/ftxui/component/modal.o: src/ftxui/component/modal.cpp.o +.PHONY : src/ftxui/component/modal.o + +# target to build an object file +src/ftxui/component/modal.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/modal.cpp.o +.PHONY : src/ftxui/component/modal.cpp.o + +src/ftxui/component/modal.i: src/ftxui/component/modal.cpp.i +.PHONY : src/ftxui/component/modal.i + +# target to preprocess a source file +src/ftxui/component/modal.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/modal.cpp.i +.PHONY : src/ftxui/component/modal.cpp.i + +src/ftxui/component/modal.s: src/ftxui/component/modal.cpp.s +.PHONY : src/ftxui/component/modal.s + +# target to generate assembly for a file +src/ftxui/component/modal.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/modal.cpp.s +.PHONY : src/ftxui/component/modal.cpp.s + +src/ftxui/component/radiobox.o: src/ftxui/component/radiobox.cpp.o +.PHONY : src/ftxui/component/radiobox.o + +# target to build an object file +src/ftxui/component/radiobox.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/radiobox.cpp.o +.PHONY : src/ftxui/component/radiobox.cpp.o + +src/ftxui/component/radiobox.i: src/ftxui/component/radiobox.cpp.i +.PHONY : src/ftxui/component/radiobox.i + +# target to preprocess a source file +src/ftxui/component/radiobox.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/radiobox.cpp.i +.PHONY : src/ftxui/component/radiobox.cpp.i + +src/ftxui/component/radiobox.s: src/ftxui/component/radiobox.cpp.s +.PHONY : src/ftxui/component/radiobox.s + +# target to generate assembly for a file +src/ftxui/component/radiobox.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/radiobox.cpp.s +.PHONY : src/ftxui/component/radiobox.cpp.s + +src/ftxui/component/renderer.o: src/ftxui/component/renderer.cpp.o +.PHONY : src/ftxui/component/renderer.o + +# target to build an object file +src/ftxui/component/renderer.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/renderer.cpp.o +.PHONY : src/ftxui/component/renderer.cpp.o + +src/ftxui/component/renderer.i: src/ftxui/component/renderer.cpp.i +.PHONY : src/ftxui/component/renderer.i + +# target to preprocess a source file +src/ftxui/component/renderer.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/renderer.cpp.i +.PHONY : src/ftxui/component/renderer.cpp.i + +src/ftxui/component/renderer.s: src/ftxui/component/renderer.cpp.s +.PHONY : src/ftxui/component/renderer.s + +# target to generate assembly for a file +src/ftxui/component/renderer.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/renderer.cpp.s +.PHONY : src/ftxui/component/renderer.cpp.s + +src/ftxui/component/resizable_split.o: src/ftxui/component/resizable_split.cpp.o +.PHONY : src/ftxui/component/resizable_split.o + +# target to build an object file +src/ftxui/component/resizable_split.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/resizable_split.cpp.o +.PHONY : src/ftxui/component/resizable_split.cpp.o + +src/ftxui/component/resizable_split.i: src/ftxui/component/resizable_split.cpp.i +.PHONY : src/ftxui/component/resizable_split.i + +# target to preprocess a source file +src/ftxui/component/resizable_split.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/resizable_split.cpp.i +.PHONY : src/ftxui/component/resizable_split.cpp.i + +src/ftxui/component/resizable_split.s: src/ftxui/component/resizable_split.cpp.s +.PHONY : src/ftxui/component/resizable_split.s + +# target to generate assembly for a file +src/ftxui/component/resizable_split.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/resizable_split.cpp.s +.PHONY : src/ftxui/component/resizable_split.cpp.s + +src/ftxui/component/screen_interactive.o: src/ftxui/component/screen_interactive.cpp.o +.PHONY : src/ftxui/component/screen_interactive.o + +# target to build an object file +src/ftxui/component/screen_interactive.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/screen_interactive.cpp.o +.PHONY : src/ftxui/component/screen_interactive.cpp.o + +src/ftxui/component/screen_interactive.i: src/ftxui/component/screen_interactive.cpp.i +.PHONY : src/ftxui/component/screen_interactive.i + +# target to preprocess a source file +src/ftxui/component/screen_interactive.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/screen_interactive.cpp.i +.PHONY : src/ftxui/component/screen_interactive.cpp.i + +src/ftxui/component/screen_interactive.s: src/ftxui/component/screen_interactive.cpp.s +.PHONY : src/ftxui/component/screen_interactive.s + +# target to generate assembly for a file +src/ftxui/component/screen_interactive.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/screen_interactive.cpp.s +.PHONY : src/ftxui/component/screen_interactive.cpp.s + +src/ftxui/component/slider.o: src/ftxui/component/slider.cpp.o +.PHONY : src/ftxui/component/slider.o + +# target to build an object file +src/ftxui/component/slider.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/slider.cpp.o +.PHONY : src/ftxui/component/slider.cpp.o + +src/ftxui/component/slider.i: src/ftxui/component/slider.cpp.i +.PHONY : src/ftxui/component/slider.i + +# target to preprocess a source file +src/ftxui/component/slider.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/slider.cpp.i +.PHONY : src/ftxui/component/slider.cpp.i + +src/ftxui/component/slider.s: src/ftxui/component/slider.cpp.s +.PHONY : src/ftxui/component/slider.s + +# target to generate assembly for a file +src/ftxui/component/slider.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/slider.cpp.s +.PHONY : src/ftxui/component/slider.cpp.s + +src/ftxui/component/terminal_input_parser.o: src/ftxui/component/terminal_input_parser.cpp.o +.PHONY : src/ftxui/component/terminal_input_parser.o + +# target to build an object file +src/ftxui/component/terminal_input_parser.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/terminal_input_parser.cpp.o +.PHONY : src/ftxui/component/terminal_input_parser.cpp.o + +src/ftxui/component/terminal_input_parser.i: src/ftxui/component/terminal_input_parser.cpp.i +.PHONY : src/ftxui/component/terminal_input_parser.i + +# target to preprocess a source file +src/ftxui/component/terminal_input_parser.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/terminal_input_parser.cpp.i +.PHONY : src/ftxui/component/terminal_input_parser.cpp.i + +src/ftxui/component/terminal_input_parser.s: src/ftxui/component/terminal_input_parser.cpp.s +.PHONY : src/ftxui/component/terminal_input_parser.s + +# target to generate assembly for a file +src/ftxui/component/terminal_input_parser.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/terminal_input_parser.cpp.s +.PHONY : src/ftxui/component/terminal_input_parser.cpp.s + +src/ftxui/component/util.o: src/ftxui/component/util.cpp.o +.PHONY : src/ftxui/component/util.o + +# target to build an object file +src/ftxui/component/util.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/util.cpp.o +.PHONY : src/ftxui/component/util.cpp.o + +src/ftxui/component/util.i: src/ftxui/component/util.cpp.i +.PHONY : src/ftxui/component/util.i + +# target to preprocess a source file +src/ftxui/component/util.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/util.cpp.i +.PHONY : src/ftxui/component/util.cpp.i + +src/ftxui/component/util.s: src/ftxui/component/util.cpp.s +.PHONY : src/ftxui/component/util.s + +# target to generate assembly for a file +src/ftxui/component/util.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/util.cpp.s +.PHONY : src/ftxui/component/util.cpp.s + +src/ftxui/component/window.o: src/ftxui/component/window.cpp.o +.PHONY : src/ftxui/component/window.o + +# target to build an object file +src/ftxui/component/window.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/window.cpp.o +.PHONY : src/ftxui/component/window.cpp.o + +src/ftxui/component/window.i: src/ftxui/component/window.cpp.i +.PHONY : src/ftxui/component/window.i + +# target to preprocess a source file +src/ftxui/component/window.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/window.cpp.i +.PHONY : src/ftxui/component/window.cpp.i + +src/ftxui/component/window.s: src/ftxui/component/window.cpp.s +.PHONY : src/ftxui/component/window.s + +# target to generate assembly for a file +src/ftxui/component/window.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/component.dir/build.make _deps/ftxui-build/CMakeFiles/component.dir/src/ftxui/component/window.cpp.s +.PHONY : src/ftxui/component/window.cpp.s + +src/ftxui/dom/automerge.o: src/ftxui/dom/automerge.cpp.o +.PHONY : src/ftxui/dom/automerge.o + +# target to build an object file +src/ftxui/dom/automerge.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/automerge.cpp.o +.PHONY : src/ftxui/dom/automerge.cpp.o + +src/ftxui/dom/automerge.i: src/ftxui/dom/automerge.cpp.i +.PHONY : src/ftxui/dom/automerge.i + +# target to preprocess a source file +src/ftxui/dom/automerge.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/automerge.cpp.i +.PHONY : src/ftxui/dom/automerge.cpp.i + +src/ftxui/dom/automerge.s: src/ftxui/dom/automerge.cpp.s +.PHONY : src/ftxui/dom/automerge.s + +# target to generate assembly for a file +src/ftxui/dom/automerge.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/automerge.cpp.s +.PHONY : src/ftxui/dom/automerge.cpp.s + +src/ftxui/dom/blink.o: src/ftxui/dom/blink.cpp.o +.PHONY : src/ftxui/dom/blink.o + +# target to build an object file +src/ftxui/dom/blink.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/blink.cpp.o +.PHONY : src/ftxui/dom/blink.cpp.o + +src/ftxui/dom/blink.i: src/ftxui/dom/blink.cpp.i +.PHONY : src/ftxui/dom/blink.i + +# target to preprocess a source file +src/ftxui/dom/blink.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/blink.cpp.i +.PHONY : src/ftxui/dom/blink.cpp.i + +src/ftxui/dom/blink.s: src/ftxui/dom/blink.cpp.s +.PHONY : src/ftxui/dom/blink.s + +# target to generate assembly for a file +src/ftxui/dom/blink.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/blink.cpp.s +.PHONY : src/ftxui/dom/blink.cpp.s + +src/ftxui/dom/bold.o: src/ftxui/dom/bold.cpp.o +.PHONY : src/ftxui/dom/bold.o + +# target to build an object file +src/ftxui/dom/bold.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/bold.cpp.o +.PHONY : src/ftxui/dom/bold.cpp.o + +src/ftxui/dom/bold.i: src/ftxui/dom/bold.cpp.i +.PHONY : src/ftxui/dom/bold.i + +# target to preprocess a source file +src/ftxui/dom/bold.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/bold.cpp.i +.PHONY : src/ftxui/dom/bold.cpp.i + +src/ftxui/dom/bold.s: src/ftxui/dom/bold.cpp.s +.PHONY : src/ftxui/dom/bold.s + +# target to generate assembly for a file +src/ftxui/dom/bold.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/bold.cpp.s +.PHONY : src/ftxui/dom/bold.cpp.s + +src/ftxui/dom/border.o: src/ftxui/dom/border.cpp.o +.PHONY : src/ftxui/dom/border.o + +# target to build an object file +src/ftxui/dom/border.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/border.cpp.o +.PHONY : src/ftxui/dom/border.cpp.o + +src/ftxui/dom/border.i: src/ftxui/dom/border.cpp.i +.PHONY : src/ftxui/dom/border.i + +# target to preprocess a source file +src/ftxui/dom/border.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/border.cpp.i +.PHONY : src/ftxui/dom/border.cpp.i + +src/ftxui/dom/border.s: src/ftxui/dom/border.cpp.s +.PHONY : src/ftxui/dom/border.s + +# target to generate assembly for a file +src/ftxui/dom/border.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/border.cpp.s +.PHONY : src/ftxui/dom/border.cpp.s + +src/ftxui/dom/box_helper.o: src/ftxui/dom/box_helper.cpp.o +.PHONY : src/ftxui/dom/box_helper.o + +# target to build an object file +src/ftxui/dom/box_helper.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/box_helper.cpp.o +.PHONY : src/ftxui/dom/box_helper.cpp.o + +src/ftxui/dom/box_helper.i: src/ftxui/dom/box_helper.cpp.i +.PHONY : src/ftxui/dom/box_helper.i + +# target to preprocess a source file +src/ftxui/dom/box_helper.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/box_helper.cpp.i +.PHONY : src/ftxui/dom/box_helper.cpp.i + +src/ftxui/dom/box_helper.s: src/ftxui/dom/box_helper.cpp.s +.PHONY : src/ftxui/dom/box_helper.s + +# target to generate assembly for a file +src/ftxui/dom/box_helper.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/box_helper.cpp.s +.PHONY : src/ftxui/dom/box_helper.cpp.s + +src/ftxui/dom/canvas.o: src/ftxui/dom/canvas.cpp.o +.PHONY : src/ftxui/dom/canvas.o + +# target to build an object file +src/ftxui/dom/canvas.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/canvas.cpp.o +.PHONY : src/ftxui/dom/canvas.cpp.o + +src/ftxui/dom/canvas.i: src/ftxui/dom/canvas.cpp.i +.PHONY : src/ftxui/dom/canvas.i + +# target to preprocess a source file +src/ftxui/dom/canvas.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/canvas.cpp.i +.PHONY : src/ftxui/dom/canvas.cpp.i + +src/ftxui/dom/canvas.s: src/ftxui/dom/canvas.cpp.s +.PHONY : src/ftxui/dom/canvas.s + +# target to generate assembly for a file +src/ftxui/dom/canvas.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/canvas.cpp.s +.PHONY : src/ftxui/dom/canvas.cpp.s + +src/ftxui/dom/clear_under.o: src/ftxui/dom/clear_under.cpp.o +.PHONY : src/ftxui/dom/clear_under.o + +# target to build an object file +src/ftxui/dom/clear_under.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/clear_under.cpp.o +.PHONY : src/ftxui/dom/clear_under.cpp.o + +src/ftxui/dom/clear_under.i: src/ftxui/dom/clear_under.cpp.i +.PHONY : src/ftxui/dom/clear_under.i + +# target to preprocess a source file +src/ftxui/dom/clear_under.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/clear_under.cpp.i +.PHONY : src/ftxui/dom/clear_under.cpp.i + +src/ftxui/dom/clear_under.s: src/ftxui/dom/clear_under.cpp.s +.PHONY : src/ftxui/dom/clear_under.s + +# target to generate assembly for a file +src/ftxui/dom/clear_under.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/clear_under.cpp.s +.PHONY : src/ftxui/dom/clear_under.cpp.s + +src/ftxui/dom/color.o: src/ftxui/dom/color.cpp.o +.PHONY : src/ftxui/dom/color.o + +# target to build an object file +src/ftxui/dom/color.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/color.cpp.o +.PHONY : src/ftxui/dom/color.cpp.o + +src/ftxui/dom/color.i: src/ftxui/dom/color.cpp.i +.PHONY : src/ftxui/dom/color.i + +# target to preprocess a source file +src/ftxui/dom/color.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/color.cpp.i +.PHONY : src/ftxui/dom/color.cpp.i + +src/ftxui/dom/color.s: src/ftxui/dom/color.cpp.s +.PHONY : src/ftxui/dom/color.s + +# target to generate assembly for a file +src/ftxui/dom/color.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/color.cpp.s +.PHONY : src/ftxui/dom/color.cpp.s + +src/ftxui/dom/composite_decorator.o: src/ftxui/dom/composite_decorator.cpp.o +.PHONY : src/ftxui/dom/composite_decorator.o + +# target to build an object file +src/ftxui/dom/composite_decorator.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/composite_decorator.cpp.o +.PHONY : src/ftxui/dom/composite_decorator.cpp.o + +src/ftxui/dom/composite_decorator.i: src/ftxui/dom/composite_decorator.cpp.i +.PHONY : src/ftxui/dom/composite_decorator.i + +# target to preprocess a source file +src/ftxui/dom/composite_decorator.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/composite_decorator.cpp.i +.PHONY : src/ftxui/dom/composite_decorator.cpp.i + +src/ftxui/dom/composite_decorator.s: src/ftxui/dom/composite_decorator.cpp.s +.PHONY : src/ftxui/dom/composite_decorator.s + +# target to generate assembly for a file +src/ftxui/dom/composite_decorator.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/composite_decorator.cpp.s +.PHONY : src/ftxui/dom/composite_decorator.cpp.s + +src/ftxui/dom/dbox.o: src/ftxui/dom/dbox.cpp.o +.PHONY : src/ftxui/dom/dbox.o + +# target to build an object file +src/ftxui/dom/dbox.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/dbox.cpp.o +.PHONY : src/ftxui/dom/dbox.cpp.o + +src/ftxui/dom/dbox.i: src/ftxui/dom/dbox.cpp.i +.PHONY : src/ftxui/dom/dbox.i + +# target to preprocess a source file +src/ftxui/dom/dbox.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/dbox.cpp.i +.PHONY : src/ftxui/dom/dbox.cpp.i + +src/ftxui/dom/dbox.s: src/ftxui/dom/dbox.cpp.s +.PHONY : src/ftxui/dom/dbox.s + +# target to generate assembly for a file +src/ftxui/dom/dbox.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/dbox.cpp.s +.PHONY : src/ftxui/dom/dbox.cpp.s + +src/ftxui/dom/dim.o: src/ftxui/dom/dim.cpp.o +.PHONY : src/ftxui/dom/dim.o + +# target to build an object file +src/ftxui/dom/dim.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/dim.cpp.o +.PHONY : src/ftxui/dom/dim.cpp.o + +src/ftxui/dom/dim.i: src/ftxui/dom/dim.cpp.i +.PHONY : src/ftxui/dom/dim.i + +# target to preprocess a source file +src/ftxui/dom/dim.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/dim.cpp.i +.PHONY : src/ftxui/dom/dim.cpp.i + +src/ftxui/dom/dim.s: src/ftxui/dom/dim.cpp.s +.PHONY : src/ftxui/dom/dim.s + +# target to generate assembly for a file +src/ftxui/dom/dim.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/dim.cpp.s +.PHONY : src/ftxui/dom/dim.cpp.s + +src/ftxui/dom/flex.o: src/ftxui/dom/flex.cpp.o +.PHONY : src/ftxui/dom/flex.o + +# target to build an object file +src/ftxui/dom/flex.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/flex.cpp.o +.PHONY : src/ftxui/dom/flex.cpp.o + +src/ftxui/dom/flex.i: src/ftxui/dom/flex.cpp.i +.PHONY : src/ftxui/dom/flex.i + +# target to preprocess a source file +src/ftxui/dom/flex.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/flex.cpp.i +.PHONY : src/ftxui/dom/flex.cpp.i + +src/ftxui/dom/flex.s: src/ftxui/dom/flex.cpp.s +.PHONY : src/ftxui/dom/flex.s + +# target to generate assembly for a file +src/ftxui/dom/flex.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/flex.cpp.s +.PHONY : src/ftxui/dom/flex.cpp.s + +src/ftxui/dom/flexbox.o: src/ftxui/dom/flexbox.cpp.o +.PHONY : src/ftxui/dom/flexbox.o + +# target to build an object file +src/ftxui/dom/flexbox.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/flexbox.cpp.o +.PHONY : src/ftxui/dom/flexbox.cpp.o + +src/ftxui/dom/flexbox.i: src/ftxui/dom/flexbox.cpp.i +.PHONY : src/ftxui/dom/flexbox.i + +# target to preprocess a source file +src/ftxui/dom/flexbox.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/flexbox.cpp.i +.PHONY : src/ftxui/dom/flexbox.cpp.i + +src/ftxui/dom/flexbox.s: src/ftxui/dom/flexbox.cpp.s +.PHONY : src/ftxui/dom/flexbox.s + +# target to generate assembly for a file +src/ftxui/dom/flexbox.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/flexbox.cpp.s +.PHONY : src/ftxui/dom/flexbox.cpp.s + +src/ftxui/dom/flexbox_config.o: src/ftxui/dom/flexbox_config.cpp.o +.PHONY : src/ftxui/dom/flexbox_config.o + +# target to build an object file +src/ftxui/dom/flexbox_config.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/flexbox_config.cpp.o +.PHONY : src/ftxui/dom/flexbox_config.cpp.o + +src/ftxui/dom/flexbox_config.i: src/ftxui/dom/flexbox_config.cpp.i +.PHONY : src/ftxui/dom/flexbox_config.i + +# target to preprocess a source file +src/ftxui/dom/flexbox_config.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/flexbox_config.cpp.i +.PHONY : src/ftxui/dom/flexbox_config.cpp.i + +src/ftxui/dom/flexbox_config.s: src/ftxui/dom/flexbox_config.cpp.s +.PHONY : src/ftxui/dom/flexbox_config.s + +# target to generate assembly for a file +src/ftxui/dom/flexbox_config.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/flexbox_config.cpp.s +.PHONY : src/ftxui/dom/flexbox_config.cpp.s + +src/ftxui/dom/flexbox_helper.o: src/ftxui/dom/flexbox_helper.cpp.o +.PHONY : src/ftxui/dom/flexbox_helper.o + +# target to build an object file +src/ftxui/dom/flexbox_helper.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/flexbox_helper.cpp.o +.PHONY : src/ftxui/dom/flexbox_helper.cpp.o + +src/ftxui/dom/flexbox_helper.i: src/ftxui/dom/flexbox_helper.cpp.i +.PHONY : src/ftxui/dom/flexbox_helper.i + +# target to preprocess a source file +src/ftxui/dom/flexbox_helper.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/flexbox_helper.cpp.i +.PHONY : src/ftxui/dom/flexbox_helper.cpp.i + +src/ftxui/dom/flexbox_helper.s: src/ftxui/dom/flexbox_helper.cpp.s +.PHONY : src/ftxui/dom/flexbox_helper.s + +# target to generate assembly for a file +src/ftxui/dom/flexbox_helper.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/flexbox_helper.cpp.s +.PHONY : src/ftxui/dom/flexbox_helper.cpp.s + +src/ftxui/dom/focus.o: src/ftxui/dom/focus.cpp.o +.PHONY : src/ftxui/dom/focus.o + +# target to build an object file +src/ftxui/dom/focus.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/focus.cpp.o +.PHONY : src/ftxui/dom/focus.cpp.o + +src/ftxui/dom/focus.i: src/ftxui/dom/focus.cpp.i +.PHONY : src/ftxui/dom/focus.i + +# target to preprocess a source file +src/ftxui/dom/focus.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/focus.cpp.i +.PHONY : src/ftxui/dom/focus.cpp.i + +src/ftxui/dom/focus.s: src/ftxui/dom/focus.cpp.s +.PHONY : src/ftxui/dom/focus.s + +# target to generate assembly for a file +src/ftxui/dom/focus.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/focus.cpp.s +.PHONY : src/ftxui/dom/focus.cpp.s + +src/ftxui/dom/frame.o: src/ftxui/dom/frame.cpp.o +.PHONY : src/ftxui/dom/frame.o + +# target to build an object file +src/ftxui/dom/frame.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/frame.cpp.o +.PHONY : src/ftxui/dom/frame.cpp.o + +src/ftxui/dom/frame.i: src/ftxui/dom/frame.cpp.i +.PHONY : src/ftxui/dom/frame.i + +# target to preprocess a source file +src/ftxui/dom/frame.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/frame.cpp.i +.PHONY : src/ftxui/dom/frame.cpp.i + +src/ftxui/dom/frame.s: src/ftxui/dom/frame.cpp.s +.PHONY : src/ftxui/dom/frame.s + +# target to generate assembly for a file +src/ftxui/dom/frame.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/frame.cpp.s +.PHONY : src/ftxui/dom/frame.cpp.s + +src/ftxui/dom/gauge.o: src/ftxui/dom/gauge.cpp.o +.PHONY : src/ftxui/dom/gauge.o + +# target to build an object file +src/ftxui/dom/gauge.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/gauge.cpp.o +.PHONY : src/ftxui/dom/gauge.cpp.o + +src/ftxui/dom/gauge.i: src/ftxui/dom/gauge.cpp.i +.PHONY : src/ftxui/dom/gauge.i + +# target to preprocess a source file +src/ftxui/dom/gauge.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/gauge.cpp.i +.PHONY : src/ftxui/dom/gauge.cpp.i + +src/ftxui/dom/gauge.s: src/ftxui/dom/gauge.cpp.s +.PHONY : src/ftxui/dom/gauge.s + +# target to generate assembly for a file +src/ftxui/dom/gauge.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/gauge.cpp.s +.PHONY : src/ftxui/dom/gauge.cpp.s + +src/ftxui/dom/graph.o: src/ftxui/dom/graph.cpp.o +.PHONY : src/ftxui/dom/graph.o + +# target to build an object file +src/ftxui/dom/graph.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/graph.cpp.o +.PHONY : src/ftxui/dom/graph.cpp.o + +src/ftxui/dom/graph.i: src/ftxui/dom/graph.cpp.i +.PHONY : src/ftxui/dom/graph.i + +# target to preprocess a source file +src/ftxui/dom/graph.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/graph.cpp.i +.PHONY : src/ftxui/dom/graph.cpp.i + +src/ftxui/dom/graph.s: src/ftxui/dom/graph.cpp.s +.PHONY : src/ftxui/dom/graph.s + +# target to generate assembly for a file +src/ftxui/dom/graph.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/graph.cpp.s +.PHONY : src/ftxui/dom/graph.cpp.s + +src/ftxui/dom/gridbox.o: src/ftxui/dom/gridbox.cpp.o +.PHONY : src/ftxui/dom/gridbox.o + +# target to build an object file +src/ftxui/dom/gridbox.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/gridbox.cpp.o +.PHONY : src/ftxui/dom/gridbox.cpp.o + +src/ftxui/dom/gridbox.i: src/ftxui/dom/gridbox.cpp.i +.PHONY : src/ftxui/dom/gridbox.i + +# target to preprocess a source file +src/ftxui/dom/gridbox.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/gridbox.cpp.i +.PHONY : src/ftxui/dom/gridbox.cpp.i + +src/ftxui/dom/gridbox.s: src/ftxui/dom/gridbox.cpp.s +.PHONY : src/ftxui/dom/gridbox.s + +# target to generate assembly for a file +src/ftxui/dom/gridbox.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/gridbox.cpp.s +.PHONY : src/ftxui/dom/gridbox.cpp.s + +src/ftxui/dom/hbox.o: src/ftxui/dom/hbox.cpp.o +.PHONY : src/ftxui/dom/hbox.o + +# target to build an object file +src/ftxui/dom/hbox.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/hbox.cpp.o +.PHONY : src/ftxui/dom/hbox.cpp.o + +src/ftxui/dom/hbox.i: src/ftxui/dom/hbox.cpp.i +.PHONY : src/ftxui/dom/hbox.i + +# target to preprocess a source file +src/ftxui/dom/hbox.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/hbox.cpp.i +.PHONY : src/ftxui/dom/hbox.cpp.i + +src/ftxui/dom/hbox.s: src/ftxui/dom/hbox.cpp.s +.PHONY : src/ftxui/dom/hbox.s + +# target to generate assembly for a file +src/ftxui/dom/hbox.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/hbox.cpp.s +.PHONY : src/ftxui/dom/hbox.cpp.s + +src/ftxui/dom/hyperlink.o: src/ftxui/dom/hyperlink.cpp.o +.PHONY : src/ftxui/dom/hyperlink.o + +# target to build an object file +src/ftxui/dom/hyperlink.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/hyperlink.cpp.o +.PHONY : src/ftxui/dom/hyperlink.cpp.o + +src/ftxui/dom/hyperlink.i: src/ftxui/dom/hyperlink.cpp.i +.PHONY : src/ftxui/dom/hyperlink.i + +# target to preprocess a source file +src/ftxui/dom/hyperlink.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/hyperlink.cpp.i +.PHONY : src/ftxui/dom/hyperlink.cpp.i + +src/ftxui/dom/hyperlink.s: src/ftxui/dom/hyperlink.cpp.s +.PHONY : src/ftxui/dom/hyperlink.s + +# target to generate assembly for a file +src/ftxui/dom/hyperlink.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/hyperlink.cpp.s +.PHONY : src/ftxui/dom/hyperlink.cpp.s + +src/ftxui/dom/inverted.o: src/ftxui/dom/inverted.cpp.o +.PHONY : src/ftxui/dom/inverted.o + +# target to build an object file +src/ftxui/dom/inverted.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/inverted.cpp.o +.PHONY : src/ftxui/dom/inverted.cpp.o + +src/ftxui/dom/inverted.i: src/ftxui/dom/inverted.cpp.i +.PHONY : src/ftxui/dom/inverted.i + +# target to preprocess a source file +src/ftxui/dom/inverted.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/inverted.cpp.i +.PHONY : src/ftxui/dom/inverted.cpp.i + +src/ftxui/dom/inverted.s: src/ftxui/dom/inverted.cpp.s +.PHONY : src/ftxui/dom/inverted.s + +# target to generate assembly for a file +src/ftxui/dom/inverted.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/inverted.cpp.s +.PHONY : src/ftxui/dom/inverted.cpp.s + +src/ftxui/dom/linear_gradient.o: src/ftxui/dom/linear_gradient.cpp.o +.PHONY : src/ftxui/dom/linear_gradient.o + +# target to build an object file +src/ftxui/dom/linear_gradient.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/linear_gradient.cpp.o +.PHONY : src/ftxui/dom/linear_gradient.cpp.o + +src/ftxui/dom/linear_gradient.i: src/ftxui/dom/linear_gradient.cpp.i +.PHONY : src/ftxui/dom/linear_gradient.i + +# target to preprocess a source file +src/ftxui/dom/linear_gradient.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/linear_gradient.cpp.i +.PHONY : src/ftxui/dom/linear_gradient.cpp.i + +src/ftxui/dom/linear_gradient.s: src/ftxui/dom/linear_gradient.cpp.s +.PHONY : src/ftxui/dom/linear_gradient.s + +# target to generate assembly for a file +src/ftxui/dom/linear_gradient.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/linear_gradient.cpp.s +.PHONY : src/ftxui/dom/linear_gradient.cpp.s + +src/ftxui/dom/node.o: src/ftxui/dom/node.cpp.o +.PHONY : src/ftxui/dom/node.o + +# target to build an object file +src/ftxui/dom/node.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/node.cpp.o +.PHONY : src/ftxui/dom/node.cpp.o + +src/ftxui/dom/node.i: src/ftxui/dom/node.cpp.i +.PHONY : src/ftxui/dom/node.i + +# target to preprocess a source file +src/ftxui/dom/node.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/node.cpp.i +.PHONY : src/ftxui/dom/node.cpp.i + +src/ftxui/dom/node.s: src/ftxui/dom/node.cpp.s +.PHONY : src/ftxui/dom/node.s + +# target to generate assembly for a file +src/ftxui/dom/node.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/node.cpp.s +.PHONY : src/ftxui/dom/node.cpp.s + +src/ftxui/dom/node_decorator.o: src/ftxui/dom/node_decorator.cpp.o +.PHONY : src/ftxui/dom/node_decorator.o + +# target to build an object file +src/ftxui/dom/node_decorator.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/node_decorator.cpp.o +.PHONY : src/ftxui/dom/node_decorator.cpp.o + +src/ftxui/dom/node_decorator.i: src/ftxui/dom/node_decorator.cpp.i +.PHONY : src/ftxui/dom/node_decorator.i + +# target to preprocess a source file +src/ftxui/dom/node_decorator.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/node_decorator.cpp.i +.PHONY : src/ftxui/dom/node_decorator.cpp.i + +src/ftxui/dom/node_decorator.s: src/ftxui/dom/node_decorator.cpp.s +.PHONY : src/ftxui/dom/node_decorator.s + +# target to generate assembly for a file +src/ftxui/dom/node_decorator.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/node_decorator.cpp.s +.PHONY : src/ftxui/dom/node_decorator.cpp.s + +src/ftxui/dom/paragraph.o: src/ftxui/dom/paragraph.cpp.o +.PHONY : src/ftxui/dom/paragraph.o + +# target to build an object file +src/ftxui/dom/paragraph.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/paragraph.cpp.o +.PHONY : src/ftxui/dom/paragraph.cpp.o + +src/ftxui/dom/paragraph.i: src/ftxui/dom/paragraph.cpp.i +.PHONY : src/ftxui/dom/paragraph.i + +# target to preprocess a source file +src/ftxui/dom/paragraph.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/paragraph.cpp.i +.PHONY : src/ftxui/dom/paragraph.cpp.i + +src/ftxui/dom/paragraph.s: src/ftxui/dom/paragraph.cpp.s +.PHONY : src/ftxui/dom/paragraph.s + +# target to generate assembly for a file +src/ftxui/dom/paragraph.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/paragraph.cpp.s +.PHONY : src/ftxui/dom/paragraph.cpp.s + +src/ftxui/dom/reflect.o: src/ftxui/dom/reflect.cpp.o +.PHONY : src/ftxui/dom/reflect.o + +# target to build an object file +src/ftxui/dom/reflect.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/reflect.cpp.o +.PHONY : src/ftxui/dom/reflect.cpp.o + +src/ftxui/dom/reflect.i: src/ftxui/dom/reflect.cpp.i +.PHONY : src/ftxui/dom/reflect.i + +# target to preprocess a source file +src/ftxui/dom/reflect.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/reflect.cpp.i +.PHONY : src/ftxui/dom/reflect.cpp.i + +src/ftxui/dom/reflect.s: src/ftxui/dom/reflect.cpp.s +.PHONY : src/ftxui/dom/reflect.s + +# target to generate assembly for a file +src/ftxui/dom/reflect.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/reflect.cpp.s +.PHONY : src/ftxui/dom/reflect.cpp.s + +src/ftxui/dom/scroll_indicator.o: src/ftxui/dom/scroll_indicator.cpp.o +.PHONY : src/ftxui/dom/scroll_indicator.o + +# target to build an object file +src/ftxui/dom/scroll_indicator.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/scroll_indicator.cpp.o +.PHONY : src/ftxui/dom/scroll_indicator.cpp.o + +src/ftxui/dom/scroll_indicator.i: src/ftxui/dom/scroll_indicator.cpp.i +.PHONY : src/ftxui/dom/scroll_indicator.i + +# target to preprocess a source file +src/ftxui/dom/scroll_indicator.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/scroll_indicator.cpp.i +.PHONY : src/ftxui/dom/scroll_indicator.cpp.i + +src/ftxui/dom/scroll_indicator.s: src/ftxui/dom/scroll_indicator.cpp.s +.PHONY : src/ftxui/dom/scroll_indicator.s + +# target to generate assembly for a file +src/ftxui/dom/scroll_indicator.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/scroll_indicator.cpp.s +.PHONY : src/ftxui/dom/scroll_indicator.cpp.s + +src/ftxui/dom/separator.o: src/ftxui/dom/separator.cpp.o +.PHONY : src/ftxui/dom/separator.o + +# target to build an object file +src/ftxui/dom/separator.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/separator.cpp.o +.PHONY : src/ftxui/dom/separator.cpp.o + +src/ftxui/dom/separator.i: src/ftxui/dom/separator.cpp.i +.PHONY : src/ftxui/dom/separator.i + +# target to preprocess a source file +src/ftxui/dom/separator.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/separator.cpp.i +.PHONY : src/ftxui/dom/separator.cpp.i + +src/ftxui/dom/separator.s: src/ftxui/dom/separator.cpp.s +.PHONY : src/ftxui/dom/separator.s + +# target to generate assembly for a file +src/ftxui/dom/separator.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/separator.cpp.s +.PHONY : src/ftxui/dom/separator.cpp.s + +src/ftxui/dom/size.o: src/ftxui/dom/size.cpp.o +.PHONY : src/ftxui/dom/size.o + +# target to build an object file +src/ftxui/dom/size.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/size.cpp.o +.PHONY : src/ftxui/dom/size.cpp.o + +src/ftxui/dom/size.i: src/ftxui/dom/size.cpp.i +.PHONY : src/ftxui/dom/size.i + +# target to preprocess a source file +src/ftxui/dom/size.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/size.cpp.i +.PHONY : src/ftxui/dom/size.cpp.i + +src/ftxui/dom/size.s: src/ftxui/dom/size.cpp.s +.PHONY : src/ftxui/dom/size.s + +# target to generate assembly for a file +src/ftxui/dom/size.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/size.cpp.s +.PHONY : src/ftxui/dom/size.cpp.s + +src/ftxui/dom/spinner.o: src/ftxui/dom/spinner.cpp.o +.PHONY : src/ftxui/dom/spinner.o + +# target to build an object file +src/ftxui/dom/spinner.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/spinner.cpp.o +.PHONY : src/ftxui/dom/spinner.cpp.o + +src/ftxui/dom/spinner.i: src/ftxui/dom/spinner.cpp.i +.PHONY : src/ftxui/dom/spinner.i + +# target to preprocess a source file +src/ftxui/dom/spinner.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/spinner.cpp.i +.PHONY : src/ftxui/dom/spinner.cpp.i + +src/ftxui/dom/spinner.s: src/ftxui/dom/spinner.cpp.s +.PHONY : src/ftxui/dom/spinner.s + +# target to generate assembly for a file +src/ftxui/dom/spinner.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/spinner.cpp.s +.PHONY : src/ftxui/dom/spinner.cpp.s + +src/ftxui/dom/strikethrough.o: src/ftxui/dom/strikethrough.cpp.o +.PHONY : src/ftxui/dom/strikethrough.o + +# target to build an object file +src/ftxui/dom/strikethrough.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/strikethrough.cpp.o +.PHONY : src/ftxui/dom/strikethrough.cpp.o + +src/ftxui/dom/strikethrough.i: src/ftxui/dom/strikethrough.cpp.i +.PHONY : src/ftxui/dom/strikethrough.i + +# target to preprocess a source file +src/ftxui/dom/strikethrough.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/strikethrough.cpp.i +.PHONY : src/ftxui/dom/strikethrough.cpp.i + +src/ftxui/dom/strikethrough.s: src/ftxui/dom/strikethrough.cpp.s +.PHONY : src/ftxui/dom/strikethrough.s + +# target to generate assembly for a file +src/ftxui/dom/strikethrough.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/strikethrough.cpp.s +.PHONY : src/ftxui/dom/strikethrough.cpp.s + +src/ftxui/dom/table.o: src/ftxui/dom/table.cpp.o +.PHONY : src/ftxui/dom/table.o + +# target to build an object file +src/ftxui/dom/table.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/table.cpp.o +.PHONY : src/ftxui/dom/table.cpp.o + +src/ftxui/dom/table.i: src/ftxui/dom/table.cpp.i +.PHONY : src/ftxui/dom/table.i + +# target to preprocess a source file +src/ftxui/dom/table.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/table.cpp.i +.PHONY : src/ftxui/dom/table.cpp.i + +src/ftxui/dom/table.s: src/ftxui/dom/table.cpp.s +.PHONY : src/ftxui/dom/table.s + +# target to generate assembly for a file +src/ftxui/dom/table.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/table.cpp.s +.PHONY : src/ftxui/dom/table.cpp.s + +src/ftxui/dom/text.o: src/ftxui/dom/text.cpp.o +.PHONY : src/ftxui/dom/text.o + +# target to build an object file +src/ftxui/dom/text.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/text.cpp.o +.PHONY : src/ftxui/dom/text.cpp.o + +src/ftxui/dom/text.i: src/ftxui/dom/text.cpp.i +.PHONY : src/ftxui/dom/text.i + +# target to preprocess a source file +src/ftxui/dom/text.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/text.cpp.i +.PHONY : src/ftxui/dom/text.cpp.i + +src/ftxui/dom/text.s: src/ftxui/dom/text.cpp.s +.PHONY : src/ftxui/dom/text.s + +# target to generate assembly for a file +src/ftxui/dom/text.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/text.cpp.s +.PHONY : src/ftxui/dom/text.cpp.s + +src/ftxui/dom/underlined.o: src/ftxui/dom/underlined.cpp.o +.PHONY : src/ftxui/dom/underlined.o + +# target to build an object file +src/ftxui/dom/underlined.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/underlined.cpp.o +.PHONY : src/ftxui/dom/underlined.cpp.o + +src/ftxui/dom/underlined.i: src/ftxui/dom/underlined.cpp.i +.PHONY : src/ftxui/dom/underlined.i + +# target to preprocess a source file +src/ftxui/dom/underlined.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/underlined.cpp.i +.PHONY : src/ftxui/dom/underlined.cpp.i + +src/ftxui/dom/underlined.s: src/ftxui/dom/underlined.cpp.s +.PHONY : src/ftxui/dom/underlined.s + +# target to generate assembly for a file +src/ftxui/dom/underlined.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/underlined.cpp.s +.PHONY : src/ftxui/dom/underlined.cpp.s + +src/ftxui/dom/underlined_double.o: src/ftxui/dom/underlined_double.cpp.o +.PHONY : src/ftxui/dom/underlined_double.o + +# target to build an object file +src/ftxui/dom/underlined_double.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/underlined_double.cpp.o +.PHONY : src/ftxui/dom/underlined_double.cpp.o + +src/ftxui/dom/underlined_double.i: src/ftxui/dom/underlined_double.cpp.i +.PHONY : src/ftxui/dom/underlined_double.i + +# target to preprocess a source file +src/ftxui/dom/underlined_double.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/underlined_double.cpp.i +.PHONY : src/ftxui/dom/underlined_double.cpp.i + +src/ftxui/dom/underlined_double.s: src/ftxui/dom/underlined_double.cpp.s +.PHONY : src/ftxui/dom/underlined_double.s + +# target to generate assembly for a file +src/ftxui/dom/underlined_double.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/underlined_double.cpp.s +.PHONY : src/ftxui/dom/underlined_double.cpp.s + +src/ftxui/dom/util.o: src/ftxui/dom/util.cpp.o +.PHONY : src/ftxui/dom/util.o + +# target to build an object file +src/ftxui/dom/util.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/util.cpp.o +.PHONY : src/ftxui/dom/util.cpp.o + +src/ftxui/dom/util.i: src/ftxui/dom/util.cpp.i +.PHONY : src/ftxui/dom/util.i + +# target to preprocess a source file +src/ftxui/dom/util.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/util.cpp.i +.PHONY : src/ftxui/dom/util.cpp.i + +src/ftxui/dom/util.s: src/ftxui/dom/util.cpp.s +.PHONY : src/ftxui/dom/util.s + +# target to generate assembly for a file +src/ftxui/dom/util.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/util.cpp.s +.PHONY : src/ftxui/dom/util.cpp.s + +src/ftxui/dom/vbox.o: src/ftxui/dom/vbox.cpp.o +.PHONY : src/ftxui/dom/vbox.o + +# target to build an object file +src/ftxui/dom/vbox.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/vbox.cpp.o +.PHONY : src/ftxui/dom/vbox.cpp.o + +src/ftxui/dom/vbox.i: src/ftxui/dom/vbox.cpp.i +.PHONY : src/ftxui/dom/vbox.i + +# target to preprocess a source file +src/ftxui/dom/vbox.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/vbox.cpp.i +.PHONY : src/ftxui/dom/vbox.cpp.i + +src/ftxui/dom/vbox.s: src/ftxui/dom/vbox.cpp.s +.PHONY : src/ftxui/dom/vbox.s + +# target to generate assembly for a file +src/ftxui/dom/vbox.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/dom.dir/build.make _deps/ftxui-build/CMakeFiles/dom.dir/src/ftxui/dom/vbox.cpp.s +.PHONY : src/ftxui/dom/vbox.cpp.s + +src/ftxui/screen/box.o: src/ftxui/screen/box.cpp.o +.PHONY : src/ftxui/screen/box.o + +# target to build an object file +src/ftxui/screen/box.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/box.cpp.o +.PHONY : src/ftxui/screen/box.cpp.o + +src/ftxui/screen/box.i: src/ftxui/screen/box.cpp.i +.PHONY : src/ftxui/screen/box.i + +# target to preprocess a source file +src/ftxui/screen/box.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/box.cpp.i +.PHONY : src/ftxui/screen/box.cpp.i + +src/ftxui/screen/box.s: src/ftxui/screen/box.cpp.s +.PHONY : src/ftxui/screen/box.s + +# target to generate assembly for a file +src/ftxui/screen/box.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/box.cpp.s +.PHONY : src/ftxui/screen/box.cpp.s + +src/ftxui/screen/color.o: src/ftxui/screen/color.cpp.o +.PHONY : src/ftxui/screen/color.o + +# target to build an object file +src/ftxui/screen/color.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/color.cpp.o +.PHONY : src/ftxui/screen/color.cpp.o + +src/ftxui/screen/color.i: src/ftxui/screen/color.cpp.i +.PHONY : src/ftxui/screen/color.i + +# target to preprocess a source file +src/ftxui/screen/color.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/color.cpp.i +.PHONY : src/ftxui/screen/color.cpp.i + +src/ftxui/screen/color.s: src/ftxui/screen/color.cpp.s +.PHONY : src/ftxui/screen/color.s + +# target to generate assembly for a file +src/ftxui/screen/color.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/color.cpp.s +.PHONY : src/ftxui/screen/color.cpp.s + +src/ftxui/screen/color_info.o: src/ftxui/screen/color_info.cpp.o +.PHONY : src/ftxui/screen/color_info.o + +# target to build an object file +src/ftxui/screen/color_info.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/color_info.cpp.o +.PHONY : src/ftxui/screen/color_info.cpp.o + +src/ftxui/screen/color_info.i: src/ftxui/screen/color_info.cpp.i +.PHONY : src/ftxui/screen/color_info.i + +# target to preprocess a source file +src/ftxui/screen/color_info.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/color_info.cpp.i +.PHONY : src/ftxui/screen/color_info.cpp.i + +src/ftxui/screen/color_info.s: src/ftxui/screen/color_info.cpp.s +.PHONY : src/ftxui/screen/color_info.s + +# target to generate assembly for a file +src/ftxui/screen/color_info.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/color_info.cpp.s +.PHONY : src/ftxui/screen/color_info.cpp.s + +src/ftxui/screen/screen.o: src/ftxui/screen/screen.cpp.o +.PHONY : src/ftxui/screen/screen.o + +# target to build an object file +src/ftxui/screen/screen.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/screen.cpp.o +.PHONY : src/ftxui/screen/screen.cpp.o + +src/ftxui/screen/screen.i: src/ftxui/screen/screen.cpp.i +.PHONY : src/ftxui/screen/screen.i + +# target to preprocess a source file +src/ftxui/screen/screen.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/screen.cpp.i +.PHONY : src/ftxui/screen/screen.cpp.i + +src/ftxui/screen/screen.s: src/ftxui/screen/screen.cpp.s +.PHONY : src/ftxui/screen/screen.s + +# target to generate assembly for a file +src/ftxui/screen/screen.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/screen.cpp.s +.PHONY : src/ftxui/screen/screen.cpp.s + +src/ftxui/screen/string.o: src/ftxui/screen/string.cpp.o +.PHONY : src/ftxui/screen/string.o + +# target to build an object file +src/ftxui/screen/string.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/string.cpp.o +.PHONY : src/ftxui/screen/string.cpp.o + +src/ftxui/screen/string.i: src/ftxui/screen/string.cpp.i +.PHONY : src/ftxui/screen/string.i + +# target to preprocess a source file +src/ftxui/screen/string.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/string.cpp.i +.PHONY : src/ftxui/screen/string.cpp.i + +src/ftxui/screen/string.s: src/ftxui/screen/string.cpp.s +.PHONY : src/ftxui/screen/string.s + +# target to generate assembly for a file +src/ftxui/screen/string.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/string.cpp.s +.PHONY : src/ftxui/screen/string.cpp.s + +src/ftxui/screen/terminal.o: src/ftxui/screen/terminal.cpp.o +.PHONY : src/ftxui/screen/terminal.o + +# target to build an object file +src/ftxui/screen/terminal.cpp.o: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/terminal.cpp.o +.PHONY : src/ftxui/screen/terminal.cpp.o + +src/ftxui/screen/terminal.i: src/ftxui/screen/terminal.cpp.i +.PHONY : src/ftxui/screen/terminal.i + +# target to preprocess a source file +src/ftxui/screen/terminal.cpp.i: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/terminal.cpp.i +.PHONY : src/ftxui/screen/terminal.cpp.i + +src/ftxui/screen/terminal.s: src/ftxui/screen/terminal.cpp.s +.PHONY : src/ftxui/screen/terminal.s + +# target to generate assembly for a file +src/ftxui/screen/terminal.cpp.s: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f _deps/ftxui-build/CMakeFiles/screen.dir/build.make _deps/ftxui-build/CMakeFiles/screen.dir/src/ftxui/screen/terminal.cpp.s +.PHONY : src/ftxui/screen/terminal.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... component" + @echo "... dom" + @echo "... screen" + @echo "... src/ftxui/component/animation.o" + @echo "... src/ftxui/component/animation.i" + @echo "... src/ftxui/component/animation.s" + @echo "... src/ftxui/component/button.o" + @echo "... src/ftxui/component/button.i" + @echo "... src/ftxui/component/button.s" + @echo "... src/ftxui/component/catch_event.o" + @echo "... src/ftxui/component/catch_event.i" + @echo "... src/ftxui/component/catch_event.s" + @echo "... src/ftxui/component/checkbox.o" + @echo "... src/ftxui/component/checkbox.i" + @echo "... src/ftxui/component/checkbox.s" + @echo "... src/ftxui/component/collapsible.o" + @echo "... src/ftxui/component/collapsible.i" + @echo "... src/ftxui/component/collapsible.s" + @echo "... src/ftxui/component/component.o" + @echo "... src/ftxui/component/component.i" + @echo "... src/ftxui/component/component.s" + @echo "... src/ftxui/component/component_options.o" + @echo "... src/ftxui/component/component_options.i" + @echo "... src/ftxui/component/component_options.s" + @echo "... src/ftxui/component/container.o" + @echo "... src/ftxui/component/container.i" + @echo "... src/ftxui/component/container.s" + @echo "... src/ftxui/component/dropdown.o" + @echo "... src/ftxui/component/dropdown.i" + @echo "... src/ftxui/component/dropdown.s" + @echo "... src/ftxui/component/event.o" + @echo "... src/ftxui/component/event.i" + @echo "... src/ftxui/component/event.s" + @echo "... src/ftxui/component/hoverable.o" + @echo "... src/ftxui/component/hoverable.i" + @echo "... src/ftxui/component/hoverable.s" + @echo "... src/ftxui/component/input.o" + @echo "... src/ftxui/component/input.i" + @echo "... src/ftxui/component/input.s" + @echo "... src/ftxui/component/loop.o" + @echo "... src/ftxui/component/loop.i" + @echo "... src/ftxui/component/loop.s" + @echo "... src/ftxui/component/maybe.o" + @echo "... src/ftxui/component/maybe.i" + @echo "... src/ftxui/component/maybe.s" + @echo "... src/ftxui/component/menu.o" + @echo "... src/ftxui/component/menu.i" + @echo "... src/ftxui/component/menu.s" + @echo "... src/ftxui/component/modal.o" + @echo "... src/ftxui/component/modal.i" + @echo "... src/ftxui/component/modal.s" + @echo "... src/ftxui/component/radiobox.o" + @echo "... src/ftxui/component/radiobox.i" + @echo "... src/ftxui/component/radiobox.s" + @echo "... src/ftxui/component/renderer.o" + @echo "... src/ftxui/component/renderer.i" + @echo "... src/ftxui/component/renderer.s" + @echo "... src/ftxui/component/resizable_split.o" + @echo "... src/ftxui/component/resizable_split.i" + @echo "... src/ftxui/component/resizable_split.s" + @echo "... src/ftxui/component/screen_interactive.o" + @echo "... src/ftxui/component/screen_interactive.i" + @echo "... src/ftxui/component/screen_interactive.s" + @echo "... src/ftxui/component/slider.o" + @echo "... src/ftxui/component/slider.i" + @echo "... src/ftxui/component/slider.s" + @echo "... src/ftxui/component/terminal_input_parser.o" + @echo "... src/ftxui/component/terminal_input_parser.i" + @echo "... src/ftxui/component/terminal_input_parser.s" + @echo "... src/ftxui/component/util.o" + @echo "... src/ftxui/component/util.i" + @echo "... src/ftxui/component/util.s" + @echo "... src/ftxui/component/window.o" + @echo "... src/ftxui/component/window.i" + @echo "... src/ftxui/component/window.s" + @echo "... src/ftxui/dom/automerge.o" + @echo "... src/ftxui/dom/automerge.i" + @echo "... src/ftxui/dom/automerge.s" + @echo "... src/ftxui/dom/blink.o" + @echo "... src/ftxui/dom/blink.i" + @echo "... src/ftxui/dom/blink.s" + @echo "... src/ftxui/dom/bold.o" + @echo "... src/ftxui/dom/bold.i" + @echo "... src/ftxui/dom/bold.s" + @echo "... src/ftxui/dom/border.o" + @echo "... src/ftxui/dom/border.i" + @echo "... src/ftxui/dom/border.s" + @echo "... src/ftxui/dom/box_helper.o" + @echo "... src/ftxui/dom/box_helper.i" + @echo "... src/ftxui/dom/box_helper.s" + @echo "... src/ftxui/dom/canvas.o" + @echo "... src/ftxui/dom/canvas.i" + @echo "... src/ftxui/dom/canvas.s" + @echo "... src/ftxui/dom/clear_under.o" + @echo "... src/ftxui/dom/clear_under.i" + @echo "... src/ftxui/dom/clear_under.s" + @echo "... src/ftxui/dom/color.o" + @echo "... src/ftxui/dom/color.i" + @echo "... src/ftxui/dom/color.s" + @echo "... src/ftxui/dom/composite_decorator.o" + @echo "... src/ftxui/dom/composite_decorator.i" + @echo "... src/ftxui/dom/composite_decorator.s" + @echo "... src/ftxui/dom/dbox.o" + @echo "... src/ftxui/dom/dbox.i" + @echo "... src/ftxui/dom/dbox.s" + @echo "... src/ftxui/dom/dim.o" + @echo "... src/ftxui/dom/dim.i" + @echo "... src/ftxui/dom/dim.s" + @echo "... src/ftxui/dom/flex.o" + @echo "... src/ftxui/dom/flex.i" + @echo "... src/ftxui/dom/flex.s" + @echo "... src/ftxui/dom/flexbox.o" + @echo "... src/ftxui/dom/flexbox.i" + @echo "... src/ftxui/dom/flexbox.s" + @echo "... src/ftxui/dom/flexbox_config.o" + @echo "... src/ftxui/dom/flexbox_config.i" + @echo "... src/ftxui/dom/flexbox_config.s" + @echo "... src/ftxui/dom/flexbox_helper.o" + @echo "... src/ftxui/dom/flexbox_helper.i" + @echo "... src/ftxui/dom/flexbox_helper.s" + @echo "... src/ftxui/dom/focus.o" + @echo "... src/ftxui/dom/focus.i" + @echo "... src/ftxui/dom/focus.s" + @echo "... src/ftxui/dom/frame.o" + @echo "... src/ftxui/dom/frame.i" + @echo "... src/ftxui/dom/frame.s" + @echo "... src/ftxui/dom/gauge.o" + @echo "... src/ftxui/dom/gauge.i" + @echo "... src/ftxui/dom/gauge.s" + @echo "... src/ftxui/dom/graph.o" + @echo "... src/ftxui/dom/graph.i" + @echo "... src/ftxui/dom/graph.s" + @echo "... src/ftxui/dom/gridbox.o" + @echo "... src/ftxui/dom/gridbox.i" + @echo "... src/ftxui/dom/gridbox.s" + @echo "... src/ftxui/dom/hbox.o" + @echo "... src/ftxui/dom/hbox.i" + @echo "... src/ftxui/dom/hbox.s" + @echo "... src/ftxui/dom/hyperlink.o" + @echo "... src/ftxui/dom/hyperlink.i" + @echo "... src/ftxui/dom/hyperlink.s" + @echo "... src/ftxui/dom/inverted.o" + @echo "... src/ftxui/dom/inverted.i" + @echo "... src/ftxui/dom/inverted.s" + @echo "... src/ftxui/dom/linear_gradient.o" + @echo "... src/ftxui/dom/linear_gradient.i" + @echo "... src/ftxui/dom/linear_gradient.s" + @echo "... src/ftxui/dom/node.o" + @echo "... src/ftxui/dom/node.i" + @echo "... src/ftxui/dom/node.s" + @echo "... src/ftxui/dom/node_decorator.o" + @echo "... src/ftxui/dom/node_decorator.i" + @echo "... src/ftxui/dom/node_decorator.s" + @echo "... src/ftxui/dom/paragraph.o" + @echo "... src/ftxui/dom/paragraph.i" + @echo "... src/ftxui/dom/paragraph.s" + @echo "... src/ftxui/dom/reflect.o" + @echo "... src/ftxui/dom/reflect.i" + @echo "... src/ftxui/dom/reflect.s" + @echo "... src/ftxui/dom/scroll_indicator.o" + @echo "... src/ftxui/dom/scroll_indicator.i" + @echo "... src/ftxui/dom/scroll_indicator.s" + @echo "... src/ftxui/dom/separator.o" + @echo "... src/ftxui/dom/separator.i" + @echo "... src/ftxui/dom/separator.s" + @echo "... src/ftxui/dom/size.o" + @echo "... src/ftxui/dom/size.i" + @echo "... src/ftxui/dom/size.s" + @echo "... src/ftxui/dom/spinner.o" + @echo "... src/ftxui/dom/spinner.i" + @echo "... src/ftxui/dom/spinner.s" + @echo "... src/ftxui/dom/strikethrough.o" + @echo "... src/ftxui/dom/strikethrough.i" + @echo "... src/ftxui/dom/strikethrough.s" + @echo "... src/ftxui/dom/table.o" + @echo "... src/ftxui/dom/table.i" + @echo "... src/ftxui/dom/table.s" + @echo "... src/ftxui/dom/text.o" + @echo "... src/ftxui/dom/text.i" + @echo "... src/ftxui/dom/text.s" + @echo "... src/ftxui/dom/underlined.o" + @echo "... src/ftxui/dom/underlined.i" + @echo "... src/ftxui/dom/underlined.s" + @echo "... src/ftxui/dom/underlined_double.o" + @echo "... src/ftxui/dom/underlined_double.i" + @echo "... src/ftxui/dom/underlined_double.s" + @echo "... src/ftxui/dom/util.o" + @echo "... src/ftxui/dom/util.i" + @echo "... src/ftxui/dom/util.s" + @echo "... src/ftxui/dom/vbox.o" + @echo "... src/ftxui/dom/vbox.i" + @echo "... src/ftxui/dom/vbox.s" + @echo "... src/ftxui/screen/box.o" + @echo "... src/ftxui/screen/box.i" + @echo "... src/ftxui/screen/box.s" + @echo "... src/ftxui/screen/color.o" + @echo "... src/ftxui/screen/color.i" + @echo "... src/ftxui/screen/color.s" + @echo "... src/ftxui/screen/color_info.o" + @echo "... src/ftxui/screen/color_info.i" + @echo "... src/ftxui/screen/color_info.s" + @echo "... src/ftxui/screen/screen.o" + @echo "... src/ftxui/screen/screen.i" + @echo "... src/ftxui/screen/screen.s" + @echo "... src/ftxui/screen/string.o" + @echo "... src/ftxui/screen/string.i" + @echo "... src/ftxui/screen/string.s" + @echo "... src/ftxui/screen/terminal.o" + @echo "... src/ftxui/screen/terminal.i" + @echo "... src/ftxui/screen/terminal.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/pedro/code/fwt_2a/software/build-tui && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build-tui/_deps/ftxui-build/doc/Makefile b/build-tui/_deps/ftxui-build/doc/Makefile new file mode 100644 index 0000000..65e2a2b --- /dev/null +++ b/build-tui/_deps/ftxui-build/doc/Makefile @@ -0,0 +1,140 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 4.3 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pedro/code/fwt_2a/software + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pedro/code/fwt_2a/software/build-tui + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..." + /usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# The main all target +all: cmake_check_build_system + cd /home/pedro/code/fwt_2a/software/build-tui && $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-tui/CMakeFiles /home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-build/doc//CMakeFiles/progress.marks + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/ftxui-build/doc/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-tui/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/ftxui-build/doc/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/ftxui-build/doc/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/ftxui-build/doc/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/pedro/code/fwt_2a/software/build-tui && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... rebuild_cache" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/pedro/code/fwt_2a/software/build-tui && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build-tui/_deps/ftxui-build/examples/Makefile b/build-tui/_deps/ftxui-build/examples/Makefile new file mode 100644 index 0000000..29c46b2 --- /dev/null +++ b/build-tui/_deps/ftxui-build/examples/Makefile @@ -0,0 +1,140 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 4.3 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pedro/code/fwt_2a/software + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pedro/code/fwt_2a/software/build-tui + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..." + /usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# The main all target +all: cmake_check_build_system + cd /home/pedro/code/fwt_2a/software/build-tui && $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-tui/CMakeFiles /home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-build/examples//CMakeFiles/progress.marks + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/ftxui-build/examples/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-tui/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/ftxui-build/examples/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/ftxui-build/examples/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/pedro/code/fwt_2a/software/build-tui && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 _deps/ftxui-build/examples/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/pedro/code/fwt_2a/software/build-tui && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... rebuild_cache" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/pedro/code/fwt_2a/software/build-tui && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build-tui/_deps/ftxui-build/ftxui-targets.cmake b/build-tui/_deps/ftxui-build/ftxui-targets.cmake new file mode 100644 index 0000000..960f9cf --- /dev/null +++ b/build-tui/_deps/ftxui-build/ftxui-targets.cmake @@ -0,0 +1,101 @@ +# Generated by CMake + +if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8) + message(FATAL_ERROR "CMake >= 2.8.3 required") +endif() +if(CMAKE_VERSION VERSION_LESS "2.8.3") + message(FATAL_ERROR "CMake >= 2.8.3 required") +endif() +cmake_policy(PUSH) +cmake_policy(VERSION 2.8.3...4.1) +#---------------------------------------------------------------- +# Generated CMake target import file. +#---------------------------------------------------------------- + +# Commands may need to know the format version. +set(CMAKE_IMPORT_FILE_VERSION 1) + +# Protect against multiple inclusion, which would fail when already imported targets are added once more. +set(_cmake_targets_defined "") +set(_cmake_targets_not_defined "") +set(_cmake_expected_targets "") +foreach(_cmake_expected_target IN ITEMS ftxui::screen ftxui::dom ftxui::component) + list(APPEND _cmake_expected_targets "${_cmake_expected_target}") + if(TARGET "${_cmake_expected_target}") + list(APPEND _cmake_targets_defined "${_cmake_expected_target}") + else() + list(APPEND _cmake_targets_not_defined "${_cmake_expected_target}") + endif() +endforeach() +unset(_cmake_expected_target) +if(_cmake_targets_defined STREQUAL _cmake_expected_targets) + unset(_cmake_targets_defined) + unset(_cmake_targets_not_defined) + unset(_cmake_expected_targets) + unset(CMAKE_IMPORT_FILE_VERSION) + cmake_policy(POP) + return() +endif() +if(NOT _cmake_targets_defined STREQUAL "") + string(REPLACE ";" ", " _cmake_targets_defined_text "${_cmake_targets_defined}") + string(REPLACE ";" ", " _cmake_targets_not_defined_text "${_cmake_targets_not_defined}") + message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_cmake_targets_defined_text}\nTargets not yet defined: ${_cmake_targets_not_defined_text}\n") +endif() +unset(_cmake_targets_defined) +unset(_cmake_targets_not_defined) +unset(_cmake_expected_targets) + + +# Create imported target ftxui::screen +add_library(ftxui::screen STATIC IMPORTED) + +set_target_properties(ftxui::screen PROPERTIES + INTERFACE_COMPILE_FEATURES "cxx_std_17" + INTERFACE_INCLUDE_DIRECTORIES "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src/include" +) + +# Create imported target ftxui::dom +add_library(ftxui::dom STATIC IMPORTED) + +set_target_properties(ftxui::dom PROPERTIES + INTERFACE_COMPILE_FEATURES "cxx_std_17" + INTERFACE_INCLUDE_DIRECTORIES "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src/include" + INTERFACE_LINK_LIBRARIES "ftxui::screen" +) + +# Create imported target ftxui::component +add_library(ftxui::component STATIC IMPORTED) + +set_target_properties(ftxui::component PROPERTIES + INTERFACE_COMPILE_FEATURES "cxx_std_17" + INTERFACE_INCLUDE_DIRECTORIES "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src/include" + INTERFACE_LINK_LIBRARIES "ftxui::dom;Threads::Threads" +) + +# Import target "ftxui::screen" for configuration "Release" +set_property(TARGET ftxui::screen APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(ftxui::screen PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" + IMPORTED_LOCATION_RELEASE "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-build/libftxui-screen.a" + ) + +# Import target "ftxui::dom" for configuration "Release" +set_property(TARGET ftxui::dom APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(ftxui::dom PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" + IMPORTED_LOCATION_RELEASE "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-build/libftxui-dom.a" + ) + +# Import target "ftxui::component" for configuration "Release" +set_property(TARGET ftxui::component APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(ftxui::component PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" + IMPORTED_LOCATION_RELEASE "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-build/libftxui-component.a" + ) + +# This file does not depend on other imported targets which have +# been exported from the same project but in a separate export set. + +# Commands beyond this point should not need to know the version. +set(CMAKE_IMPORT_FILE_VERSION) +cmake_policy(POP) diff --git a/build-tui/_deps/ftxui-build/libftxui-component.a b/build-tui/_deps/ftxui-build/libftxui-component.a new file mode 100644 index 0000000..0e907f3 Binary files /dev/null and b/build-tui/_deps/ftxui-build/libftxui-component.a differ diff --git a/build-tui/_deps/ftxui-build/libftxui-dom.a b/build-tui/_deps/ftxui-build/libftxui-dom.a new file mode 100644 index 0000000..5a6f27c Binary files /dev/null and b/build-tui/_deps/ftxui-build/libftxui-dom.a differ diff --git a/build-tui/_deps/ftxui-build/libftxui-screen.a b/build-tui/_deps/ftxui-build/libftxui-screen.a new file mode 100644 index 0000000..a8c090b Binary files /dev/null and b/build-tui/_deps/ftxui-build/libftxui-screen.a differ diff --git a/build-tui/_deps/ftxui-src b/build-tui/_deps/ftxui-src new file mode 160000 index 0000000..cdf2890 --- /dev/null +++ b/build-tui/_deps/ftxui-src @@ -0,0 +1 @@ +Subproject commit cdf28903a7781f97ba94d30b79c3a4b0c97ccce7 diff --git a/build-tui/_deps/ftxui-subbuild/CMakeLists.txt b/build-tui/_deps/ftxui-subbuild/CMakeLists.txt new file mode 100644 index 0000000..bc18532 --- /dev/null +++ b/build-tui/_deps/ftxui-subbuild/CMakeLists.txt @@ -0,0 +1,42 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file LICENSE.rst or https://cmake.org/licensing for details. + +cmake_minimum_required(VERSION 4.3.3) + +# Reject any attempt to use a toolchain file. We must not use one because +# we could be downloading it here. If the CMAKE_TOOLCHAIN_FILE environment +# variable is set, the cache variable will have been initialized from it. +unset(CMAKE_TOOLCHAIN_FILE CACHE) +unset(ENV{CMAKE_TOOLCHAIN_FILE}) + +# We name the project and the target for the ExternalProject_Add() call +# to something that will highlight to the user what we are working on if +# something goes wrong and an error message is produced. + +project(ftxui-populate NONE) + + +# Pass through things we've already detected in the main project to avoid +# paying the cost of redetecting them again in ExternalProject_Add() +set(GIT_EXECUTABLE [==[/usr/bin/git]==]) +set(Git_VERSION [==[2.54.0]==]) +set_property(GLOBAL PROPERTY _CMAKE_FindGit_GIT_EXECUTABLE_VERSION + [==[/usr/bin/git;2.54.0]==] +) + + +include(ExternalProject) +ExternalProject_Add(ftxui-populate + "UPDATE_DISCONNECTED" "False" "GIT_REPOSITORY" "https://github.com/ArthurSonzogni/FTXUI.git" "EXTERNALPROJECT_INTERNAL_ARGUMENT_SEPARATOR" "GIT_TAG" "v5.0.0" "GIT_SHALLOW" "TRUE" + SOURCE_DIR "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + BINARY_DIR "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-build" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + TEST_COMMAND "" + USES_TERMINAL_DOWNLOAD YES + USES_TERMINAL_UPDATE YES + USES_TERMINAL_PATCH YES +) + + diff --git a/build-tui/_deps/ftxui-subbuild/Makefile b/build-tui/_deps/ftxui-subbuild/Makefile new file mode 100644 index 0000000..a0bc2e0 --- /dev/null +++ b/build-tui/_deps/ftxui-subbuild/Makefile @@ -0,0 +1,162 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 4.3 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..." + /usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/CMakeFiles /home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild//CMakeFiles/progress.marks + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/CMakeFiles 0 +.PHONY : all + +# The main codegen target +codegen: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/CMakeFiles /home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild//CMakeFiles/progress.marks + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 codegen + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/CMakeFiles 0 +.PHONY : codegen + +# The main clean target +clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named ftxui-populate + +# Build rule for target. +ftxui-populate: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ftxui-populate +.PHONY : ftxui-populate + +# fast build rule for target. +ftxui-populate/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ftxui-populate.dir/build.make CMakeFiles/ftxui-populate.dir/build +.PHONY : ftxui-populate/fast + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... codegen" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... ftxui-populate" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-build b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-build new file mode 100644 index 0000000..e69de29 diff --git a/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-configure b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-configure new file mode 100644 index 0000000..e69de29 diff --git a/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-done b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-done new file mode 100644 index 0000000..e69de29 diff --git a/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-download b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-download new file mode 100644 index 0000000..e69de29 diff --git a/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-gitclone-lastrun.txt b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-gitclone-lastrun.txt new file mode 100644 index 0000000..7cd5656 --- /dev/null +++ b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-gitclone-lastrun.txt @@ -0,0 +1,15 @@ +# This is a generated file and its contents are an internal implementation detail. +# The download step will be re-executed if anything in this file changes. +# No other meaning or use of this file is supported. + +method=git +command=/usr/bin/cmake;-DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE;-P;/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/tmp/ftxui-populate-gitclone.cmake +source_dir=/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src +work_dir=/home/pedro/code/fwt_2a/software/build-tui/_deps +repository=https://github.com/ArthurSonzogni/FTXUI.git +remote=origin +init_submodules=TRUE +recurse_submodules=--recursive +submodules= +CMP0097=NEW + diff --git a/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-gitinfo.txt b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-gitinfo.txt new file mode 100644 index 0000000..7cd5656 --- /dev/null +++ b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-gitinfo.txt @@ -0,0 +1,15 @@ +# This is a generated file and its contents are an internal implementation detail. +# The download step will be re-executed if anything in this file changes. +# No other meaning or use of this file is supported. + +method=git +command=/usr/bin/cmake;-DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE;-P;/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/tmp/ftxui-populate-gitclone.cmake +source_dir=/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src +work_dir=/home/pedro/code/fwt_2a/software/build-tui/_deps +repository=https://github.com/ArthurSonzogni/FTXUI.git +remote=origin +init_submodules=TRUE +recurse_submodules=--recursive +submodules= +CMP0097=NEW + diff --git a/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-install b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-install new file mode 100644 index 0000000..e69de29 diff --git a/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-mkdir b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-mkdir new file mode 100644 index 0000000..e69de29 diff --git a/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-patch b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-patch new file mode 100644 index 0000000..e69de29 diff --git a/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-patch-info.txt b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-patch-info.txt new file mode 100644 index 0000000..53e1e1e --- /dev/null +++ b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-patch-info.txt @@ -0,0 +1,6 @@ +# This is a generated file and its contents are an internal implementation detail. +# The update step will be re-executed if anything in this file changes. +# No other meaning or use of this file is supported. + +command= +work_dir= diff --git a/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-test b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-test new file mode 100644 index 0000000..e69de29 diff --git a/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-update-info.txt b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-update-info.txt new file mode 100644 index 0000000..cd236dd --- /dev/null +++ b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-update-info.txt @@ -0,0 +1,7 @@ +# This is a generated file and its contents are an internal implementation detail. +# The patch step will be re-executed if anything in this file changes. +# No other meaning or use of this file is supported. + +command (connected)=/usr/bin/cmake;-Dcan_fetch=YES;-DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE;-P;/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/tmp/ftxui-populate-gitupdate.cmake +command (disconnected)=/usr/bin/cmake;-Dcan_fetch=NO;-DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE;-P;/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/tmp/ftxui-populate-gitupdate.cmake +work_dir=/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src diff --git a/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/tmp/ftxui-populate-cfgcmd.txt b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/tmp/ftxui-populate-cfgcmd.txt new file mode 100644 index 0000000..6a6ed5f --- /dev/null +++ b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/tmp/ftxui-populate-cfgcmd.txt @@ -0,0 +1 @@ +cmd='' diff --git a/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/tmp/ftxui-populate-gitclone.cmake b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/tmp/ftxui-populate-gitclone.cmake new file mode 100644 index 0000000..f8af30b --- /dev/null +++ b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/tmp/ftxui-populate-gitclone.cmake @@ -0,0 +1,87 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file LICENSE.rst or https://cmake.org/licensing for details. + +cmake_minimum_required(VERSION ${CMAKE_VERSION}) # this file comes with cmake + +if(EXISTS "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-gitclone-lastrun.txt" AND EXISTS "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-gitinfo.txt" AND + "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-gitclone-lastrun.txt" IS_NEWER_THAN "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-gitinfo.txt") + message(VERBOSE + "Avoiding repeated git clone, stamp file is up to date: " + "'/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-gitclone-lastrun.txt'" + ) + return() +endif() + +# Even at VERBOSE level, we don't want to see the commands executed, but +# enabling them to be shown for DEBUG may be useful to help diagnose problems. +cmake_language(GET_MESSAGE_LOG_LEVEL active_log_level) +if(active_log_level MATCHES "DEBUG|TRACE") + set(maybe_show_command COMMAND_ECHO STDOUT) +else() + set(maybe_show_command "") +endif() + +execute_process( + COMMAND ${CMAKE_COMMAND} -E rm -rf "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + RESULT_VARIABLE error_code + ${maybe_show_command} +) +if(error_code) + message(FATAL_ERROR "Failed to remove directory: '/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src'") +endif() + +# try the clone 3 times in case there is an odd git clone issue +set(error_code 1) +set(number_of_tries 0) +while(error_code AND number_of_tries LESS 3) + execute_process( + COMMAND "/usr/bin/git" + clone --no-checkout --depth 1 --no-single-branch --config "advice.detachedHead=false" "https://github.com/ArthurSonzogni/FTXUI.git" "ftxui-src" + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps" + RESULT_VARIABLE error_code + ${maybe_show_command} + ) + math(EXPR number_of_tries "${number_of_tries} + 1") +endwhile() +if(number_of_tries GREATER 1) + message(NOTICE "Had to git clone more than once: ${number_of_tries} times.") +endif() +if(error_code) + message(FATAL_ERROR "Failed to clone repository: 'https://github.com/ArthurSonzogni/FTXUI.git'") +endif() + +execute_process( + COMMAND "/usr/bin/git" + checkout "v5.0.0" -- + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + RESULT_VARIABLE error_code + ${maybe_show_command} +) +if(error_code) + message(FATAL_ERROR "Failed to checkout tag: 'v5.0.0'") +endif() + +set(init_submodules TRUE) +if(init_submodules) + execute_process( + COMMAND "/usr/bin/git" + submodule update --recursive --init + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + RESULT_VARIABLE error_code + ${maybe_show_command} + ) +endif() +if(error_code) + message(FATAL_ERROR "Failed to update submodules in: '/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src'") +endif() + +# Complete success, update the script-last-run stamp file: +# +execute_process( + COMMAND ${CMAKE_COMMAND} -E copy "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-gitinfo.txt" "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-gitclone-lastrun.txt" + RESULT_VARIABLE error_code + ${maybe_show_command} +) +if(error_code) + message(FATAL_ERROR "Failed to copy script-last-run stamp file: '/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/ftxui-populate-gitclone-lastrun.txt'") +endif() diff --git a/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/tmp/ftxui-populate-gitupdate.cmake b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/tmp/ftxui-populate-gitupdate.cmake new file mode 100644 index 0000000..3a9f23a --- /dev/null +++ b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/tmp/ftxui-populate-gitupdate.cmake @@ -0,0 +1,317 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file LICENSE.rst or https://cmake.org/licensing for details. + +cmake_minimum_required(VERSION ${CMAKE_VERSION}) # this file comes with cmake + +# Even at VERBOSE level, we don't want to see the commands executed, but +# enabling them to be shown for DEBUG may be useful to help diagnose problems. +cmake_language(GET_MESSAGE_LOG_LEVEL active_log_level) +if(active_log_level MATCHES "DEBUG|TRACE") + set(maybe_show_command COMMAND_ECHO STDOUT) +else() + set(maybe_show_command "") +endif() + +function(do_fetch) + message(VERBOSE "Fetching latest from the remote origin") + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git fetch --tags --force "origin" + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + COMMAND_ERROR_IS_FATAL LAST + ${maybe_show_command} + ) +endfunction() + +function(get_hash_for_ref ref out_var err_var) + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git rev-parse "${ref}^0" + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + RESULT_VARIABLE error_code + OUTPUT_VARIABLE ref_hash + ERROR_VARIABLE error_msg + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + if(error_code) + set(${out_var} "" PARENT_SCOPE) + else() + set(${out_var} "${ref_hash}" PARENT_SCOPE) + endif() + set(${err_var} "${error_msg}" PARENT_SCOPE) +endfunction() + +get_hash_for_ref(HEAD head_sha error_msg) +if(head_sha STREQUAL "") + message(FATAL_ERROR "Failed to get the hash for HEAD:\n${error_msg}") +endif() + +if("${can_fetch}" STREQUAL "") + set(can_fetch "YES") +endif() + +execute_process( + COMMAND "/usr/bin/git" --git-dir=.git show-ref "v5.0.0" + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + OUTPUT_VARIABLE show_ref_output +) +if(show_ref_output MATCHES "^[a-z0-9]+[ \\t]+refs/remotes/") + # Given a full remote/branch-name and we know about it already. Since + # branches can move around, we should always fetch, if permitted. + if(can_fetch) + do_fetch() + endif() + set(checkout_name "v5.0.0") + +elseif(show_ref_output MATCHES "^[a-z0-9]+[ \\t]+refs/tags/") + # Given a tag name that we already know about. We don't know if the tag we + # have matches the remote though (tags can move), so we should fetch. As a + # special case to preserve backward compatibility, if we are already at the + # same commit as the tag we hold locally, don't do a fetch and assume the tag + # hasn't moved on the remote. + # FIXME: We should provide an option to always fetch for this case + get_hash_for_ref("v5.0.0" tag_sha error_msg) + if(tag_sha STREQUAL head_sha) + message(VERBOSE "Already at requested tag: v5.0.0") + return() + endif() + + if(can_fetch) + do_fetch() + endif() + set(checkout_name "v5.0.0") + +elseif(show_ref_output MATCHES "^[a-z0-9]+[ \\t]+refs/heads/") + # Given a branch name without any remote and we already have a branch by that + # name. We might already have that branch checked out or it might be a + # different branch. It isn't fully safe to use a bare branch name without the + # remote, so do a fetch (if allowed) and replace the ref with one that + # includes the remote. + if(can_fetch) + do_fetch() + endif() + set(checkout_name "origin/v5.0.0") + +else() + get_hash_for_ref("v5.0.0" tag_sha error_msg) + if(tag_sha STREQUAL head_sha) + # Have the right commit checked out already + message(VERBOSE "Already at requested ref: ${tag_sha}") + return() + + elseif(tag_sha STREQUAL "") + # We don't know about this ref yet, so we have no choice but to fetch. + if(NOT can_fetch) + message(FATAL_ERROR + "Requested git ref \"v5.0.0\" is not present locally, and not " + "allowed to contact remote due to UPDATE_DISCONNECTED setting." + ) + endif() + + # We deliberately swallow any error message at the default log level + # because it can be confusing for users to see a failed git command. + # That failure is being handled here, so it isn't an error. + if(NOT error_msg STREQUAL "") + message(DEBUG "${error_msg}") + endif() + do_fetch() + set(checkout_name "v5.0.0") + + else() + # We have the commit, so we know we were asked to find a commit hash + # (otherwise it would have been handled further above), but we don't + # have that commit checked out yet. We don't need to fetch from the remote. + set(checkout_name "v5.0.0") + if(NOT error_msg STREQUAL "") + message(WARNING "${error_msg}") + endif() + + endif() +endif() + +set(git_update_strategy "REBASE") +if(git_update_strategy STREQUAL "") + # Backward compatibility requires REBASE as the default behavior + set(git_update_strategy REBASE) +endif() + +if(git_update_strategy MATCHES "^REBASE(_CHECKOUT)?$") + # Asked to potentially try to rebase first, maybe with fallback to checkout. + # We can't if we aren't already on a branch and we shouldn't if that local + # branch isn't tracking the one we want to checkout. + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git symbolic-ref -q HEAD + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + OUTPUT_VARIABLE current_branch + OUTPUT_STRIP_TRAILING_WHITESPACE + # Don't test for an error. If this isn't a branch, we get a non-zero error + # code but empty output. + ) + + if(current_branch STREQUAL "") + # Not on a branch, checkout is the only sensible option since any rebase + # would always fail (and backward compatibility requires us to checkout in + # this situation) + set(git_update_strategy CHECKOUT) + + else() + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git for-each-ref "--format=%(upstream:short)" "${current_branch}" + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + OUTPUT_VARIABLE upstream_branch + OUTPUT_STRIP_TRAILING_WHITESPACE + COMMAND_ERROR_IS_FATAL ANY # There is no error if no upstream is set + ) + if(NOT upstream_branch STREQUAL checkout_name) + # Not safe to rebase when asked to checkout a different branch to the one + # we are tracking. If we did rebase, we could end up with arbitrary + # commits added to the ref we were asked to checkout if the current local + # branch happens to be able to rebase onto the target branch. There would + # be no error message and the user wouldn't know this was occurring. + set(git_update_strategy CHECKOUT) + endif() + + endif() +elseif(NOT git_update_strategy STREQUAL "CHECKOUT") + message(FATAL_ERROR "Unsupported git update strategy: ${git_update_strategy}") +endif() + + +# Check if stash is needed +execute_process( + COMMAND "/usr/bin/git" --git-dir=.git status --porcelain + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + RESULT_VARIABLE error_code + OUTPUT_VARIABLE repo_status +) +if(error_code) + message(FATAL_ERROR "Failed to get the status") +endif() +string(LENGTH "${repo_status}" need_stash) + +# If not in clean state, stash changes in order to be able to perform a +# rebase or checkout without losing those changes permanently +if(need_stash) + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git stash save --quiet;--include-untracked + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + COMMAND_ERROR_IS_FATAL ANY + ${maybe_show_command} + ) +endif() + +if(git_update_strategy STREQUAL "CHECKOUT") + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git checkout "${checkout_name}" + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + COMMAND_ERROR_IS_FATAL ANY + ${maybe_show_command} + ) +else() + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git rebase "${checkout_name}" + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + RESULT_VARIABLE error_code + OUTPUT_VARIABLE rebase_output + ERROR_VARIABLE rebase_output + ) + if(error_code) + # Rebase failed, undo the rebase attempt before continuing + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git rebase --abort + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + ${maybe_show_command} + ) + + if(NOT git_update_strategy STREQUAL "REBASE_CHECKOUT") + # Not allowed to do a checkout as a fallback, so cannot proceed + if(need_stash) + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git stash pop --index --quiet + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + ${maybe_show_command} + ) + endif() + message(FATAL_ERROR "\nFailed to rebase in: '/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src'." + "\nOutput from the attempted rebase follows:" + "\n${rebase_output}" + "\n\nYou will have to resolve the conflicts manually") + endif() + + # Fall back to checkout. We create an annotated tag so that the user + # can manually inspect the situation and revert if required. + # We can't log the failed rebase output because MSVC sees it and + # intervenes, causing the build to fail even though it completes. + # Write it to a file instead. + string(TIMESTAMP tag_timestamp "%Y%m%dT%H%M%S" UTC) + set(tag_name _cmake_ExternalProject_moved_from_here_${tag_timestamp}Z) + set(error_log_file ${CMAKE_CURRENT_LIST_DIR}/rebase_error_${tag_timestamp}Z.log) + file(WRITE ${error_log_file} "${rebase_output}") + message(WARNING "Rebase failed, output has been saved to ${error_log_file}" + "\nFalling back to checkout, previous commit tagged as ${tag_name}") + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git tag -a + -m "ExternalProject attempting to move from here to ${checkout_name}" + ${tag_name} + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + COMMAND_ERROR_IS_FATAL ANY + ${maybe_show_command} + ) + + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git checkout "${checkout_name}" + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + COMMAND_ERROR_IS_FATAL ANY + ${maybe_show_command} + ) + endif() +endif() + +if(need_stash) + # Put back the stashed changes + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git stash pop --index --quiet + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + RESULT_VARIABLE error_code + ${maybe_show_command} + ) + if(error_code) + # Stash pop --index failed: Try again dropping the index + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git reset --hard --quiet + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + ${maybe_show_command} + ) + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git stash pop --quiet + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + RESULT_VARIABLE error_code + ${maybe_show_command} + ) + if(error_code) + # Stash pop failed: Restore previous state. + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git reset --hard --quiet ${head_sha} + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + ${maybe_show_command} + ) + execute_process( + COMMAND "/usr/bin/git" --git-dir=.git stash pop --index --quiet + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + ${maybe_show_command} + ) + message(FATAL_ERROR "\nFailed to unstash changes in: '/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src'." + "\nYou will have to resolve the conflicts manually") + endif() + endif() +endif() + +set(init_submodules "TRUE") +if(init_submodules) + execute_process( + COMMAND "/usr/bin/git" + --git-dir=.git + submodule update --recursive --init + WORKING_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src" + COMMAND_ERROR_IS_FATAL ANY + ${maybe_show_command} + ) +endif() diff --git a/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/tmp/ftxui-populate-mkdirs.cmake b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/tmp/ftxui-populate-mkdirs.cmake new file mode 100644 index 0000000..7e9b732 --- /dev/null +++ b/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/tmp/ftxui-populate-mkdirs.cmake @@ -0,0 +1,27 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file LICENSE.rst or https://cmake.org/licensing for details. + +cmake_minimum_required(VERSION ${CMAKE_VERSION}) # this file comes with cmake + +# If CMAKE_DISABLE_SOURCE_CHANGES is set to true and the source directory is an +# existing directory in our source tree, calling file(MAKE_DIRECTORY) on it +# would cause a fatal error, even though it would be a no-op. +if(NOT EXISTS "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src") + file(MAKE_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-src") +endif() +file(MAKE_DIRECTORY + "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-build" + "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix" + "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/tmp" + "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp" + "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src" + "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp" +) + +set(configSubDirs ) +foreach(subDir IN LISTS configSubDirs) + file(MAKE_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp/${subDir}") +endforeach() +if(cfgdir) + file(MAKE_DIRECTORY "/home/pedro/code/fwt_2a/software/build-tui/_deps/ftxui-subbuild/ftxui-populate-prefix/src/ftxui-populate-stamp${cfgdir}") # cfgdir has leading slash +endif() diff --git a/build-tui/fire_gimbal_control b/build-tui/fire_gimbal_control new file mode 100755 index 0000000..f063549 Binary files /dev/null and b/build-tui/fire_gimbal_control differ diff --git a/build-tui/libfgc_core.a b/build-tui/libfgc_core.a new file mode 100644 index 0000000..04d383d Binary files /dev/null and b/build-tui/libfgc_core.a differ diff --git a/cmake/Ftxui.cmake b/cmake/Ftxui.cmake new file mode 100644 index 0000000..d2f5069 --- /dev/null +++ b/cmake/Ftxui.cmake @@ -0,0 +1,31 @@ +# 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) diff --git a/config/config.example.ini b/config/config.example.ini index 8ab366d..0b0efd8 100644 --- a/config/config.example.ini +++ b/config/config.example.ini @@ -79,6 +79,12 @@ enable_serial = true mock_camera = false mock_serial = false +[UI] +; Full-screen terminal dashboard (sectioned, colored, live status + log pane). +; false => headless line console (default; stdin commands, stdout logs). +; CLI --tui / --no-tui override this. Requires a build with WITH_TUI=ON. +enable_tui = false + [Logging] ; level: trace|debug|info|warn|error|off (default info). --log-level overrides. level = info diff --git a/docs/architecture.md b/docs/architecture.md index b7d56eb..db12d18 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -39,15 +39,20 @@ The design separates **policy** (the control logic) from **mechanism** (the I/O | Thread | Where | Role | |--------|-------|------| -| Main / control loop | `Application::run` | 10 ms tick: drain console commands, `scheduler.tick()` | -| stdin reader | `Application` | reads command lines into a queue | +| Main / control loop | `Application::run` | 10 ms tick: drain UI commands, `scheduler.tick()`, publish a `UiSnapshot` | +| UI input (headless) | `HeadlessUi` | reads stdin lines into the command sink | +| UI render + input (TUI) | `TuiUi` | FTXUI event loop + 10 Hz refresher; pulls snapshots, pushes commands | | Serial I/O | `SerialMotorController` | Boost.Asio `io_context`; async read-until parses telemetry | | Image worker | `ImagePipeline` | drains the frame queue: rotate → encode → write → publish | | MQTT client | Paho (internal) | delivers callbacks; auto-reconnects (no busy-wait loop) | | Camera acquisition | Vimba X (internal) | delivers frames via the observer (real source) | Shared state is mutex-guarded: latest `MotorTelemetry` (serial), `ControlCommand` (channel), the frame queue -(pipeline), and the console command queue. The `CaptureScheduler` runs only on the main thread. +(pipeline), the console command queue, and the latest `UiSnapshot`. The `CaptureScheduler` runs only on the +main thread; the UI is a pure observer + command source (it copies a snapshot to render and pushes command +strings back through the same queue the console uses, so it never touches live logic objects). In TUI mode +all `Logger` output is diverted to an on-screen pane via a `Logger::setSink` callback so the screen is never +corrupted. ## Data flow diff --git a/docs/configuration.md b/docs/configuration.md index bb4d1ba..6b9b6a2 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -42,6 +42,7 @@ Parsed and validated by `ConfigLoader` ([src/core/Config.cpp](../src/core/Config | `Features` | `mock_serial` | bool | `false` | Use the simulated motor controller | | `Logging` | `level` | enum | `info` | Linear log level (`--log-level` overrides) | | `Logging` | `trace` | csv | — | Wire-trace categories, off by default (`--trace` overrides) | +| `UI` | `enable_tui` | bool | `false` | Full-screen terminal dashboard (`--tui`/`--no-tui` override; needs `WITH_TUI=ON`) | | `Motor` | `yaw_counts_per_deg` / `pitch_counts_per_deg` | float | `983.33` / — | Encoder counts per degree (**calibrate**; may be negative to flip) | | `Motor` | `yaw_zero_count` / `pitch_zero_count` | int | `500000` / `0` | `xenc` value that = 0° | | `Motor` | `yaw_min_deg`/`yaw_max_deg`/`pitch_*` | float | `-90`/`90`/… | Soft clamp on commanded degrees | @@ -82,6 +83,8 @@ Parsed by Boost.Program_options ([main.cpp](../main.cpp)). Flags override `[Feat | `--no-mqtt` | Disable MQTT (use the null channel) | | `--mock-camera` | Use the simulated camera | | `--mock-serial` | Use the simulated motor controller | +| `--tui` | Show the full-screen terminal dashboard (overrides `[UI] enable_tui`) | +| `--no-tui` | Force the headless line console (overrides config; wins over `--tui`) | | `--log-level ` | `trace`/`debug`/`info`/`warn`/`error`/`off` | | `--trace ` | Verbatim wire trace; comma list `serial,mqtt,camera,control,all,none` | @@ -114,6 +117,33 @@ Handled in `Application::Impl::handleCommand`. | `set motorctl ` | Forward a raw command to the motor controller (e.g. `set motorctl MOVE Y 20000`) | | `exit` | Quit (Ctrl-D also works) | +## Terminal dashboard (TUI) + +An **optional** full-screen interface (`--tui`, or `[UI] enable_tui = true`) renders the tower +status as sectioned, colored panels updated in place, with a scrolling log pane and a nano-style +key bar. It is built on [FTXUI](https://github.com/ArthurSonzogni/FTXUI) (fetched via +[cmake/Ftxui.cmake](../cmake/Ftxui.cmake) when `WITH_TUI=ON`, the default) and is **fully decoupled +from application logic**: the control loop publishes a plain `UiSnapshot` +([include/fgc/ui/UiSnapshot.h](../include/fgc/ui/UiSnapshot.h)) that the UI renders, and the UI +forwards keystrokes/typed commands back through the same command queue the console uses. Headless +operation is unchanged and remains the default — the same binary runs under systemd/ssh/pipes with +logs on stdout. + +Panels (MVP): **Gimbal** (per-axis state, heading, encoder counts, flag badges, target), +**Sensors** (DHT11 + Xsens MTi — shown as *pending integration* until those drivers land), +**Camera** (count, capture state, rate, last capture), **Connectivity** (MQTT state, broker, tower, +control mode, target heading). Adding a panel later (e.g. computer vision) is a struct in +`UiSnapshot.h` plus one node in [src/ui/TuiUi.cpp](../src/ui/TuiUi.cpp). + +Keys (shown in the bottom bar): `s` start · `x` stop · `h` home · `r` reset · `:` open a command +line (any console/`set motorctl …` command) · `q` quit. Plain letters are used rather than Ctrl +chords so terminal flow-control (`Ctrl-S`/`Ctrl-Q` XON/XOFF) can't swallow them. In TUI mode all log +output is diverted from stdout into the on-screen log pane via a `Logger` sink, so the screen is +never corrupted. + +Build without it (`-DWITH_TUI=OFF`) for a smaller, dependency-free binary; `--tui` then warns and +runs headless. + ## Logging: level vs. wire-trace categories Two **independent** controls, each settable via config (`[Logging]`), CLI, and a console command: diff --git a/docs/modules-reference.md b/docs/modules-reference.md index c8022dd..58d5fdc 100644 --- a/docs/modules-reference.md +++ b/docs/modules-reference.md @@ -14,7 +14,9 @@ Per-file reference for the refactored tree, plus the shared data structures. | [include/fgc/TelemetryParser.h](../include/fgc/TelemetryParser.h), [src/core/TelemetryParser.cpp](../src/core/TelemetryParser.cpp) | `parseTelemetryLine` (firmware `ST` line) → `std::optional` | | [include/fgc/CommandParser.h](../include/fgc/CommandParser.h), [src/core/CommandParser.cpp](../src/core/CommandParser.cpp) | `parseCommand` whitespace tokenizer → `Command` | | [include/fgc/CaptureScheduler.h](../include/fgc/CaptureScheduler.h), [src/core/CaptureScheduler.cpp](../src/core/CaptureScheduler.cpp) | Capture state machine over the interfaces; injectable clock | -| [include/fgc/Application.h](../include/fgc/Application.h), [src/core/Application.cpp](../src/core/Application.cpp) | Factory (real vs mock), wiring, control loop, console commands | +| [include/fgc/Application.h](../include/fgc/Application.h), [src/core/Application.cpp](../src/core/Application.cpp) | Factory (real vs mock, headless vs TUI), wiring, control loop, console commands, `buildSnapshot()` | +| [include/fgc/ui/UiSnapshot.h](../include/fgc/ui/UiSnapshot.h), [src/ui/UiSnapshot.cpp](../src/ui/UiSnapshot.cpp) | Plain-data view model + pure formatting helpers (state label/colour, degrees, time-ago, pending-sensors) | +| [include/fgc/ui/HeadlessUi.h](../include/fgc/ui/HeadlessUi.h), [src/ui/HeadlessUi.cpp](../src/ui/HeadlessUi.cpp) | Default line console: stdin → command sink; logs via the default stdout/stderr writer | | [ini.c](../ini.c), [ini.h](../ini.h) | Bundled third-party inih INI parser | ## Interfaces @@ -24,6 +26,7 @@ Per-file reference for the refactored tree, plus the shared data structures. | [include/fgc/IMotorController.h](../include/fgc/IMotorController.h) | `IMotorController` | `MotorTelemetry` | | [include/fgc/IControlChannel.h](../include/fgc/IControlChannel.h) | `IControlChannel` | `ControlCommand`, `CamEvent` | | [include/fgc/ICameraSource.h](../include/fgc/ICameraSource.h) | `ICameraSource` | `Frame` | +| [include/fgc/ui/IUserInterface.h](../include/fgc/ui/IUserInterface.h) | `IUserInterface` | `UiSnapshot` | ## Real implementations (SDK-gated) @@ -31,6 +34,7 @@ Per-file reference for the refactored tree, plus the shared data structures. |------|-----------|-----------| | [src/serial/SerialMotorController.cpp](../src/serial/SerialMotorController.cpp) | `IMotorController` over Boost.Asio serial (pImpl) | always | | [src/mqtt/MqttControlChannel.cpp](../src/mqtt/MqttControlChannel.cpp) | `IControlChannel` over Eclipse Paho | `WITH_MQTT` | +| [src/ui/TuiUi.cpp](../src/ui/TuiUi.cpp) | `IUserInterface` over FTXUI: panels, key bar, log pane | `WITH_TUI` | | [src/camera/VimbaCameraSource.cpp](../src/camera/VimbaCameraSource.cpp) | `ICameraSource` over Vimba X (pImpl) | `WITH_VIMBA` | | [src/camera/JpegXlEncoder.cpp](../src/camera/JpegXlEncoder.cpp) | libjxl encode-to-file | always | | [src/camera/ImagePipeline.cpp](../src/camera/ImagePipeline.cpp) | frame → rotate → encode → write → CamEvent (worker thread) | always | diff --git a/include/fgc/Application.h b/include/fgc/Application.h index a4d5d78..7ac0c6b 100644 --- a/include/fgc/Application.h +++ b/include/fgc/Application.h @@ -18,6 +18,7 @@ struct RuntimeOptions { std::optional use_mqtt; std::optional mock_camera; std::optional mock_serial; + std::optional use_tui; // --tui / --no-tui; unset => [UI] enable_tui std::string log_level; // empty => default std::string trace_categories; // comma list (serial,mqtt,camera,control,all); empty => unset diff --git a/include/fgc/Config.h b/include/fgc/Config.h index 9f48dd6..5960e51 100644 --- a/include/fgc/Config.h +++ b/include/fgc/Config.h @@ -52,6 +52,10 @@ struct LoggingConfig { std::string trace; // verbatim wire-trace categories: serial,mqtt,camera,control,all,none }; +struct UiConfig { + bool enable_tui = false; // false => headless line console (default); CLI --tui/--no-tui override +}; + // [Scan]: source of the capture scan grid (the (yaw,pitch) waypoints the // auto-sweep steps through). If grid_file is set, the CSV is loaded verbatim; // otherwise a grid is generated from the parameters below (see ScanGrid). @@ -71,6 +75,7 @@ struct AppConfig { PathsConfig paths; FeaturesConfig features; LoggingConfig logging; + UiConfig ui; // [UI] terminal dashboard toggle Geometry geometry; // [Motor] degrees<->counts maps (yaw + pitch) ScanConfig scan; // [Scan] grid source diff --git a/include/fgc/ImagePipeline.h b/include/fgc/ImagePipeline.h index 108cdb9..4ed9396 100644 --- a/include/fgc/ImagePipeline.h +++ b/include/fgc/ImagePipeline.h @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -53,6 +54,10 @@ public: void setEffort(int e) { params_.jxl_effort = e; } void setDisplay(bool on) { params_.display = on; } + // Last CamEvent published (camera label, heading/pitch, timestamp), for the + // UI's camera panel. Thread-safe; nullopt until the first capture is saved. + std::optional lastEvent() const; + private: void run(); void process(const Frame& frame); @@ -67,6 +72,9 @@ private: std::condition_variable cv_; std::atomic running_{false}; std::thread worker_; + + mutable std::mutex last_event_mutex_; + std::optional last_event_; }; } // namespace fgc diff --git a/include/fgc/Logger.h b/include/fgc/Logger.h index a14513e..b563092 100644 --- a/include/fgc/Logger.h +++ b/include/fgc/Logger.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -52,6 +53,15 @@ public: // Map a single category name to its enum value. Unknown => LogCat::None and // *ok=false (when ok != nullptr). static LogCat catFromString(const std::string& name, bool* ok = nullptr); + + // Output sink for finished log lines. The string is the fully formatted line + // (timestamp + "[LABEL]" + message, no trailing newline); `level` lets a sink + // colour or route by severity. Installing a sink REPLACES the default + // stdout/stderr writer entirely - used by the TUI to divert logs into an + // on-screen pane so they never corrupt the rendered screen. Pass an empty + // function to restore the default writer. Thread-safe. + using LogSink = std::function; + static void setSink(LogSink sink); }; // RAII helper that buffers one log line and flushes it on commit(). diff --git a/include/fgc/ui/HeadlessUi.h b/include/fgc/ui/HeadlessUi.h new file mode 100644 index 0000000..984c1af --- /dev/null +++ b/include/fgc/ui/HeadlessUi.h @@ -0,0 +1,29 @@ +#pragma once + +#include "fgc/ui/IUserInterface.h" + +#include +#include + +namespace fgc { + +// The default, no-decoration interface: a stdin reader thread that forwards each +// line to the command sink, with logs going to stdout/stderr via the Logger's +// default writer. This is exactly the behaviour the app had before the TUI; it +// keeps headless deployment (systemd, ssh, pipes) working unchanged. +class HeadlessUi : public IUserInterface { +public: + ~HeadlessUi() override; + + void start(SnapshotFn snapshot, CommandSink sink) override; + void stop() override; + +private: + void inputLoop(); + + CommandSink sink_; + std::atomic running_{false}; + std::thread input_thread_; +}; + +} // namespace fgc diff --git a/include/fgc/ui/IUserInterface.h b/include/fgc/ui/IUserInterface.h new file mode 100644 index 0000000..5bb9b5b --- /dev/null +++ b/include/fgc/ui/IUserInterface.h @@ -0,0 +1,35 @@ +#pragma once + +#include "fgc/ui/UiSnapshot.h" + +#include +#include + +namespace fgc { + +// Abstraction over the operator interface, wired into the Application the same +// way the motor/camera/channel backends are. It is a pure observer + command +// source: it pulls a UiSnapshot to render and pushes command strings back, but +// never touches the live logic objects. +// +// - HeadlessUi: today's line-based console (stdin -> commands, stdout logs). +// - TuiUi: FTXUI full-screen dashboard (built only when FGC_WITH_TUI). +// +// Both run on their own thread(s); start() must not block the control loop. +class IUserInterface { +public: + // Called by the UI thread when it wants the latest state to render. + using SnapshotFn = std::function; + // Called by the UI to enqueue a console/firmware command line. + using CommandSink = std::function; + + virtual ~IUserInterface() = default; + + // Begin interaction. Non-blocking: spawns the UI's own thread(s). + virtual void start(SnapshotFn snapshot, CommandSink sink) = 0; + + // Stop and join the UI thread(s); restore the terminal if needed. + virtual void stop() = 0; +}; + +} // namespace fgc diff --git a/include/fgc/ui/TuiUi.h b/include/fgc/ui/TuiUi.h new file mode 100644 index 0000000..cf2010d --- /dev/null +++ b/include/fgc/ui/TuiUi.h @@ -0,0 +1,54 @@ +#pragma once + +#include "fgc/ui/IUserInterface.h" + +#include +#include +#include +#include +#include + +namespace ftxui { +class ScreenInteractive; +} + +namespace fgc { + +// Full-screen FTXUI dashboard: sectioned, colored panels (gimbal, sensors, +// camera, connectivity) updated in place, a scrolling log pane fed from a Logger +// sink, and a nano-style key bar. Pure observer + command source: it renders the +// UiSnapshot it pulls and forwards keystrokes/typed commands to the sink. +// +// Compiled only when FGC_WITH_TUI; the Application falls back to HeadlessUi +// otherwise. +class TuiUi : public IUserInterface { +public: + TuiUi(); + ~TuiUi() override; + + void start(SnapshotFn snapshot, CommandSink sink) override; + void stop() override; + +private: + void uiLoop(); // runs the FTXUI event loop (own thread) + void refreshLoop(); // posts redraw events at ~10 Hz (own thread) + void pushLog(LogLevel level, const std::string& line); + + SnapshotFn snapshot_; + CommandSink sink_; + + // Raw pointer to the loop thread's stack-local screen (ScreenInteractive is + // neither copyable nor movable, so it can't be a value/unique_ptr member). + // Set inside uiLoop(); read by stop()/refreshLoop() to Exit()/PostEvent(). + std::atomic screen_{nullptr}; + std::thread ui_thread_; + std::thread refresh_thread_; + std::atomic running_{false}; + + // Log ring buffer (newest last), filled by the Logger sink. + std::mutex log_mutex_; + std::deque log_; + static constexpr size_t kLogCap = 500; +}; + +} // namespace fgc diff --git a/include/fgc/ui/UiSnapshot.h b/include/fgc/ui/UiSnapshot.h new file mode 100644 index 0000000..c0b275f --- /dev/null +++ b/include/fgc/ui/UiSnapshot.h @@ -0,0 +1,124 @@ +#pragma once + +#include "fgc/IMotorController.h" // AxisState +#include "fgc/Logger.h" // LogLevel + +#include +#include + +namespace fgc { + +// Plain-data view model handed from the control loop to a user interface. It is +// a pure snapshot: no references to the live motor/camera/channel objects, so +// the UI thread can copy and render it without touching (or racing) application +// logic. New subsystems become new structs here + a panel in the TUI. + +// Colour intent, mapped to concrete terminal colours by the renderer. +enum class UiColor { Default, Dim, Green, Yellow, Red, Cyan }; + +// One gimbal axis. +struct AxisView { + std::string label; // "YAW" / "PITCH" + AxisState state = AxisState::Unknown; + double deg = 0.0; // heading/elevation, from xenc via Geometry + long xactual = 0; + long xenc = 0; + double target_deg = 0.0; // current scheduler target + bool moving = false; + bool standstill = false; + bool stall = false; + bool overtemp = false; + bool endstop_l = false; + bool endstop_r = false; +}; + +struct GimbalView { + bool present = false; // motor link usable + AxisView yaw; + AxisView pitch; + bool pitch_present = false; +}; + +// One labelled sensor reading. `present=false` => render the dim "pending" form. +struct SensorField { + std::string label; // "Temp", "Humid", "Roll"... + std::string value; // formatted value, or placeholder when absent + std::string unit; // "°C", "%RH", "°"... + bool present = false; +}; + +// DHT11 (temperature/humidity) + Xsens MTi (orientation). Neither is integrated +// yet, so the MVP fills `fields` with pending placeholders; flip the *_present +// flags and populate values when the drivers land. +struct SensorsView { + bool dht_present = false; + bool imu_present = false; + std::vector fields; +}; + +struct CaptureView { + bool present = false; + bool active = false; + double image_rate = 0.0; // img/s + int camera_count = 0; + std::vector labels; + // Last published capture (from ImagePipeline::lastEvent()). + bool has_last = false; + std::string last_label; + double last_heading_deg = 0.0; + double last_pitch_deg = 0.0; + long long last_ts_ms = 0; +}; + +struct ConnView { + bool mqtt_enabled = false; + bool mqtt_connected = false; + std::string broker; + std::string tower; + int control_code = 0; // 0 = auto-sweep, 1 = directed + std::string target_heading; + int last_status_code = 0; +}; + +struct HeaderView { + std::string tower; + std::string build; + long long uptime_ms = 0; + bool live = true; // LIVE vs MOCK +}; + +struct LogLine { + LogLevel level = LogLevel::Info; + std::string text; // formatted line (no trailing newline) +}; + +struct UiSnapshot { + HeaderView header; + GimbalView gimbal; + SensorsView sensors; + CaptureView capture; + ConnView conn; + std::vector log; +}; + +// ---- Pure formatting helpers (unit-tested in tests/test_uisnapshot.cpp) ---- + +// Short state label for an axis state char (B/R/H/A/E -> these strings). +const char* axisStateLabel(AxisState s); + +// Colour intent for an axis state (READY=green, HOMING=yellow, ERROR=red, +// BOOT/RESET=dim, Unknown=default). +UiColor axisStateColor(AxisState s); + +// "12.3°" (one decimal, sign preserved). +std::string formatDegrees(double deg); + +// Human "Ns ago" / "Nm ago" for an absolute ms timestamp relative to now_ms. +// Returns "—" when then_ms is 0 (never). +std::string formatTimeAgo(long long now_ms, long long then_ms); + +// MVP placeholder: the Sensors panel fields shown before the DHT11/MTi drivers +// exist (all `present=false`). Centralised so the panel and tests agree. +SensorsView pendingSensorsView(); + +} // namespace fgc diff --git a/main.cpp b/main.cpp index b2d3256..c0ef4fd 100644 --- a/main.cpp +++ b/main.cpp @@ -21,6 +21,8 @@ int main(int argc, char* argv[]) { ("no-mqtt", po::bool_switch(), "disable MQTT (use a null control channel)") ("mock-camera", po::bool_switch(), "use a simulated camera (no hardware)") ("mock-serial", po::bool_switch(), "use a simulated motor controller (no hardware)") + ("tui", po::bool_switch(), "show the full-screen terminal dashboard") + ("no-tui", po::bool_switch(), "force the headless line console (overrides config)") ("log-level", po::value(), "trace|debug|info|warn|error|off") ("trace", po::value(), "verbatim wire trace, comma list: serial,mqtt,camera,control,all,none"); @@ -64,6 +66,8 @@ int main(int argc, char* argv[]) { if (vm["no-mqtt"].as()) opts.use_mqtt = false; if (vm["mock-camera"].as()) opts.mock_camera = true; if (vm["mock-serial"].as()) opts.mock_serial = true; + if (vm["tui"].as()) opts.use_tui = true; + if (vm["no-tui"].as()) opts.use_tui = false; // --no-tui wins if (vm.count("log-level")) opts.log_level = vm["log-level"].as(); if (vm.count("trace")) opts.trace_categories = vm["trace"].as(); diff --git a/src/camera/ImagePipeline.cpp b/src/camera/ImagePipeline.cpp index ad2dd45..128dba5 100644 --- a/src/camera/ImagePipeline.cpp +++ b/src/camera/ImagePipeline.cpp @@ -101,8 +101,17 @@ void ImagePipeline::process(const Frame& frame) { ev.pitch_decideg = static_cast(o.pitch_deg * 10); ev.timestamp_ms = frame.timestamp_ms; channel_.publishCamEvent(ev); + { + std::lock_guard lock(last_event_mutex_); + last_event_ = ev; + } LOG_DEBUG << "Saved " << file.string() << " (" << img.cols << "x" << img.rows << ")"; } +std::optional ImagePipeline::lastEvent() const { + std::lock_guard lock(last_event_mutex_); + return last_event_; +} + } // namespace fgc diff --git a/src/core/Application.cpp b/src/core/Application.cpp index 4a70ee8..6abe128 100644 --- a/src/core/Application.cpp +++ b/src/core/Application.cpp @@ -12,13 +12,16 @@ #include "fgc/mock/MockCameraSource.h" #include "fgc/mock/MockMotorController.h" #include "fgc/mock/NullControlChannel.h" +#include "fgc/ui/HeadlessUi.h" +#include "fgc/ui/IUserInterface.h" +#include "fgc/ui/UiSnapshot.h" #include #include -#include #include #include #include +#include #include #if FGC_WITH_MQTT @@ -27,6 +30,9 @@ #if FGC_WITH_VIMBA #include "fgc/VimbaCameraSource.h" #endif +#if FGC_WITH_TUI +#include "fgc/ui/TuiUi.h" +#endif namespace fgc { @@ -62,12 +68,16 @@ struct Application::Impl { std::unique_ptr camera; std::unique_ptr pipeline; std::unique_ptr scheduler; + std::unique_ptr ui; ScanGrid grid; // outlives scheduler (holds a reference to it) std::atomic running{true}; std::mutex cmd_mutex; std::queue cmd_queue; - std::thread input_thread; + + std::chrono::steady_clock::time_point start_time; + std::mutex snapshot_mutex; + UiSnapshot latest_snapshot; std::string statusTopicTower() const { return cfg.general.tower_name; } @@ -111,6 +121,89 @@ struct Application::Impl { #endif } + std::unique_ptr makeUi() { + bool want = opts.use_tui.value_or(cfg.ui.enable_tui); +#if FGC_WITH_TUI + if (want) return std::make_unique(); +#else + if (want) LOG_WARN << "TUI requested but binary built without TUI support; using headless console"; +#endif + return std::make_unique(); + } + + // Read live state (on the control thread) into a plain snapshot the UI can + // copy and render without touching the logic objects. The log pane is filled + // by the UI from its own ring buffer, so it is left empty here. + UiSnapshot buildSnapshot() const { + UiSnapshot s; + + const bool mock_serial = opts.mock_serial.value_or(cfg.features.mock_serial); + s.header.tower = cfg.general.tower_name; + s.header.build = "dev"; + s.header.uptime_ms = std::chrono::duration_cast( + std::chrono::steady_clock::now() - start_time).count(); + s.header.live = !mock_serial; + + // --- Gimbal --- + MotorTelemetry t = motor->telemetry(); + s.gimbal.present = motor->connected(); + s.gimbal.pitch_present = t.pitch_present; + auto fillAxis = [](AxisView& v, const char* label, const AxisTelemetry& a, + const AxisMap& map, long target_counts) { + v.label = label; + v.state = a.state; + v.deg = map.toDeg(a.xenc); + v.xactual = a.xactual; + v.xenc = a.xenc; + v.target_deg = map.toDeg(target_counts); + v.moving = a.moving(); + v.standstill = a.standstill; + v.stall = a.stall; + v.overtemp = a.overtemp; + v.endstop_l = a.endstop_l; + v.endstop_r = a.endstop_r; + }; + long yaw_tgt = scheduler ? scheduler->yawTargetCounts() : 0; + long pitch_tgt = scheduler ? scheduler->pitchTargetCounts() : 0; + fillAxis(s.gimbal.yaw, "YAW", t.yaw, cfg.geometry.yaw, yaw_tgt); + fillAxis(s.gimbal.pitch, "PITCH", t.pitch, cfg.geometry.pitch, pitch_tgt); + + // --- Sensors (DHT11 + MTi not integrated yet) --- + s.sensors = pendingSensorsView(); + + // --- Camera / capture --- + s.capture.present = true; + s.capture.active = scheduler && scheduler->captureActive(); + s.capture.image_rate = scheduler ? scheduler->imageRate() : 0.0; + s.capture.camera_count = camera ? camera->cameraCount() : 0; + s.capture.labels = cfg.camera.labels; + if (pipeline) { + if (auto ev = pipeline->lastEvent()) { + s.capture.has_last = true; + s.capture.last_label = ev->camera; + s.capture.last_heading_deg = ev->heading_decideg / 10.0; + s.capture.last_pitch_deg = ev->pitch_decideg / 10.0; + s.capture.last_ts_ms = ev->timestamp_ms; + } + } + + // --- Connectivity --- + s.conn.mqtt_enabled = opts.use_mqtt.value_or(cfg.features.enable_mqtt); + s.conn.mqtt_connected = channel && channel->connected(); + s.conn.broker = cfg.network.broker_ip; + s.conn.tower = cfg.general.tower_name; + s.conn.control_code = scheduler ? scheduler->controlCode() : 0; + s.conn.target_heading = scheduler ? scheduler->targetHeading() : "0"; + s.conn.last_status_code = s.conn.control_code; // echoed back as status + return s; + } + + void publishSnapshot() { + UiSnapshot s = buildSnapshot(); + std::lock_guard lock(snapshot_mutex); + latest_snapshot = std::move(s); + } + void runInitSequence() { using namespace std::chrono_literals; LOG_INFO << "Running gimbal init sequence (enable + home)"; @@ -221,19 +314,6 @@ struct Application::Impl { } } - void inputLoop() { - std::string line; - while (running) { - if (!std::getline(std::cin, line)) { - std::this_thread::sleep_for(std::chrono::milliseconds(500)); - continue; - } - if (line.empty()) continue; - std::lock_guard lock(cmd_mutex); - cmd_queue.push(line); - } - } - void drainCommands() { std::queue local; { @@ -247,6 +327,8 @@ struct Application::Impl { } int run() { + start_time = std::chrono::steady_clock::now(); + // Log level: config first, CLI overrides. if (!cfg.logging.level.empty() && !Logger::setLevelFromString(cfg.logging.level)) LOG_WARN << "unknown Logging.level '" << cfg.logging.level << "', keeping default"; @@ -308,20 +390,37 @@ struct Application::Impl { pipeline->start(); channel->publishStatus(0); + // Seed an initial snapshot so the UI's first frame is populated, then + // start the interface (headless console or TUI) on its own thread. The + // UI is a pure observer: it pulls snapshots and pushes command strings + // into the same queue the console always used. + // + // The UI is brought up BEFORE the init/home sequence so the dashboard is + // visible during homing (which can take many seconds) and so the serial + // wire traces render in the TUI's log pane instead of scrolling raw — + // makeUi()/start() installs the TUI log sink, so anything logged after + // this point is captured by it. + publishSnapshot(); + ui = makeUi(); + ui->start([this] { std::lock_guard lk(snapshot_mutex); return latest_snapshot; }, + [this](const std::string& line) { + std::lock_guard lk(cmd_mutex); + cmd_queue.push(line); + }); + if (opts.init) runInitSequence(); if (opts.start) startCapture(); - input_thread = std::thread(&Impl::inputLoop, this); - LOG_INFO << "Entering control loop (type 'exit' to quit)"; while (running) { drainCommands(); scheduler->tick(); + publishSnapshot(); std::this_thread::sleep_for(std::chrono::milliseconds(10)); } LOG_INFO << "Shutting down"; - if (input_thread.joinable()) input_thread.join(); + if (ui) ui->stop(); pipeline->stop(); camera->stop(); camera->close(); diff --git a/src/core/Config.cpp b/src/core/Config.cpp index 53a01ad..c0321f0 100644 --- a/src/core/Config.cpp +++ b/src/core/Config.cpp @@ -112,6 +112,8 @@ AppConfig ConfigLoader::fromMap(const std::map& kv) { cfg.logging.level = get(kv, "Logging.level", cfg.logging.level); cfg.logging.trace = get(kv, "Logging.trace", cfg.logging.trace); + cfg.ui.enable_tui = getBool(kv, "UI.enable_tui", cfg.ui.enable_tui); + // [Motor]: operator-calibrated degrees<->counts maps (see Geometry). cfg.geometry.yaw.counts_per_deg = getDouble(kv, "Motor.yaw_counts_per_deg", cfg.geometry.yaw.counts_per_deg); cfg.geometry.yaw.zero_count = getLong(kv, "Motor.yaw_zero_count", cfg.geometry.yaw.zero_count); diff --git a/src/core/Logger.cpp b/src/core/Logger.cpp index 1efeacf..937a1da 100644 --- a/src/core/Logger.cpp +++ b/src/core/Logger.cpp @@ -14,6 +14,14 @@ namespace { std::atomic g_level{LogLevel::Info}; std::atomic g_cats{0}; // every wire-trace category OFF by default std::mutex g_mutex; +Logger::LogSink g_sink; // empty => default stdout/stderr writer (below) + +// Default writer: the stdout/stderr split this logger has always used. +void writeDefault(LogLevel level, const std::string& line) { + std::ostream& out = (level >= LogLevel::Warn) ? std::cerr : std::cout; + out << line << '\n'; + out.flush(); +} const char* tag(LogLevel l) { switch (l) { @@ -68,6 +76,11 @@ std::string timestamp() { } // namespace +void Logger::setSink(LogSink sink) { + std::lock_guard lock(g_mutex); + g_sink = std::move(sink); +} + void Logger::setLevel(LogLevel level) { g_level.store(level); } LogLevel Logger::level() { return g_level.load(); } bool Logger::enabled(LogLevel level) { return level >= g_level.load(); } @@ -133,11 +146,11 @@ LogStream::LogStream(LogLevel level, LogCat cat) void LogStream::commit() { done_ = true; if (!enabled_) return; - std::ostream& sink = (level_ >= LogLevel::Warn) ? std::cerr : std::cout; const char* label = (cat_ != LogCat::None) ? catTag(cat_) : tag(level_); + std::string line = timestamp() + " [" + label + "] " + buffer_.str(); std::lock_guard lock(g_mutex); - sink << timestamp() << " [" << label << "] " << buffer_.str() << '\n'; - sink.flush(); + if (g_sink) g_sink(level_, line); + else writeDefault(level_, line); } } // namespace fgc diff --git a/src/ui/HeadlessUi.cpp b/src/ui/HeadlessUi.cpp new file mode 100644 index 0000000..d1d9041 --- /dev/null +++ b/src/ui/HeadlessUi.cpp @@ -0,0 +1,41 @@ +#include "fgc/ui/HeadlessUi.h" + +#include +#include +#include + +namespace fgc { + +HeadlessUi::~HeadlessUi() { stop(); } + +void HeadlessUi::start(SnapshotFn /*snapshot*/, CommandSink sink) { + sink_ = std::move(sink); + running_ = true; + input_thread_ = std::thread(&HeadlessUi::inputLoop, this); +} + +void HeadlessUi::stop() { + if (!running_.exchange(false)) return; + // inputLoop blocks on getline; closing happens when stdin hits EOF or the + // process exits. Detach if it is still parked so shutdown does not hang. + if (input_thread_.joinable()) { + if (std::cin.eof()) input_thread_.join(); + else input_thread_.detach(); + } +} + +// Lifted verbatim from the old Application::Impl::inputLoop: read lines and push +// them onto the command sink (formerly the cmd_queue). +void HeadlessUi::inputLoop() { + std::string line; + while (running_) { + if (!std::getline(std::cin, line)) { + std::this_thread::sleep_for(std::chrono::milliseconds(500)); + continue; + } + if (line.empty()) continue; + if (sink_) sink_(line); + } +} + +} // namespace fgc diff --git a/src/ui/TuiUi.cpp b/src/ui/TuiUi.cpp new file mode 100644 index 0000000..11eefd6 --- /dev/null +++ b/src/ui/TuiUi.cpp @@ -0,0 +1,263 @@ +#include "fgc/ui/TuiUi.h" + +#include "fgc/Logger.h" + +#include +#include + +#include +#include +#include +#include +#include + +namespace fgc { + +using namespace ftxui; + +namespace { + +Color toColor(UiColor c) { + switch (c) { + case UiColor::Green: return Color::Green; + case UiColor::Yellow: return Color::Yellow; + case UiColor::Red: return Color::Red; + case UiColor::Cyan: return Color::Cyan; + case UiColor::Dim: return Color::GrayDark; + case UiColor::Default: + default: return Color::Default; + } +} + +// A bordered panel with a colored, bold title. +Element panel(const std::string& title, Color title_color, Element body) { + return window(text(" " + title + " ") | bold | color(title_color), std::move(body)) | flex; +} + +// "key" + label pair for the nano-style bottom bar. +Element keyHint(const std::string& key, const std::string& label) { + return hbox({text(" " + key + " ") | inverted, text(" " + label + " ")}); +} + +Element badge(const std::string& s, bool on, Color on_color) { + auto e = text(" " + s + " "); + return on ? (e | color(on_color) | bold) : (e | dim); +} + +Element axisRow(const AxisView& a) { + Element state = text(std::string(" ") + axisStateLabel(a.state) + " ") + | color(toColor(axisStateColor(a.state))) | bold; + Element heading = text(formatDegrees(a.deg)) | bold; + return vbox({ + hbox({text(a.label + " ") | bold, state, filler(), + text("→ " + formatDegrees(a.target_deg)) | dim}), + hbox({text(" "), heading, + text(" x=" + std::to_string(a.xactual)) | dim, + text(" enc=" + std::to_string(a.xenc)) | dim}), + hbox({text(" "), + badge("STILL", a.standstill, Color::GrayLight), + badge("MOVE", a.moving, Color::Cyan), + badge("STALL", a.stall, Color::Red), + badge("OT", a.overtemp, Color::Red), + badge("L", a.endstop_l, Color::Yellow), + badge("R", a.endstop_r, Color::Yellow)}), + }); +} + +Element gimbalPanel(const GimbalView& g) { + std::vector rows; + if (!g.present) rows.push_back(text("link down") | color(Color::Red) | bold); + rows.push_back(axisRow(g.yaw)); + if (g.pitch_present) { + rows.push_back(separator()); + rows.push_back(axisRow(g.pitch)); + } + return panel("GIMBAL", Color::Cyan, vbox(std::move(rows))); +} + +Element sensorsPanel(const SensorsView& s) { + std::vector rows; + rows.push_back(text("pending integration") | dim); + rows.push_back(separator()); + for (const auto& f : s.fields) { + Element val = text(f.value + (f.unit.empty() ? "" : " " + f.unit)); + val = f.present ? (val | bold) : (val | dim); + rows.push_back(hbox({text(f.label) | dim, filler(), val})); + } + return panel("SENSORS (DHT11 · MTi)", Color::Magenta, vbox(std::move(rows))); +} + +Element cameraPanel(const CaptureView& c) { + std::string labels; + for (size_t i = 0; i < c.labels.size(); ++i) + labels += (i ? "," : "") + c.labels[i]; + + Element active = c.active ? (text(" CAPTURING ") | color(Color::Green) | bold) + : (text(" idle ") | dim); + std::vector rows = { + hbox({text("cameras ") | dim, text(std::to_string(c.camera_count) + " "), + text(labels) | dim}), + hbox({text("capture ") | dim, active, filler(), + text(std::to_string(c.image_rate) + " img/s") | dim}), + }; + if (c.has_last) { + long long now = std::chrono::duration_cast( + std::chrono::system_clock::now().time_since_epoch()).count(); + rows.push_back(hbox({text("last ") | dim, + text(c.last_label + " "), + text(formatDegrees(c.last_heading_deg) + " / " + + formatDegrees(c.last_pitch_deg) + " ") | dim, + text(formatTimeAgo(now, c.last_ts_ms)) | dim})); + } else { + rows.push_back(hbox({text("last ") | dim, text("—") | dim})); + } + return panel("CAMERA", Color::Blue, vbox(std::move(rows))); +} + +Element connPanel(const ConnView& v) { + Element mqtt = !v.mqtt_enabled ? (text(" disabled ") | dim) + : v.mqtt_connected ? (text(" connected ") | color(Color::Green) | bold) + : (text(" disconnected ") | color(Color::Red) | bold); + std::string mode = v.control_code == 0 ? "0 auto-sweep" : "1 directed"; + return panel("CONNECTIVITY", Color::Green, vbox({ + hbox({text("MQTT ") | dim, mqtt, filler(), text(v.broker) | dim}), + hbox({text("tower ") | dim, text(v.tower)}), + hbox({text("control ") | dim, text(mode), + filler(), text("hdg " + v.target_heading) | dim}), + hbox({text("status ") | dim, text(std::to_string(v.last_status_code))}), + })); +} + +Element logPanel(const std::vector& lines) { + std::vector rows; + for (const auto& l : lines) { + Color c = Color::Default; + switch (l.level) { + case LogLevel::Error: c = Color::Red; break; + case LogLevel::Warn: c = Color::Yellow; break; + case LogLevel::Debug: + case LogLevel::Trace: c = Color::GrayDark; break; + default: break; + } + rows.push_back(text(l.text) | color(c)); + } + if (rows.empty()) rows.push_back(text("(no log output yet)") | dim); + return window(text(" LOG ") | bold | color(Color::GrayLight), + vbox(std::move(rows)) | focusPositionRelative(0, 1) | yframe); +} + +} // namespace + +TuiUi::TuiUi() = default; + +TuiUi::~TuiUi() { stop(); } + +void TuiUi::start(SnapshotFn snapshot, CommandSink sink) { + snapshot_ = std::move(snapshot); + sink_ = std::move(sink); + running_ = true; + + // Divert log output into the on-screen pane so it never corrupts the screen. + Logger::setSink([this](LogLevel lvl, const std::string& line) { pushLog(lvl, line); }); + + ui_thread_ = std::thread(&TuiUi::uiLoop, this); + refresh_thread_ = std::thread(&TuiUi::refreshLoop, this); +} + +void TuiUi::stop() { + if (!running_.exchange(false)) return; + if (auto* s = screen_.load()) s->Exit(); // breaks the FTXUI Loop + if (ui_thread_.joinable()) ui_thread_.join(); + if (refresh_thread_.joinable()) refresh_thread_.join(); + Logger::setSink({}); // restore the default stdout/stderr writer +} + +void TuiUi::pushLog(LogLevel level, const std::string& line) { + std::lock_guard lock(log_mutex_); + log_.push_back({level, line}); + while (log_.size() > kLogCap) log_.pop_front(); +} + +void TuiUi::refreshLoop() { + using namespace std::chrono_literals; + while (running_) { + std::this_thread::sleep_for(100ms); + if (!running_) break; + if (auto* s = screen_.load()) s->PostEvent(Event::Custom); // force a redraw + } +} + +void TuiUi::uiLoop() { + std::string cmd_buffer; + bool command_mode = false; + + auto input = Input(&cmd_buffer, "type a command, Enter to run, Esc to cancel"); + + auto renderer = Renderer(input, [&] { + UiSnapshot s = snapshot_ ? snapshot_() : UiSnapshot{}; + { + std::lock_guard lock(log_mutex_); + s.log.assign(log_.begin(), log_.end()); + } + + std::string mode = s.header.live ? "LIVE" : "MOCK"; + Element header = hbox({ + text(" FIREWATCH TOWER ") | bold | inverted, + text(" " + s.header.tower + " ") | bold, + text("build " + s.header.build) | dim, + filler(), + text(" " + mode + " ") | (s.header.live ? color(Color::Green) : color(Color::Yellow)) | bold, + text(" up " + std::to_string(s.header.uptime_ms / 1000) + "s ") | dim, + }); + + Element top = hbox({gimbalPanel(s.gimbal), sensorsPanel(s.sensors)}); + Element middle = hbox({cameraPanel(s.capture), connPanel(s.conn)}); + + Element bottom; + if (command_mode) { + bottom = hbox({text(" : ") | inverted, input->Render() | flex}) | border; + } else { + bottom = hbox({ + keyHint("s", "Start"), keyHint("x", "Stop"), keyHint("h", "Home"), + keyHint("r", "Reset"), keyHint(":", "Cmd"), filler(), keyHint("q", "Quit"), + }); + } + + return vbox({header, separator(), top, middle, logPanel(s.log) | flex, bottom}); + }); + + auto root = CatchEvent(renderer, [&](Event e) { + if (command_mode) { + if (e == Event::Return) { + if (!cmd_buffer.empty() && sink_) sink_(cmd_buffer); + cmd_buffer.clear(); + command_mode = false; + return true; + } + if (e == Event::Escape) { + cmd_buffer.clear(); + command_mode = false; + return true; + } + return false; // let the Input edit the buffer + } + if (!e.is_character()) return false; + const std::string& c = e.character(); + if (c == "q") { if (sink_) sink_("exit"); return true; } + if (c == "s") { if (sink_) sink_("start"); return true; } + if (c == "x") { if (sink_) sink_("stop"); return true; } + if (c == "h") { if (sink_) sink_("set motorctl HOME"); return true; } + if (c == "r") { if (sink_) sink_("set motorctl RESET"); return true; } + if (c == ":") { command_mode = true; return true; } + return false; + }); + + // ScreenInteractive can't be moved, so it lives on this thread's stack; the + // atomic pointer lets stop()/refreshLoop() reach it. + ScreenInteractive screen = ScreenInteractive::Fullscreen(); + screen_.store(&screen); + if (running_) screen.Loop(root); + screen_.store(nullptr); +} + +} // namespace fgc diff --git a/src/ui/UiSnapshot.cpp b/src/ui/UiSnapshot.cpp new file mode 100644 index 0000000..e78f5bc --- /dev/null +++ b/src/ui/UiSnapshot.cpp @@ -0,0 +1,65 @@ +#include "fgc/ui/UiSnapshot.h" + +#include +#include + +namespace fgc { + +const char* axisStateLabel(AxisState s) { + switch (s) { + case AxisState::Boot: return "BOOT"; + case AxisState::Reset: return "RESET"; + case AxisState::Homing: return "HOMING"; + case AxisState::Ready: return "READY"; + case AxisState::Error: return "ERROR"; + case AxisState::Unknown: + default: return "----"; + } +} + +UiColor axisStateColor(AxisState s) { + switch (s) { + case AxisState::Ready: return UiColor::Green; + case AxisState::Homing: return UiColor::Yellow; + case AxisState::Error: return UiColor::Red; + case AxisState::Boot: + case AxisState::Reset: return UiColor::Dim; + case AxisState::Unknown: + default: return UiColor::Default; + } +} + +std::string formatDegrees(double deg) { + char buf[32]; + std::snprintf(buf, sizeof(buf), "%.1f\xC2\xB0", deg); // UTF-8 degree sign + return buf; +} + +std::string formatTimeAgo(long long now_ms, long long then_ms) { + if (then_ms <= 0) return "\xE2\x80\x94"; // em dash: never + long long d = now_ms - then_ms; + if (d < 0) d = 0; + long long s = d / 1000; + char buf[32]; + if (s < 60) std::snprintf(buf, sizeof(buf), "%llds ago", s); + else if (s < 3600) std::snprintf(buf, sizeof(buf), "%lldm ago", s / 60); + else std::snprintf(buf, sizeof(buf), "%lldh ago", s / 3600); + return buf; +} + +SensorsView pendingSensorsView() { + SensorsView v; + v.dht_present = false; + v.imu_present = false; + // DHT11 temperature & humidity (Aosong): 0-50 °C ±2 °C, 20-90 %RH ±5 %. + v.fields.push_back({"Temp", "--.-", "\xC2\xB0""C", false}); + v.fields.push_back({"Humid", "--", "%RH", false}); + // Xsens MTi-28 AHRS: drift-free Euler orientation (roll/pitch/yaw). + v.fields.push_back({"Roll", "--.-", "\xC2\xB0", false}); + v.fields.push_back({"Pitch", "--.-", "\xC2\xB0", false}); + v.fields.push_back({"Yaw", "--.-", "\xC2\xB0", false}); + v.fields.push_back({"IMU", "pending", "", false}); + return v; +} + +} // namespace fgc diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 4d580cd..c946895 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -27,6 +27,7 @@ add_executable(fgc_tests test_logger.cpp test_geometry.cpp test_scangrid.cpp + test_uisnapshot.cpp ) target_link_libraries(fgc_tests PRIVATE fgc_core doctest::doctest) diff --git a/tests/test_uisnapshot.cpp b/tests/test_uisnapshot.cpp new file mode 100644 index 0000000..c90f64d --- /dev/null +++ b/tests/test_uisnapshot.cpp @@ -0,0 +1,48 @@ +#include + +#include "fgc/ui/UiSnapshot.h" + +using namespace fgc; + +TEST_CASE("axisStateLabel maps every state") { + CHECK(std::string(axisStateLabel(AxisState::Boot)) == "BOOT"); + CHECK(std::string(axisStateLabel(AxisState::Reset)) == "RESET"); + CHECK(std::string(axisStateLabel(AxisState::Homing)) == "HOMING"); + CHECK(std::string(axisStateLabel(AxisState::Ready)) == "READY"); + CHECK(std::string(axisStateLabel(AxisState::Error)) == "ERROR"); + CHECK(std::string(axisStateLabel(AxisState::Unknown)) == "----"); +} + +TEST_CASE("axisStateColor signals health") { + CHECK(axisStateColor(AxisState::Ready) == UiColor::Green); + CHECK(axisStateColor(AxisState::Homing) == UiColor::Yellow); + CHECK(axisStateColor(AxisState::Error) == UiColor::Red); + CHECK(axisStateColor(AxisState::Boot) == UiColor::Dim); + CHECK(axisStateColor(AxisState::Reset) == UiColor::Dim); + CHECK(axisStateColor(AxisState::Unknown) == UiColor::Default); +} + +TEST_CASE("formatDegrees: one decimal, sign preserved, degree sign appended") { + CHECK(formatDegrees(12.34) == "12.3\xC2\xB0"); + CHECK(formatDegrees(-4.0) == "-4.0\xC2\xB0"); + CHECK(formatDegrees(0.0) == "0.0\xC2\xB0"); +} + +TEST_CASE("formatTimeAgo: buckets and the never case") { + CHECK(formatTimeAgo(10'000, 0) == "\xE2\x80\x94"); // never + CHECK(formatTimeAgo(10'000, 7'000) == "3s ago"); // seconds + CHECK(formatTimeAgo(200'000, 10'000) == "3m ago"); // minutes + CHECK(formatTimeAgo(10'000'000, 1'000'000) == "2h ago"); // hours + CHECK(formatTimeAgo(5'000, 9'000) == "0s ago"); // future clamps to 0 +} + +TEST_CASE("pendingSensorsView: all fields absent until drivers land") { + SensorsView v = pendingSensorsView(); + CHECK_FALSE(v.dht_present); + CHECK_FALSE(v.imu_present); + CHECK(v.fields.size() >= 2); + for (const auto& f : v.fields) { + CHECK_FALSE(f.present); + CHECK_FALSE(f.label.empty()); + } +}