cmake_minimum_required(VERSION 3.12)
project(test C)

find_package(PkgConfig REQUIRED)
pkg_check_modules(LB_CORE REQUIRED IMPORTED_TARGET lb_core)
pkg_check_modules(LB_BASE REQUIRED IMPORTED_TARGET lb_base)
pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0)
pkg_check_modules(GLIB2 REQUIRED IMPORTED_TARGET glib-2.0)
pkg_check_modules(LBFDT_PUB REQUIRED IMPORTED_TARGET lbFdt-public)
pkg_check_modules(LBFDT_CLI REQUIRED IMPORTED_TARGET lbFdt-client)

aux_source_directory(test_interface/client TEST_SRC)
aux_source_directory(test_interface/server TEST_SRC)
aux_source_directory(test_interface/public TEST_SRC)
list(SORT TEST_SRC)

add_executable(test test_service.c ${TEST_SRC})

target_compile_options(test PRIVATE -Wno-error=deprecated-declarations -Wno-deprecated-declarations)

target_include_directories(test PRIVATE
    test_interface/mock
    inc
    test_interface/
)

target_link_libraries(test PRIVATE
    PkgConfig::GLIB2
    PkgConfig::LB_CORE
    PkgConfig::LB_BASE
    PkgConfig::GIO
    PkgConfig::LBFDT_PUB
    PkgConfig::LBFDT_CLI
)

execute_process(
    COMMAND dtc -I dts -O dtb -o test_package/test.dtb test_package/test.dts
    COMMAND_ERROR_IS_FATAL ANY
)
execute_process(
    COMMAND ${CMAKE_COMMAND} -E copy test_package/test.dtb ${CMAKE_INSTALL_PREFIX}/sys/firmware/fdt
    COMMAND_ERROR_IS_FATAL ANY
)

install(TARGETS test DESTINATION opt/litebmc/apps/lb_hwmon_test)
