refactor and bug fixes
This commit is contained in:
parent
271b076394
commit
48c9aa529d
|
|
@ -1,5 +1,8 @@
|
||||||
# ---- Build output ----
|
# ---- Build output ----
|
||||||
/build/
|
# Every build tree, whatever its suffix: build/, build-tui/, build-notui/,
|
||||||
|
# build-test/, and any future variant. These hold generated objects, compiled
|
||||||
|
# binaries and FetchContent clones (ftxui, doctest) - none of it belongs in git.
|
||||||
|
build*/
|
||||||
/obj/
|
/obj/
|
||||||
*.o
|
*.o
|
||||||
*.out
|
*.out
|
||||||
|
|
@ -9,7 +12,6 @@ bin/**/*.out
|
||||||
CMakeCache.txt
|
CMakeCache.txt
|
||||||
CMakeFiles/
|
CMakeFiles/
|
||||||
cmake_install.cmake
|
cmake_install.cmake
|
||||||
/_deps/
|
|
||||||
|
|
||||||
# Editor / tooling
|
# Editor / tooling
|
||||||
compile_commands.json
|
compile_commands.json
|
||||||
|
|
@ -29,5 +31,3 @@ bin/x64/Release/NIR/
|
||||||
# Real configs hold plaintext MQTT credentials. Commit config/config.example.ini instead.
|
# Real configs hold plaintext MQTT credentials. Commit config/config.example.ini instead.
|
||||||
config.ini
|
config.ini
|
||||||
bin/x64/Release/config.ini
|
bin/x64/Release/config.ini
|
||||||
build-test/
|
|
||||||
build/
|
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,7 @@ add_library(fgc_core STATIC
|
||||||
src/core/Calibration.cpp
|
src/core/Calibration.cpp
|
||||||
src/core/CalibrationRoutine.cpp
|
src/core/CalibrationRoutine.cpp
|
||||||
src/core/MtiProtocol.cpp
|
src/core/MtiProtocol.cpp
|
||||||
|
src/sensors/Sht41Protocol.cpp
|
||||||
src/ui/UiSnapshot.cpp
|
src/ui/UiSnapshot.cpp
|
||||||
src/ui/HeadlessUi.cpp
|
src/ui/HeadlessUi.cpp
|
||||||
ini.c
|
ini.c
|
||||||
|
|
|
||||||
|
|
@ -115,9 +115,12 @@ While running, the program reads commands from stdin (one per line):
|
||||||
| `exit` | Stop everything and quit (Ctrl-D also works). |
|
| `exit` | Stop everything and quit (Ctrl-D also works). |
|
||||||
|
|
||||||
The **Xsens MTi IMU** (set `[Features] enable_imu` + `[IMU] device`) drives the Sensors panel's live
|
The **Xsens MTi IMU** (set `[Features] enable_imu` + `[IMU] device`) drives the Sensors panel's live
|
||||||
roll/pitch/yaw and powers `gimbal calib`. In the TUI, `g` and `i` open full-screen **gimbal** and
|
roll/pitch/yaw and powers `gimbal calib`; the **SHT41** (`[Features] enable_env` + `[Env] i2c_device`,
|
||||||
**IMU** views, and an **activity strip** below the log shows the running calibration/diagnostics/scan
|
or `--mock-env`) supplies the panel's ambient temperature and humidity — the MTi's device-internal
|
||||||
plus the last result. See [docs/configuration.md](docs/configuration.md).
|
temperature is expanded-view-only, so the main window shows one unambiguous temperature. In the TUI,
|
||||||
|
`g` and `i` open full-screen **gimbal** and **sensors** views (the latter covering both the MTi and
|
||||||
|
the SHT41, each reading labelled with its source), and an **activity strip** below the log shows the
|
||||||
|
running calibration/diagnostics/scan plus the last result. See [docs/configuration.md](docs/configuration.md).
|
||||||
|
|
||||||
A typical first bring-up: `scripts/run.sh --init` to home the gimbal, then type `start` once you've confirmed
|
A typical first bring-up: `scripts/run.sh --init` to home the gimbal, then type `start` once you've confirmed
|
||||||
telemetry looks sane; adjust `set fps` / `set camera jxlq` live as needed. See
|
telemetry looks sane; adjust `set fps` / `set camera jxlq` live as needed. See
|
||||||
|
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
# 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")
|
|
||||||
|
|
@ -1,688 +0,0 @@
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
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
|
|
||||||
---
|
|
||||||
|
|
@ -1,759 +0,0 @@
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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!
|
|
||||||
<end of output>
|
|
||||||
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
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
# 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.
|
|
||||||
|
|
@ -1,242 +0,0 @@
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
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()
|
|
||||||
|
|
@ -1,65 +0,0 @@
|
||||||
# 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()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit ae7a13539fb71f270b87eb2e874fbac80bc8dda2
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
# 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
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,162 +0,0 @@
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
# 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=
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
# 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
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
cmd=''
|
|
||||||
|
|
@ -1,87 +0,0 @@
|
||||||
# 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()
|
|
||||||
|
|
@ -1,317 +0,0 @@
|
||||||
# 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()
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
# 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()
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -1,8 +0,0 @@
|
||||||
# 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")
|
|
||||||
|
|
@ -1,485 +0,0 @@
|
||||||
# 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
|
|
||||||
|
|
||||||
Binary file not shown.
|
|
@ -1,5 +0,0 @@
|
||||||
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()
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
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]==])
|
|
||||||
|
|
@ -1,669 +0,0 @@
|
||||||
# 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
|
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,140 +0,0 @@
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
@ -1,140 +0,0 @@
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
@ -1,101 +0,0 @@
|
||||||
# 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)
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit cdf28903a7781f97ba94d30b79c3a4b0c97ccce7
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
# 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
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,162 +0,0 @@
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
# 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=
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
# 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
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
cmd=''
|
|
||||||
|
|
@ -1,87 +0,0 @@
|
||||||
# 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()
|
|
||||||
|
|
@ -1,317 +0,0 @@
|
||||||
# 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()
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
# 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()
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -76,9 +76,10 @@ baud = 115200
|
||||||
; Ambient temperature/humidity sensor (Adafruit SHT41), wired to the
|
; Ambient temperature/humidity sensor (Adafruit SHT41), wired to the
|
||||||
; LattePanda's OWN native I2C bus - NOT the Arduino/motor serial link. Bus
|
; LattePanda's OWN native I2C bus - NOT the Arduino/motor serial link. Bus
|
||||||
; number varies by board; confirm with `i2cdetect -y N` (SHT41 shows up at
|
; number varies by board; confirm with `i2cdetect -y N` (SHT41 shows up at
|
||||||
; 0x44). Enable with [Features] enable_env = true.
|
; 0x44). Enable with [Features] enable_env = true (or run with --mock-env,
|
||||||
|
; which implies it). i2c_addr takes decimal or 0x-prefixed hex.
|
||||||
i2c_device = /dev/i2c-1
|
i2c_device = /dev/i2c-1
|
||||||
i2c_addr = 68
|
i2c_addr = 0x44
|
||||||
period_ms = 2000
|
period_ms = 2000
|
||||||
|
|
||||||
[Motor]
|
[Motor]
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ The design separates **policy** (the control logic) from **mechanism** (the I/O
|
||||||
- **`fgc_core`** — an SDK-independent static library: typed configuration, path resolution, logging, the
|
- **`fgc_core`** — an SDK-independent static library: typed configuration, path resolution, logging, the
|
||||||
telemetry/command parsers, and the `CaptureScheduler` (control state machine). Depends on nothing
|
telemetry/command parsers, and the `CaptureScheduler` (control state machine). Depends on nothing
|
||||||
proprietary, so it builds and unit-tests anywhere.
|
proprietary, so it builds and unit-tests anywhere.
|
||||||
- **Four interfaces** abstract the outside world, each with a real and a mock/null implementation:
|
- **Five interfaces** abstract the outside world, each with a real and a mock/null implementation:
|
||||||
|
|
||||||
| Interface | Real | Mock / Null |
|
| Interface | Real | Mock / Null |
|
||||||
|-----------|------|-------------|
|
|-----------|------|-------------|
|
||||||
|
|
@ -19,9 +19,11 @@ The design separates **policy** (the control logic) from **mechanism** (the I/O
|
||||||
| `IControlChannel` | `MqttControlChannel` (Paho) | `NullControlChannel` (no broker) |
|
| `IControlChannel` | `MqttControlChannel` (Paho) | `NullControlChannel` (no broker) |
|
||||||
| `ICameraSource` | `VimbaCameraSource` (Vimba X) | `MockCameraSource` (synthetic frames) |
|
| `ICameraSource` | `VimbaCameraSource` (Vimba X) | `MockCameraSource` (synthetic frames) |
|
||||||
| `IImuSource` | `MtiImuSource` (Xsens MTi, Boost.Asio) | `MockImuSource` (synthetic orientation) |
|
| `IImuSource` | `MtiImuSource` (Xsens MTi, Boost.Asio) | `MockImuSource` (synthetic orientation) |
|
||||||
|
| `IEnvSensor` | `Sht41EnvSensor` (SHT41 over I2C) | `MockEnvSensor` (synthetic temp/humidity) |
|
||||||
|
|
||||||
The IMU is optional (`[Features] enable_imu`); it feeds the Sensors panel and the IMU-referenced
|
Both sensors are optional (`[Features] enable_imu` / `enable_env`) and feed the Sensors panel: the IMU
|
||||||
`gimbal calib`. Long-running operations (`gimbal calib` on a worker thread, `gimbal diag` captured from
|
supplies orientation and the IMU-referenced `gimbal calib`, the SHT41 the ambient temperature and
|
||||||
|
humidity (also published on the MQTT `Env` topic). Long-running operations (`gimbal calib` on a worker thread, `gimbal diag` captured from
|
||||||
the firmware) publish progress + results into the `UiSnapshot` activity strip, polled on the control
|
the firmware) publish progress + results into the `UiSnapshot` activity strip, polled on the control
|
||||||
thread so all geometry/state mutation stays single-threaded.
|
thread so all geometry/state mutation stays single-threaded.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ Parsed and validated by `ConfigLoader` ([src/core/Config.cpp](../src/core/Config
|
||||||
| `IMU` | `device` | string | — | MTi serial device (see `[IMU]` note); required when `enable_imu` |
|
| `IMU` | `device` | string | — | MTi serial device (see `[IMU]` note); required when `enable_imu` |
|
||||||
| `IMU` | `baud` | int | `115200` | MTi serial baud rate |
|
| `IMU` | `baud` | int | `115200` | MTi serial baud rate |
|
||||||
| `Env` | `i2c_device` | string | `/dev/i2c-1` | SHT41 I2C bus device (see `[Env]` note); required when `enable_env` |
|
| `Env` | `i2c_device` | string | `/dev/i2c-1` | SHT41 I2C bus device (see `[Env]` note); required when `enable_env` |
|
||||||
| `Env` | `i2c_addr` | int | `68` (`0x44`) | SHT41 I2C slave address |
|
| `Env` | `i2c_addr` | int | `68` (`0x44`) | SHT41 I2C slave address; decimal or `0x`-prefixed hex |
|
||||||
| `Env` | `period_ms` | int | `2000` | Sample interval |
|
| `Env` | `period_ms` | int | `2000` | Sample interval |
|
||||||
| `Logging` | `level` | enum | `info` | Linear log level (`--log-level` overrides) |
|
| `Logging` | `level` | enum | `info` | Linear log level (`--log-level` overrides) |
|
||||||
| `Logging` | `trace` | csv | — | Wire-trace categories, off by default (`--trace` overrides) |
|
| `Logging` | `trace` | csv | — | Wire-trace categories, off by default (`--trace` overrides) |
|
||||||
|
|
@ -150,10 +150,14 @@ pausing the stream) and also requests a fresh firmware dump for the gimbal `g` v
|
||||||
Enable with `[Features] enable_env = true` and point `[Env] i2c_device` at the LattePanda's **own
|
Enable with `[Features] enable_env = true` and point `[Env] i2c_device` at the LattePanda's **own
|
||||||
native I2C bus** — this is a separate physical link from the motor Leonardo's serial connection, not
|
native I2C bus** — this is a separate physical link from the motor Leonardo's serial connection, not
|
||||||
the Arduino's D2 pin (the original DHT11 plan). Bus number varies by board; confirm with
|
the Arduino's D2 pin (the original DHT11 plan). Bus number varies by board; confirm with
|
||||||
`i2cdetect -y N` (the SHT41 answers at `0x44`/`68`). The backend (`Sht41EnvSensor`) polls at
|
`i2cdetect -y N` (the SHT41 answers at `0x44`/`68`). `i2c_addr` accepts either form — `0x44` hex or
|
||||||
`period_ms`, discarding any sample that fails the SHT4x CRC-8 check. Set `[Features] mock_env = true`
|
`68` decimal. The backend (`Sht41EnvSensor`) polls at `period_ms`, discarding any sample that fails
|
||||||
to use a synthetic reading on dev machines (no hardware) — this is also the checked-in
|
the SHT4x CRC-8 check (decode lives in the pure, unit-tested
|
||||||
`config.example.ini` default. The sensor sits behind the generic `IEnvSensor` interface
|
[Sht41Protocol](../include/fgc/sensors/Sht41Protocol.h)); once nothing valid arrives within **2× the
|
||||||
|
period**, `sample()` reports absence rather than a frozen value, which is what turns the panel from
|
||||||
|
`live` to `no fix`. Set `[Features] mock_env = true` (or pass `--mock-env`, which also implies
|
||||||
|
`enable_env`) to use a synthetic reading on dev machines with no hardware. The sensor sits behind the
|
||||||
|
generic `IEnvSensor` interface
|
||||||
([include/fgc/IEnvSensor.h](../include/fgc/IEnvSensor.h)), so swapping in a different ambient sensor
|
([include/fgc/IEnvSensor.h](../include/fgc/IEnvSensor.h)), so swapping in a different ambient sensor
|
||||||
later means adding a new backend, not touching `Application`, the UI, or MQTT.
|
later means adding a new backend, not touching `Application`, the UI, or MQTT.
|
||||||
|
|
||||||
|
|
@ -177,6 +181,7 @@ Parsed by Boost.Program_options ([main.cpp](../main.cpp)). Flags override `[Feat
|
||||||
| `--no-mqtt` | Disable MQTT (use the null channel) |
|
| `--no-mqtt` | Disable MQTT (use the null channel) |
|
||||||
| `--mock-camera` | Use the simulated camera |
|
| `--mock-camera` | Use the simulated camera |
|
||||||
| `--mock-serial` | Use the simulated motor controller |
|
| `--mock-serial` | Use the simulated motor controller |
|
||||||
|
| `--mock-env` | Use the simulated ambient temp/humidity sensor (implies `[Features] enable_env`) |
|
||||||
| `--tui` | Show the full-screen terminal dashboard (overrides `[UI] enable_tui`) |
|
| `--tui` | Show the full-screen terminal dashboard (overrides `[UI] enable_tui`) |
|
||||||
| `--no-tui` | Force the headless line console (overrides config; wins over `--tui`) |
|
| `--no-tui` | Force the headless line console (overrides config; wins over `--tui`) |
|
||||||
| `--log-level <lvl>` | `trace`/`debug`/`info`/`warn`/`error`/`off` |
|
| `--log-level <lvl>` | `trace`/`debug`/`info`/`warn`/`error`/`off` |
|
||||||
|
|
@ -237,9 +242,9 @@ operation is unchanged and remains the default — the same binary runs under sy
|
||||||
logs on stdout.
|
logs on stdout.
|
||||||
|
|
||||||
Dashboard panels: **Gimbal** (per-axis state, heading, encoder counts, flag badges, target),
|
Dashboard panels: **Gimbal** (per-axis state, heading, encoder counts, flag badges, target),
|
||||||
**Sensors** (the **Xsens MTi** shows live roll/pitch/yaw + temp once `enable_imu`; the ambient
|
**Sensors** (the **Xsens MTi** shows live roll/pitch/yaw once `enable_imu`; the ambient
|
||||||
**SHT41** shows live temp/humidity once `enable_env` — see [known-issues.md](known-issues.md) for
|
**SHT41** shows live temp/humidity once `enable_env`. The SHT41's is the **only** temperature on the main window: the MTi's
|
||||||
its hardware-bring-up status), **Camera** (count, capture state, rate, last capture), **Connectivity** (MQTT state,
|
device-internal temp is diagnostic detail and appears solely in the expanded view), **Camera** (count, capture state, rate, last capture), **Connectivity** (MQTT state,
|
||||||
broker, tower, control mode, target heading). Adding a panel later is a struct in `UiSnapshot.h` plus
|
broker, tower, control mode, target heading). Adding a panel later is a struct in `UiSnapshot.h` plus
|
||||||
one node in [src/ui/TuiUi.cpp](../src/ui/TuiUi.cpp).
|
one node in [src/ui/TuiUi.cpp](../src/ui/TuiUi.cpp).
|
||||||
|
|
||||||
|
|
@ -248,11 +253,15 @@ one node in [src/ui/TuiUi.cpp](../src/ui/TuiUi.cpp).
|
||||||
- **Gimbal** (`g`) — both axes side by side: live telemetry, the decoded firmware register **dump**
|
- **Gimbal** (`g`) — both axes side by side: live telemetry, the decoded firmware register **dump**
|
||||||
(`d` requests a fresh one), the homing limits, and the **last calibration** result (per-axis
|
(`d` requests a fresh one), the homing limits, and the **last calibration** result (per-axis
|
||||||
`counts_per_deg` / `zero_count` / R² / age).
|
`counts_per_deg` / `zero_count` / R² / age).
|
||||||
- **IMU** (`i`) — every MTi channel with units: orientation (°), acceleration (m/s²), rate-of-turn
|
- **Sensors** (`i`) — both sensors, in headed sections so every reading is attributable.
|
||||||
(rad/s), magnetic field (a.u.), temperature, sample counter, plus an **IMU CONFIG** section
|
**MTi**: every channel with units — orientation (°), acceleration (m/s²), rate-of-turn
|
||||||
|
(rad/s), magnetic field (a.u.), `TEMP (internal)`, sample counter, plus an **IMU CONFIG** section
|
||||||
(read back from the device at startup): product code, firmware, device ID, output mode/format,
|
(read back from the device at startup): product code, firmware, device ID, output mode/format,
|
||||||
calibration channels, sample rate, and the **Xsens Kalman Filter (XKF) profile** list — every
|
calibration channels, sample rate, and the **Xsens Kalman Filter (XKF) profile** list — every
|
||||||
profile the device supports, by name, with the active one marked `●` (selected).
|
profile the device supports, by name, with the active one marked `●` (selected).
|
||||||
|
**SHT41**: `TEMP (ambient)`, humidity, the age of the last sample, and the configured I2C bus
|
||||||
|
(device, address, poll period — hidden for the mock). Empty states name what to enable
|
||||||
|
(`enable_env` / `--mock-env`) or, when enabled but silent, the staleness window that was missed.
|
||||||
|
|
||||||
**Activity strip** — a compact section between the log and the key bar that shows the
|
**Activity strip** — a compact section between the log and the key bar that shows the
|
||||||
currently-running special operation with live progress (`test`, `gimbal calib`, homing, capture
|
currently-running special operation with live progress (`test`, `gimbal calib`, homing, capture
|
||||||
|
|
|
||||||
|
|
@ -94,8 +94,14 @@ persistence for LPM + usbfs, and verify a full sweep captures white-balanced fra
|
||||||
yet (not homed / no `gimbal dump`), nudge requests one and does nothing that press — it never falls
|
yet (not homed / no `gimbal dump`), nudge requests one and does nothing that press — it never falls
|
||||||
back to the configured degree clamps (which, if `*_min_deg`/`*_max_deg` were unset, produced absurd
|
back to the configured degree clamps (which, if `*_min_deg`/`*_max_deg` were unset, produced absurd
|
||||||
±100000° steps).
|
±100000° steps).
|
||||||
- Ambient temperature/humidity (SHT41, `IEnvSensor`/`Sht41EnvSensor`/`MockEnvSensor`) is
|
- Ambient temperature/humidity (SHT41, `IEnvSensor`/`Sht41EnvSensor`/`MockEnvSensor`) is fully
|
||||||
integrated in software — config-gated (`[Features] enable_env`/`mock_env`, `[Env]`), Sensors
|
integrated and **validated against the physical sensor on the LattePanda** — config-gated
|
||||||
panel + MQTT `Env` topic wired — but defaults to `mock_env = true` in the checked-in example
|
(`[Features] enable_env`, `[Env]`), Sensors panel + expanded `i` view + MQTT `Env` topic wired.
|
||||||
config. Bus/address bring-up and validation against the physical sensor on the LattePanda's I2C
|
It is **off by default** (`enable_env = false`), so a config without an `[Env]` section shows the
|
||||||
bus is still pending; flip `mock_env = false` on the deployed `config.ini` once confirmed.
|
panel as `pending` — that status means "no driver constructed", not "sensor unreachable"; an
|
||||||
|
enabled-but-silent sensor reads `no fix` instead. Dev machines without the hardware should use
|
||||||
|
`--mock-env` (implies `enable_env`) rather than editing config.
|
||||||
|
- `[Env] i2c_addr` used to be parsed with a decimal-only `std::stoi`, so the `0x44` form every
|
||||||
|
datasheet and `i2cdetect` uses silently became address `0x00` and the sensor never answered. It now
|
||||||
|
accepts decimal or `0x` hex (`getIntAutoBase` in `Config.cpp`, covered by a test). Other integer
|
||||||
|
config keys stay decimal-only on purpose, so a leading zero never turns into octal.
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,10 @@ Per-file reference for the refactored tree, plus the shared data structures.
|
||||||
| [include/fgc/Calibration.h](../include/fgc/Calibration.h), [src/core/Calibration.cpp](../src/core/Calibration.cpp) | `linearFit` (least-squares, R²) + `circularMeanDeg` for the IMU-referenced calibration |
|
| [include/fgc/Calibration.h](../include/fgc/Calibration.h), [src/core/Calibration.cpp](../src/core/Calibration.cpp) | `linearFit` (least-squares, R²) + `circularMeanDeg` for the IMU-referenced calibration |
|
||||||
| [include/fgc/CalibrationRoutine.h](../include/fgc/CalibrationRoutine.h), [src/core/CalibrationRoutine.cpp](../src/core/CalibrationRoutine.cpp) | `gimbal calib` worker thread: home-if-needed → pitch sweep at the first yaw position → pitch 0° → switch IMU to a no-mag XKF profile → IMU no-rotation + heading reset → yaw sweep, fitting degrees↔counts; tunable via `CalibParams`; exposes `progress()`/`report()`/`takeResult()` |
|
| [include/fgc/CalibrationRoutine.h](../include/fgc/CalibrationRoutine.h), [src/core/CalibrationRoutine.cpp](../src/core/CalibrationRoutine.cpp) | `gimbal calib` worker thread: home-if-needed → pitch sweep at the first yaw position → pitch 0° → switch IMU to a no-mag XKF profile → IMU no-rotation + heading reset → yaw sweep, fitting degrees↔counts; tunable via `CalibParams`; exposes `progress()`/`report()`/`takeResult()` |
|
||||||
| [include/fgc/MtiProtocol.h](../include/fgc/MtiProtocol.h), [src/core/MtiProtocol.cpp](../src/core/MtiProtocol.cpp) | Xsens MTi binary protocol: `MtiFramer` (checksum framing), config-message builders, `parseMTData` → `ImuSample` (temp/acc/gyr/mag/euler), config-readback query builders + `applyImuConfigAck`/`finalizeImuConfig` → `ImuDeviceConfig` (product/firmware/device-id/output mode+settings/sample rate/**XKF scenario**); orientation-control builders `msgSetNoRotation` (gyro-bias update) + `msgResetOrientation` (heading reset / store) + `msgSetFilterProfile` (select XKF profile) + `pickNoMagProfile` (choose a magnetometer-free profile from the available list) |
|
| [include/fgc/MtiProtocol.h](../include/fgc/MtiProtocol.h), [src/core/MtiProtocol.cpp](../src/core/MtiProtocol.cpp) | Xsens MTi binary protocol: `MtiFramer` (checksum framing), config-message builders, `parseMTData` → `ImuSample` (temp/acc/gyr/mag/euler), config-readback query builders + `applyImuConfigAck`/`finalizeImuConfig` → `ImuDeviceConfig` (product/firmware/device-id/output mode+settings/sample rate/**XKF scenario**); orientation-control builders `msgSetNoRotation` (gyro-bias update) + `msgResetOrientation` (heading reset / store) + `msgSetFilterProfile` (select XKF profile) + `pickNoMagProfile` (choose a magnetometer-free profile from the available list) |
|
||||||
|
| [include/fgc/sensors/Sht41Protocol.h](../include/fgc/sensors/Sht41Protocol.h), [src/sensors/Sht41Protocol.cpp](../src/sensors/Sht41Protocol.cpp) | Sensirion SHT4x wire protocol, pure: command bytes, `sht41Crc8` (poly 0x31/init 0xFF), `decodeSht41Measurement` (6-byte response → `Sht41Reading`, CRC-checked, raw→°C/%RH with RH clamped 0..100) |
|
||||||
| [include/fgc/CaptureScheduler.h](../include/fgc/CaptureScheduler.h), [src/core/CaptureScheduler.cpp](../src/core/CaptureScheduler.cpp) | Capture state machine over the interfaces; injectable clock; `setGeometry` adopts a recalibration |
|
| [include/fgc/CaptureScheduler.h](../include/fgc/CaptureScheduler.h), [src/core/CaptureScheduler.cpp](../src/core/CaptureScheduler.cpp) | Capture state machine over the interfaces; injectable clock; `setGeometry` adopts a recalibration |
|
||||||
| [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, `gimbal …` commands, background-result polling, `buildSnapshot()` |
|
| [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, `gimbal …` commands, background-result polling, `buildSnapshot()` |
|
||||||
| [include/fgc/ui/UiSnapshot.h](../include/fgc/ui/UiSnapshot.h), [src/ui/UiSnapshot.cpp](../src/ui/UiSnapshot.cpp) | Plain-data view model (incl. `ImuView`, `ActivityView`, `CalibResultView`, `DumpView`) + pure formatting helpers (state label/colour, degrees, time-ago, pending-sensors) |
|
| [include/fgc/ui/UiSnapshot.h](../include/fgc/ui/UiSnapshot.h), [src/ui/UiSnapshot.cpp](../src/ui/UiSnapshot.cpp) | Plain-data view model (incl. `ImuView`, `EnvView`, `ActivityView`, `CalibResultView`, `DumpView`) + 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 |
|
| [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 |
|
| [ini.c](../ini.c), [ini.h](../ini.h) | Bundled third-party inih INI parser |
|
||||||
|
|
||||||
|
|
@ -30,9 +31,10 @@ Per-file reference for the refactored tree, plus the shared data structures.
|
||||||
| File | Interface | Shared structs |
|
| File | Interface | Shared structs |
|
||||||
|------|-----------|----------------|
|
|------|-----------|----------------|
|
||||||
| [include/fgc/IMotorController.h](../include/fgc/IMotorController.h) | `IMotorController` | `MotorTelemetry` |
|
| [include/fgc/IMotorController.h](../include/fgc/IMotorController.h) | `IMotorController` | `MotorTelemetry` |
|
||||||
| [include/fgc/IControlChannel.h](../include/fgc/IControlChannel.h) | `IControlChannel` | `ControlCommand`, `CamEvent` |
|
| [include/fgc/IControlChannel.h](../include/fgc/IControlChannel.h) | `IControlChannel` | `ControlCommand`, `CamEvent`, `EnvEvent` |
|
||||||
| [include/fgc/ICameraSource.h](../include/fgc/ICameraSource.h) | `ICameraSource` | `Frame` |
|
| [include/fgc/ICameraSource.h](../include/fgc/ICameraSource.h) | `ICameraSource` | `Frame` |
|
||||||
| [include/fgc/IImuSource.h](../include/fgc/IImuSource.h) | `IImuSource` (incl. `config()`, `refreshConfig()`, `noRotation()`, `headingReset()`, `setFilterProfile()`) | `ImuSample` (from `MtiProtocol.h`) |
|
| [include/fgc/IImuSource.h](../include/fgc/IImuSource.h) | `IImuSource` (incl. `config()`, `refreshConfig()`, `noRotation()`, `headingReset()`, `setFilterProfile()`) | `ImuSample` (from `MtiProtocol.h`) |
|
||||||
|
| [include/fgc/IEnvSensor.h](../include/fgc/IEnvSensor.h) | `IEnvSensor` (`connected()`, `sample()`, `name()`) | `EnvSample` |
|
||||||
| [include/fgc/ui/IUserInterface.h](../include/fgc/ui/IUserInterface.h) | `IUserInterface` | `UiSnapshot` |
|
| [include/fgc/ui/IUserInterface.h](../include/fgc/ui/IUserInterface.h) | `IUserInterface` | `UiSnapshot` |
|
||||||
|
|
||||||
## Real implementations (SDK-gated)
|
## Real implementations (SDK-gated)
|
||||||
|
|
@ -41,6 +43,8 @@ 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/serial/SerialMotorController.cpp](../src/serial/SerialMotorController.cpp) | `IMotorController` over Boost.Asio serial (pImpl) | always |
|
||||||
| [src/serial/MtiImuSource.cpp](../src/serial/MtiImuSource.cpp) | `IImuSource` over Boost.Asio serial: configures the MTi to Euler+calibrated, reads back its config (`config()` → `ImuDeviceConfig`), then frames the MTData stream | always |
|
| [src/serial/MtiImuSource.cpp](../src/serial/MtiImuSource.cpp) | `IImuSource` over Boost.Asio serial: configures the MTi to Euler+calibrated, reads back its config (`config()` → `ImuDeviceConfig`), then frames the MTData stream | always |
|
||||||
|
| [src/sensors/I2cBus.cpp](../src/sensors/I2cBus.cpp) | Thin `/dev/i2c-N` wrapper (open/close, `write`, `writeRead` via `I2C_SLAVE` ioctl) | always |
|
||||||
|
| [src/sensors/Sht41EnvSensor.cpp](../src/sensors/Sht41EnvSensor.cpp) | `IEnvSensor` over I2C (pImpl): soft-reset, poll thread at `[Env] period_ms`, decode via `Sht41Protocol`, staleness = no valid sample within 2× the period | always |
|
||||||
| [src/mqtt/MqttControlChannel.cpp](../src/mqtt/MqttControlChannel.cpp) | `IControlChannel` over Eclipse Paho | `WITH_MQTT` |
|
| [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/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/VimbaCameraSource.cpp](../src/camera/VimbaCameraSource.cpp) | `ICameraSource` over Vimba X (pImpl) | `WITH_VIMBA` |
|
||||||
|
|
@ -55,6 +59,7 @@ Per-file reference for the refactored tree, plus the shared data structures.
|
||||||
| [include/fgc/mock/NullControlChannel.h](../include/fgc/mock/NullControlChannel.h) | No-op channel; auto-sweep |
|
| [include/fgc/mock/NullControlChannel.h](../include/fgc/mock/NullControlChannel.h) | No-op channel; auto-sweep |
|
||||||
| [include/fgc/mock/MockCameraSource.h](../include/fgc/mock/MockCameraSource.h) | Synthetic gradient frames |
|
| [include/fgc/mock/MockCameraSource.h](../include/fgc/mock/MockCameraSource.h) | Synthetic gradient frames |
|
||||||
| [include/fgc/mock/MockImuSource.h](../include/fgc/mock/MockImuSource.h) | Synthetic IMU (sinusoidal orientation, gravity on accZ) |
|
| [include/fgc/mock/MockImuSource.h](../include/fgc/mock/MockImuSource.h) | Synthetic IMU (sinusoidal orientation, gravity on accZ) |
|
||||||
|
| [include/fgc/mock/MockEnvSensor.h](../include/fgc/mock/MockEnvSensor.h) | Synthetic ambient sensor (slow sinusoidal temp/humidity, never stale); `--mock-env` |
|
||||||
|
|
||||||
## Entry point & scripts
|
## Entry point & scripts
|
||||||
|
|
||||||
|
|
@ -80,6 +85,16 @@ firmware `ST Y:...[ P:...]` line; degrees are derived via `Geometry`.
|
||||||
`tower`, `camera` (RGB/ACR/NIR), `heading_decideg` (yaw×10), `pitch_decideg` (pitch×10), `timestamp_ms`.
|
`tower`, `camera` (RGB/ACR/NIR), `heading_decideg` (yaw×10), `pitch_decideg` (pitch×10), `timestamp_ms`.
|
||||||
Serialized to the CamEvent JSON payload (see [mqtt-api.md](mqtt-api.md)).
|
Serialized to the CamEvent JSON payload (see [mqtt-api.md](mqtt-api.md)).
|
||||||
|
|
||||||
|
### `EnvEvent` ([IControlChannel.h](../include/fgc/IControlChannel.h))
|
||||||
|
`tower`, `temp_c`, `humidity_pct`, `timestamp_ms`. Published once per **fresh** sample (deduplicated
|
||||||
|
on `timestamp_ms`, not per control-loop tick) to the `Env` topic — see [mqtt-api.md](mqtt-api.md).
|
||||||
|
|
||||||
|
### `EnvSample` ([IEnvSensor.h](../include/fgc/IEnvSensor.h))
|
||||||
|
One ambient reading: `valid`, `temp_c` (°C), `humidity_pct` (0..100), `timestamp_ms` (epoch ms).
|
||||||
|
`IEnvSensor::sample()` returns `nullopt` rather than a stale sample once nothing valid has arrived
|
||||||
|
within 2× the configured poll period, so a silently dead sensor reads as absent, not as a frozen
|
||||||
|
value. Surfaced as `EnvView` in the TUI (`i` view) and as `SensorsView::env` in the compact panel.
|
||||||
|
|
||||||
### `Frame` ([ICameraSource.h](../include/fgc/ICameraSource.h))
|
### `Frame` ([ICameraSource.h](../include/fgc/ICameraSource.h))
|
||||||
Owned pixel buffer + `width`, `height`, `channels` (1 or 3), `timestamp_ms`, `cam_id`.
|
Owned pixel buffer + `width`, `height`, `channels` (1 or 3), `timestamp_ms`, `cam_id`.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,17 @@ apply unchanged). **Status: planned — blocked on component.** When a component
|
||||||
lands, promote its entry into [test-command.md](test-command.md) and the taxonomy
|
lands, promote its entry into [test-command.md](test-command.md) and the taxonomy
|
||||||
table.
|
table.
|
||||||
|
|
||||||
## 1. `env / *` — environmental sensing — *blocked on: SHT41 hardware bring-up*
|
## 1. `env / *` — environmental sensing — *unblocked: ready to implement*
|
||||||
|
|
||||||
The ambient sensor is now an SHT41 on the LattePanda's **own I2C bus** (not the Arduino) — see
|
The ambient sensor is an SHT41 on the LattePanda's **own I2C bus** (not the Arduino) — see
|
||||||
[configuration.md](configuration.md) `[Env]`. The software side has landed: `IEnvSensor` /
|
[configuration.md](configuration.md) `[Env]`. The software side has landed: `IEnvSensor` /
|
||||||
`Sht41EnvSensor` / `MockEnvSensor`, config-gated, wired into the Sensors panel and the MQTT `Env`
|
`Sht41EnvSensor` / `MockEnvSensor`, config-gated, wired into the Sensors panel, the expanded `i`
|
||||||
topic. What's still blocking this self-test leaf is validating the real backend against physical
|
view and the MQTT `Env` topic; the wire protocol is pure and unit-tested
|
||||||
hardware (bus/address confirmation, a run with `mock_env = false`).
|
([Sht41Protocol](../include/fgc/sensors/Sht41Protocol.h), `tests/test_sht41.cpp`). The real backend
|
||||||
|
has been **validated against the physical sensor on the LattePanda**, so this leaf is no longer
|
||||||
|
blocked — only unimplemented. Note the two distinct absence states it should tell apart:
|
||||||
|
`pending` (driver never constructed — `enable_env` off) vs `no fix` (enabled but no valid sample
|
||||||
|
within 2× `period_ms`).
|
||||||
|
|
||||||
- **`env / sht41`** — _Healthy:_ sensor responds every poll (`period_ms`); temperature and humidity
|
- **`env / sht41`** — _Healthy:_ sensor responds every poll (`period_ms`); temperature and humidity
|
||||||
in plausible range; values update (not stuck); CRC-8 failures stay rare. _Checks:_ read the sensor
|
in plausible range; values update (not stuck); CRC-8 failures stay rare. _Checks:_ read the sensor
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ struct RuntimeOptions {
|
||||||
std::optional<bool> use_mqtt;
|
std::optional<bool> use_mqtt;
|
||||||
std::optional<bool> mock_camera;
|
std::optional<bool> mock_camera;
|
||||||
std::optional<bool> mock_serial;
|
std::optional<bool> mock_serial;
|
||||||
|
std::optional<bool> mock_env; // implies [Features] enable_env
|
||||||
std::optional<bool> use_tui; // --tui / --no-tui; unset => [UI] enable_tui
|
std::optional<bool> use_tui; // --tui / --no-tui; unset => [UI] enable_tui
|
||||||
|
|
||||||
std::string log_level; // empty => default
|
std::string log_level; // empty => default
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
#include <optional>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
namespace fgc {
|
||||||
|
|
||||||
|
// Sensirion SHT4x (SHT41) I2C protocol helpers: the command bytes, the CRC-8
|
||||||
|
// the sensor appends to each 16-bit word, and the decode from a raw 6-byte
|
||||||
|
// measurement response to physical units. Kept pure (no I/O) so it is
|
||||||
|
// unit-testable and lives in fgc_core — mirrors MtiProtocol / TelemetryParser.
|
||||||
|
// The I/O half (bus, poll thread, staleness) stays in Sht41EnvSensor.
|
||||||
|
//
|
||||||
|
// Measurement response layout, big-endian:
|
||||||
|
// [0..1] temperature raw [2] CRC of bytes 0..1
|
||||||
|
// [3..4] humidity raw [5] CRC of bytes 3..4
|
||||||
|
|
||||||
|
// Soft reset; the datasheet asks for ~1 ms to settle afterwards.
|
||||||
|
inline constexpr uint8_t kSht41CmdSoftReset = 0x94;
|
||||||
|
// Measure temperature + RH, high precision; ~10 ms conversion time.
|
||||||
|
inline constexpr uint8_t kSht41CmdMeasureHighPrec = 0xFD;
|
||||||
|
|
||||||
|
// Bytes in a measurement response.
|
||||||
|
inline constexpr size_t kSht41ResponseBytes = 6;
|
||||||
|
|
||||||
|
// SHT4x CRC-8: polynomial 0x31, init 0xFF, no reflection, no final XOR.
|
||||||
|
// Datasheet test vector: {0xBE, 0xEF} -> 0x92.
|
||||||
|
uint8_t sht41Crc8(const uint8_t* data, size_t len);
|
||||||
|
|
||||||
|
// One decoded measurement in physical units.
|
||||||
|
struct Sht41Reading {
|
||||||
|
float temp_c = 0.0f;
|
||||||
|
float humidity_pct = 0.0f;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Decode a measurement response. Returns nullopt if the response is not
|
||||||
|
// kSht41ResponseBytes long or either word fails its CRC — a corrupt frame must
|
||||||
|
// be discarded rather than reported as a reading, since a garbled word is
|
||||||
|
// indistinguishable from a plausible temperature once converted.
|
||||||
|
//
|
||||||
|
// Conversions (datasheet): T[°C] = -45 + 175 * raw/65535,
|
||||||
|
// RH[%] = -6 + 125 * raw/65535, with RH clamped to 0..100 (the raw formula
|
||||||
|
// slightly overshoots both ends by design).
|
||||||
|
std::optional<Sht41Reading> decodeSht41Measurement(const std::vector<uint8_t>& rx);
|
||||||
|
|
||||||
|
} // namespace fgc
|
||||||
|
|
@ -76,12 +76,14 @@ struct SensorGroup {
|
||||||
|
|
||||||
// The Sensors panel, split by source so it is clear which parameters come from
|
// The Sensors panel, split by source so it is clear which parameters come from
|
||||||
// which device. Each group is filled with pending placeholders until its driver
|
// which device. Each group is filled with pending placeholders until its driver
|
||||||
// lands. NOTE: the MTi's Temp is the device's *internal* temperature; the env
|
// lands. NOTE: the only temperature here is the env sensor's *ambient* one — the
|
||||||
// sensor's Temp (separate group) is *ambient* — deliberately kept apart. The
|
// MTi's *internal* device temperature is diagnostic detail and lives solely in
|
||||||
// env group's title/backing sensor is swappable (currently SHT41 over I2C; see
|
// the expanded view (ImuView::temp_c), so the compact panel never shows two
|
||||||
// IEnvSensor) without touching this struct.
|
// temperatures the operator has to tell apart. The env group's title/backing
|
||||||
|
// sensor is swappable (currently SHT41 over I2C; see IEnvSensor) without
|
||||||
|
// touching this struct.
|
||||||
struct SensorsView {
|
struct SensorsView {
|
||||||
SensorGroup imu; // Xsens MTi: Roll/Pitch/Yaw + internal temperature
|
SensorGroup imu; // Xsens MTi: Roll/Pitch/Yaw
|
||||||
SensorGroup env; // ambient temperature + humidity (SHT41)
|
SensorGroup env; // ambient temperature + humidity (SHT41)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -206,6 +208,21 @@ struct ImuView {
|
||||||
ImuConfigView config;
|
ImuConfigView config;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Full ambient-sensor reading for the expanded Sensors view. This temperature is
|
||||||
|
// *ambient*, as distinct from ImuView::temp_c (the MTi's device-internal temp);
|
||||||
|
// the expanded view labels both so they are never confused.
|
||||||
|
struct EnvView {
|
||||||
|
bool enabled = false; // driver constructed (enable_env / --mock-env)
|
||||||
|
bool present = false; // a fresh (non-stale) sample is available
|
||||||
|
bool mock = false; // MockEnvSensor: the I2C bus config is meaningless
|
||||||
|
std::string name; // IEnvSensor::name() — "SHT41" / "SHT41 (mock)"
|
||||||
|
float temp_c = 0, humidity_pct = 0;
|
||||||
|
long long timestamp_ms = 0; // epoch ms, for formatTimeAgo()
|
||||||
|
std::string i2c_device; // from EnvConfig, for the bus row
|
||||||
|
unsigned i2c_addr = 0;
|
||||||
|
int period_ms = 0;
|
||||||
|
};
|
||||||
|
|
||||||
// Status of the currently-running special operation (calibration, diagnostics,
|
// Status of the currently-running special operation (calibration, diagnostics,
|
||||||
// homing, capture) plus the last completed result, for the activity strip below
|
// homing, capture) plus the last completed result, for the activity strip below
|
||||||
// the log. The result block persists until replaced so it never scrolls away.
|
// the log. The result block persists until replaced so it never scrolls away.
|
||||||
|
|
@ -271,6 +288,7 @@ struct UiSnapshot {
|
||||||
std::vector<LogLine> log;
|
std::vector<LogLine> log;
|
||||||
DumpView dump;
|
DumpView dump;
|
||||||
ImuView imu;
|
ImuView imu;
|
||||||
|
EnvView env;
|
||||||
ActivityView activity;
|
ActivityView activity;
|
||||||
CalibResultView calib;
|
CalibResultView calib;
|
||||||
DiagResultView diag;
|
DiagResultView diag;
|
||||||
|
|
|
||||||
3
main.cpp
3
main.cpp
|
|
@ -21,6 +21,8 @@ int main(int argc, char* argv[]) {
|
||||||
("no-mqtt", po::bool_switch(), "disable MQTT (use a null control channel)")
|
("no-mqtt", po::bool_switch(), "disable MQTT (use a null control channel)")
|
||||||
("mock-camera", po::bool_switch(), "use a simulated camera (no hardware)")
|
("mock-camera", po::bool_switch(), "use a simulated camera (no hardware)")
|
||||||
("mock-serial", po::bool_switch(), "use a simulated motor controller (no hardware)")
|
("mock-serial", po::bool_switch(), "use a simulated motor controller (no hardware)")
|
||||||
|
("mock-env", po::bool_switch(),
|
||||||
|
"use a simulated ambient temp/humidity sensor (implies enable_env)")
|
||||||
("tui", po::bool_switch(), "show the full-screen terminal dashboard")
|
("tui", po::bool_switch(), "show the full-screen terminal dashboard")
|
||||||
("no-tui", po::bool_switch(), "force the headless line console (overrides config)")
|
("no-tui", po::bool_switch(), "force the headless line console (overrides config)")
|
||||||
("log-level", po::value<std::string>(), "trace|debug|info|warn|error|off")
|
("log-level", po::value<std::string>(), "trace|debug|info|warn|error|off")
|
||||||
|
|
@ -66,6 +68,7 @@ int main(int argc, char* argv[]) {
|
||||||
if (vm["no-mqtt"].as<bool>()) opts.use_mqtt = false;
|
if (vm["no-mqtt"].as<bool>()) opts.use_mqtt = false;
|
||||||
if (vm["mock-camera"].as<bool>()) opts.mock_camera = true;
|
if (vm["mock-camera"].as<bool>()) opts.mock_camera = true;
|
||||||
if (vm["mock-serial"].as<bool>()) opts.mock_serial = true;
|
if (vm["mock-serial"].as<bool>()) opts.mock_serial = true;
|
||||||
|
if (vm["mock-env"].as<bool>()) opts.mock_env = true;
|
||||||
if (vm["tui"].as<bool>()) opts.use_tui = true;
|
if (vm["tui"].as<bool>()) opts.use_tui = true;
|
||||||
if (vm["no-tui"].as<bool>()) opts.use_tui = false; // --no-tui wins
|
if (vm["no-tui"].as<bool>()) opts.use_tui = false; // --no-tui wins
|
||||||
if (vm.count("log-level")) opts.log_level = vm["log-level"].as<std::string>();
|
if (vm.count("log-level")) opts.log_level = vm["log-level"].as<std::string>();
|
||||||
|
|
|
||||||
|
|
@ -267,8 +267,12 @@ struct Application::Impl {
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<IEnvSensor> makeEnv() {
|
std::unique_ptr<IEnvSensor> makeEnv() {
|
||||||
if (!cfg.features.enable_env) return nullptr; // sensors panel stays "pending"
|
// --mock-env implies enable_env: the sensor is off by default, so without
|
||||||
if (cfg.features.mock_env) return std::make_unique<MockEnvSensor>();
|
// that the flag would silently do nothing.
|
||||||
|
const bool force_mock = opts.mock_env.value_or(false);
|
||||||
|
if (!cfg.features.enable_env && !force_mock)
|
||||||
|
return nullptr; // sensors panel stays "pending"
|
||||||
|
if (force_mock || cfg.features.mock_env) return std::make_unique<MockEnvSensor>();
|
||||||
if (cfg.env.i2c_device.empty()) {
|
if (cfg.env.i2c_device.empty()) {
|
||||||
LOG_WARN << "Env sensor enabled but [Env] i2c_device is empty; disabling";
|
LOG_WARN << "Env sensor enabled but [Env] i2c_device is empty; disabling";
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
@ -403,15 +407,16 @@ struct Application::Impl {
|
||||||
}
|
}
|
||||||
s.imu.temp_c = m->temp_c;
|
s.imu.temp_c = m->temp_c;
|
||||||
s.imu.sample_counter = m->sample_counter;
|
s.imu.sample_counter = m->sample_counter;
|
||||||
// Compact MTi subsection: Roll/Pitch/Yaw + the device's internal temp.
|
// Compact MTi subsection: Roll/Pitch/Yaw only. The internal temp
|
||||||
|
// stays in s.imu (expanded view) so the main window's single
|
||||||
|
// temperature is unambiguously the SHT41's ambient one.
|
||||||
auto& g = s.sensors.imu;
|
auto& g = s.sensors.imu;
|
||||||
g.present = true;
|
g.present = true;
|
||||||
g.status = "live";
|
g.status = "live";
|
||||||
if (g.fields.size() >= 4) {
|
if (g.fields.size() >= 3) {
|
||||||
setField(g.fields[0], fmt1(m->roll_deg));
|
setField(g.fields[0], fmt1(m->roll_deg));
|
||||||
setField(g.fields[1], fmt1(m->pitch_deg));
|
setField(g.fields[1], fmt1(m->pitch_deg));
|
||||||
setField(g.fields[2], fmt1(m->yaw_deg));
|
setField(g.fields[2], fmt1(m->yaw_deg));
|
||||||
setField(g.fields[3], fmt1(m->temp_c)); // MTi internal temp
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
s.sensors.imu.status = "no fix";
|
s.sensors.imu.status = "no fix";
|
||||||
|
|
@ -428,7 +433,21 @@ struct Application::Impl {
|
||||||
f.value = v;
|
f.value = v;
|
||||||
f.present = true;
|
f.present = true;
|
||||||
};
|
};
|
||||||
|
// Identity and bus config are set whether or not a sample is available,
|
||||||
|
// so the expanded view can still say what the sensor is and where it
|
||||||
|
// should be when it goes quiet.
|
||||||
|
s.env.enabled = true;
|
||||||
|
s.env.mock = opts.mock_env.value_or(cfg.features.mock_env);
|
||||||
|
s.env.name = env->name();
|
||||||
|
s.env.i2c_device = cfg.env.i2c_device;
|
||||||
|
s.env.i2c_addr = cfg.env.i2c_addr;
|
||||||
|
s.env.period_ms = cfg.env.period_ms;
|
||||||
if (auto m = env->sample()) {
|
if (auto m = env->sample()) {
|
||||||
|
s.env.present = true;
|
||||||
|
s.env.temp_c = m->temp_c;
|
||||||
|
s.env.humidity_pct = m->humidity_pct;
|
||||||
|
s.env.timestamp_ms = m->timestamp_ms;
|
||||||
|
|
||||||
auto& g = s.sensors.env;
|
auto& g = s.sensors.env;
|
||||||
g.present = true;
|
g.present = true;
|
||||||
g.status = "live";
|
g.status = "live";
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,27 @@ int getInt(const std::map<std::string, std::string>& kv, const std::string& key,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Like getInt, but accepts an "0x"-prefixed value too. Only for I2C addresses,
|
||||||
|
// which every datasheet, `i2cdetect` and our own docs write in hex: plain
|
||||||
|
// std::stoi() stops at the 'x' and silently yields 0, so `i2c_addr = 0x44`
|
||||||
|
// would configure address 0x00 and the sensor would never answer. Kept separate
|
||||||
|
// from getInt so no other key gains surprise octal ("010" -> 8) parsing.
|
||||||
|
int getIntAutoBase(const std::map<std::string, std::string>& kv, const std::string& key,
|
||||||
|
int fallback) {
|
||||||
|
auto it = kv.find(key);
|
||||||
|
if (it == kv.end() || it->second.empty()) return fallback;
|
||||||
|
try {
|
||||||
|
size_t consumed = 0;
|
||||||
|
const std::string& v = it->second;
|
||||||
|
int out = std::stoi(v, &consumed, v.rfind("0x", 0) == 0 || v.rfind("0X", 0) == 0 ? 16 : 10);
|
||||||
|
if (consumed != v.size()) throw std::invalid_argument("trailing characters");
|
||||||
|
return out;
|
||||||
|
} catch (const std::exception&) {
|
||||||
|
throw std::runtime_error("Config key '" + key + "' must be an integer (decimal or 0x hex)"
|
||||||
|
", got '" + it->second + "'");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
double getDouble(const std::map<std::string, std::string>& kv, const std::string& key,
|
double getDouble(const std::map<std::string, std::string>& kv, const std::string& key,
|
||||||
double fallback) {
|
double fallback) {
|
||||||
auto it = kv.find(key);
|
auto it = kv.find(key);
|
||||||
|
|
@ -188,7 +209,8 @@ AppConfig ConfigLoader::fromMap(const std::map<std::string, std::string>& kv) {
|
||||||
cfg.imu.baud = static_cast<unsigned>(getInt(kv, "IMU.baud", cfg.imu.baud));
|
cfg.imu.baud = static_cast<unsigned>(getInt(kv, "IMU.baud", cfg.imu.baud));
|
||||||
|
|
||||||
cfg.env.i2c_device = get(kv, "Env.i2c_device", cfg.env.i2c_device);
|
cfg.env.i2c_device = get(kv, "Env.i2c_device", cfg.env.i2c_device);
|
||||||
cfg.env.i2c_addr = static_cast<unsigned>(getInt(kv, "Env.i2c_addr", cfg.env.i2c_addr));
|
cfg.env.i2c_addr = static_cast<unsigned>(
|
||||||
|
getIntAutoBase(kv, "Env.i2c_addr", static_cast<int>(cfg.env.i2c_addr)));
|
||||||
cfg.env.period_ms = getInt(kv, "Env.period_ms", cfg.env.period_ms);
|
cfg.env.period_ms = getInt(kv, "Env.period_ms", cfg.env.period_ms);
|
||||||
|
|
||||||
// [Test] + [TestProfile.<name>]: discover profiles by scanning the flattened
|
// [Test] + [TestProfile.<name>]: discover profiles by scanning the flattened
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
#include "fgc/Logger.h"
|
#include "fgc/Logger.h"
|
||||||
#include "fgc/sensors/I2cBus.h"
|
#include "fgc/sensors/I2cBus.h"
|
||||||
|
#include "fgc/sensors/Sht41Protocol.h"
|
||||||
|
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
|
|
@ -12,22 +13,11 @@ namespace fgc {
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
constexpr uint8_t kCmdSoftReset = 0x94;
|
// The command bytes and the frame decode (CRC + raw->physical) live in
|
||||||
constexpr uint8_t kCmdMeasureHighPrec = 0xFD;
|
// Sht41Protocol, which is pure and unit-tested; this file owns only the I/O:
|
||||||
constexpr auto kConversionDelay = std::chrono::milliseconds(10);
|
// bus access, poll timing, and the staleness rule.
|
||||||
constexpr auto kSoftResetSettle = std::chrono::milliseconds(1);
|
constexpr auto kConversionDelay = std::chrono::milliseconds(10);
|
||||||
|
constexpr auto kSoftResetSettle = std::chrono::milliseconds(1);
|
||||||
// SHT4x CRC-8: poly 0x31, init 0xFF. Datasheet test vector: 0xBE 0xEF -> 0x92.
|
|
||||||
uint8_t crc8Sht41(const uint8_t* data, size_t len) {
|
|
||||||
uint8_t crc = 0xFF;
|
|
||||||
for (size_t i = 0; i < len; ++i) {
|
|
||||||
crc ^= data[i];
|
|
||||||
for (int b = 0; b < 8; ++b)
|
|
||||||
crc = (crc & 0x80) ? static_cast<uint8_t>((crc << 1) ^ 0x31)
|
|
||||||
: static_cast<uint8_t>(crc << 1);
|
|
||||||
}
|
|
||||||
return crc;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
|
@ -47,27 +37,21 @@ struct Sht41EnvSensor::Impl {
|
||||||
clock::time_point last_ok{};
|
clock::time_point last_ok{};
|
||||||
|
|
||||||
void readOnce() {
|
void readOnce() {
|
||||||
if (!bus.write({kCmdMeasureHighPrec})) return;
|
if (!bus.write({kSht41CmdMeasureHighPrec})) return;
|
||||||
std::this_thread::sleep_for(kConversionDelay);
|
std::this_thread::sleep_for(kConversionDelay);
|
||||||
std::vector<uint8_t> rx(6);
|
std::vector<uint8_t> rx(kSht41ResponseBytes);
|
||||||
if (!bus.writeRead({}, rx)) return;
|
if (!bus.writeRead({}, rx)) return;
|
||||||
|
|
||||||
if (crc8Sht41(rx.data(), 2) != rx[2] || crc8Sht41(rx.data() + 3, 2) != rx[5]) {
|
auto reading = decodeSht41Measurement(rx);
|
||||||
|
if (!reading) {
|
||||||
LOG_WARN << "SHT41: CRC mismatch, discarding sample";
|
LOG_WARN << "SHT41: CRC mismatch, discarding sample";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const uint16_t traw = static_cast<uint16_t>((rx[0] << 8) | rx[1]);
|
|
||||||
const uint16_t rhraw = static_cast<uint16_t>((rx[3] << 8) | rx[4]);
|
|
||||||
float temp_c = -45.0f + 175.0f * (static_cast<float>(traw) / 65535.0f);
|
|
||||||
float rh_pct = -6.0f + 125.0f * (static_cast<float>(rhraw) / 65535.0f);
|
|
||||||
if (rh_pct < 0.0f) rh_pct = 0.0f;
|
|
||||||
if (rh_pct > 100.0f) rh_pct = 100.0f;
|
|
||||||
|
|
||||||
std::lock_guard<std::mutex> lock(mutex);
|
std::lock_guard<std::mutex> lock(mutex);
|
||||||
latest.valid = true;
|
latest.valid = true;
|
||||||
latest.temp_c = temp_c;
|
latest.temp_c = reading->temp_c;
|
||||||
latest.humidity_pct = rh_pct;
|
latest.humidity_pct = reading->humidity_pct;
|
||||||
latest.timestamp_ms = std::chrono::duration_cast<std::chrono::milliseconds>(
|
latest.timestamp_ms = std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||||
std::chrono::system_clock::now().time_since_epoch())
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
.count();
|
.count();
|
||||||
|
|
@ -93,7 +77,7 @@ void Sht41EnvSensor::start() {
|
||||||
LOG_ERROR << "SHT41: failed to open I2C bus; sensor disabled";
|
LOG_ERROR << "SHT41: failed to open I2C bus; sensor disabled";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
impl_->bus.write({kCmdSoftReset});
|
impl_->bus.write({kSht41CmdSoftReset});
|
||||||
std::this_thread::sleep_for(kSoftResetSettle);
|
std::this_thread::sleep_for(kSoftResetSettle);
|
||||||
impl_->running = true;
|
impl_->running = true;
|
||||||
impl_->worker = std::thread([this] { impl_->run(); });
|
impl_->worker = std::thread([this] { impl_->run(); });
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
#include "fgc/sensors/Sht41Protocol.h"
|
||||||
|
|
||||||
|
namespace fgc {
|
||||||
|
|
||||||
|
uint8_t sht41Crc8(const uint8_t* data, size_t len) {
|
||||||
|
uint8_t crc = 0xFF;
|
||||||
|
for (size_t i = 0; i < len; ++i) {
|
||||||
|
crc ^= data[i];
|
||||||
|
for (int b = 0; b < 8; ++b)
|
||||||
|
crc = (crc & 0x80) ? static_cast<uint8_t>((crc << 1) ^ 0x31)
|
||||||
|
: static_cast<uint8_t>(crc << 1);
|
||||||
|
}
|
||||||
|
return crc;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::optional<Sht41Reading> decodeSht41Measurement(const std::vector<uint8_t>& rx) {
|
||||||
|
if (rx.size() != kSht41ResponseBytes) return std::nullopt;
|
||||||
|
if (sht41Crc8(rx.data(), 2) != rx[2] || sht41Crc8(rx.data() + 3, 2) != rx[5])
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
const uint16_t traw = static_cast<uint16_t>((rx[0] << 8) | rx[1]);
|
||||||
|
const uint16_t rhraw = static_cast<uint16_t>((rx[3] << 8) | rx[4]);
|
||||||
|
|
||||||
|
Sht41Reading out;
|
||||||
|
out.temp_c = -45.0f + 175.0f * (static_cast<float>(traw) / 65535.0f);
|
||||||
|
out.humidity_pct = -6.0f + 125.0f * (static_cast<float>(rhraw) / 65535.0f);
|
||||||
|
if (out.humidity_pct < 0.0f) out.humidity_pct = 0.0f;
|
||||||
|
if (out.humidity_pct > 100.0f) out.humidity_pct = 100.0f;
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace fgc
|
||||||
|
|
@ -561,8 +561,11 @@ Element gimbalDetailPanel(const GimbalView& g, const DumpView& dump, const Calib
|
||||||
vbox({header, separator(), hbox(std::move(cols)) | flex}));
|
vbox({header, separator(), hbox(std::move(cols)) | flex}));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Full-screen IMU view (toggled with 'i'): every MTi channel with units.
|
// Full-screen Sensors view (toggled with 'i'): every MTi channel with units,
|
||||||
Element imuDetailPanel(const ImuView& v) {
|
// then the ambient sensor. The two devices get their own headed sections, and
|
||||||
|
// each temperature is labelled with its provenance ("internal" vs "ambient"),
|
||||||
|
// so the reading the main window shows is never confused with the MTi's.
|
||||||
|
Element sensorsDetailPanel(const ImuView& v, const EnvView& e) {
|
||||||
// Fixed-width, right-aligned to 2 decimals. The constant width keeps the sign
|
// Fixed-width, right-aligned to 2 decimals. The constant width keeps the sign
|
||||||
// column and decimal point from jumping as values cross zero or change digit
|
// column and decimal point from jumping as values cross zero or change digit
|
||||||
// count, so the readout stays steady instead of flickering. The width is kept
|
// count, so the readout stays steady instead of flickering. The width is kept
|
||||||
|
|
@ -592,6 +595,8 @@ Element imuDetailPanel(const ImuView& v) {
|
||||||
const float ori[3] = {v.roll_deg, v.pitch_deg, v.yaw_deg};
|
const float ori[3] = {v.roll_deg, v.pitch_deg, v.yaw_deg};
|
||||||
|
|
||||||
std::vector<Element> body;
|
std::vector<Element> body;
|
||||||
|
body.push_back(text("MTi \xE2\x80\x94 orientation & device-internal temperature") | bold
|
||||||
|
| color(Color::Magenta));
|
||||||
if (!v.present) {
|
if (!v.present) {
|
||||||
body.push_back(text("(no IMU data)") | color(Color::Red) | bold);
|
body.push_back(text("(no IMU data)") | color(Color::Red) | bold);
|
||||||
body.push_back(text("check [Features] enable_imu and [IMU] device, or --mock-imu") | dim);
|
body.push_back(text("check [Features] enable_imu and [IMU] device, or --mock-imu") | dim);
|
||||||
|
|
@ -611,12 +616,59 @@ Element imuDetailPanel(const ImuView& v) {
|
||||||
body.push_back(vecRow("MAG FIELD", "a.u.", v.mag, Color::Cyan));
|
body.push_back(vecRow("MAG FIELD", "a.u.", v.mag, Color::Cyan));
|
||||||
body.push_back(separator());
|
body.push_back(separator());
|
||||||
body.push_back(hbox({
|
body.push_back(hbox({
|
||||||
text("TEMP") | dim | size(WIDTH, EQUAL, 14),
|
text("TEMP (internal)") | dim | size(WIDTH, EQUAL, 16),
|
||||||
text(f2(v.temp_c, 6) + " \xC2\xB0""C") | bold | size(WIDTH, EQUAL, 18),
|
text(f2(v.temp_c, 6) + " \xC2\xB0""C") | bold | size(WIDTH, EQUAL, 18),
|
||||||
text("sample #" + std::to_string(v.sample_counter)) | dim,
|
text("sample #" + std::to_string(v.sample_counter)) | dim,
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AMBIENT section: the SHT41 (or whatever IEnvSensor backs it — the name comes
|
||||||
|
// from the driver, so a mock announces itself). This is the temperature the
|
||||||
|
// main window shows. It sits directly under the MTi's live rows and ABOVE the
|
||||||
|
// static IMU CONFIG block: on an 80x24 terminal the body overflows once the
|
||||||
|
// MTi reports its configuration, and the live readings from both sensors are
|
||||||
|
// what must stay on screen — the never-changing device config is what gives way
|
||||||
|
// (and is still reachable by scrolling).
|
||||||
|
{
|
||||||
|
auto envRow = [](const std::string& k, Element val) {
|
||||||
|
return hbox({text(k) | dim | size(WIDTH, EQUAL, 16), std::move(val)});
|
||||||
|
};
|
||||||
|
auto f1 = [](float x) {
|
||||||
|
char b[24];
|
||||||
|
std::snprintf(b, sizeof(b), "%.1f", x);
|
||||||
|
return std::string(b);
|
||||||
|
};
|
||||||
|
body.push_back(separator());
|
||||||
|
body.push_back(text((e.name.empty() ? std::string("SHT41") : e.name) +
|
||||||
|
" \xE2\x80\x94 ambient (I2C)") | bold | color(Color::Magenta));
|
||||||
|
if (!e.enabled) {
|
||||||
|
body.push_back(text("(env sensor disabled)") | dim);
|
||||||
|
body.push_back(
|
||||||
|
text("enable with [Features] enable_env and [Env] i2c_device, or --mock-env")
|
||||||
|
| dim);
|
||||||
|
} else if (!e.present) {
|
||||||
|
body.push_back(text("(no reading)") | color(Color::Red) | bold);
|
||||||
|
// Kept short enough to fit an 80-column terminal without truncating.
|
||||||
|
body.push_back(text("no sample within 2x the " + std::to_string(e.period_ms) +
|
||||||
|
" ms poll period \xE2\x80\x94 check wiring/bus") | dim);
|
||||||
|
} else {
|
||||||
|
long long now = std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||||
|
std::chrono::system_clock::now().time_since_epoch()).count();
|
||||||
|
body.push_back(envRow("TEMP (ambient)",
|
||||||
|
text(f2(e.temp_c, 6) + " \xC2\xB0""C") | bold));
|
||||||
|
body.push_back(envRow("HUMIDITY", text(f1(e.humidity_pct) + " %RH") | bold));
|
||||||
|
body.push_back(envRow("Last sample", text(formatTimeAgo(now, e.timestamp_ms)) | dim));
|
||||||
|
}
|
||||||
|
// The configured bus is meaningless for the mock, so only show it for real
|
||||||
|
// hardware — where it is exactly what you need to debug a missing reading.
|
||||||
|
if (e.enabled && !e.mock) {
|
||||||
|
char addr[16];
|
||||||
|
std::snprintf(addr, sizeof(addr), "0x%02X", e.i2c_addr);
|
||||||
|
body.push_back(envRow("Bus", text(e.i2c_device + " @ " + addr + ", every " +
|
||||||
|
std::to_string(e.period_ms) + " ms") | dim));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// IMU CONFIG section (device configuration read back at startup). Shown
|
// IMU CONFIG section (device configuration read back at startup). Shown
|
||||||
// whenever it is known, even if the live stream is offline.
|
// whenever it is known, even if the live stream is offline.
|
||||||
const auto& c = v.config;
|
const auto& c = v.config;
|
||||||
|
|
@ -653,11 +705,20 @@ Element imuDetailPanel(const ImuView& v) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Element status = v.present ? (text(" MTi live ") | color(Color::Green) | bold)
|
Element imu_status = v.present ? (text(" MTi live ") | color(Color::Green) | bold)
|
||||||
: (text(" MTi offline ") | color(Color::Red) | bold);
|
: (text(" MTi offline ") | color(Color::Red) | bold);
|
||||||
return window(text(" IMU (i/Esc:close r:refresh config) ") | bold | color(Color::Magenta),
|
const std::string env_name = e.name.empty() ? "SHT41" : e.name;
|
||||||
vbox({hbox({status, filler()}), separator(),
|
Element env_status = !e.enabled
|
||||||
vbox(std::move(body)) | flex}));
|
? (text(" " + env_name + " disabled ") | dim)
|
||||||
|
: (e.present
|
||||||
|
? (text(" " + env_name + " live ") | color(Color::Green) | bold)
|
||||||
|
: (text(" " + env_name + " no reading ") | color(Color::Red) |
|
||||||
|
bold));
|
||||||
|
// yframe so a long body (MTi channels + config + ambient) stays reachable on a
|
||||||
|
// short terminal instead of being silently cut off, as the camera view does.
|
||||||
|
return window(text(" SENSORS (i/Esc:close r:refresh config) ") | bold | color(Color::Magenta),
|
||||||
|
vbox({hbox({imu_status, text(" "), env_status, filler()}), separator(),
|
||||||
|
vbox(std::move(body)) | yframe | flex}));
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
@ -751,7 +812,7 @@ void TuiUi::uiLoop() {
|
||||||
} else {
|
} else {
|
||||||
bottom = hbox({
|
bottom = hbox({
|
||||||
keyHint("s", "Start"), keyHint("x", "Stop"), keyHint("h", "Home"),
|
keyHint("s", "Start"), keyHint("x", "Stop"), keyHint("h", "Home"),
|
||||||
keyHint("g", "Gimbal"), keyHint("i", "IMU"), keyHint("c", "Scan"),
|
keyHint("g", "Gimbal"), keyHint("i", "Sensors"), keyHint("c", "Scan"),
|
||||||
keyHint("p", "Pause"), keyHint("r", "Refresh"),
|
keyHint("p", "Pause"), keyHint("r", "Refresh"),
|
||||||
keyHint("\xE2\x86\x90\xE2\x86\x92\xE2\x86\x91\xE2\x86\x93", "Nudge"),
|
keyHint("\xE2\x86\x90\xE2\x86\x92\xE2\x86\x91\xE2\x86\x93", "Nudge"),
|
||||||
keyHint(":", "Cmd"), keyHint("?", "Help"), filler(), keyHint("q", "Quit"),
|
keyHint(":", "Cmd"), keyHint("?", "Help"), filler(), keyHint("q", "Quit"),
|
||||||
|
|
@ -768,7 +829,8 @@ void TuiUi::uiLoop() {
|
||||||
return vbox({header, separator(),
|
return vbox({header, separator(),
|
||||||
gimbalDetailPanel(s.gimbal, s.dump, s.calib, s.diag) | flex, bottom});
|
gimbalDetailPanel(s.gimbal, s.dump, s.calib, s.diag) | flex, bottom});
|
||||||
case Overlay::Sensors:
|
case Overlay::Sensors:
|
||||||
return vbox({header, separator(), imuDetailPanel(s.imu) | flex, bottom});
|
return vbox({header, separator(),
|
||||||
|
sensorsDetailPanel(s.imu, s.env) | flex, bottom});
|
||||||
case Overlay::Cameras:
|
case Overlay::Cameras:
|
||||||
return vbox({header, separator(), cameraDetailPanel(s.capture) | flex, bottom});
|
return vbox({header, separator(), cameraDetailPanel(s.capture) | flex, bottom});
|
||||||
default: {
|
default: {
|
||||||
|
|
|
||||||
|
|
@ -49,13 +49,15 @@ std::string formatTimeAgo(long long now_ms, long long then_ms) {
|
||||||
|
|
||||||
SensorsView pendingSensorsView() {
|
SensorsView pendingSensorsView() {
|
||||||
SensorsView v;
|
SensorsView v;
|
||||||
// Xsens MTi-28 AHRS: drift-free Euler orientation + device internal temp.
|
// Xsens MTi-28 AHRS: drift-free Euler orientation. The device's internal
|
||||||
|
// temperature is deliberately NOT here — it is diagnostic detail shown only
|
||||||
|
// in the expanded view, so the sole temperature on the main window is the
|
||||||
|
// SHT41's ambient one below.
|
||||||
v.imu.title = "MTi (orientation)";
|
v.imu.title = "MTi (orientation)";
|
||||||
v.imu.status = "pending";
|
v.imu.status = "pending";
|
||||||
v.imu.fields.push_back({"Roll", "--.-", "\xC2\xB0", false});
|
v.imu.fields.push_back({"Roll", "--.-", "\xC2\xB0", false});
|
||||||
v.imu.fields.push_back({"Pitch", "--.-", "\xC2\xB0", false});
|
v.imu.fields.push_back({"Pitch", "--.-", "\xC2\xB0", false});
|
||||||
v.imu.fields.push_back({"Yaw", "--.-", "\xC2\xB0", false});
|
v.imu.fields.push_back({"Yaw", "--.-", "\xC2\xB0", false});
|
||||||
v.imu.fields.push_back({"Temp", "--.-", "\xC2\xB0""C", false}); // MTi internal
|
|
||||||
// SHT41 temperature & humidity (Adafruit, I2C on the LattePanda's own bus):
|
// SHT41 temperature & humidity (Adafruit, I2C on the LattePanda's own bus):
|
||||||
// ±0.2 °C, ±1.8 %RH (ambient).
|
// ±0.2 °C, ±1.8 %RH (ambient).
|
||||||
v.env.title = "SHT41 (ambient)";
|
v.env.title = "SHT41 (ambient)";
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ add_executable(fgc_tests
|
||||||
test_scangrid.cpp
|
test_scangrid.cpp
|
||||||
test_uisnapshot.cpp
|
test_uisnapshot.cpp
|
||||||
test_mtiprotocol.cpp
|
test_mtiprotocol.cpp
|
||||||
|
test_sht41.cpp
|
||||||
test_dumpparser.cpp
|
test_dumpparser.cpp
|
||||||
test_helptext.cpp
|
test_helptext.cpp
|
||||||
test_diagparser.cpp
|
test_diagparser.cpp
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,17 @@ TEST_CASE("ConfigLoader maps [Env]/env feature flags") {
|
||||||
CHECK(c.env.period_ms == 5000);
|
CHECK(c.env.period_ms == 5000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE("Env.i2c_addr accepts the hex form every datasheet uses") {
|
||||||
|
// Plain std::stoi() stops at the 'x' and returns 0, which would silently
|
||||||
|
// configure address 0x00 — the sensor would then never answer.
|
||||||
|
CHECK(ConfigLoader::fromMap({{"Env.i2c_addr", "0x44"}}).env.i2c_addr == 0x44);
|
||||||
|
CHECK(ConfigLoader::fromMap({{"Env.i2c_addr", "0X44"}}).env.i2c_addr == 0x44);
|
||||||
|
CHECK(ConfigLoader::fromMap({{"Env.i2c_addr", "68"}}).env.i2c_addr == 68);
|
||||||
|
// Decimal stays decimal: no surprise octal for a leading zero.
|
||||||
|
CHECK(ConfigLoader::fromMap({{"Env.i2c_addr", "010"}}).env.i2c_addr == 10);
|
||||||
|
CHECK_THROWS(ConfigLoader::fromMap({{"Env.i2c_addr", "0x4g"}}));
|
||||||
|
}
|
||||||
|
|
||||||
TEST_CASE("environment overrides file credentials") {
|
TEST_CASE("environment overrides file credentials") {
|
||||||
setenv("FGC_MQTT_USER", "envuser", 1);
|
setenv("FGC_MQTT_USER", "envuser", 1);
|
||||||
AppConfig c = ConfigLoader::fromMap({{"Network.mqtt_user", "fileuser"}});
|
AppConfig c = ConfigLoader::fromMap({{"Network.mqtt_user", "fileuser"}});
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
#include <doctest/doctest.h>
|
||||||
|
|
||||||
|
#include "fgc/mock/MockEnvSensor.h"
|
||||||
|
#include "fgc/sensors/Sht41Protocol.h"
|
||||||
|
|
||||||
|
using namespace fgc;
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
// Build a measurement response with correct CRCs for both words.
|
||||||
|
std::vector<uint8_t> frame(uint8_t t_msb, uint8_t t_lsb, uint8_t h_msb, uint8_t h_lsb) {
|
||||||
|
std::vector<uint8_t> rx = {t_msb, t_lsb, 0, h_msb, h_lsb, 0};
|
||||||
|
rx[2] = sht41Crc8(rx.data(), 2);
|
||||||
|
rx[5] = sht41Crc8(rx.data() + 3, 2);
|
||||||
|
return rx;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
TEST_CASE("sht41Crc8 matches the datasheet test vector") {
|
||||||
|
// Sensirion's published check value — pins polynomial (0x31), init (0xFF)
|
||||||
|
// and the no-reflection/no-final-XOR choices all at once.
|
||||||
|
const uint8_t v[] = {0xBE, 0xEF};
|
||||||
|
CHECK(sht41Crc8(v, 2) == 0x92);
|
||||||
|
|
||||||
|
// CRCs computed independently for the frames used below; a byte-order or
|
||||||
|
// polynomial regression breaks these even if the datasheet vector survives.
|
||||||
|
const uint8_t a[] = {0x66, 0x66};
|
||||||
|
CHECK(sht41Crc8(a, 2) == 0x93);
|
||||||
|
const uint8_t zero[] = {0x00, 0x00};
|
||||||
|
CHECK(sht41Crc8(zero, 2) == 0x81);
|
||||||
|
const uint8_t full[] = {0xFF, 0xFF};
|
||||||
|
CHECK(sht41Crc8(full, 2) == 0xAC);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("decodeSht41Measurement converts raw words to physical units") {
|
||||||
|
// 0x6666 is exactly 25 °C under T = -45 + 175 * raw/65535.
|
||||||
|
auto r = decodeSht41Measurement(frame(0x66, 0x66, 0x80, 0x00));
|
||||||
|
REQUIRE(r.has_value());
|
||||||
|
CHECK(r->temp_c == doctest::Approx(25.0).epsilon(0.001));
|
||||||
|
CHECK(r->humidity_pct == doctest::Approx(56.501).epsilon(0.001));
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("decodeSht41Measurement clamps humidity to 0..100") {
|
||||||
|
// The datasheet RH formula overshoots both ends by design: raw 0 yields
|
||||||
|
// -6 %RH and raw 65535 yields 119 %RH. Temperature is NOT clamped — its
|
||||||
|
// full -45..130 °C range is real.
|
||||||
|
auto lo = decodeSht41Measurement(frame(0x00, 0x00, 0x00, 0x00));
|
||||||
|
REQUIRE(lo.has_value());
|
||||||
|
CHECK(lo->temp_c == doctest::Approx(-45.0).epsilon(0.001));
|
||||||
|
CHECK(lo->humidity_pct == doctest::Approx(0.0));
|
||||||
|
|
||||||
|
auto hi = decodeSht41Measurement(frame(0xFF, 0xFF, 0xFF, 0xFF));
|
||||||
|
REQUIRE(hi.has_value());
|
||||||
|
CHECK(hi->temp_c == doctest::Approx(130.0).epsilon(0.001));
|
||||||
|
CHECK(hi->humidity_pct == doctest::Approx(100.0));
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("decodeSht41Measurement rejects corrupt frames instead of reporting them") {
|
||||||
|
// A garbled word converts to a perfectly plausible temperature, so the CRC
|
||||||
|
// is the only thing standing between line noise and a believed reading.
|
||||||
|
std::vector<uint8_t> bad_temp_crc = frame(0x66, 0x66, 0x80, 0x00);
|
||||||
|
bad_temp_crc[2] ^= 0xFF;
|
||||||
|
CHECK_FALSE(decodeSht41Measurement(bad_temp_crc).has_value());
|
||||||
|
|
||||||
|
std::vector<uint8_t> bad_rh_crc = frame(0x66, 0x66, 0x80, 0x00);
|
||||||
|
bad_rh_crc[5] ^= 0xFF;
|
||||||
|
CHECK_FALSE(decodeSht41Measurement(bad_rh_crc).has_value());
|
||||||
|
|
||||||
|
// A flipped data bit invalidates the word its CRC covers.
|
||||||
|
std::vector<uint8_t> flipped = frame(0x66, 0x66, 0x80, 0x00);
|
||||||
|
flipped[1] ^= 0x01;
|
||||||
|
CHECK_FALSE(decodeSht41Measurement(flipped).has_value());
|
||||||
|
|
||||||
|
// Short/absent reads (a bus hiccup) must not be indexed into.
|
||||||
|
CHECK_FALSE(decodeSht41Measurement({}).has_value());
|
||||||
|
CHECK_FALSE(decodeSht41Measurement({0x66, 0x66, 0x93}).has_value());
|
||||||
|
std::vector<uint8_t> too_long = frame(0x66, 0x66, 0x80, 0x00);
|
||||||
|
too_long.push_back(0x00);
|
||||||
|
CHECK_FALSE(decodeSht41Measurement(too_long).has_value());
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("MockEnvSensor reports plausible, varying ambient readings") {
|
||||||
|
MockEnvSensor env;
|
||||||
|
env.start();
|
||||||
|
CHECK(env.connected());
|
||||||
|
CHECK(env.name().find("SHT41") != std::string::npos);
|
||||||
|
|
||||||
|
auto s = env.sample();
|
||||||
|
REQUIRE(s.has_value());
|
||||||
|
CHECK(s->valid);
|
||||||
|
CHECK(s->timestamp_ms > 0);
|
||||||
|
// Indoor-plausible, and within the ranges the real decode can produce.
|
||||||
|
CHECK(s->temp_c > -45.0f);
|
||||||
|
CHECK(s->temp_c < 130.0f);
|
||||||
|
CHECK(s->humidity_pct >= 0.0f);
|
||||||
|
CHECK(s->humidity_pct <= 100.0f);
|
||||||
|
|
||||||
|
env.stop();
|
||||||
|
}
|
||||||
|
|
@ -64,7 +64,7 @@ TEST_CASE("pendingSensorsView: grouped by sensor, all absent until drivers land"
|
||||||
CHECK_FALSE(v.env.present);
|
CHECK_FALSE(v.env.present);
|
||||||
CHECK_FALSE(v.imu.title.empty());
|
CHECK_FALSE(v.imu.title.empty());
|
||||||
CHECK_FALSE(v.env.title.empty());
|
CHECK_FALSE(v.env.title.empty());
|
||||||
CHECK(v.imu.fields.size() >= 3); // roll/pitch/yaw (+ device temp)
|
CHECK(v.imu.fields.size() >= 3); // roll/pitch/yaw
|
||||||
CHECK(v.env.fields.size() >= 2); // ambient temp + humidity
|
CHECK(v.env.fields.size() >= 2); // ambient temp + humidity
|
||||||
for (const auto* g : {&v.imu, &v.env}) {
|
for (const auto* g : {&v.imu, &v.env}) {
|
||||||
for (const auto& f : g->fields) {
|
for (const auto& f : g->fields) {
|
||||||
|
|
@ -73,3 +73,31 @@ TEST_CASE("pendingSensorsView: grouped by sensor, all absent until drivers land"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE("compact sensors panel shows exactly one temperature, the ambient one") {
|
||||||
|
SensorsView v = pendingSensorsView();
|
||||||
|
|
||||||
|
// The MTi's internal temperature is expanded-view-only, so the main window
|
||||||
|
// never shows two temperatures the operator has to attribute.
|
||||||
|
for (const auto& f : v.imu.fields) CHECK(f.label != "Temp");
|
||||||
|
|
||||||
|
auto findField = [](const SensorGroup& g, const std::string& label) -> const SensorField* {
|
||||||
|
for (const auto& f : g.fields)
|
||||||
|
if (f.label == label) return &f;
|
||||||
|
return nullptr;
|
||||||
|
};
|
||||||
|
const SensorField* temp = findField(v.env, "Temp");
|
||||||
|
const SensorField* humid = findField(v.env, "Humid");
|
||||||
|
REQUIRE(temp != nullptr);
|
||||||
|
REQUIRE(humid != nullptr);
|
||||||
|
CHECK(temp->unit == "\xC2\xB0""C");
|
||||||
|
CHECK(humid->unit == "%RH");
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("EnvView defaults to disabled with no reading") {
|
||||||
|
EnvView e;
|
||||||
|
CHECK_FALSE(e.enabled);
|
||||||
|
CHECK_FALSE(e.present);
|
||||||
|
CHECK_FALSE(e.mock);
|
||||||
|
CHECK(e.timestamp_ms == 0);
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue