1
0

CMakeLists.txt 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. cmake_minimum_required(VERSION 3.28...3.30)
  2. find_package(Qt6 REQUIRED Widgets)
  3. if(OS_LINUX OR OS_FREEBSD OR OS_OPENBSD)
  4. find_package(Qt6 REQUIRED Gui)
  5. find_package(X11 REQUIRED)
  6. endif()
  7. add_library(frontend-tools MODULE)
  8. add_library(OBS::frontend-tools ALIAS frontend-tools)
  9. if(NOT TARGET OBS::properties-view)
  10. add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view")
  11. endif()
  12. if(NOT TARGET OBS::qt-plain-text-edit)
  13. add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/plain-text-edit" "${CMAKE_BINARY_DIR}/shared/qt/plain-text-edit")
  14. endif()
  15. if(NOT TARGET OBS::qt-wrappers)
  16. add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/wrappers" "${CMAKE_BINARY_DIR}/shared/qt/wrappers")
  17. endif()
  18. target_sources(
  19. frontend-tools
  20. PRIVATE
  21. $<$<PLATFORM_ID:Darwin>:auto-scene-switcher-osx.mm>
  22. $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:auto-scene-switcher-nix.cpp>
  23. $<$<PLATFORM_ID:Windows>:auto-scene-switcher-win.cpp>
  24. $<$<PLATFORM_ID:Windows>:captions-handler.cpp>
  25. $<$<PLATFORM_ID:Windows>:captions-handler.hpp>
  26. $<$<PLATFORM_ID:Windows>:captions-mssapi-stream.cpp>
  27. $<$<PLATFORM_ID:Windows>:captions-mssapi-stream.hpp>
  28. $<$<PLATFORM_ID:Windows>:captions-mssapi.cpp>
  29. $<$<PLATFORM_ID:Windows>:captions-mssapi.hpp>
  30. $<$<PLATFORM_ID:Windows>:captions.cpp>
  31. $<$<PLATFORM_ID:Windows>:captions.hpp>
  32. auto-scene-switcher.cpp
  33. auto-scene-switcher.hpp
  34. frontend-tools.c
  35. output-timer.cpp
  36. output-timer.hpp
  37. tool-helpers.hpp
  38. )
  39. target_sources(
  40. frontend-tools
  41. PRIVATE forms/auto-scene-switcher.ui forms/captions.ui forms/output-timer.ui forms/scripts.ui
  42. )
  43. target_compile_options(
  44. frontend-tools
  45. PRIVATE $<$<PLATFORM_ID:Darwin>:-Wno-quoted-include-in-framework-header> $<$<PLATFORM_ID:Darwin>:-Wno-comma>
  46. )
  47. target_link_libraries(
  48. frontend-tools
  49. PRIVATE
  50. OBS::frontend-api
  51. OBS::libobs
  52. OBS::properties-view
  53. OBS::qt-plain-text-edit
  54. OBS::qt-wrappers
  55. Qt::Widgets
  56. "$<$<PLATFORM_ID:Darwin>:$<LINK_LIBRARY:FRAMEWORK,Cocoa>>"
  57. $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:X11::X11>
  58. $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:Qt::GuiPrivate>
  59. )
  60. add_subdirectory("${CMAKE_SOURCE_DIR}/shared/obs-scripting" "${CMAKE_BINARY_DIR}/shared/obs-scripting")
  61. if(ENABLE_SCRIPTING AND TARGET OBS::scripting)
  62. target_sources(frontend-tools PRIVATE scripts.cpp scripts.hpp)
  63. target_link_libraries(frontend-tools PRIVATE OBS::scripting)
  64. target_enable_feature(frontend-tools "Scripting Support (Frontend)" ENABLE_SCRIPTING)
  65. endif()
  66. if(OS_WINDOWS)
  67. configure_file(cmake/windows/obs-module.rc.in frontend-tools.rc)
  68. target_sources(frontend-tools PRIVATE frontend-tools.rc)
  69. set_property(TARGET frontend-tools APPEND PROPERTY AUTORCC_OPTIONS --format-version 1)
  70. endif()
  71. set_target_properties_obs(
  72. frontend-tools
  73. PROPERTIES FOLDER frontend
  74. PREFIX ""
  75. AUTOMOC ON
  76. AUTOUIC ON
  77. AUTORCC ON
  78. AUTOUIC_SEARCH_PATHS forms
  79. XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES
  80. )