cmake_minimum_required (VERSION 2.8) # 设置编译器路径 set(CMAKE_C_COMPILER "arm-openwrt-linux-gcc") set(CMAKE_CXX_COMPILER "arm-openwrt-linux-g++") # 设置目标平台和架构 set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR arm) project (pdu_ctrl_app) add_definitions(-DSHELL_CFG_USER="shell_cfg_user.h") set(STAGING_DIR "/home/liyi/tina/out/t113-bingpi_m2/staging_dir") set(COMPILING_DIR "/home/liyi/tina/out/t113-bingpi_m2/compile_dir") include_directories (${PROJECT_SOURCE_DIR}/modbus/inc ${PROJECT_SOURCE_DIR}/ini ${PROJECT_SOURCE_DIR}/sqlite/inc) include_directories (${PROJECT_SOURCE_DIR}/easylogger/os/inc) include_directories (${PROJECT_SOURCE_DIR}/easylogger/inc) include_directories (${PROJECT_SOURCE_DIR}/easylogger/plugins/file) include_directories (${STAGING_DIR}/target/usr/include) include_directories (${PROJECT_SOURCE_DIR}/letter/src) include_directories (${PROJECT_SOURCE_DIR}/letter/os) include_directories (${PROJECT_SOURCE_DIR}/mongoose) include_directories (${PROJECT_SOURCE_DIR}/sqlite/inc) include_directories (${PROJECT_SOURCE_DIR}/modbus) include_directories (${PROJECT_SOURCE_DIR}/snmp/include) include_directories (${PROJECT_SOURCE_DIR}/upgrade) include_directories (${PROJECT_SOURCE_DIR}/config) include_directories (${SYS_ROOT}) link_directories(${PROJECT_SOURCE_DIR}/appweb/lib) link_directories(${PROJECT_SOURCE_DIR}/snmp/lib) #link_directories(${PROJECT_SOURCE_DIR}/sqlite/lib) link_directories(${PROJECT_SOURCE_DIR}/modbus/lib) link_directories(${STAGING_DIR}/target/usr/lib) link_directories(${STAGING_DIR}/target/lib) link_directories(${COMPILING_DIR}/target/lib) link_directories(${COMPILING_DIR}/target/usr/lib) link_directories(${COMPILING_DIR}/target/usr/lib/arm-qt/lib) add_definitions("-Wall -g") set(PDU_SRC_LIST ${PROJECT_SOURCE_DIR}/letter/src/shell_cmd_list.c ${PROJECT_SOURCE_DIR}/letter/src/shell_companion.c ${PROJECT_SOURCE_DIR}/letter/src/shell_ext.c ${PROJECT_SOURCE_DIR}/letter/src/shell.c ${PROJECT_SOURCE_DIR}/letter/os/shell_port.c ${PROJECT_SOURCE_DIR}/easylogger/os/port/elog_file_port.c ${PROJECT_SOURCE_DIR}/easylogger/os/port/elog_port.c ${PROJECT_SOURCE_DIR}/easylogger/plugins/file/elog_file.c ${PROJECT_SOURCE_DIR}/easylogger/src/elog.c ${PROJECT_SOURCE_DIR}/easylogger/src/elog_async.c ${PROJECT_SOURCE_DIR}/easylogger/src/elog_buf.c ${PROJECT_SOURCE_DIR}/easylogger/src/elog_utils.c ${PROJECT_SOURCE_DIR}/ini/dictionary.c ${PROJECT_SOURCE_DIR}/ini/iniparser.c ${PROJECT_SOURCE_DIR}/mongoose/mongoose.c ${PROJECT_SOURCE_DIR}/src/websocket_handle.c ${PROJECT_SOURCE_DIR}/src/io.c ${PROJECT_SOURCE_DIR}/src/lcd_app.c ${PROJECT_SOURCE_DIR}/src/lcd_drv.c ${PROJECT_SOURCE_DIR}/src/sensor_handle.c ${PROJECT_SOURCE_DIR}/src/cJSON.c ${PROJECT_SOURCE_DIR}/src/language_common.c ${PROJECT_SOURCE_DIR}/src/common.c ${PROJECT_SOURCE_DIR}/src/app.c ${PROJECT_SOURCE_DIR}/src/appweb_handle.c ${PROJECT_SOURCE_DIR}/src/modbus_handle.c ${PROJECT_SOURCE_DIR}/src/sqlite_handle.c ${PROJECT_SOURCE_DIR}/src/switch_ctrl.c ${PROJECT_SOURCE_DIR}/src/json_handle.c ${PROJECT_SOURCE_DIR}/src/sys.c ${PROJECT_SOURCE_DIR}/src/dflt.c ${PROJECT_SOURCE_DIR}/src/paras.c ${PROJECT_SOURCE_DIR}/src/xlist.c ${PROJECT_SOURCE_DIR}/src/thread.c ${PROJECT_SOURCE_DIR}/src/cascade.c ${PROJECT_SOURCE_DIR}/src/cascade_slave.c ${PROJECT_SOURCE_DIR}/src/upg.c ${PROJECT_SOURCE_DIR}/src/file.c ${PROJECT_SOURCE_DIR}/src/lock.c ${PROJECT_SOURCE_DIR}/src/smtp.c ${PROJECT_SOURCE_DIR}/src/mqtt.c ${PROJECT_SOURCE_DIR}/src/netswitch.c ${PROJECT_SOURCE_DIR}/src/main.c ${PROJECT_SOURCE_DIR}/src/language_hashmap.c ${PROJECT_SOURCE_DIR}/src/ntpclient.c ${PROJECT_SOURCE_DIR}/src/pduMIB_form.c ${PROJECT_SOURCE_DIR}/src/pduMIB_scalar.c ${PROJECT_SOURCE_DIR}/src/pduMIB_trap.c ${PROJECT_SOURCE_DIR}/src/hlw8110_handle.c #${PROJECT_SOURCE_DIR}/src/breaker_detection.c ${PROJECT_SOURCE_DIR}/modbus/modbus.c ${PROJECT_SOURCE_DIR}/modbus/modbus-data.c ${PROJECT_SOURCE_DIR}/modbus/modbus-rtu.c ${PROJECT_SOURCE_DIR}/modbus/modbus-tcp.c ) set(NO_WARNNING_FLAGS "-Wno-unused-function -Wno-unused-variable -Wno-unused-but-set-variable") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${NO_WARNNING_FLAGS} -Werror") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${NO_WARNNING_FLAGS} -Werror") #set_target_properties(my_executable PROPERTIES LINK_FLAGS "-pthread") add_executable(smartPDU ${PDU_SRC_LIST}) target_link_libraries(smartPDU -lsqlite3 -lssl -lc -ldl -lcurl -lpthread -lnetsnmp -lnetsnmpagent -lrt) set(SRC_DIR ${PROJECT_BINARY_DIR}) set(DST_DIR ${PROJECT_SOURCE_DIR}/../output) set(CHIP t113i) set(UPG_SRC_LIST ${PROJECT_SOURCE_DIR}/upgrade/md5.c ${PROJECT_SOURCE_DIR}/upgrade/upgrade.c) add_executable(smartUPG ${UPG_SRC_LIST}) target_link_libraries(smartUPG -lc -lpthread) add_custom_command(TARGET smartUPG POST_BUILD COMMAND mkdir -p ${DST_DIR}/${CHIP}/usr/sbin COMMAND cp -upf ${SRC_DIR}/smartUPG ${DST_DIR}/${CHIP}/usr/sbin) add_custom_command(TARGET smartPDU POST_BUILD COMMAND mkdir -p ${DST_DIR}/${CHIP}/root/run/app COMMAND cp -upf ${SRC_DIR}/smartPDU ${DST_DIR}/${CHIP}/root/run/app) #execute_process(COMMAND ${DST_DIR}/pack.sh) #add_custom_target(PACK COMMAND ${DST_DIR}/pack.sh ALWAYS)