reasampler_pure_library(lane_keys SOURCES lane_keys.cpp)
reasampler_test(lane_keys LINK lane_keys)

reasampler_pure_library(solo_cache SOURCES solo_cache.cpp)
reasampler_test(solo_cache LINK solo_cache)

reasampler_pure_library(fx_offline SOURCES fx_offline.cpp)
reasampler_test(fx_offline LINK fx_offline)

# lane_keys, solo_cache and fx_offline are PUBLIC: the lane-minting plan names managed lanes
# through the one durable-key convention, ViewModeModel exposes the SoloCache by reference, and
# TrackSnapshot/TrackPlan carry the FX-offline types by value — so every consumer has to
# resolve those symbols too.
reasampler_pure_library(view_mode_model
    SOURCES view_mode_model.cpp
    LINK PRIVATE json PUBLIC lane_keys solo_cache fx_offline)
reasampler_test(view_mode_model LINK view_mode_model)

reasampler_pure_library(view_tree SOURCES view_tree.cpp LINK PUBLIC view_mode_model)
reasampler_test(view_tree LINK view_tree)

reasampler_pure_library(guid_diff SOURCES guid_diff.cpp)
reasampler_test(guid_diff LINK guid_diff)

reasampler_pure_library(mode_switch SOURCES mode_switch.cpp)
reasampler_test(mode_switch LINK mode_switch)
