You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
2.5 KiB

3 years ago
  1. cmake_minimum_required(VERSION 3.13)
  2. set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
  3. set(CMAKE_SYSTEM_NAME Linux)
  4. set(CMAKE_BUILD_TYPE Debug)
  5. set(CMAKE_SKIP_BUILD_RPATH FALSE)
  6. set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
  7. set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
  8. set(CMAKE_INSTALL_PREFIX "./")
  9. include(zcmake/zcmake.cmake)
  10. project(app)
  11. set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
  12. set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
  13. # 设置通用编译选项
  14. set(C_CPP_FLAGS "${C_CPP_FLAGS} ")
  15. set(C_CPP_FLAGS
  16. "${C_CPP_FLAGS} -Wno-unused-local-typedefs -Wno-unused-but-set-variable -Wno-deprecated-declarations -Wno-unused-variable"
  17. )
  18. set(C_CPP_FLAGS
  19. "${C_CPP_FLAGS} -Wno-unused-local-typedefs -Wno-unused-but-set-variable -Wno-deprecated-declarations -Wno-unused-variable"
  20. )
  21. set(C_CPP_FLAGS
  22. "${C_CPP_FLAGS} -Werror=return-type -Werror=parentheses -Wfatal-errors -Wno-comment"
  23. )
  24. set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wno-format-overflow")
  25. set(C_CPP_FLAGS "${C_CPP_FLAGS} -O0 -g3 -fPIC -Wall")
  26. # 设置C编译选项
  27. set(CMAKE_C_FLAGS "${C_CPP_FLAGS}")
  28. message("CMAKE_C_FLAGS : ${CMAKE_C_FLAGS}")
  29. # 设置CPP编译选项
  30. set(CMAKE_CXX_FLAGS "${C_CPP_FLAGS}")
  31. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-pessimizing-move -Wno-reorder")
  32. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
  33. message("CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
  34. message("PROJECT_NAME: ${PROJECT_NAME}")
  35. set(DEP_INCLUDE ${DEP_INCLUDE} ./dep/)
  36. include(dep/iflytopcpp/module.cmake)
  37. include(dep/asio1.12.2/module.cmake)
  38. include(dep/websocketpp/module.cmake)
  39. include(dep/zservice_container/module.cmake)
  40. include(dep/zwebservice/module.cmake)
  41. include(dep/zlinuxcomponents/module.cmake)
  42. function(zadd_executable_simple)
  43. set(oneValueArgs NAME TARGET)
  44. set(multiValueArgs SRC)
  45. cmake_parse_arguments(VAR "${options}" "${oneValueArgs}" "${multiValueArgs}"
  46. ${ARGN})
  47. zadd_executable(
  48. TARGET
  49. ${VAR_TARGET}
  50. INSTALL
  51. ./app
  52. LINK_LIBRARIES
  53. asound
  54. pthread
  55. INCLUDE_DIRECTORIES
  56. ${DEP_INCLUDE}
  57. ./src
  58. DEFINES
  59. ${DEP_DEFINE}
  60. SRC
  61. ${DEP_SRC}
  62. ${VAR_SRC})
  63. endfunction(zadd_executable_simple)
  64. zadd_executable_simple(
  65. # TARGET
  66. TARGET
  67. app.out
  68. # SRC
  69. SRC
  70. src/main.cpp
  71. src/service/device_io_service.cpp
  72. src/service/device_io_service_mock.cpp
  73. src/service/main_control_service.cpp
  74. src/service/light_control_service.cpp
  75. src/service/report_service.cpp)
  76. zadd_executable_simple(
  77. # TARGET
  78. TARGET #
  79. audio_recorder.out
  80. # SRC
  81. SRC
  82. src/audio_recorder.cpp)