CMakeLists.txt 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. cmake_minimum_required(VERSION 3.22...3.25)
  2. legacy_check()
  3. if(NOT ENABLE_DECKLINK)
  4. target_disable(decklink-output-ui)
  5. return()
  6. endif()
  7. find_package(Qt6 REQUIRED Widgets)
  8. if(OS_LINUX OR OS_FREEBSD OR OS_OPENBSD)
  9. find_package(Qt6 REQUIRED Gui)
  10. find_package(X11 REQUIRED)
  11. endif()
  12. add_library(decklink-output-ui MODULE)
  13. add_library(OBS::decklink-output-ui ALIAS decklink-output-ui)
  14. if(NOT TARGET OBS::properties-view)
  15. add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view")
  16. endif()
  17. target_sources(decklink-output-ui PRIVATE forms/output.ui)
  18. target_sources(
  19. decklink-output-ui
  20. PRIVATE DecklinkOutputUI.cpp DecklinkOutputUI.h decklink-ui-main.cpp decklink-ui-main.h
  21. )
  22. target_compile_options(decklink-output-ui PRIVATE $<$<PLATFORM_ID:Darwin>:-Wno-quoted-include-in-framework-header>)
  23. target_link_libraries(
  24. decklink-output-ui
  25. PRIVATE
  26. OBS::libobs
  27. OBS::frontend-api
  28. OBS::properties-view
  29. Qt::Widgets
  30. "$<$<PLATFORM_ID:Darwin>:$<LINK_LIBRARY:FRAMEWORK,Cocoa.framework>>"
  31. $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:X11::X11>
  32. $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:Qt::GuiPrivate>
  33. )
  34. if(OS_WINDOWS)
  35. configure_file(cmake/windows/obs-module.rc.in decklink-output-ui.rc)
  36. target_sources(decklink-output-ui PRIVATE decklink-output-ui.rc)
  37. set_property(TARGET decklink-output-ui APPEND PROPERTY AUTORCC_OPTIONS --format-version 1)
  38. endif()
  39. set_target_properties_obs(
  40. decklink-output-ui
  41. PROPERTIES FOLDER frontend
  42. PREFIX ""
  43. AUTOMOC ON
  44. AUTOUIC ON
  45. AUTORCC ON
  46. AUTOUIC_SEARCH_PATHS forms
  47. )