CMakeLists.txt 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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::qt-plain-text-edit)
  17. add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/plain-text-edit" "${CMAKE_BINARY_DIR}/shared/qt/plain-text-edit")
  18. endif()
  19. if(NOT TARGET OBS::qt-vertical-scroll-area)
  20. add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/vertical-scroll-area"
  21. "${CMAKE_BINARY_DIR}/shared/qt/vertical-scroll-area")
  22. endif()
  23. if(NOT TARGET OBS::qt-slider-ignorewheel)
  24. add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/slider-ignorewheel"
  25. "${CMAKE_BINARY_DIR}/shared/qt/slider-ignorewheel")
  26. endif()
  27. if(NOT TARGET OBS::qt-wrappers)
  28. add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/wrappers" "${CMAKE_BINARY_DIR}/shared/qt/wrappers")
  29. endif()
  30. target_sources(decklink-output-ui PRIVATE forms/output.ui)
  31. target_sources(decklink-output-ui PRIVATE DecklinkOutputUI.cpp DecklinkOutputUI.h decklink-ui-main.cpp
  32. decklink-ui-main.h)
  33. target_compile_options(decklink-output-ui PRIVATE $<$<PLATFORM_ID:Darwin>:-Wno-quoted-include-in-framework-header>)
  34. target_link_libraries(
  35. decklink-output-ui
  36. PRIVATE OBS::libobs
  37. OBS::frontend-api
  38. OBS::qt-plain-text-edit
  39. OBS::qt-slider-ignorewheel
  40. OBS::qt-vertical-scroll-area
  41. OBS::qt-wrappers
  42. OBS::ui-support
  43. Qt::Widgets
  44. "$<$<PLATFORM_ID:Darwin>:$<LINK_LIBRARY:FRAMEWORK,Cocoa.framework>>"
  45. $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:X11::X11>
  46. $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:Qt::GuiPrivate>)
  47. if(OS_WINDOWS)
  48. configure_file(cmake/windows/obs-module.rc.in decklink-output-ui.rc)
  49. target_sources(decklink-output-ui PRIVATE decklink-output-ui.rc)
  50. # cmake-format: off
  51. set_property(TARGET decklink-output-ui APPEND PROPERTY AUTORCC_OPTIONS --format-version 1)
  52. # cmake-format: on
  53. endif()
  54. set_target_properties_obs(
  55. decklink-output-ui
  56. PROPERTIES FOLDER frontend
  57. PREFIX ""
  58. AUTOMOC ON
  59. AUTOUIC ON
  60. AUTORCC ON
  61. AUTOUIC_SEARCH_PATHS forms)