# Core: document model, routing, solver — no Widgets dependency, headless-testable. add_library(diagcore STATIC core/Types.h core/Types.cpp core/TypeRegistry.h core/TypeRegistry.cpp core/NetworkModel.h core/NetworkModel.cpp core/Router.h core/Router.cpp core/FlowSolver.h core/FlowSolver.cpp core/JsonIo.h core/JsonIo.cpp ) target_include_directories(diagcore PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(diagcore PUBLIC Qt6::Core Qt6::Gui) # Scene: QGraphicsScene items and interaction. add_library(diagscene STATIC scene/Theme.h scene/Theme.cpp scene/Commands.h scene/Commands.cpp scene/DiagramScene.h scene/DiagramScene.cpp scene/NodeItem.h scene/NodeItem.cpp scene/PortItem.h scene/PortItem.cpp scene/EdgeItem.h scene/EdgeItem.cpp scene/GridView.h scene/GridView.cpp ) target_link_libraries(diagscene PUBLIC diagcore Qt6::Widgets Qt6::Svg)