cmake_minimum_required(VERSION 3.3) set(BIN cffmpeg) project(${BIN}) # set(CMAKE_C_VISIBILITY_PRESET hidden) # set(CMAKE_CXX_VISIBILITY_PRESET hidden) set(CMAKE_CXX_FLAGS "-DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic ${CMAKE_CXX_FLAGS}") set(CMAKE_C_FLAGS "-DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic ${CMAKE_C_FLAGS}") set(CMAKE_CXX_FLAGS_DEBUG "-w -g -O0 -std=c++11 ${CMAKE_CXX_FLAGS}") set(CMAKE_C_FLAGS_DEBUG "-w -g -O0 ${CMAKE_C_FLAGS}") set(CMAKE_CXX_FLAGS_RELEASE "-w -g -O2 -std=c++11 ${CMAKE_CXX_FLAGS}") set(CMAKE_C_FLAGS_RELEASE "-w -g -O2 ${CMAKE_C_FLAGS}") include_directories( ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/csrc/thirdparty ${CMAKE_SOURCE_DIR}/csrc/thirdparty/whereami ${CMAKE_SOURCE_DIR}/csrc/thirdparty/ffmpeg/include ${CMAKE_SOURCE_DIR}/csrc/thirdparty/gb28181/include ${CMAKE_SOURCE_DIR}/csrc/gpu-conv ) set(CUDA_TOOLKIT_ROOT_DIR /usr/local/cuda) include_directories(/usr/local/cuda/include) find_package(CUDA QUIET REQUIRED) link_directories(/usr/local/cuda/lib64 ${CMAKE_SOURCE_DIR}/csrc/thirdparty/gb28181/lib) set(CMAKE_LIBRARY_PATH ${CMAKE_SOURCE_DIR}/csrc/thirdparty/ffmpeg/lib ${CMAKE_LIBRARY_PATH}) find_library(avutil NAMES libavutil.a ) find_library(avformat NAMES libavformat.a ) find_library(avcodec NAMES libavcodec.a ) find_library(avfilter NAMES libavfilter.a) find_library(swscale NAMES libswscale.a) find_library(265 NAMES libx265.a) find_library(264 NAMES libx264.a) set(LINK_LIB ${avformat} ${avcodec} ${avfilter} ${swscale} ${avutil} ${265} ${264} ) file(GLOB_RECURSE FFMPEG_LIST ${CMAKE_SOURCE_DIR}/csrc/*.cpp) list(APPEND FFMPEG_LIST ${CMAKE_SOURCE_DIR}/csrc/thirdparty/whereami/whereami.c) file(GLOB_RECURSE CUDA_LIST ${CMAKE_SOURCE_DIR}/csrc/gpu-conv/*.cu) cuda_add_library(${BIN} SHARED ${FFMPEG_LIST} ${CUDA_LIST}) target_link_libraries(${BIN} ${LINK_LIB} numa nppig nppicc nppc -lz pthread dl rtspclient StreamParse)