cmake_minimum_required(VERSION 3.0.0) project(bmser_virtual_device VERSION 0.1.0 LANGUAGES C) include(CTest) enable_testing() # set(CMAKE_C_CLANG_TIDY clang-tidy) # set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # set(CMAKE_C_CLANG_TIDY # "cppcoreguidelines-pro-bounds-pointer-arithmetic" # ) # set(CMAKE_BUILD_TYPE Debug) aux_source_directory(./src/app MAIN_SRC) include(./cmake/components.cmake) include(./cmake/lib.cmake) include(./cmake/port.cmake) include(./cmake/utils.cmake) find_path(LIBDBCONTROL_DIR bmser_db_control_db.h PATHS ${CMAKE_PREFIX_PATH}/include/libdb_control/db_control) find_path(LIBMODBUS_XN_DIR modbus-version.h PATHS ${CMAKE_PREFIX_PATH}/include//modbus_xn/modbus) message("LIBMODBUS_XN_DIR" ${LIBMODBUS_XN_DIR}) set(COMMON_LIB_PATH ${CMAKE_PREFIX_PATH}/lib) find_library(db_ctrl NAMES db_control PATHS ${COMMON_LIB_PATH}) find_library(bmser_utils NAMES bmser_utils PATHS ${COMMON_LIB_PATH}) find_library(sqlite3 NAME sqlite3 PATHS ${COMMON_LIB_PATH}) find_library(mosquitto NAME mosquitto PATHS ${COMMON_LIB_PATH}) find_library(uv NAME uv PATHS ${COMMON_LIB_PATH}) find_library(lua NAME lua PATHS ${COMMON_LIB_PATH}) set(LIBDBCONTROL_INC ${LIBDBCONTROL_DIR}/../can ${LIBDBCONTROL_DIR}/../cjson ${LIBDBCONTROL_DIR}/../db_control ${LIBDBCONTROL_DIR}/../dev ${LIBMODBUS_XN_DIR}/../modbus $ENV{STAGING_DIR}/usr/include/modbus ${LIBDBCONTROL_DIR}/../mosquitto ${LIBDBCONTROL_DIR}/../mqtt ${LIBDBCONTROL_DIR}/../utility ${LIBDBCONTROL_DIR}/../utils ${LIBDBCONTROL_DIR}/../sqlite_api ) add_executable(bmser_virtual_device ${MAIN_SRC} ${COMPONENTS_SRC_PATH} ${LIB_SRC_PATH} ${PORT_SRC_PATH} ${UTILS_SRC_PATH} ) target_include_directories(bmser_virtual_device PRIVATE ./src/app/ ${COMPONENTS_INC_PATH} ${PORT_INC_PATH} ${LIB_INC_PATH} ${LIBDBCONTROL_INC} ${UTILS_INC_PATH} ) target_link_libraries(bmser_virtual_device PRIVATE ${db_ctrl} ${bmser_utils} ${sqlite3} ${mosquitto} ${uv} ${lua} pthread rt ) if(CMAKE_BUILD_TYPE STREQUAL "Debug") target_compile_options(bmser_virtual_device PRIVATE -g -O0 -Wall -Werror) else() target_compile_options(bmser_virtual_device PRIVATE -g0 -Os -Wall -Werror) endif() if (0) add_executable(udp_test ./test/udp_test.c ./src/components/comm_interfaces/udp_comm_interfaces.c ${PORT_SRC_PATH} ${LIB_SRC_PATH} ${UTILS_SRC_PATH} ) target_include_directories(udp_test PRIVATE ./src/app/ ${COMPONENTS_INC_PATH} ${PORT_INC_PATH} ${LIB_INC_PATH} ${LIBDBCONTROL_INC} ${UTILS_INC_PATH} ) target_link_libraries(udp_test PRIVATE ${db_ctrl} ${bmser_utils} pthread rt ) target_compile_options(udp_test PRIVATE -g -Os -Wall -Werror) endif() set(CPACK_PROJECT_NAME ${PROJECT_NAME}) set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) include(CPack) install(TARGETS bmser_virtual_device DESTINATION bin)