61 lines
1.4 KiB
CMake
61 lines
1.4 KiB
CMake
cmake_minimum_required(VERSION 3.18)
|
|
set(PROJECT_NAME RTSPDecoder)
|
|
project(${PROJECT_NAME})
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
if(POLICY CMP0146)
|
|
cmake_policy(SET CMP0146 OLD)
|
|
endif()
|
|
|
|
# 设置项目生成目录
|
|
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/app/lib)
|
|
|
|
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
|
|
|
|
# 如果使用CUDA
|
|
option(USE_CUDA "Enable CUDA support" ON)
|
|
if(USE_CUDA)
|
|
find_package(CUDA REQUIRED)
|
|
endif()
|
|
|
|
# 查找依赖库
|
|
find_package(OpenCV REQUIRED)
|
|
find_package(FFmpeg REQUIRED)
|
|
|
|
|
|
# 添加动态库
|
|
add_library(${PROJECT_NAME} SHARED
|
|
RTSPDecoder.cpp
|
|
RTSPDecoder.h
|
|
)
|
|
|
|
target_include_directories(${PROJECT_NAME} PRIVATE
|
|
${OpenCV_INCLUDE_DIRS}
|
|
${FFmpeg_INCLUDE_DIRS}
|
|
)
|
|
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE
|
|
${OpenCV_LIBS}
|
|
# ${FFmpeg_LIBRARIES}
|
|
avutil avcodec avformat avdevice avfilter swscale swresample
|
|
)
|
|
|
|
if(USE_CUDA AND CUDA_FOUND)
|
|
target_include_directories(${PROJECT_NAME} PRIVATE ${CUDA_INCLUDE_DIRS})
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE ${CUDA_LIBRARIES})
|
|
target_compile_definitions(${PROJECT_NAME} PRIVATE USE_CUDA_ACCEL)
|
|
endif()
|
|
|
|
# 安装规则
|
|
install(TARGETS ${PROJECT_NAME}
|
|
LIBRARY DESTINATION lib
|
|
ARCHIVE DESTINATION lib
|
|
)
|
|
|
|
install(FILES RTSPDecoder.h
|
|
DESTINATION include
|
|
)
|
|
|