CMakeLists.txt 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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
  9. OR OS_FREEBSD
  10. OR OS_OPENBSD)
  11. find_package(Qt6 REQUIRED Gui)
  12. find_package(X11 REQUIRED)
  13. endif()
  14. add_library(decklink-output-ui MODULE)
  15. add_library(OBS::decklink-output-ui ALIAS decklink-output-ui)
  16. if(NOT TARGET OBS::properties-view)
  17. add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view")
  18. endif()
  19. target_sources(decklink-output-ui PRIVATE forms/output.ui)
  20. target_sources(decklink-output-ui PRIVATE DecklinkOutputUI.cpp DecklinkOutputUI.h decklink-ui-main.cpp
  21. decklink-ui-main.h)
  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 OBS::libobs
  26. OBS::frontend-api
  27. OBS::properties-view
  28. Qt::Widgets
  29. "$<$<PLATFORM_ID:Darwin>:$<LINK_LIBRARY:FRAMEWORK,Cocoa.framework>>"
  30. $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:X11::X11>
  31. $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:Qt::GuiPrivate>)
  32. if(OS_WINDOWS)
  33. configure_file(cmake/windows/obs-module.rc.in decklink-output-ui.rc)
  34. target_sources(decklink-output-ui PRIVATE decklink-output-ui.rc)
  35. # cmake-format: off
  36. set_property(TARGET decklink-output-ui APPEND PROPERTY AUTORCC_OPTIONS --format-version 1)
  37. # cmake-format: on
  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)