cmake_minimum_required(VERSION 3.5)
project(traffic_light_controller)
set(CMAKE_CXX_STANDARD 14)
SET(CMAKE_CXX_STANDARD_REQUIRED ON)
SET(CMAKE_CXX_EXTENSIONS ON)

file(GLOB MSG_PROTOS src/proto/*.proto)
set(PROTOS_DST_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/proto)
foreach(msg ${MSG_PROTOS})
    get_filename_component(FIL_WE ${msg} NAME_WE)
#    list(APPEND MESSAGE_SRC "App/src/dbwt_proto/${FIL_WE}.pb.cc")
#    list(APPEND MESSAGE_HDRS "App/src/dbwt_proto/${FIL_WE}.pb.h")
    execute_process(
        COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tools/protoc -I=${PROTOS_DST_DIR} --cpp_out=${PROTOS_DST_DIR} ${msg}
    )
endforeach()

# 收集源文件
AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src SRCS)
AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src/mqtt SRCS)
AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src/proto SRCS)
AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src/modbus SRCS)
add_executable(${PROJECT_NAME} ${SRCS})
target_include_directories(${PROJECT_NAME}
PRIVATE
    ${light_proto_INCLUDE_DIR}
    ${CMAKE_CURRENT_SOURCE_DIR}/include
)
target_include_directories(${PROJECT_NAME}
PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/lib
)
target_link_libraries(${PROJECT_NAME}
    ${Coin_LIBRARIES}
    pthread
    ${CMAKE_CURRENT_SOURCE_DIR}/lib/libprotobuf.a
    ${CMAKE_CURRENT_SOURCE_DIR}/lib/libmosquitto.so
)

