CMakeLists.txt 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. cmake_minimum_required (VERSION 2.8)
  2. # 设置编译器路径
  3. set(CMAKE_C_COMPILER "arm-linux-gnueabi-gcc")
  4. set(CMAKE_CXX_COMPILER "arm-linux-gnueabi-g++")
  5. # 设置目标平台和架构
  6. set(CMAKE_SYSTEM_NAME Linux)
  7. set(CMAKE_SYSTEM_PROCESSOR arm)
  8. project (pdu_ctrl_app)
  9. add_definitions(-DSHELL_CFG_USER="shell_cfg_user.h")
  10. include_directories (${PROJECT_SOURCE_DIR}/modbus/inc ${PROJECT_SOURCE_DIR}/sqlite/inc ${PROJECT_SOURCE_DIR}/appweb/inc)
  11. include_directories (${PROJECT_SOURCE_DIR}/easylogger/os/inc)
  12. include_directories (${PROJECT_SOURCE_DIR}/easylogger/inc)
  13. include_directories (${PROJECT_SOURCE_DIR}/easylogger/plugins/file)
  14. include_directories (${PROJECT_SOURCE_DIR}/letter/src)
  15. include_directories (${PROJECT_SOURCE_DIR}/letter/os)
  16. include_directories (${PROJECT_SOURCE_DIR}/mongoose)
  17. include_directories (${PROJECT_SOURCE_DIR}/sqlite/inc)
  18. include_directories (${PROJECT_SOURCE_DIR}/modbus/inc)
  19. include_directories (${PROJECT_SOURCE_DIR}/snmp/include)
  20. include_directories (${PROJECT_SOURCE_DIR}/upgrade)
  21. include_directories (${PROJECT_SOURCE_DIR}/config)
  22. link_directories(${PROJECT_SOURCE_DIR}/appweb/lib)
  23. link_directories(${PROJECT_SOURCE_DIR}/snmp/lib)
  24. link_directories(${PROJECT_SOURCE_DIR}/sqlite/lib)
  25. link_directories(${PROJECT_SOURCE_DIR}/modbus/lib)
  26. add_definitions("-Wall -g")
  27. set(PDU_SRC_LIST
  28. ${PROJECT_SOURCE_DIR}/letter/src/shell_cmd_list.c
  29. ${PROJECT_SOURCE_DIR}/letter/src/shell_companion.c
  30. ${PROJECT_SOURCE_DIR}/letter/src/shell_ext.c
  31. ${PROJECT_SOURCE_DIR}/letter/src/shell.c
  32. ${PROJECT_SOURCE_DIR}/letter/os/shell_port.c
  33. ${PROJECT_SOURCE_DIR}/easylogger/os/port/elog_file_port.c
  34. ${PROJECT_SOURCE_DIR}/easylogger/os/port/elog_port.c
  35. ${PROJECT_SOURCE_DIR}/easylogger/plugins/file/elog_file.c
  36. ${PROJECT_SOURCE_DIR}/easylogger/src/elog.c
  37. ${PROJECT_SOURCE_DIR}/easylogger/src/elog_async.c
  38. ${PROJECT_SOURCE_DIR}/easylogger/src/elog_buf.c
  39. ${PROJECT_SOURCE_DIR}/easylogger/src/elog_utils.c
  40. ${PROJECT_SOURCE_DIR}/mongoose/mongoose.c
  41. ${PROJECT_SOURCE_DIR}/src/websocket_handle.c
  42. ${PROJECT_SOURCE_DIR}/src/io.c
  43. ${PROJECT_SOURCE_DIR}/src/lcd_app.c
  44. ${PROJECT_SOURCE_DIR}/src/lcd_drv.c
  45. ${PROJECT_SOURCE_DIR}/src/sensor_handle.c
  46. ${PROJECT_SOURCE_DIR}/src/cJSON.c
  47. ${PROJECT_SOURCE_DIR}/src/common.c
  48. ${PROJECT_SOURCE_DIR}/src/app.c
  49. ${PROJECT_SOURCE_DIR}/src/appweb_handle.c
  50. ${PROJECT_SOURCE_DIR}/src/modbus_handle.c
  51. ${PROJECT_SOURCE_DIR}/src/sqlite_handle.c
  52. ${PROJECT_SOURCE_DIR}/src/switch_ctrl.c
  53. ${PROJECT_SOURCE_DIR}/src/json_handle.c
  54. ${PROJECT_SOURCE_DIR}/src/sys.c
  55. ${PROJECT_SOURCE_DIR}/src/dflt.c
  56. ${PROJECT_SOURCE_DIR}/src/paras.c
  57. ${PROJECT_SOURCE_DIR}/src/xlist.c
  58. ${PROJECT_SOURCE_DIR}/src/thread.c
  59. ${PROJECT_SOURCE_DIR}/src/cascade.c
  60. ${PROJECT_SOURCE_DIR}/src/main.c
  61. ${PROJECT_SOURCE_DIR}/src/language_hashmap.c
  62. ${PROJECT_SOURCE_DIR}/src/ntpclient.c
  63. ${PROJECT_SOURCE_DIR}/src/pduMIB_form.c
  64. ${PROJECT_SOURCE_DIR}/src/pduMIB_scalar.c
  65. ${PROJECT_SOURCE_DIR}/src/pduMIB_trap.c
  66. ${PROJECT_SOURCE_DIR}/src/hlw8110_handle.c
  67. )
  68. #set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
  69. #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
  70. #target_link_options(my_target PRIVATE "-s")
  71. add_executable(smartPDU ${PDU_SRC_LIST})
  72. target_link_libraries(smartPDU -lappweb -lesp -lhttp -lmpr -lpcre -lsqlite3 -lmodbus -lc -ldl -lpthread -lnetsnmp -lnetsnmpagent -lrt)
  73. set(UPG_SRC_LIST
  74. ${PROJECT_SOURCE_DIR}/upgrade/md5.c
  75. ${PROJECT_SOURCE_DIR}/upgrade/upgrade.c)
  76. add_executable(smartUPG ${UPG_SRC_LIST})
  77. target_link_libraries(smartUPG -lc -lpthread)
  78. set(SRC_DIR ${PROJECT_BINARY_DIR})
  79. set(DST_DIR ${PROJECT_SOURCE_DIR}/../output/out)
  80. add_custom_command(TARGET smartPDU POST_BUILD
  81. COMMAND mkdir -p ${DST_DIR}/root/run/app
  82. COMMAND cp -upf ${SRC_DIR}/smartPDU ${DST_DIR}/root/run/app)
  83. add_custom_command(TARGET smartUPG POST_BUILD
  84. COMMAND mkdir -p ${DST_DIR}/usr/sbin
  85. COMMAND cp -upf ${SRC_DIR}/smartUPG ${DST_DIR}/usr/sbin)