CMakeLists.txt 2.92 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
if(DISABLE_AV)
  return()
endif(DISABLE_AV)

cmake_minimum_required(VERSION 3.2)

set(COMMON_SOURCES
    src/avMuxer.cpp
    src/filemuxer.cpp
    src/livemuxer.cpp
    src/muxer.cpp
    src/qt-faststart.cpp
    src/util.cpp
    )

set(COMMON_HEADERS
    include/avMuxer.hpp
    include/filemuxer.hpp
    include/livemuxer.hpp
    include/muxer.hpp
    include/qt-faststart.hpp
    include/util.hpp
    )

function(setup_format BACKEND_NAME USE_CUDA)
  set(LIST_NAME format_cuda_${USE_CUDA})
  add_library(${LIST_NAME} OBJECT ${COMMON_SOURCES} ${COMMON_HEADERS})
  set_property(TARGET ${LIST_NAME} PROPERTY FOLDER "plugins")
  set_property(TARGET ${LIST_NAME} PROPERTY CXX_STANDARD 14)
  set_property(TARGET ${LIST_NAME} PROPERTY POSITION_INDEPENDENT_CODE TRUE)
  add_cppcheck(${LIST_NAME} VS)

  include_lib_vs_headers(${LIST_NAME})
  target_include_directories(${LIST_NAME} PRIVATE include)
  target_include_directories(${LIST_NAME} PRIVATE ../include)
  set(FFMPEG_INCLUDE_PATH ${CMAKE_EXTERNAL_DEPS}/include/ffmpeg)

  target_include_directories(${LIST_NAME} PRIVATE ${FFMPEG_INCLUDE_PATH})
  if(LINUX OR APPLE)
    # VSA-5342: we're using functionality that has been deprecated in ffmpeg 3
    target_compile_options(${LIST_NAME} PRIVATE -Wno-deprecated-declarations)
  endif(LINUX OR APPLE)

44
  if(LINUX)
45 46 47
      find_library(FFMPEG_avcodec avcodec REQUIRED)
      find_library(FFMPEG_avformat avformat REQUIRED)
      find_library(FFMPEG_avutil avutil REQUIRED)
48
  elseif(ANDROID)
49 50 51
      find_library(FFMPEG_avcodec avcodec PATHS ${CMAKE_EXTERNAL_DEPS}/lib REQUIRED NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
      find_library(FFMPEG_avformat avformat PATHS ${CMAKE_EXTERNAL_DEPS}/lib REQUIRED NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
      find_library(FFMPEG_avutil avutil PATHS ${CMAKE_EXTERNAL_DEPS}/lib REQUIRED NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
52
  endif()
53 54 55 56 57 58 59 60 61

  if(WINDOWS)
    set(FFMPEG_LIB_PATH ${CMAKE_EXTERNAL_DEPS}/lib/ffmpeg)
    find_library(FFMPEG_avcodec NAMES avcodec PATHS ${FFMPEG_LIB_PATH} NO_DEFAULT_PATH)
    find_library(FFMPEG_avformat NAMES avformat PATHS ${FFMPEG_LIB_PATH} NO_DEFAULT_PATH)
    find_library(FFMPEG_avutil NAMES avutil PATHS ${FFMPEG_LIB_PATH} NO_DEFAULT_PATH)
  endif(WINDOWS)

  if(APPLE)
62
    if(MACPORTS)
63 64 65 66
      find_library(FFMPEG_avcodec NAMES avcodec)
      find_library(FFMPEG_avformat NAMES avformat)
      find_library(FFMPEG_avutil NAMES avutil)
      target_include_directories(${LIST_NAME} PRIVATE /opt/local/include)
67
    else()
jerem's avatar
jerem committed
68 69 70 71
      find_library(FFMPEG_avcodec NAMES avcodec)
      find_library(FFMPEG_avformat NAMES avformat)
      find_library(FFMPEG_avutil NAMES avutil)
      target_include_directories(${LIST_NAME} PRIVATE /usr/local/include)
72
    endif()
73
  endif()
74 75 76 77 78 79 80 81 82 83 84
  set(FFMPEG_libraries_cuda_${USE_CUDA} ${FFMPEG_avcodec} ${FFMPEG_avutil} ${FFMPEG_avformat} CACHE STRING "FFMPEG LIBRARIES")

endfunction()

if(GPU_BACKEND_CUDA)
  setup_format("cuda" "ON")
endif()
if(GPU_BACKEND_OPENCL)
  setup_format("opencl" "OFF")
endif()