cmake_minimum_required(VERSION 3.5)
project(barrier_gate)

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

list (APPEND    CMAKE_MODULE_PATH   "$ENV{HT_BUILDSYS_CMAKE_MODULES}")
include (HtCMakePub)

# Import git dependencies.
import_git_modules (
    REPOSITORIES    "3rdparty/libmosquitto"
                    "3rdparty/libprotobuf"
)

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()

include_directories(
    ${CMAKE_CURRENT_SOURCE_DIR}/src
)

# 收集源文件
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/modbus SRCS)
AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src/uart SRCS)
add_executable(${PROJECT_NAME} ${SRCS})

install (TARGETS ${PROJECT_NAME}
        ARCHIVE DESTINATION lib
        LIBRARY DESTINATION lib
        RUNTIME DESTINATION bin
        )

target_include_directories(${PROJECT_NAME}
PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/include
)

add_git_dependencies (
    TARGET          ${PROJECT_NAME}
    REPOSITORIES    "3rdparty/libmosquitto"
)


target_include_directories(${PROJECT_NAME}
PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/include
)
target_link_libraries(${PROJECT_NAME}
    ${Coin_LIBRARIES}
    pthread
)

install (TARGETS ${PROJECT_NAME}
        ARCHIVE DESTINATION lib
        LIBRARY DESTINATION lib
        RUNTIME DESTINATION bin
        )

set(MAJOR_VERSION 1)
set(MINOR_VERSION 0)
set(PATCH_VERSION 3)     

set (CPACK_PACKAGE_NAME                 "ht-${PROJECT_NAME}")
set (CPACK_PACKAGE_VERSION_MAJOR        "${MAJOR_VERSION}")
set (CPACK_PACKAGE_VERSION_MINOR        "${MINOR_VERSION}")
set (CPACK_PACKAGE_VERSION_PATCH        "${PATCH_VERSION}")

set (CPACK_PACKAGE_CONTACT              "Li Songpo <songpo.li@waytous.com>")

if (TARGET_DISTRO_TYPE STREQUAL "debian_based")
    set (CPACK_DEBIAN_PACKAGE_DESCRIPTION   "Hello world. Branch: ${GIT_BRANCH}. Commit: ${GIT_LAST_COMMIT}.")
    file (GLOB_RECURSE  PACKAGE_EXTRAS
        "${CMAKE_CURRENT_SOURCE_DIR}/debian_package/*"
        )

    add_deb_control_extra (
        FILES       "${PACKAGE_EXTRAS}")

endif ()

add_deb_dependencies(
    PACKAGES "ht-3rdparty-libmosquitto"
)


include(HtCPack)