@@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 3.28...3.30)
33include ("${CMAKE_CURRENT_SOURCE_DIR} /cmake/common/bootstrap.cmake" NO_POLICY_SCOPE)
44
55project (${_name} VERSION ${_version} )
6+ add_compile_definitions (PLUGIN_NAME="${_name} " PLUGIN_VERSION="${_git_version} " )
67
78option (ENABLE_FRONTEND_API "Use obs-frontend-api for UI functionality" ON )
89option (ENABLE_QT "Use Qt functionality" ON )
@@ -22,8 +23,8 @@ if(ENABLE_FRONTEND_API)
2223endif ()
2324
2425if (ENABLE_QT)
25- find_package (Qt6 COMPONENTS Widgets Core)
26- target_link_libraries (${CMAKE_PROJECT_NAME} PRIVATE Qt6::Core Qt6::Widgets)
26+ find_package (Qt6 COMPONENTS Widgets Core Svg Network Xml )
27+ target_link_libraries (${CMAKE_PROJECT_NAME} PRIVATE Qt6::Core Qt6::Widgets Qt6::Svg Qt6::Network Qt6::Xml )
2728 target_compile_options (
2829 ${CMAKE_PROJECT_NAME}
2930 PRIVATE $<$<C_COMPILER_ID:Clang,AppleClang>:-Wno-quoted-include -in-framework -header -Wno-comma>
@@ -34,6 +35,99 @@ if(ENABLE_QT)
3435 )
3536endif ()
3637
37- target_sources (${CMAKE_PROJECT_NAME} PRIVATE src/plugin-main.c)
38+ target_include_directories (${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR} /src)
39+ target_sources (
40+ ${CMAKE_PROJECT_NAME}
41+ PRIVATE src/ptz-controls.ui
42+ src/settings.ui
43+ src/ptz-controls.qrc
44+ src/ptz.c
45+ src/ptz-controls.cpp
46+ src/ptz-device.cpp
47+ src/settings.cpp
48+ src/ptz-visca.cpp
49+ src/ptz-visca-udp.cpp
50+ src/ptz-visca-tcp.cpp
51+ src/protocol-helpers.cpp
52+ src/ptz-action-source .c
53+ src/circularlistview.cpp
54+ src/touch-control.cpp
55+ src/imported /qt-wrappers.cpp
56+ src/imported /obs-app.cpp
57+ src/imported /properties-view.cpp
58+ src/imported /vertical-scroll-area.cpp
59+ src/imported /double-slider.cpp
60+ src/imported /slider-ignorewheel.cpp
61+ src/imported /spinbox-ignorewheel.cpp
62+ src/ptz.h
63+ src/ptz-controls.hpp
64+ src/ptz-device.hpp
65+ src/settings.hpp
66+ src/ptz-visca.hpp
67+ src/ptz-visca-udp.hpp
68+ src/ptz-visca-tcp.hpp
69+ src/protocol-helpers.hpp
70+ src/circularlistview.hpp
71+ src/touch-control.hpp
72+ src/imported /qt-wrappers.hpp
73+ src/imported /obs-app.hpp
74+ src/imported /properties-view.hpp
75+ src/imported /properties-view.moc.hpp
76+ src/imported /vertical-scroll-area.hpp
77+ src/imported /double-slider.hpp
78+ src/imported /slider-ignorewheel.hpp
79+ src/imported /spinbox-ignorewheel.hpp)
80+
81+ option (ENABLE_USB_CAM "Enable USB camera support" OFF )
82+ if (ENABLE_USB_CAM)
83+ add_compile_definitions (ENABLE_USB_CAM)
84+ target_sources (${CMAKE_PROJECT_NAME} PRIVATE src/ptz-usb-cam.cpp src/ptz-usb-cam.hpp)
85+ endif ()
86+
87+ option (ENABLE_ONVIF "Enable ONVIF camera support" ON )
88+ if (ENABLE_ONVIF)
89+ add_compile_definitions (ENABLE_ONVIF)
90+ target_sources (${CMAKE_PROJECT_NAME} PRIVATE src/ptz-onvif.cpp src/ptz-onvif.hpp)
91+ endif ()
92+
93+ option (ENABLE_SERIALPORT "Enable UART connected camera support" OFF )
94+ if (ENABLE_SERIALPORT)
95+ find_package (Qt${_QT_VERSION} COMPONENTS SerialPort)
96+ if (Qt${_QT_VERSION} SerialPort_FOUND)
97+ add_compile_definitions (ENABLE_SERIALPORT)
98+ target_link_libraries (${CMAKE_PROJECT_NAME} PRIVATE Qt::SerialPort)
99+ target_sources (
100+ ${CMAKE_PROJECT_NAME}
101+ PRIVATE src/uart-wrapper.cpp src/uart-wrapper.hpp src/ptz-visca-uart.cpp
102+ src/ptz-visca-uart.hpp src/ptz-pelco.cpp src/ptz-pelco.hpp)
103+ endif ()
104+ endif ()
105+
106+ option (USE_SDL2_STATIC "Use SDL2 static library" ON )
107+ option (ENABLE_JOYSTICK "Enable Joystick support" ON )
108+ if (ENABLE_JOYSTICK)
109+ if (USE_SDL2_STATIC)
110+ find_package (SDL2 COMPONENTS SDL2-static REQUIRED)
111+ set (SDL2_TARGET SDL2::SDL2-static )
112+ else ()
113+ find_package (SDL2 REQUIRED)
114+ set (SDL2_TARGET SDL2::SDL2)
115+ endif ()
116+ if (SDL2_FOUND)
117+ add_compile_definitions (ENABLE_JOYSTICK SDL_SUPPORTED)
118+ target_include_directories (${CMAKE_PROJECT_NAME} PRIVATE ${SDL2_INCLUDE_DIRS} )
119+ target_link_libraries (${CMAKE_PROJECT_NAME} PRIVATE ${SDL2_TARGET} )
120+ target_sources (
121+ ${CMAKE_PROJECT_NAME}
122+ PRIVATE src/imported /qjoysticks/QJoysticks.cpp
123+ src/imported /qjoysticks/QJoysticks.h
124+ src/imported /qjoysticks/JoysticksCommon.h
125+ src/imported /qjoysticks/SDL_Joysticks.cpp
126+ src/imported /qjoysticks/SDL_Joysticks.h
127+ src/imported /qjoysticks/qjoysticks-res.qrc
128+ src/imported /qjoysticks/VirtualJoystick.cpp
129+ src/imported /qjoysticks/VirtualJoystick.h)
130+ endif ()
131+ endif ()
38132
39133set_target_properties_plugin(${CMAKE_PROJECT_NAME} PROPERTIES OUTPUT_NAME ${_name} )
0 commit comments