build: split core/ from frontends/; prepare for multiple GUI/TUI targets

Reorganise the tree into business vs frontend as separate directories:
  src/core/{domain,imports,app}   (was system/, imports/, app/)
  src/frontends/tui/              (was tui/ + main.cpp)
  tests/tui/                      (the FTXUI-coupled helper test)
All cross-dir #include paths rewritten; same-dir includes untouched.

CMake: essim_core is the frontend-agnostic business library — links libzip,
pugixml and bsdl, NO GUI toolkit. Each frontend is a self-contained
src/frontends/<name>/ (own CMakeLists, toolkit, main.cpp) that links
essim_core, selected with -DESSIM_FRONTEND=<name> (default tui; 'none' = core +
tests only, no toolkit fetched). FTXUI moved into the tui frontend. Tests are
split: essim_tests links essim_core (no FTXUI), essim_tui_tests links essim_tui.

Verified: default tui build green (ctest 2/2); ESSIM_FRONTEND=none builds the
core + tests with FTXUI never fetched and no `essim` binary.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-03 19:33:06 +02:00
parent 3010bb25eb
commit 63ca17d048
83 changed files with 282 additions and 228 deletions

View File

@@ -11,49 +11,54 @@ project(essim
include(FetchContent) include(FetchContent)
set(FTXUI_BUILD_DOCS OFF CACHE INTERNAL "") # ----------------------------------------------------------------- core deps
set(FTXUI_BUILD_EXAMPLES OFF CACHE INTERNAL "") # libbsdl — standalone BSDL parser (LGPL-2.1), dynamically linked (EUPL-1.2,
set(FTXUI_BUILD_TESTS OFF CACHE INTERNAL "") # which the LGPL permits). Override its path with -DBSDL_DIR=...
set(FTXUI_ENABLE_INSTALL OFF CACHE INTERNAL "")
FetchContent_Declare(ftxui
GIT_REPOSITORY https://github.com/ArthurSonzogni/FTXUI.git
GIT_TAG v6.1.9
GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(ftxui)
find_package(libzip REQUIRED)
find_package(pugixml REQUIRED)
# libbsdl — standalone BSDL parser (LGPL-2.1), dynamically linked from essim
# (EUPL-1.2, which the LGPL permits). Path overridable via -DBSDL_DIR=...;
# its CLI and tests are not needed inside essim's build.
set(BSDL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../libbsdl" CACHE PATH "libbsdl source tree") set(BSDL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../libbsdl" CACHE PATH "libbsdl source tree")
set(BSDL_BUILD_CLI OFF CACHE BOOL "" FORCE) set(BSDL_BUILD_CLI OFF CACHE BOOL "" FORCE)
set(BSDL_BUILD_TESTS OFF CACHE BOOL "" FORCE) set(BSDL_BUILD_TESTS OFF CACHE BOOL "" FORCE)
add_subdirectory(${BSDL_DIR} ${CMAKE_BINARY_DIR}/libbsdl) add_subdirectory(${BSDL_DIR} ${CMAKE_BINARY_DIR}/libbsdl)
# Library target = everything except main.cpp; reused by `essim` and `essim_tests`. find_package(libzip REQUIRED)
file(GLOB_RECURSE LIB_SOURCES "src/*.cpp") find_package(pugixml REQUIRED)
list(REMOVE_ITEM LIB_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp")
add_library(essim_lib STATIC ${LIB_SOURCES}) # =============================================================== essim_core
target_include_directories(essim_lib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src) # All business logic — domain model, importers, application operations
target_link_libraries(essim_lib # (src/core/{domain,imports,app}). Frontend-agnostic: it links NO GUI/TUI
# toolkit, so every frontend and the test suite share the exact same core.
file(GLOB_RECURSE CORE_SOURCES "src/core/*.cpp")
add_library(essim_core STATIC ${CORE_SOURCES})
target_include_directories(essim_core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(essim_core
PUBLIC PUBLIC
ftxui::screen
ftxui::dom
ftxui::component
libzip::zip libzip::zip
pugixml::pugixml pugixml::pugixml
bsdl::bsdl bsdl::bsdl
) )
add_executable(essim src/main.cpp) # =============================================================== frontend(s)
target_link_libraries(essim PRIVATE essim_lib) # Pick the GUI/TUI frontend to build the `essim` binary against. Each frontend
# is a self-contained src/frontends/<name>/ (own CMakeLists, GUI toolkit, and
# main.cpp) that links essim_core. "none" builds the core + tests only — no GUI
# toolkit is fetched. To add a frontend (e.g. a Qt GUI), create
# src/frontends/gui/ and configure with -DESSIM_FRONTEND=gui.
set(ESSIM_FRONTEND "tui" CACHE STRING
"Frontend to build: a directory name under src/frontends/, or 'none'")
set_property(CACHE ESSIM_FRONTEND PROPERTY STRINGS tui none)
# Tests if(ESSIM_FRONTEND STREQUAL "none")
message(STATUS "essim: ESSIM_FRONTEND=none — core + tests only (no frontend, no GUI toolkit)")
elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/frontends/${ESSIM_FRONTEND}/CMakeLists.txt")
message(STATUS "essim: building frontend '${ESSIM_FRONTEND}'")
add_subdirectory(src/frontends/${ESSIM_FRONTEND})
else()
message(FATAL_ERROR
"Unknown ESSIM_FRONTEND '${ESSIM_FRONTEND}' — expected "
"src/frontends/${ESSIM_FRONTEND}/CMakeLists.txt, or 'none'.")
endif()
# =============================================================== tests (core)
# The suite exercises essim_core only — no frontend, no GUI toolkit.
include(CTest) include(CTest)
if(BUILD_TESTING) if(BUILD_TESTING)
set(CMAKE_POLICY_VERSION_MINIMUM 3.5) set(CMAKE_POLICY_VERSION_MINIMUM 3.5)
@@ -65,20 +70,35 @@ if(BUILD_TESTING)
FetchContent_MakeAvailable(doctest) FetchContent_MakeAvailable(doctest)
unset(CMAKE_POLICY_VERSION_MINIMUM) unset(CMAKE_POLICY_VERSION_MINIMUM)
# Core tests — exercise essim_core only (tests/*.cpp, non-recursive, so the
# per-frontend tests under tests/<frontend>/ are not pulled in here).
file(GLOB TEST_SOURCES "tests/*.cpp") file(GLOB TEST_SOURCES "tests/*.cpp")
if(TEST_SOURCES) if(TEST_SOURCES)
add_executable(essim_tests ${TEST_SOURCES}) add_executable(essim_tests ${TEST_SOURCES})
target_link_libraries(essim_tests PRIVATE essim_lib doctest::doctest) target_link_libraries(essim_tests PRIVATE essim_core doctest::doctest)
add_test(NAME essim_tests COMMAND essim_tests) add_test(NAME essim_tests COMMAND essim_tests)
endif() endif()
# Per-frontend tests — tests/<frontend>/*.cpp, built and linked against that
# frontend's library only when the frontend itself is built.
if(TARGET essim_tui)
file(GLOB TUI_TEST_SOURCES "tests/tui/*.cpp")
if(TUI_TEST_SOURCES)
add_executable(essim_tui_tests
"${CMAKE_CURRENT_SOURCE_DIR}/tests/doctest_main.cpp" ${TUI_TEST_SOURCES})
target_link_libraries(essim_tui_tests PRIVATE essim_tui doctest::doctest)
add_test(NAME essim_tui_tests COMMAND essim_tui_tests)
endif()
endif()
endif() endif()
# Documentation: Doxygen → XML → custom Python script → doc/api/ (Markdown rendered by gitea). # =============================================================== documentation
# Optional — `doc` target is only created if Doxygen and Python 3 are present. # Doxygen → XML → gen_api_md.py → doc/api/, plus `essim --commands-md`. Needs the
# `essim` binary, so it's only wired when a frontend that provides one is built.
find_package(Doxygen COMPONENTS doxygen) find_package(Doxygen COMPONENTS doxygen)
find_package(Python3 COMPONENTS Interpreter) find_package(Python3 COMPONENTS Interpreter)
if(DOXYGEN_FOUND AND Python3_Interpreter_FOUND) if(TARGET essim AND DOXYGEN_FOUND AND Python3_Interpreter_FOUND)
set(DOXYGEN_OUTPUT_DIR "${CMAKE_BINARY_DIR}/doc") set(DOXYGEN_OUTPUT_DIR "${CMAKE_BINARY_DIR}/doc")
file(MAKE_DIRECTORY "${DOXYGEN_OUTPUT_DIR}") file(MAKE_DIRECTORY "${DOXYGEN_OUTPUT_DIR}")
configure_file( configure_file(
@@ -103,11 +123,10 @@ if(DOXYGEN_FOUND AND Python3_Interpreter_FOUND)
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
COMMENT "Generating documentation (doxygen → gen_api_md.py → doc/api/, essim --commands-md → doc/user/commands.md)" COMMENT "Generating documentation (doxygen → gen_api_md.py → doc/api/, essim --commands-md → doc/user/commands.md)"
VERBATIM) VERBATIM)
elseif(NOT DOXYGEN_FOUND AND NOT Python3_Interpreter_FOUND) elseif(NOT TARGET essim)
message(STATUS "doc: Doxygen and Python 3 not found — `doc` target disabled.") message(STATUS "doc: no `essim` binary (ESSIM_FRONTEND=none) — `doc` target disabled.")
elseif(NOT DOXYGEN_FOUND) elseif(NOT DOXYGEN_FOUND)
message(STATUS "doc: Doxygen not found — `doc` target disabled " message(STATUS "doc: Doxygen not found — `doc` target disabled.")
"(install via `pacman -S doxygen`).")
else() else()
message(STATUS "doc: Python 3 interpreter not found — `doc` target disabled.") message(STATUS "doc: Python 3 interpreter not found — `doc` target disabled.")
endif() endif()

View File

@@ -1,13 +1,13 @@
#include "app/export.hpp" #include "core/app/export.hpp"
#include "imports/ods_writer.hpp" #include "core/imports/ods_writer.hpp"
#include "system/connect.hpp" #include "core/domain/connect.hpp"
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/signal_type.hpp" #include "core/domain/signal_type.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include <cctype> #include <cctype>
#include <fstream> #include <fstream>

View File

@@ -1,4 +1,4 @@
#include "system/component_kind.hpp" #include "core/domain/component_kind.hpp"
#include <cctype> #include <cctype>
#include <string> #include <string>

View File

@@ -1,11 +1,11 @@
#include "system/nets.hpp" #include "core/domain/nets.hpp"
#include "system/connect.hpp" #include "core/domain/connect.hpp"
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include <queue> #include <queue>
#include <unordered_map> #include <unordered_map>

View File

@@ -1,4 +1,4 @@
#include "system/pin_name.hpp" #include "core/domain/pin_name.hpp"
#include <cstdio> #include <cstdio>
#include <stdexcept> #include <stdexcept>

View File

@@ -3,9 +3,9 @@
#include "connect.hpp" #include "connect.hpp"
#include "modules.hpp" #include "modules.hpp"
#include "imports/import_altium.hpp" #include "core/imports/import_altium.hpp"
#include "imports/import_mentor.hpp" #include "core/imports/import_mentor.hpp"
#include "imports/import_ods.hpp" #include "core/imports/import_ods.hpp"
System::System() : mods(nullptr), conns(nullptr) System::System() : mods(nullptr), conns(nullptr)
{ {

View File

@@ -1,7 +1,7 @@
#ifndef _SYSTEM_HPP_ #ifndef _SYSTEM_HPP_
#define _SYSTEM_HPP_ #define _SYSTEM_HPP_
#include "imports/import_base.hpp" #include "core/imports/import_base.hpp"
#pragma once #pragma once
class Modules; ///< Forward declaration of the Modules class. class Modules; ///< Forward declaration of the Modules class.

View File

@@ -1,8 +1,8 @@
#include "import_altium.hpp" #include "import_altium.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
#include <cctype> #include <cctype>
#include <string> #include <string>

View File

@@ -4,8 +4,8 @@
#include <string> #include <string>
#include <fstream> #include <fstream>
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
/** /**
* @brief Base class for importing data from a file. * @brief Base class for importing data from a file.

View File

@@ -1,6 +1,6 @@
#include "import_mentor.hpp" #include "import_mentor.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include <cctype> #include <cctype>
#include <vector> #include <vector>

View File

@@ -1,8 +1,8 @@
#include "import_ods.hpp" #include "import_ods.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
#include <pugixml.hpp> #include <pugixml.hpp>
#include <zip.h> #include <zip.h>

View File

@@ -0,0 +1,35 @@
# TUI frontend (FTXUI). Builds the `essim` executable against essim_core.
#
# A frontend is self-contained here: it pulls its own GUI toolkit, compiles its
# sources into a library that links essim_core, and produces the `essim` binary
# from its own entry point (main.cpp). To add another frontend, create a sibling
# src/frontends/<name>/ with the same shape and select it with
# -DESSIM_FRONTEND=<name>.
set(FTXUI_BUILD_DOCS OFF CACHE INTERNAL "")
set(FTXUI_BUILD_EXAMPLES OFF CACHE INTERNAL "")
set(FTXUI_BUILD_TESTS OFF CACHE INTERNAL "")
set(FTXUI_ENABLE_INSTALL OFF CACHE INTERNAL "")
FetchContent_Declare(ftxui
GIT_REPOSITORY https://github.com/ArthurSonzogni/FTXUI.git
GIT_TAG v6.1.9
GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(ftxui)
# Frontend library = every .cpp here except the entry point.
file(GLOB TUI_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
list(REMOVE_ITEM TUI_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/main.cpp")
add_library(essim_tui STATIC ${TUI_SOURCES})
target_link_libraries(essim_tui
PUBLIC
essim_core
ftxui::screen
ftxui::dom
ftxui::component
)
add_executable(essim "${CMAKE_CURRENT_SOURCE_DIR}/main.cpp")
target_link_libraries(essim PRIVATE essim_tui)

View File

@@ -1,21 +1,21 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include "tui/tui_helpers.hpp" #include "frontends/tui/tui_helpers.hpp"
#include "system/analysis.hpp" #include "core/domain/analysis.hpp"
#include "system/connect.hpp" #include "core/domain/connect.hpp"
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/nets.hpp" #include "core/domain/nets.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/persist.hpp" #include "core/domain/persist.hpp"
#include "system/pin_role.hpp" #include "core/domain/pin_role.hpp"
#include "system/pin_model.hpp" #include "core/domain/pin_model.hpp"
#include "system/bsdl_model.hpp" #include "core/domain/bsdl_model.hpp"
#include "system/bsdl_check.hpp" #include "core/domain/bsdl_check.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include "system/transform.hpp" #include "core/domain/transform.hpp"
#include "system/transform_vpx.hpp" #include "core/domain/transform_vpx.hpp"
#include <algorithm> #include <algorithm>
#include <cctype> #include <cctype>

View File

@@ -1,8 +1,8 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include "app/export.hpp" #include "core/app/export.hpp"
#include "system/connect.hpp" #include "core/domain/connect.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include <string> #include <string>
#include <vector> #include <vector>

View File

@@ -1,5 +1,5 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include "tui/tui_helpers.hpp" #include "frontends/tui/tui_helpers.hpp"
#include <cctype> #include <cctype>
#include <cstdlib> #include <cstdlib>

View File

@@ -1,4 +1,4 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include <fstream> #include <fstream>
#include <iostream> #include <iostream>

View File

@@ -1,15 +1,15 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include "tui/tui_helpers.hpp" #include "frontends/tui/tui_helpers.hpp"
#include "system/analysis.hpp" #include "core/domain/analysis.hpp"
#include "system/bsdl_check.hpp" #include "core/domain/bsdl_check.hpp"
#include "system/connect.hpp" #include "core/domain/connect.hpp"
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/nets.hpp" #include "core/domain/nets.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include <ftxui/component/component.hpp> #include <ftxui/component/component.hpp>
#include <ftxui/component/component_options.hpp> #include <ftxui/component/component_options.hpp>

View File

@@ -1,4 +1,4 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include <ftxui/component/component.hpp> #include <ftxui/component/component.hpp>
#include <ftxui/component/event.hpp> #include <ftxui/component/event.hpp>

View File

@@ -1,11 +1,11 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include "tui/tui_helpers.hpp" #include "frontends/tui/tui_helpers.hpp"
#include "system/connect.hpp" #include "core/domain/connect.hpp"
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include "system/transform.hpp" #include "core/domain/transform.hpp"
#include <ftxui/component/component.hpp> #include <ftxui/component/component.hpp>
#include <ftxui/component/component_options.hpp> #include <ftxui/component/component_options.hpp>

View File

@@ -1,15 +1,15 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include "tui/tui_helpers.hpp" #include "frontends/tui/tui_helpers.hpp"
#include "system/analysis.hpp" #include "core/domain/analysis.hpp"
#include "system/bsdl_check.hpp" #include "core/domain/bsdl_check.hpp"
#include "system/connect.hpp" #include "core/domain/connect.hpp"
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/nets.hpp" #include "core/domain/nets.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include <ftxui/component/component.hpp> #include <ftxui/component/component.hpp>
#include <ftxui/dom/elements.hpp> #include <ftxui/dom/elements.hpp>

View File

@@ -1,4 +1,4 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include <ftxui/component/component.hpp> #include <ftxui/component/component.hpp>
#include <ftxui/component/event.hpp> #include <ftxui/component/event.hpp>

View File

@@ -1,13 +1,13 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include "tui/tui_helpers.hpp" #include "frontends/tui/tui_helpers.hpp"
#include "system/connect.hpp" #include "core/domain/connect.hpp"
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/nets.hpp" #include "core/domain/nets.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include <ftxui/component/component.hpp> #include <ftxui/component/component.hpp>
#include <ftxui/component/component_options.hpp> #include <ftxui/component/component_options.hpp>

View File

@@ -1,5 +1,5 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include "tui/tui_helpers.hpp" #include "frontends/tui/tui_helpers.hpp"
#include <ftxui/component/component.hpp> #include <ftxui/component/component.hpp>
#include <ftxui/component/component_options.hpp> #include <ftxui/component/component_options.hpp>

View File

@@ -1,5 +1,5 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include "tui/tui_helpers.hpp" #include "frontends/tui/tui_helpers.hpp"
#include <ftxui/component/component.hpp> #include <ftxui/component/component.hpp>
#include <ftxui/component/component_options.hpp> #include <ftxui/component/component_options.hpp>

View File

@@ -1,5 +1,5 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include "tui/tui_helpers.hpp" #include "frontends/tui/tui_helpers.hpp"
#include <ftxui/component/component.hpp> #include <ftxui/component/component.hpp>
#include <ftxui/component/component_options.hpp> #include <ftxui/component/component_options.hpp>

View File

@@ -1,9 +1,9 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include "tui/tui_helpers.hpp" #include "frontends/tui/tui_helpers.hpp"
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include <ftxui/component/component.hpp> #include <ftxui/component/component.hpp>
#include <ftxui/component/component_options.hpp> #include <ftxui/component/component_options.hpp>

View File

@@ -1,13 +1,13 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include "tui/tui_helpers.hpp" #include "frontends/tui/tui_helpers.hpp"
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/pin_model.hpp" #include "core/domain/pin_model.hpp"
#include "system/pin_role.hpp" #include "core/domain/pin_role.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include "system/transform_vpx.hpp" #include "core/domain/transform_vpx.hpp"
#include <ftxui/component/component.hpp> #include <ftxui/component/component.hpp>
#include <ftxui/component/component_options.hpp> #include <ftxui/component/component_options.hpp>

View File

@@ -1,8 +1,8 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include <ftxui/component/component.hpp> #include <ftxui/component/component.hpp>
#include <ftxui/component/component_options.hpp> #include <ftxui/component/component_options.hpp>

View File

@@ -1,9 +1,9 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include "tui/tui_helpers.hpp" #include "frontends/tui/tui_helpers.hpp"
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include <cctype> #include <cctype>
#include <chrono> #include <chrono>

View File

@@ -1,6 +1,6 @@
#include "tui/tui.hpp" #include "frontends/tui/tui.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include <ftxui/component/component.hpp> #include <ftxui/component/component.hpp>
#include <ftxui/component/event.hpp> #include <ftxui/component/event.hpp>

View File

@@ -1,4 +1,4 @@
#include "tui/tui_helpers.hpp" #include "frontends/tui/tui_helpers.hpp"
#include <ftxui/dom/elements.hpp> #include <ftxui/dom/elements.hpp>

View File

@@ -1,11 +1,11 @@
#include <doctest/doctest.h> #include <doctest/doctest.h>
#include "system/analysis.hpp" #include "core/domain/analysis.hpp"
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include <memory> #include <memory>
#include <string> #include <string>

View File

@@ -1,14 +1,14 @@
#include <doctest/doctest.h> #include <doctest/doctest.h>
#include "system/analysis.hpp" #include "core/domain/analysis.hpp"
#include "system/bsdl_check.hpp" #include "core/domain/bsdl_check.hpp"
#include "system/bsdl_model.hpp" #include "core/domain/bsdl_model.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/pin_spec.hpp" #include "core/domain/pin_spec.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/persist.hpp" #include "core/domain/persist.hpp"
#include <cstdio> #include <cstdio>
#include <fstream> #include <fstream>

View File

@@ -1,13 +1,13 @@
#include <doctest/doctest.h> #include <doctest/doctest.h>
#include "system/analysis.hpp" #include "core/domain/analysis.hpp"
#include "system/bsdl_check.hpp" #include "core/domain/bsdl_check.hpp"
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/pin_spec.hpp" #include "core/domain/pin_spec.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include <algorithm> #include <algorithm>
#include <vector> #include <vector>

View File

@@ -1,7 +1,7 @@
#include <doctest/doctest.h> #include <doctest/doctest.h>
#include "system/component_kind.hpp" #include "core/domain/component_kind.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include <memory> #include <memory>

View File

@@ -1,12 +1,12 @@
#include <doctest/doctest.h> #include <doctest/doctest.h>
#include "app/export.hpp" #include "core/app/export.hpp"
#include "system/connect.hpp" #include "core/domain/connect.hpp"
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include <cstdio> #include <cstdio>
#include <fstream> #include <fstream>

View File

@@ -1,11 +1,11 @@
#include <doctest/doctest.h> #include <doctest/doctest.h>
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/persist.hpp" #include "core/domain/persist.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include <filesystem> #include <filesystem>
#include <memory> #include <memory>

View File

@@ -1,12 +1,12 @@
#include <doctest/doctest.h> #include <doctest/doctest.h>
#include "system/connect.hpp" #include "core/domain/connect.hpp"
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/persist.hpp" #include "core/domain/persist.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include <filesystem> #include <filesystem>
#include <memory> #include <memory>

View File

@@ -1,9 +1,9 @@
#include <doctest/doctest.h> #include <doctest/doctest.h>
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/pin_model.hpp" #include "core/domain/pin_model.hpp"
#include "system/pin_spec.hpp" #include "core/domain/pin_spec.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include <string> #include <string>
#include <vector> #include <vector>

View File

@@ -1,9 +1,9 @@
#include <doctest/doctest.h> #include <doctest/doctest.h>
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/pin_name.hpp" #include "core/domain/pin_name.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/transform.hpp" #include "core/domain/transform.hpp"
#include <memory> #include <memory>

View File

@@ -1,6 +1,6 @@
#include <doctest/doctest.h> #include <doctest/doctest.h>
#include "system/signal_type.hpp" #include "core/domain/signal_type.hpp"
TEST_CASE("signal_type_name round-trips with from_name") { TEST_CASE("signal_type_name round-trips with from_name") {
SignalType t; SignalType t;

View File

@@ -1,12 +1,12 @@
#include <doctest/doctest.h> #include <doctest/doctest.h>
#include "system/modules.hpp" #include "core/domain/modules.hpp"
#include "system/parts.hpp" #include "core/domain/parts.hpp"
#include "system/pins.hpp" #include "core/domain/pins.hpp"
#include "system/signals.hpp" #include "core/domain/signals.hpp"
#include "system/system.hpp" #include "core/domain/system.hpp"
#include "system/transform.hpp" #include "core/domain/transform.hpp"
#include "system/transform_vpx.hpp" #include "core/domain/transform_vpx.hpp"
#include <map> #include <map>
#include <memory> #include <memory>

View File

@@ -1,6 +1,6 @@
#include <doctest/doctest.h> #include <doctest/doctest.h>
#include "tui/tui_helpers.hpp" #include "frontends/tui/tui_helpers.hpp"
#include <algorithm> #include <algorithm>
#include <vector> #include <vector>