cmake_minimum_required(VERSION 3.24)
project(ReforgeShaperCommonConsumer LANGUAGES CXX)

find_package(ReforgeShaper CONFIG REQUIRED)

add_executable(
    reforge_shaper_foundation_consumer
    ../native/standalone_consumer.cpp
)
target_compile_features(
    reforge_shaper_foundation_consumer PRIVATE cxx_std_17
)
target_link_libraries(
    reforge_shaper_foundation_consumer
    PRIVATE
        ReforgeShaper::dynamics
        ReforgeShaper::model
        ReforgeShaper::runtime
        ReforgeShaper::trajectory
        ReforgeShaper::window
)
if(TARGET ReforgeShaper::solver)
    target_compile_definitions(
        reforge_shaper_foundation_consumer
        PRIVATE REFORGE_SHAPER_CONSUMER_HAS_SOLVER
    )
    target_link_libraries(
        reforge_shaper_foundation_consumer PRIVATE ReforgeShaper::solver
    )
endif()
if(TARGET ReforgeShaper::backend)
    target_compile_definitions(
        reforge_shaper_foundation_consumer
        PRIVATE REFORGE_SHAPER_CONSUMER_HAS_BACKEND
    )
    target_link_libraries(
        reforge_shaper_foundation_consumer PRIVATE ReforgeShaper::backend
    )
endif()
