CMakeLists.txt 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. # cmake-format: off
  8. find_package(Qt6 REQUIRED Widgets)
  9. if (OS_LINUX)
  10. find_package(Qt6 REQUIRED Gui)
  11. endif()
  12. # cmake-format: on
  13. add_library(decklink-output-ui MODULE)
  14. add_library(OBS::decklink-output-ui ALIAS decklink-output-ui)
  15. target_sources(decklink-output-ui PRIVATE forms/output.ui)
  16. target_sources(
  17. decklink-output-ui
  18. PRIVATE DecklinkOutputUI.cpp
  19. DecklinkOutputUI.h
  20. decklink-ui-main.cpp
  21. decklink-ui-main.h
  22. "${CMAKE_SOURCE_DIR}/UI/double-slider.cpp"
  23. "${CMAKE_SOURCE_DIR}/UI/double-slider.hpp"
  24. "${CMAKE_SOURCE_DIR}/UI/plain-text-edit.hpp"
  25. "${CMAKE_SOURCE_DIR}/UI/plain-text-edit.cpp"
  26. "${CMAKE_SOURCE_DIR}/UI/properties-view.hpp"
  27. "${CMAKE_SOURCE_DIR}/UI/properties-view.cpp"
  28. "${CMAKE_SOURCE_DIR}/UI/properties-view.moc.hpp"
  29. "${CMAKE_SOURCE_DIR}/UI/qt-wrappers.hpp"
  30. "${CMAKE_SOURCE_DIR}/UI/qt-wrappers.cpp"
  31. "${CMAKE_SOURCE_DIR}/UI/spinbox-ignorewheel.cpp"
  32. "${CMAKE_SOURCE_DIR}/UI/spinbox-ignorewheel.hpp"
  33. "${CMAKE_SOURCE_DIR}/UI/slider-ignorewheel.cpp"
  34. "${CMAKE_SOURCE_DIR}/UI/slider-ignorewheel.hpp"
  35. "${CMAKE_SOURCE_DIR}/UI/vertical-scroll-area.hpp"
  36. "${CMAKE_SOURCE_DIR}/UI/vertical-scroll-area.cpp")
  37. target_link_libraries(decklink-output-ui PRIVATE OBS::libobs OBS::frontend-api Qt::Widgets)
  38. if(OS_WINDOWS)
  39. configure_file(cmake/windows/obs-module.rc.in decklink-output-ui.rc)
  40. target_sources(decklink-output-ui PRIVATE decklink-output-ui.rc)
  41. set_property(
  42. TARGET decklink-output-ui
  43. APPEND
  44. PROPERTY AUTORCC_OPTIONS --format-version 1)
  45. elseif(OS_MACOS)
  46. find_library(COCOA Cocoa)
  47. mark_as_advanced(COCOA)
  48. target_link_libraries(decklink-output-ui PRIVATE ${COCOA})
  49. target_compile_options(decklink-output-ui PRIVATE -Wno-quoted-include-in-framework-header)
  50. elseif(OS_LINUX OR OS_FREEBSD)
  51. find_package(X11 REQUIRED)
  52. target_link_libraries(decklink-output-ui PRIVATE X11::X11 Qt::GuiPrivate)
  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)