CMakeLists.txt 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. list(APPEND obs-ffmpeg_SOURCES
  40. jim-nvenc.c
  41. jim-nvenc-helpers.c)
  42. list(APPEND obs-ffmpeg_HEADERS
  43. jim-nvenc.h)
  44. endif()
  45. add_library(obs-ffmpeg MODULE
  46. ${obs-ffmpeg_config_HEADERS}
  47. ${obs-ffmpeg_HEADERS}
  48. ${obs-ffmpeg_SOURCES})
  49. target_link_libraries(obs-ffmpeg
  50. libobs
  51. media-playback
  52. ${obs-ffmpeg_PLATFORM_DEPS}
  53. ${FFMPEG_LIBRARIES})
  54. install_obs_plugin_with_data(obs-ffmpeg data)
  55. add_subdirectory(ffmpeg-mux)