project(lm75_test C)

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=deprecated-declarations -Wno-deprecated-declarations")

aux_source_directory(./ TEST_SRC)
list(SORT TEST_SRC)
add_executable(${PROJECT_NAME} ${TEST_SRC})

pkg_check_modules(LB_BASE REQUIRED lb_base)
pkg_check_modules(LB_CORE REQUIRED lb_core)
pkg_check_modules(GIO REQUIRED gio-2.0)
# 服务端头文件用于直接调用 server 端函数（如 lbSensor_Read）
pkg_check_modules(LB_SENSOR_SRV REQUIRED lbSensor-server)
pkg_check_modules(LM75_CHIP_SRV REQUIRED lbDriverLm75Chip-server)
pkg_check_modules(LM75_CONF_SRV REQUIRED lbDriverLm75Config-server)
pkg_check_modules(HWMON_PUB REQUIRED lbHardwareMonitor-public)
if (BUILD_ENABLE_SIMULATION)
pkg_check_modules(LM75_SIMU_SRV REQUIRED lbDriverLm75Simulation-server)
endif()

target_include_directories(${PROJECT_NAME} PUBLIC
    ${GLIB2_INCLUDE_DIRS}
    ${LB_BASE_INCLUDE_DIRS}
    ${LB_CORE_INCLUDE_DIRS}
    ${LB_SENSOR_SRV_INCLUDE_DIRS}
    ${LM75_CHIP_SRV_INCLUDE_DIRS}
    ${LM75_CONF_SRV_INCLUDE_DIRS}
    ${HWMON_PUB_INCLUDE_DIRS}
)
if (BUILD_ENABLE_SIMULATION)
    target_include_directories(${PROJECT_NAME} PUBLIC
        ${LM75_SIMU_SRV_INCLUDE_DIRS}
    )
endif()

target_link_directories(${PROJECT_NAME} PUBLIC
    ${GLIB2_LIBRARY_DIRS}
    ${LB_CORE_LIBRARY_DIRS}
    ${LB_SENSOR_SRV_LIBRARY_DIRS}
    ${LM75_CHIP_SRV_LIBRARY_DIRS}
    ${LM75_CONF_SRV_LIBRARY_DIRS}
    ${HWMON_PUB_LIBRARY_DIRS}
)
if (BUILD_ENABLE_SIMULATION)
    target_link_directories(${PROJECT_NAME} PUBLIC
        ${LM75_SIMU_SRV_LIBRARY_DIRS}
    )
endif()

target_link_libraries(${PROJECT_NAME} PUBLIC
    ${GLIB2_LIBRARIES}
    ${GIO_LIBRARIES}
    ${LB_CORE_LIBRARIES}
    ${LB_SENSOR_SRV_LIBRARIES}
    ${LM75_CHIP_SRV_LIBRARIES}
    ${LM75_CONF_SRV_LIBRARIES}
    ${HWMON_PUB_LIBRARIES}
)
if (BUILD_ENABLE_SIMULATION)
    target_link_libraries(${PROJECT_NAME} PUBLIC
        ${LM75_SIMU_SRV_LIBRARIES}
    )
endif()

install(TARGETS ${PROJECT_NAME} DESTINATION opt/litebmc/apps/litebmc)
