CMakeLists.txt 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. project(frontend-tools)
  2. if(APPLE)
  3. find_library(COCOA Cocoa)
  4. include_directories(${COCOA})
  5. endif()
  6. if(UNIX AND NOT APPLE)
  7. find_package(X11 REQUIRED)
  8. link_libraries(${X11_LIBRARIES})
  9. include_directories(${X11_INCLUDE_DIR})
  10. find_package(Qt5X11Extras REQUIRED)
  11. endif()
  12. include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/deps/obs-scripting")
  13. configure_file(
  14. "${CMAKE_CURRENT_SOURCE_DIR}/frontend-tools-config.h.in"
  15. "${CMAKE_BINARY_DIR}/config/frontend-tools-config.h")
  16. set(frontend-tools_HEADERS
  17. ${frontend-tools_HEADERS}
  18. "${CMAKE_BINARY_DIR}/config/frontend-tools-config.h"
  19. auto-scene-switcher.hpp
  20. output-timer.hpp
  21. tool-helpers.hpp
  22. ../../properties-view.hpp
  23. ../../properties-view.moc.hpp
  24. ../../horizontal-scroll-area.hpp
  25. ../../vertical-scroll-area.hpp
  26. ../../double-slider.hpp
  27. ../../slider-ignorewheel.hpp
  28. ../../combobox-ignorewheel.hpp
  29. ../../spinbox-ignorewheel.hpp
  30. ../../qt-wrappers.hpp
  31. )
  32. set(frontend-tools_SOURCES
  33. ${frontend-tools_SOURCES}
  34. auto-scene-switcher.cpp
  35. frontend-tools.c
  36. output-timer.cpp
  37. ../../properties-view.cpp
  38. ../../horizontal-scroll-area.cpp
  39. ../../vertical-scroll-area.cpp
  40. ../../double-slider.cpp
  41. ../../slider-ignorewheel.cpp
  42. ../../combobox-ignorewheel.cpp
  43. ../../spinbox-ignorewheel.cpp
  44. ../../qt-wrappers.cpp
  45. )
  46. set(frontend-tools_UI
  47. ${frontend-tools_UI}
  48. forms/auto-scene-switcher.ui
  49. forms/output-timer.ui
  50. )
  51. if(SCRIPTING_ENABLED)
  52. set(frontend-tools_HEADERS
  53. ${frontend-tools_HEADERS}
  54. scripts.hpp
  55. )
  56. set(frontend-tools_SOURCES
  57. ${frontend-tools_SOURCES}
  58. scripts.cpp
  59. )
  60. set(frontend-tools_UI
  61. ${frontend-tools_UI}
  62. forms/scripts.ui
  63. )
  64. set(EXTRA_LIBS
  65. ${EXTRA_LIBS}
  66. obs-scripting
  67. )
  68. endif()
  69. if(WIN32)
  70. set(MODULE_DESCRIPTION "OBS Frontend Tools")
  71. configure_file(${CMAKE_SOURCE_DIR}/cmake/winrc/obs-module.rc.in frontend-tools.rc)
  72. set(frontend-tools_PLATFORM_SOURCES
  73. auto-scene-switcher-win.cpp
  74. frontend-tools.rc)
  75. if(BUILD_CAPTIONS)
  76. set(frontend-tools_PLATFORM_SOURCES
  77. ${frontend-tools_PLATFORM_SOURCES}
  78. captions.cpp
  79. captions-handler.cpp
  80. captions-mssapi.cpp
  81. captions-mssapi-stream.cpp)
  82. set(frontend-tools_PLATFORM_HEADERS
  83. captions.hpp
  84. captions-handler.hpp
  85. captions-mssapi.hpp
  86. captions-mssapi-stream.hpp)
  87. set(frontend-tools_PLATFORM_UI
  88. forms/captions.ui)
  89. endif()
  90. elseif(APPLE)
  91. set(frontend-tools_PLATFORM_SOURCES
  92. auto-scene-switcher-osx.mm)
  93. set_source_files_properties(auto-scene-switcher-osx.mm
  94. PROPERTIES COMPILE_FLAGS "-fobjc-arc")
  95. set(frontend-tools_PLATFORM_LIBS
  96. ${COCOA})
  97. else()
  98. set(frontend-tools_PLATFORM_SOURCES
  99. auto-scene-switcher-nix.cpp)
  100. endif()
  101. qt5_wrap_ui(frontend-tools_UI_HEADERS
  102. ${frontend-tools_UI}
  103. ${frontend-tools_PLATFORM_UI})
  104. add_library(frontend-tools MODULE
  105. ${frontend-tools_HEADERS}
  106. ${frontend-tools_SOURCES}
  107. ${frontend-tools_UI_HEADERS}
  108. ${frontend-tools_PLATFORM_SOURCES}
  109. ${frontend-tools_PLATFORM_HEADERS}
  110. )
  111. target_link_libraries(frontend-tools
  112. ${frontend-tools_PLATFORM_LIBS}
  113. ${EXTRA_LIBS}
  114. obs-frontend-api
  115. Qt5::Widgets
  116. libobs)
  117. if(UNIX AND NOT APPLE)
  118. target_link_libraries(frontend-tools
  119. Qt5::X11Extras)
  120. endif()
  121. set_target_properties(frontend-tools PROPERTIES FOLDER "frontend")
  122. install_obs_plugin_with_data(frontend-tools data)