CMakeLists.txt 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. project(obs-ffmpeg)
  2. if(MSVC)
  3. set(obs-ffmpeg_PLATFORM_DEPS
  4. w32-pthreads)
  5. endif()
  6. option(ENABLE_FFMPEG_LOGGING "Enables obs-ffmpeg logging" OFF)
  7. find_package(FFmpeg REQUIRED
  8. COMPONENTS avcodec avfilter avdevice avutil swscale avformat swresample)
  9. include_directories(${FFMPEG_INCLUDE_DIRS})
  10. configure_file(
  11. "${CMAKE_CURRENT_SOURCE_DIR}/obs-ffmpeg-config.h.in"
  12. "${CMAKE_CURRENT_BINARY_DIR}/obs-ffmpeg-config.h")
  13. include_directories(${CMAKE_CURRENT_BINARY_DIR})
  14. set(obs-ffmpeg_config_HEADERS
  15. "${CMAKE_CURRENT_BINARY_DIR}/obs-ffmpeg-config.h")
  16. set(obs-ffmpeg_HEADERS
  17. obs-ffmpeg-formats.h
  18. obs-ffmpeg-compat.h
  19. closest-pixel-format.h)
  20. set(obs-ffmpeg_SOURCES
  21. obs-ffmpeg.c
  22. obs-ffmpeg-audio-encoders.c
  23. obs-ffmpeg-nvenc.c
  24. obs-ffmpeg-output.c
  25. obs-ffmpeg-mux.c
  26. obs-ffmpeg-source.c)
  27. if(UNIX AND NOT APPLE)
  28. list(APPEND obs-ffmpeg_SOURCES
  29. obs-ffmpeg-vaapi.c)
  30. LIST(APPEND obs-ffmpeg_PLATFORM_DEPS
  31. ${LIBVA_LBRARIES})
  32. endif()
  33. if(ENABLE_FFMPEG_LOGGING)
  34. list(APPEND obs-ffmpeg_SOURCES
  35. obs-ffmpeg-logging.c)
  36. endif()
  37. if(WIN32)
  38. list(APPEND obs-ffmpeg_SOURCES
  39. jim-nvenc.c
  40. jim-nvenc-helpers.c)
  41. list(APPEND obs-ffmpeg_HEADERS
  42. jim-nvenc.h)
  43. endif()
  44. add_library(obs-ffmpeg MODULE
  45. ${obs-ffmpeg_config_HEADERS}
  46. ${obs-ffmpeg_HEADERS}
  47. ${obs-ffmpeg_SOURCES})
  48. target_link_libraries(obs-ffmpeg
  49. libobs
  50. media-playback
  51. ${obs-ffmpeg_PLATFORM_DEPS}
  52. ${FFMPEG_LIBRARIES})
  53. install_obs_plugin_with_data(obs-ffmpeg data)
  54. add_subdirectory(ffmpeg-mux)