add_library(datasets SHARED
    equivalence_graph.cpp
    object_graph.cpp
    state_graph.cpp
)
add_library(runir::datasets ALIAS datasets)

set_target_properties(datasets PROPERTIES OUTPUT_NAME runir_datasets)

target_compile_features(datasets PUBLIC cxx_std_20)

target_include_directories(datasets
    PUBLIC
        $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
        $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)

target_link_libraries(datasets
    PUBLIC
        fmt::fmt-header-only
        runir::graphs
        tyr::core
)

target_compile_definitions(datasets
    PUBLIC
        FMT_HEADER_ONLY
)

if(APPLE)
    set(RUNIR_DATASETS_LIBRARY_ORIGIN "@loader_path")
elseif(UNIX)
    set(RUNIR_DATASETS_LIBRARY_ORIGIN "$ORIGIN")
endif()

set_target_properties(datasets PROPERTIES INSTALL_RPATH "${RUNIR_DATASETS_LIBRARY_ORIGIN}")

install(TARGETS datasets
    EXPORT runirTargets
    LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT runir
    ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT runir
    RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runir
    INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
)
