cmake_minimum_required(VERSION 3.5)
project(traffic_light)

set(CMAKE_CXX_STANDARD 11)
SET(CMAKE_CXX_STANDARD_REQUIRED ON)
SET(CMAKE_CXX_EXTENSIONS ON)

execute_process(COMMAND ${CMAKE_C_COMPILER} -march=native -Q -v
                OUTPUT_VARIABLE COMPILER_INFO
                ERROR_VARIABLE COMPILER_INFO)
string(REGEX MATCH "Target: ([^\n]+)" TARGET_ARCH ${COMPILER_INFO})
message("Detected architecture: ${CMAKE_MATCH_1}")
if (${CMAKE_MATCH_1} STREQUAL "aarch64-linux-gnu")
link_directories(
    ${CMAKE_CURRENT_SOURCE_DIR}/lib/aarch64
)
else()
link_directories(
    ${CMAKE_CURRENT_SOURCE_DIR}/lib/x86-64
)
endif()

# 收集源文件
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)
AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src/uart SRCS)
add_executable(${PROJECT_NAME} ${SRCS})
target_include_directories(${PROJECT_NAME}
PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/include
)
target_link_libraries(${PROJECT_NAME}
    ${Coin_LIBRARIES}
    pthread
    mosquitto
)

