12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- cmake_minimum_required(VERSION 3.16)
- project(jtjai_media)
- set(CMAKE_CXX_STANDARD 17)
- # Find required packages
- find_package(fmt CONFIG REQUIRED)
- find_package(Boost REQUIRED COMPONENTS json system)
- # 查找FFmpeg库
- find_path(AVCODEC_INCLUDE_DIR libavcodec/avcodec.h)
- find_library(AVCODEC_LIBRARY avcodec)
- find_path(AVFORMAT_INCLUDE_DIR libavformat/avformat.h)
- find_library(AVFORMAT_LIBRARY avformat)
- find_path(AVUTIL_INCLUDE_DIR libavutil/avutil.h)
- find_library(AVUTIL_LIBRARY avutil)
- find_path(SWSCALE_INCLUDE_DIR libswscale/swscale.h)
- find_library(SWSCALE_LIBRARY swscale)
- if(NOT AVCODEC_LIBRARY OR NOT AVFORMAT_LIBRARY OR NOT AVUTIL_LIBRARY OR NOT SWSCALE_LIBRARY)
- message(FATAL_ERROR "FFmpeg libraries not found")
- endif()
- # 设置包含目录
- include_directories(${CMAKE_SOURCE_DIR}/include)
- include_directories(${AVCODEC_INCLUDE_DIR})
- include_directories(${AVFORMAT_INCLUDE_DIR})
- include_directories(${AVUTIL_INCLUDE_DIR})
- include_directories(${SWSCALE_INCLUDE_DIR})
- # Source files for main application
- set(MAIN_SOURCES
- "src/config.cpp"
- "src/rtsp_client.cpp"
- "src/scheduler.cpp"
- "src/reporter.cpp"
- "src/concurrent_calculator.cpp"
- "src/http_server.cpp"
- "main.cpp"
- )
- # Source files for HTTP server
- set(HTTP_SERVER_SOURCES
- "src/http_server.cpp"
- "http_server_main.cpp"
- )
- # Main RTSP client application
- add_executable(jtjai_media ${MAIN_SOURCES})
- # HTTP server application
- add_executable(jtjai_http_server ${HTTP_SERVER_SOURCES})
- # 链接库 - RTSP client
- target_link_libraries(jtjai_media PRIVATE
- fmt::fmt
- Boost::json
- Boost::system
- ${AVFORMAT_LIBRARY}
- ${AVCODEC_LIBRARY}
- ${AVUTIL_LIBRARY}
- ${SWSCALE_LIBRARY}
- pthread
- )
- # 链接库 - HTTP server
- target_link_libraries(jtjai_http_server PRIVATE
- fmt::fmt
- Boost::json
- Boost::system
- pthread
- )
|