project(lb_mqtt_broker_test C)

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

aux_source_directory(${CMAKE_SOURCE_DIR}/src/lib SRC_TEST_LIB)
list(SORT SRC_TEST_LIB)

add_executable(${PROJECT_NAME}
    lb_mqtt_broker_test.c
    ${SRC_TEST_LIB}
)

pkg_check_modules(LB_CORE REQUIRED lb_core)
pkg_check_modules(LB_BASE REQUIRED lb_base)
pkg_check_modules(MOSQUITTO REQUIRED mosquitto)
pkg_check_modules(LB_MQTT_BROKER_PUBLIC REQUIRED lbMqttBroker-public)
pkg_check_modules(LB_MQTT_BROKER_CLI REQUIRED lbMqttBroker-client)
pkg_check_modules(LB_MQTT_CASCADER_PUBLIC REQUIRED lbMqttCascader-public)
pkg_check_modules(LB_MQTT_CASCADER_CLI REQUIRED lbMqttCascader-client)

target_include_directories(${PROJECT_NAME} PUBLIC
    ${CMAKE_SOURCE_DIR}/inc
    ${LB_CORE_INCLUDE_DIRS}
    ${LB_BASE_INCLUDE_DIRS}
    ${LB_MQTT_BROKER_PUBLIC_INCLUDE_DIRS}
    ${LB_MQTT_BROKER_CLI_INCLUDE_DIRS}
    ${LB_MQTT_CASCADER_PUBLIC_INCLUDE_DIRS}
    ${LB_MQTT_CASCADER_CLI_INCLUDE_DIRS}
    ${MOSQUITTO_INCLUDE_DIRS}
)
target_link_directories(${PROJECT_NAME} PUBLIC
    ${LB_CORE_LIBRARY_DIRS}
    ${LB_BASE_LIBRARY_DIRS}
    ${LB_MQTT_BROKER_PUBLIC_LIBRARY_DIRS}
    ${LB_MQTT_BROKER_CLI_LIBRARY_DIRS}
    ${LB_MQTT_CASCADER_PUBLIC_LIBRARY_DIRS}
    ${LB_MQTT_CASCADER_CLI_LIBRARY_DIRS}
    ${MOSQUITTO_LIBRARY_DIRS}
    $ENV{HOME}/.local/lib64
)
target_link_libraries(${PROJECT_NAME} PUBLIC
    ${LB_CORE_LIBRARIES}
    ${LB_BASE_LIBRARIES}
    ${LB_MQTT_BROKER_PUBLIC_LIBRARIES}
    ${LB_MQTT_BROKER_CLI_LIBRARIES}
    ${LB_MQTT_CASCADER_PUBLIC_LIBRARIES}
    ${LB_MQTT_CASCADER_CLI_LIBRARIES}
    ${MOSQUITTO_LIBRARIES}
)
install(TARGETS ${PROJECT_NAME} DESTINATION opt/litebmc/apps/lb_mqtt)
