CMakeLists.txt 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. ffmpeg-encoded-output.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. ffmpeg-encoded-output.c
  27. obs-ffmpeg-source.c)
  28. if(UNIX AND NOT APPLE)
  29. list(APPEND obs-ffmpeg_SOURCES
  30. obs-ffmpeg-vaapi.c)
  31. LIST(APPEND obs-ffmpeg_PLATFORM_DEPS
  32. ${LIBVA_LBRARIES})
  33. endif()
  34. if(ENABLE_FFMPEG_LOGGING)
  35. list(APPEND obs-ffmpeg_SOURCES
  36. obs-ffmpeg-logging.c)
  37. endif()
  38. if(WIN32)
  39. set(MODULE_DESCRIPTION "OBS FFmpeg module")
  40. configure_file(${CMAKE_SOURCE_DIR}/cmake/winrc/obs-module.rc.in obs-ffmpeg.rc)
  41. list(APPEND obs-ffmpeg_SOURCES
  42. jim-nvenc.c
  43. jim-nvenc-helpers.c
  44. obs-ffmpeg.rc)
  45. list(APPEND obs-ffmpeg_HEADERS
  46. jim-nvenc.h)
  47. endif()
  48. add_library(obs-ffmpeg MODULE
  49. ${obs-ffmpeg_config_HEADERS}
  50. ${obs-ffmpeg_HEADERS}
  51. ${obs-ffmpeg_SOURCES})
  52. target_link_libraries(obs-ffmpeg
  53. libobs
  54. media-playback
  55. ${obs-ffmpeg_PLATFORM_DEPS}
  56. ${FFMPEG_LIBRARIES})
  57. install_obs_plugin_with_data(obs-ffmpeg data)
  58. add_subdirectory(ffmpeg-mux)