CMakeLists.txt 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. cmake_minimum_required (VERSION 2.8)
  2. set(CHIP t113i)
  3. #set(CHIP t113s)
  4. if(${CHIP} STREQUAL "t113i" )
  5. # 设置编译器路径
  6. set(CMAKE_C_COMPILER "arm-linux-gnueabi-gcc")
  7. set(CMAKE_CXX_COMPILER "arm-linux-gnueabi-g++")
  8. # 设置目标平台和架构
  9. set(CMAKE_SYSTEM_NAME Linux)
  10. set(CMAKE_SYSTEM_PROCESSOR arm)
  11. project (pdu_ctrl_app)
  12. add_definitions(-DSHELL_CFG_USER="shell_cfg_user.h")
  13. add_definitions(-DCHIP_TYPE=0)
  14. include_directories (${PROJECT_SOURCE_DIR}/modbus/inc
  15. ${PROJECT_SOURCE_DIR}/ini
  16. ${PROJECT_SOURCE_DIR}/logo
  17. ${PROJECT_SOURCE_DIR}/sqlite/inc)
  18. include_directories (${PROJECT_SOURCE_DIR}/easylogger/os/inc)
  19. include_directories (${PROJECT_SOURCE_DIR}/easylogger/inc)
  20. include_directories (${PROJECT_SOURCE_DIR}/easylogger/plugins/file)
  21. include_directories (${PROJECT_SOURCE_DIR}/letter/src)
  22. include_directories (${PROJECT_SOURCE_DIR}/letter/os)
  23. include_directories (${PROJECT_SOURCE_DIR}/mongoose)
  24. include_directories (${PROJECT_SOURCE_DIR}/sqlite/inc)
  25. include_directories (${PROJECT_SOURCE_DIR}/modbus/inc)
  26. include_directories (${PROJECT_SOURCE_DIR}/snmp/include)
  27. include_directories (${PROJECT_SOURCE_DIR}/upgrade)
  28. include_directories (${PROJECT_SOURCE_DIR}/config)
  29. include_directories (${PROJECT_SOURCE_DIR}/qrcode)
  30. include_directories (${PROJECT_SOURCE_DIR}/src)
  31. include_directories (${PROJECT_SOURCE_DIR}/ui)
  32. link_directories(${PROJECT_SOURCE_DIR}/appweb/lib)
  33. link_directories(${PROJECT_SOURCE_DIR}/snmp/lib)
  34. link_directories(${PROJECT_SOURCE_DIR}/sqlite/lib)
  35. link_directories(${PROJECT_SOURCE_DIR}/modbus/lib)
  36. add_definitions("-Wall -g")
  37. set(PDU_SRC_LIST
  38. ${PROJECT_SOURCE_DIR}/letter/src/shell_cmd_list.c
  39. ${PROJECT_SOURCE_DIR}/letter/src/shell_companion.c
  40. ${PROJECT_SOURCE_DIR}/letter/src/shell_ext.c
  41. ${PROJECT_SOURCE_DIR}/letter/src/shell.c
  42. ${PROJECT_SOURCE_DIR}/letter/os/shell_port.c
  43. ${PROJECT_SOURCE_DIR}/easylogger/os/port/elog_file_port.c
  44. ${PROJECT_SOURCE_DIR}/easylogger/os/port/elog_port.c
  45. ${PROJECT_SOURCE_DIR}/easylogger/plugins/file/elog_file.c
  46. ${PROJECT_SOURCE_DIR}/easylogger/src/elog.c
  47. ${PROJECT_SOURCE_DIR}/easylogger/src/elog_async.c
  48. ${PROJECT_SOURCE_DIR}/easylogger/src/elog_buf.c
  49. ${PROJECT_SOURCE_DIR}/easylogger/src/elog_utils.c
  50. ${PROJECT_SOURCE_DIR}/ini/dictionary.c
  51. ${PROJECT_SOURCE_DIR}/ini/iniparser.c
  52. ${PROJECT_SOURCE_DIR}/qrcode/qrcode.c
  53. ${PROJECT_SOURCE_DIR}/qrcode/qrc.c
  54. ${PROJECT_SOURCE_DIR}/ui/font.c
  55. ${PROJECT_SOURCE_DIR}/ui/lang.c
  56. ${PROJECT_SOURCE_DIR}/ui/gpio.c
  57. ${PROJECT_SOURCE_DIR}/ui/beep.c
  58. ${PROJECT_SOURCE_DIR}/ui/menu.c
  59. ${PROJECT_SOURCE_DIR}/ui/timer.c
  60. ${PROJECT_SOURCE_DIR}/ui/key.c
  61. ${PROJECT_SOURCE_DIR}/ui/led.c
  62. ${PROJECT_SOURCE_DIR}/ui/lcd.c
  63. ${PROJECT_SOURCE_DIR}/ui/ui.c
  64. ${PROJECT_SOURCE_DIR}/mongoose/mongoose.c
  65. ${PROJECT_SOURCE_DIR}/src/websocket_handle.c
  66. ${PROJECT_SOURCE_DIR}/src/io.c
  67. ${PROJECT_SOURCE_DIR}/src/sensor_handle.c
  68. ${PROJECT_SOURCE_DIR}/src/cJSON.c
  69. ${PROJECT_SOURCE_DIR}/src/language_common.c
  70. ${PROJECT_SOURCE_DIR}/src/common.c
  71. ${PROJECT_SOURCE_DIR}/src/app.c
  72. ${PROJECT_SOURCE_DIR}/src/appweb_handle.c
  73. ${PROJECT_SOURCE_DIR}/src/modbus_handle.c
  74. ${PROJECT_SOURCE_DIR}/src/sqlite_handle.c
  75. ${PROJECT_SOURCE_DIR}/src/switch_ctrl.c
  76. ${PROJECT_SOURCE_DIR}/src/json_handle.c
  77. ${PROJECT_SOURCE_DIR}/src/sys.c
  78. ${PROJECT_SOURCE_DIR}/src/dflt.c
  79. ${PROJECT_SOURCE_DIR}/src/paras.c
  80. ${PROJECT_SOURCE_DIR}/src/xlist.c
  81. ${PROJECT_SOURCE_DIR}/src/thread.c
  82. ${PROJECT_SOURCE_DIR}/src/cascade.c
  83. ${PROJECT_SOURCE_DIR}/src/cascade_slave.c
  84. ${PROJECT_SOURCE_DIR}/src/upg.c
  85. ${PROJECT_SOURCE_DIR}/src/file.c
  86. ${PROJECT_SOURCE_DIR}/src/lock.c
  87. ${PROJECT_SOURCE_DIR}/src/mail.c
  88. ${PROJECT_SOURCE_DIR}/src/mqtt.c
  89. ${PROJECT_SOURCE_DIR}/src/md5.c
  90. ${PROJECT_SOURCE_DIR}/src/netswitch.c
  91. ${PROJECT_SOURCE_DIR}/src/main.c
  92. ${PROJECT_SOURCE_DIR}/src/language_hashmap.c
  93. ${PROJECT_SOURCE_DIR}/src/ntpclient.c
  94. ${PROJECT_SOURCE_DIR}/src/pduMIB_form.c
  95. ${PROJECT_SOURCE_DIR}/src/pduMIB_scalar.c
  96. ${PROJECT_SOURCE_DIR}/src/pduMIB_trap.c
  97. ${PROJECT_SOURCE_DIR}/src/hlw8110_handle.c
  98. ${PROJECT_SOURCE_DIR}/src/breaker_detection.c
  99. ${PROJECT_SOURCE_DIR}/src/cascade_slave_tcp.c
  100. )
  101. set(NO_WARNNING_FLAGS "-Wno-unused-function -Wno-unused-variable -Wno-unused-but-set-variable")
  102. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${NO_WARNNING_FLAGS} -Werror")
  103. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${NO_WARNNING_FLAGS} -Werror")
  104. #set_target_properties(my_executable PROPERTIES LINK_FLAGS "-pthread")
  105. add_executable(smartPDU ${PDU_SRC_LIST})
  106. target_link_libraries(smartPDU -lpcre -lsqlite3 -lssl -lcrypto -lcurl -lmodbus -lc -ldl -lpthread -lnetsnmp -lnetsnmpagent -lrt)
  107. set(SRC_DIR ${PROJECT_BINARY_DIR})
  108. set(DST_DIR ${PROJECT_SOURCE_DIR}/../output)
  109. set(UPG_SRC_LIST ${PROJECT_SOURCE_DIR}/upgrade/md5.c
  110. ${PROJECT_SOURCE_DIR}/upgrade/upgrade.c)
  111. add_executable(smartUPG ${UPG_SRC_LIST})
  112. target_link_libraries(smartUPG -lc -lpthread)
  113. add_custom_command(TARGET smartUPG POST_BUILD
  114. COMMAND mkdir -p ${DST_DIR}/${CHIP}/pack_dir/usr/sbin
  115. COMMAND cp -upf ${SRC_DIR}/smartUPG ${DST_DIR}/${CHIP}/pack_dir/usr/sbin)
  116. add_custom_command(TARGET smartPDU POST_BUILD
  117. COMMAND mkdir -p ${DST_DIR}/${CHIP}/pack_dir/root/run/app
  118. COMMAND cp -upf ${SRC_DIR}/smartPDU ${DST_DIR}/${CHIP}/pack_dir/root/run/app)
  119. #execute_process(COMMAND ${DST_DIR}/pack.sh)
  120. #add_custom_target(PACK COMMAND ${DST_DIR}/pack.sh ALWAYS)
  121. elseif(${CHIP} STREQUAL "t113s" )
  122. set(CMAKE_C_COMPILER "arm-openwrt-linux-gcc")
  123. set(CMAKE_CXX_COMPILER "arm-openwrt-linux-g++")
  124. # 设置目标平台和架构
  125. set(CMAKE_SYSTEM_NAME Linux)
  126. set(CMAKE_SYSTEM_PROCESSOR arm)
  127. project (pdu_ctrl_app)
  128. add_definitions(-DSHELL_CFG_USER="shell_cfg_user.h")
  129. add_definitions(-DCHIP_TYPE=1)
  130. set(STAGING_DIR "/home/liyi/tina/out/t113-bingpi_m2/staging_dir")
  131. set(COMPILING_DIR "/home/liyi/tina/out/t113-bingpi_m2/compile_dir")
  132. include_directories (${PROJECT_SOURCE_DIR}/modbus/src
  133. ${PROJECT_SOURCE_DIR}/ini
  134. ${PROJECT_SOURCE_DIR}/logo
  135. ${PROJECT_SOURCE_DIR}/sqlite/inc)
  136. include_directories (${STAGING_DIR}/target/usr/include)
  137. include_directories (${PROJECT_SOURCE_DIR}/easylogger/os/inc)
  138. include_directories (${PROJECT_SOURCE_DIR}/easylogger/inc)
  139. include_directories (${PROJECT_SOURCE_DIR}/easylogger/plugins/file)
  140. include_directories (${STAGING_DIR}/target/usr/include)
  141. include_directories (${PROJECT_SOURCE_DIR}/letter/src)
  142. include_directories (${PROJECT_SOURCE_DIR}/letter/os)
  143. include_directories (${PROJECT_SOURCE_DIR}/mongoose)
  144. include_directories (${PROJECT_SOURCE_DIR}/sqlite/inc)
  145. include_directories (${PROJECT_SOURCE_DIR}/modbus)
  146. include_directories (${PROJECT_SOURCE_DIR}/snmp/include)
  147. include_directories (${PROJECT_SOURCE_DIR}/upgrade)
  148. include_directories (${PROJECT_SOURCE_DIR}/config)
  149. include_directories (${SYS_ROOT})
  150. link_directories(${PROJECT_SOURCE_DIR}/snmp/lib_ip)
  151. #link_directories(${PROJECT_SOURCE_DIR}/sqlite/lib_ip)
  152. #link_directories(${PROJECT_SOURCE_DIR}/modbus/lib)
  153. link_directories(${STAGING_DIR}/target/usr/lib)
  154. link_directories(${STAGING_DIR}/target/lib)
  155. link_directories(${COMPILING_DIR}/target/lib)
  156. link_directories(${COMPILING_DIR}/target/usr/lib)
  157. link_directories(${COMPILING_DIR}/target/usr/lib/arm-qt/lib)
  158. add_definitions("-Wall -g")
  159. set(PDU_SRC_LIST
  160. ${PROJECT_SOURCE_DIR}/letter/src/shell_cmd_list.c
  161. ${PROJECT_SOURCE_DIR}/letter/src/shell_companion.c
  162. ${PROJECT_SOURCE_DIR}/letter/src/shell_ext.c
  163. ${PROJECT_SOURCE_DIR}/letter/src/shell.c
  164. ${PROJECT_SOURCE_DIR}/letter/os/shell_port.c
  165. ${PROJECT_SOURCE_DIR}/easylogger/os/port/elog_file_port.c
  166. ${PROJECT_SOURCE_DIR}/easylogger/os/port/elog_port.c
  167. ${PROJECT_SOURCE_DIR}/easylogger/plugins/file/elog_file.c
  168. ${PROJECT_SOURCE_DIR}/easylogger/src/elog.c
  169. ${PROJECT_SOURCE_DIR}/easylogger/src/elog_async.c
  170. ${PROJECT_SOURCE_DIR}/easylogger/src/elog_buf.c
  171. ${PROJECT_SOURCE_DIR}/easylogger/src/elog_utils.c
  172. ${PROJECT_SOURCE_DIR}/ini/dictionary.c
  173. ${PROJECT_SOURCE_DIR}/ini/iniparser.c
  174. ${PROJECT_SOURCE_DIR}/mongoose/mongoose.c
  175. ${PROJECT_SOURCE_DIR}/src/websocket_handle.c
  176. ${PROJECT_SOURCE_DIR}/src/io.c
  177. ${PROJECT_SOURCE_DIR}/src/lcd_app.c
  178. ${PROJECT_SOURCE_DIR}/src/lcd_drv.c
  179. ${PROJECT_SOURCE_DIR}/src/sensor_handle.c
  180. ${PROJECT_SOURCE_DIR}/src/cJSON.c
  181. ${PROJECT_SOURCE_DIR}/src/language_common.c
  182. ${PROJECT_SOURCE_DIR}/src/common.c
  183. ${PROJECT_SOURCE_DIR}/src/app.c
  184. ${PROJECT_SOURCE_DIR}/src/appweb_handle.c
  185. ${PROJECT_SOURCE_DIR}/src/modbus_handle.c
  186. ${PROJECT_SOURCE_DIR}/src/sqlite_handle.c
  187. ${PROJECT_SOURCE_DIR}/src/switch_ctrl.c
  188. ${PROJECT_SOURCE_DIR}/src/json_handle.c
  189. ${PROJECT_SOURCE_DIR}/src/sys.c
  190. ${PROJECT_SOURCE_DIR}/src/dflt.c
  191. ${PROJECT_SOURCE_DIR}/src/paras.c
  192. ${PROJECT_SOURCE_DIR}/src/xlist.c
  193. ${PROJECT_SOURCE_DIR}/src/thread.c
  194. ${PROJECT_SOURCE_DIR}/src/cascade.c
  195. ${PROJECT_SOURCE_DIR}/src/cascade_slave.c
  196. ${PROJECT_SOURCE_DIR}/src/upg.c
  197. ${PROJECT_SOURCE_DIR}/src/file.c
  198. ${PROJECT_SOURCE_DIR}/src/lock.c
  199. ${PROJECT_SOURCE_DIR}/src/mail.c
  200. ${PROJECT_SOURCE_DIR}/src/mqtt.c
  201. ${PROJECT_SOURCE_DIR}/src/netswitch.c
  202. ${PROJECT_SOURCE_DIR}/src/main.c
  203. ${PROJECT_SOURCE_DIR}/src/language_hashmap.c
  204. ${PROJECT_SOURCE_DIR}/src/ntpclient.c
  205. ${PROJECT_SOURCE_DIR}/src/pduMIB_form.c
  206. ${PROJECT_SOURCE_DIR}/src/pduMIB_scalar.c
  207. ${PROJECT_SOURCE_DIR}/src/pduMIB_trap.c
  208. ${PROJECT_SOURCE_DIR}/src/hlw8110_handle.c
  209. ${PROJECT_SOURCE_DIR}/src/breaker_detection.c
  210. ${PROJECT_SOURCE_DIR}/src/cascade_slave_tcp.c
  211. ${PROJECT_SOURCE_DIR}/modbus/src/modbus.c
  212. ${PROJECT_SOURCE_DIR}/modbus/src/modbus-data.c
  213. ${PROJECT_SOURCE_DIR}/modbus/src/modbus-rtu.c
  214. ${PROJECT_SOURCE_DIR}/modbus/src/modbus-tcp.c
  215. )
  216. set(NO_WARNNING_FLAGS "-Wno-unused-function -Wno-unused-variable -Wno-unused-but-set-variable")
  217. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${NO_WARNNING_FLAGS} -Werror")
  218. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${NO_WARNNING_FLAGS} -Werror")
  219. add_executable(smartPDU ${PDU_SRC_LIST})
  220. target_link_libraries(smartPDU -lsqlite3 -lssl -lcrypto -lc -ldl -lcurl -lpthread -lnetsnmp -lnetsnmpagent -lrt)
  221. set(SRC_DIR ${PROJECT_BINARY_DIR})
  222. set(DST_DIR ${PROJECT_SOURCE_DIR}/../output)
  223. set(UPG_SRC_LIST ${PROJECT_SOURCE_DIR}/upgrade/md5.c
  224. ${PROJECT_SOURCE_DIR}/upgrade/upgrade.c)
  225. add_executable(smartUPG ${UPG_SRC_LIST})
  226. target_link_libraries(smartUPG -lc -lpthread)
  227. add_custom_command(TARGET smartUPG POST_BUILD
  228. COMMAND mkdir -p ${DST_DIR}/${CHIP}/pack_dir/usr/sbin
  229. COMMAND cp -upf ${SRC_DIR}/smartUPG ${DST_DIR}/${CHIP}/pack_dir/usr/sbin)
  230. add_custom_command(TARGET smartPDU POST_BUILD
  231. COMMAND mkdir -p ${DST_DIR}/${CHIP}/pack_dir/mnt/UDISK/app
  232. COMMAND cp -upf ${SRC_DIR}/smartPDU ${DST_DIR}/${CHIP}/pack_dir/mnt/UDISK/app)
  233. endif()