# 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)
