CMakeLists.txt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. cmake_minimum_required(VERSION 3.22...3.25)
  2. legacy_check()
  3. macro(check_vlc_path)
  4. if(OS_WINDOWS OR OS_MACOS)
  5. if(NOT EXISTS "${VLC_PATH}/include/vlc/libvlc.h")
  6. message(FATAL_ERROR "Unable to find libvlc.h. Check if VLC_PATH set correctly.")
  7. endif()
  8. target_include_directories(vlc-video PRIVATE "${VLC_PATH}/include/vlc")
  9. elseif(OS_LINUX OR OS_FREEBSD)
  10. find_package(PkgConfig QUIET)
  11. if(PKG_CONFIG_FOUND)
  12. pkg_check_modules(PC_Libvlc QUIET libvlc)
  13. endif()
  14. if(PC_Libvlc_INCLUDEDIR)
  15. target_include_directories(vlc-video PRIVATE "${PC_Libvlc_INCLUDEDIR}/vlc")
  16. endif()
  17. endif()
  18. endmacro()
  19. option(ENABLE_VLC "Build OBS with VLC plugin support" ON)
  20. if(NOT ENABLE_VLC)
  21. target_disable(vlc-video)
  22. return()
  23. endif()
  24. add_library(vlc-video MODULE)
  25. add_library(OBS::vlc-video ALIAS vlc-video)
  26. target_sources(vlc-video PRIVATE vlc-video-plugin.c vlc-video-plugin.h vlc-video-source.c)
  27. target_compile_options(vlc-video PRIVATE $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-shorten-64-to-32>)
  28. target_link_libraries(vlc-video PRIVATE OBS::libobs)
  29. check_vlc_path()
  30. if(OS_WINDOWS)
  31. target_link_libraries(vlc-video PRIVATE OBS::w32-pthreads)
  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 "")