cmake_minimum_required(VERSION 3.0.0) project(bmser_trans VERSION 2.4.3.0 LANGUAGES C) include(CTest) enable_testing() # set(CMAKE_BUILD_TYPE Debug) # set(CMAKE_C_CLANG_TIDY clang-tidy) include(cmake/components.cmake) include(cmake/lib.cmake) include(cmake/port.cmake) set(COMMON_LIB_PATH ${CMAKE_PREFIX_PATH}/lib) # find_library(db_ctrl NAMES db_control PATHS ${COMMON_LIB_PATH}) # find_library(mosquitto NAMES mosquitto PATHS ${COMMON_LIB_PATH}) # find_library(bmser_utils NAMES bmser_utils PATHS ${COMMON_LIB_PATH}) # find_library(bmser_hardware NAMES bmser_hardware PATHS ${COMMON_LIB_PATH}) # # find_library(sqlite3 NAMES sqlite3 PATHS ${COMMON_LIB_PATH}) # find_library(uv NAMES uv PATHS ${COMMON_LIB_PATH}) # find_library(lua NAMES lua PATHS ${COMMON_LIB_PATH}) # find_library(ssl NAMES ssl PATHS ${COMMON_LIB_PATH}) # find_library(crypto NAMES crypto PATHS ${COMMON_LIB_PATH}) set(modbus ${COMMON_LIB_PATH}/modbus_xn/libmodbus.so) set(LIBMODBUS_INC ${CMAKE_PREFIX_PATH}/include/modbus_xn/modbus) set(LIBDBCONTROL_INC ${CMAKE_PREFIX_PATH}/include ${CMAKE_PREFIX_PATH}/include/libdb_control/can ${CMAKE_PREFIX_PATH}/include/libdb_control/canrbus ${CMAKE_PREFIX_PATH}/include/libdb_control/cjson ${CMAKE_PREFIX_PATH}/include/libdb_control/db_control ${CMAKE_PREFIX_PATH}/include/libdb_control/dev ${CMAKE_PREFIX_PATH}/include/libdb_control/mqtt ${CMAKE_PREFIX_PATH}/include/libdb_control/utility ${CMAKE_PREFIX_PATH}/include/libdb_control/utils ${CMAKE_PREFIX_PATH}/include/libdb_control/sqlite_api ${CMAKE_PREFIX_PATH}/include/libdb_control/toolks ) # SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -save-temps=obj") option(BMSER_TRANS_TEST_MODE "test mode" OFF) option(BMSER_TEMPORARILY_BUILD "build some dependecies that not exists temporarily" ON) if (BMSER_TRANS_TEST_MODE) message("enable test mode") set(TEST_ENABLE 1) set(CMAKE_BUILD_TYPE Debug) else() message("disenable test mode") set(TEST_ENABLE 0) endif() string(TIMESTAMP COMPILE_TIME %y%m%d%H%M) # 生成编译时间 configure_file( "${PROJECT_SOURCE_DIR}/src/app/version.h.in" "${PROJECT_SOURCE_DIR}/src/app/version.h" ) message("${BMSER_TEMPORARILY_BUILD} build temp dir") if(BMSER_TEMPORARILY_BUILD) message("build temp dir") add_subdirectory(temp/bmser_ring) endif() set(CMAKE_BUILD_TYPE Debug) add_executable(bmser_trans src/app/bmser_trans.c temp/lnxall/alarm_db.c temp/lnxall/heartbeat.c temp/lnxall/main.c ${COMPONENTS_SRCS} ${LIB_SRCS} ${PORT_SRCS} ) target_include_directories(bmser_trans PRIVATE src/app/ temp/lnxall/ ${COMPONENTS_INCS} ${LIB_INCS} ${PORT_INCS} ${LIBDBCONTROL_INC} ${LIBMODBUS_INC} ) if(BMSER_TEMPORARILY_BUILD) target_include_directories(bmser_msg_ring PRIVATE src/app/ ${PORT_INCS} ${COMPONENTS_INCS} ${LIBDBCONTROL_INC} ) add_dependencies(bmser_trans bmser_msg_ring) endif() if(${EN_TDENGINE}) find_library(taos NAMES taos PATHS ${COMMON_LIB_PATH}) find_library(lz4 NAMES lz4 PATHS ${COMMON_LIB_PATH}) find_library(z NAMES z PATHS ${COMMON_LIB_PATH}) find_library(cjson NAMES cjson PATHS ${COMMON_LIB_PATH}) target_compile_definitions(bmser_trans PRIVATE EN_TDENGINE) target_link_libraries(bmser_trans PRIVATE taos lz4 z cjson db_control mosquitto bmser_utils modbus bmser_hardware pthread rt sqlite3 uv lua ssl crypto) else() target_link_libraries(bmser_trans PRIVATE db_control mosquitto bmser_utils modbus bmser_hardware pthread rt sqlite3 uv lua ssl crypto) endif() if(BMSER_TEMPORARILY_BUILD) target_link_libraries(bmser_trans ${bmser_msg_ring}) endif() if(CMAKE_BUILD_TYPE STREQUAL "Debug") target_compile_options(bmser_trans PRIVATE -g -O0 -Wall) else() target_compile_options(bmser_trans PRIVATE -g0 -Os -Wall) endif() set(CPACK_PROJECT_NAME ${PROJECT_NAME}) set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) include(CPack)