CMakeLists.txt 2.2 KB

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