CMakeLists.txt 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. cmake_minimum_required(VERSION 3.16)
  2. project(jtjai_media)
  3. set(CMAKE_CXX_STANDARD 17)
  4. # Find required packages
  5. find_package(fmt CONFIG REQUIRED)
  6. find_package(Boost REQUIRED COMPONENTS json system)
  7. # 查找FFmpeg库
  8. find_path(AVCODEC_INCLUDE_DIR libavcodec/avcodec.h)
  9. find_library(AVCODEC_LIBRARY avcodec)
  10. find_path(AVFORMAT_INCLUDE_DIR libavformat/avformat.h)
  11. find_library(AVFORMAT_LIBRARY avformat)
  12. find_path(AVUTIL_INCLUDE_DIR libavutil/avutil.h)
  13. find_library(AVUTIL_LIBRARY avutil)
  14. find_path(SWSCALE_INCLUDE_DIR libswscale/swscale.h)
  15. find_library(SWSCALE_LIBRARY swscale)
  16. if(NOT AVCODEC_LIBRARY OR NOT AVFORMAT_LIBRARY OR NOT AVUTIL_LIBRARY OR NOT SWSCALE_LIBRARY)
  17. message(FATAL_ERROR "FFmpeg libraries not found")
  18. endif()
  19. # 设置包含目录
  20. include_directories(${CMAKE_SOURCE_DIR}/include)
  21. include_directories(${AVCODEC_INCLUDE_DIR})
  22. include_directories(${AVFORMAT_INCLUDE_DIR})
  23. include_directories(${AVUTIL_INCLUDE_DIR})
  24. include_directories(${SWSCALE_INCLUDE_DIR})
  25. # Source files for main application
  26. set(MAIN_SOURCES
  27. "src/config.cpp"
  28. "src/rtsp_client.cpp"
  29. "src/scheduler.cpp"
  30. "src/reporter.cpp"
  31. "src/concurrent_calculator.cpp"
  32. "src/http_server.cpp"
  33. "main.cpp"
  34. )
  35. # Source files for HTTP server
  36. set(HTTP_SERVER_SOURCES
  37. "src/http_server.cpp"
  38. "http_server_main.cpp"
  39. )
  40. # Main RTSP client application
  41. add_executable(jtjai_media ${MAIN_SOURCES})
  42. # HTTP server application
  43. add_executable(jtjai_http_server ${HTTP_SERVER_SOURCES})
  44. # 链接库 - RTSP client
  45. target_link_libraries(jtjai_media PRIVATE
  46. fmt::fmt
  47. Boost::json
  48. Boost::system
  49. ${AVFORMAT_LIBRARY}
  50. ${AVCODEC_LIBRARY}
  51. ${AVUTIL_LIBRARY}
  52. ${SWSCALE_LIBRARY}
  53. pthread
  54. )
  55. # 链接库 - HTTP server
  56. target_link_libraries(jtjai_http_server PRIVATE
  57. fmt::fmt
  58. Boost::json
  59. Boost::system
  60. pthread
  61. )