CMakeLists.txt 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. cmake_minimum_required(VERSION 3.28...3.30)
  2. macro(check_vlc_path)
  3. find_package(PkgConfig QUIET)
  4. if(PKG_CONFIG_FOUND)
  5. pkg_check_modules(PC_Libvlc QUIET libvlc)
  6. endif()
  7. find_path(
  8. LibVLC_INCLUDE_DIR
  9. NAMES vlc/libvlc.h
  10. HINTS ${PC_Libvlc_INCLUDEDIR} ${VLC_PATH}/include
  11. PATHS /usr/include /usr/local/include
  12. DOC "LibVLC include directory"
  13. )
  14. if(LibVLC_INCLUDE_DIR)
  15. target_include_directories(vlc-video PRIVATE "${LibVLC_INCLUDE_DIR}")
  16. else()
  17. message(FATAL_ERROR "Required system header <vlc/libvlc.h> not found.")
  18. endif()
  19. endmacro()
  20. option(ENABLE_VLC "Build OBS with VLC plugin support" ON)
  21. if(NOT ENABLE_VLC)
  22. target_disable(vlc-video)
  23. return()
  24. endif()
  25. add_library(vlc-video MODULE)
  26. add_library(OBS::vlc-video ALIAS vlc-video)
  27. target_sources(vlc-video PRIVATE vlc-video-plugin.c vlc-video-plugin.h vlc-video-source.c)
  28. target_compile_options(vlc-video PRIVATE $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-shorten-64-to-32>)
  29. target_link_libraries(vlc-video PRIVATE OBS::libobs $<$<PLATFORM_ID:Windows>:OBS::w32-pthreads>)
  30. check_vlc_path()
  31. if(OS_WINDOWS)
  32. configure_file(cmake/windows/obs-module.rc.in vlc-video.rc)
  33. target_sources(vlc-video PRIVATE vlc-video.rc)
  34. endif()
  35. set_target_properties_obs(vlc-video PROPERTIES FOLDER plugins PREFIX "")