CMakeLists.txt 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. cmake_minimum_required(VERSION 3.22...3.25)
  2. legacy_check()
  3. option(ENABLE_AJA "Build OBS with aja support" ON)
  4. if(NOT ENABLE_AJA)
  5. set_property(GLOBAL APPEND PROPERTY OBS_MODULES_DISABLED aja)
  6. return()
  7. endif()
  8. find_package(LibAJANTV2 REQUIRED)
  9. add_library(aja MODULE)
  10. add_library(OBS::aja ALIAS aja)
  11. add_library(aja-support OBJECT)
  12. add_library(OBS::aja-support ALIAS aja-support)
  13. target_sources(
  14. aja-support
  15. PRIVATE # cmake-format: sortable
  16. aja-card-manager.cpp
  17. aja-common.cpp
  18. aja-presets.cpp
  19. aja-props.cpp
  20. aja-routing.cpp
  21. aja-vpid-data.cpp
  22. aja-widget-io.cpp
  23. PUBLIC # cmake-format: sortable
  24. aja-card-manager.hpp
  25. aja-common.hpp
  26. aja-enums.hpp
  27. aja-presets.hpp
  28. aja-props.hpp
  29. aja-routing.hpp
  30. aja-ui-props.hpp
  31. aja-vpid-data.hpp
  32. aja-widget-io.hpp)
  33. target_link_libraries(aja-support PUBLIC OBS::libobs AJA::LibAJANTV2)
  34. set_target_properties(aja-support PROPERTIES FOLDER plugins/aja POSITION_INDEPENDENT_CODE TRUE)
  35. target_sources(
  36. aja
  37. PRIVATE # cmake-format: sortable
  38. aja-output.cpp
  39. aja-output.hpp
  40. aja-source.cpp
  41. aja-source.hpp
  42. audio-repack.c
  43. audio-repack.h
  44. audio-repack.hpp
  45. main.cpp)
  46. target_compile_options(
  47. aja-support PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang,GNU>:-Wno-deprecated-declarations>
  48. $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:-Wno-unused-variable>)
  49. target_link_libraries(
  50. aja
  51. PRIVATE OBS::aja-support
  52. $<$<PLATFORM_ID:Windows>:netapi32.lib>
  53. $<$<PLATFORM_ID:Windows>:setupapi.lib>
  54. $<$<PLATFORM_ID:Windows>:shlwapi.lib>
  55. $<$<PLATFORM_ID:Windows>:winmm.lib>
  56. $<$<PLATFORM_ID:Windows>:ws2_32.lib>
  57. "$<$<PLATFORM_ID:Darwin>:$<LINK_LIBRARY:FRAMEWORK,AppKit.framework>>"
  58. "$<$<PLATFORM_ID:Darwin>:$<LINK_LIBRARY:FRAMEWORK,CoreFoundation.framework>>"
  59. "$<$<PLATFORM_ID:Darwin>:$<LINK_LIBRARY:FRAMEWORK,IOKit.framework>>")
  60. target_link_options(aja PRIVATE $<$<PLATFORM_ID:Windows>:/IGNORE:4099>)
  61. if(OS_WINDOWS)
  62. configure_file(cmake/windows/obs-module.rc.in win-aja.rc)
  63. target_sources(aja PRIVATE win-aja.rc)
  64. set_property(TARGET aja PROPERTY COMPILE_WARNING_AS_ERROR FALSE)
  65. endif()
  66. # cmake-format: off
  67. set_target_properties_obs(aja PROPERTIES FOLDER plugins/aja PREFIX "")
  68. # cmake-format: on