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
3.0 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 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 ${CMAKE_CURRENT_BINARY_DIR}/)
  9. include(zcmake/zcmake.cmake)
  10. project(app)
  11. # 设置ccache加速C++编译速度
  12. set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
  13. set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
  14. # 设置通用编译选项
  15. set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wno-format-overflow")
  16. set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wno-unused-local-typedefs")
  17. set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wno-unused-but-set-variable")
  18. set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wno-deprecated-declarations")
  19. set(C_CPP_FLAGS "${C_CPP_FLAGS} -Werror=return-type")
  20. set(C_CPP_FLAGS "${C_CPP_FLAGS} -Werror=parentheses")
  21. set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wfatal-errors")
  22. set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wno-comment")
  23. set(C_CPP_FLAGS "${C_CPP_FLAGS} -O3")
  24. set(C_CPP_FLAGS "${C_CPP_FLAGS} -g3")
  25. set(C_CPP_FLAGS "${C_CPP_FLAGS} -fPIC")
  26. set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wall")
  27. # 设置C编译选项
  28. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_CPP_FLAGS}")
  29. # 设置CPP编译选项
  30. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${C_CPP_FLAGS}")
  31. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-pessimizing-move")
  32. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-reorder")
  33. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
  34. message("CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
  35. message("PROJECT_NAME: ${PROJECT_NAME}")
  36. message("PUBLIC_LINK_DIRECTORIES: ${PUBLIC_LINK_DIRECTORIES}")
  37. message("PUBLIC_INCLUDE_DIRECTORIES: ${PUBLIC_INCLUDE_DIRECTORIES}")
  38. message("PUBLIC_LINK_LIBS: ${PUBLIC_LINK_LIBS}")
  39. # 添加相应的依赖代码
  40. include(dep/iflytopcpp/module.cmake)
  41. include(dep/asio1.12.2/module.cmake)
  42. include(dep/websocketpp/module.cmake)
  43. include(dep/zservice_container/module.cmake)
  44. include(dep/zwebservice/module.cmake)
  45. include(dep/zlinuxcomponents/alsaplayer/module.cmake)
  46. include(dep/zlinuxcomponents/rootfs_auto_update/module.cmake)
  47. include(dep/zlinuxcomponents/mycroft_precise/module.cmake)
  48. include(dep/zlinuxcomponents/audio/module.cmake)
  49. include(dep/zlinuxcomponents/aiui_ws/module.cmake)
  50. # 设置当前工程依赖的头文件路径和链接的库文件
  51. set(DEP_LINK_LIBRARIES
  52. ${DEP_LINK_LIBRARIES}
  53. # ffmpeg
  54. avcodec
  55. avdevice
  56. avfilter
  57. avformat
  58. avutil
  59. swresample
  60. swscale
  61. m
  62. # sys
  63. asound
  64. pthread
  65. ${PUBLIC_LINK_LIBS}
  66. # curlpp curl
  67. )
  68. # 设置头文件路径
  69. set(PUBLIC_INCLUDE_DIRECTORIES ${PUBLIC_INCLUDE_DIRECTORIES})
  70. # 设置链接库路径
  71. set(PUBLIC_LINK_DIRECTORIES ${PUBLIC_LINK_DIRECTORIES})
  72. # 如何 BUILD_FOR_TEST_ON_PC == true, 则include cmakepc.cmake
  73. if(BUILD_FOR_TEST_ON_PC)
  74. #
  75. # 编译PC版本的相关测试代码,具体使用参考README.md
  76. #
  77. include(CMakeListsPC.cmake)
  78. return()
  79. else()
  80. #
  81. # 编译嵌入式版本的相关代码,具体使用参考README.md
  82. #
  83. include(CMakeListsAARCH64.cmake)
  84. return()
  85. endif()