@@ -3,9 +3,15 @@ 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="${_version} " )
67
7- option (ENABLE_FRONTEND_API "Use obs-frontend-api for UI functionality" ON )
8- option (ENABLE_QT "Use Qt functionality" ON )
8+ set (ENABLE_FRONTEND_API ON )
9+ set (ENABLE_QT ON )
10+ option (ENABLE_SERIALPORT "Enable UART connected camera support" OFF )
11+ option (ENABLE_ONVIF "Enable ONVIF camera support" OFF )
12+ option (USE_SDL2_STATIC "Use SDL2 static library" ON )
13+ option (ENABLE_JOYSTICK "Enable Joystick support" OFF )
14+ option (ENABLE_USB_CAM "Enable USB camera support" OFF )
915
1016include (compilerconfig)
1117include (defaults)
@@ -22,8 +28,8 @@ if(ENABLE_FRONTEND_API)
2228endif ()
2329
2430if (ENABLE_QT)
25- find_package (Qt6 COMPONENTS Widgets Core)
26- target_link_libraries (${CMAKE_PROJECT_NAME} PRIVATE Qt6::Core Qt6::Widgets)
31+ find_package (Qt6 COMPONENTS Widgets Core Svg Network Xml )
32+ target_link_libraries (${CMAKE_PROJECT_NAME} PRIVATE Qt6::Core Qt6::Widgets Qt6::Svg Qt6::Network Qt6::Xml )
2733 target_compile_options (
2834 ${CMAKE_PROJECT_NAME}
2935 PRIVATE $<$<C_COMPILER_ID:Clang,AppleClang>:-Wno-quoted-include -in-framework -header -Wno-comma>
@@ -34,6 +40,102 @@ if(ENABLE_QT)
3440 )
3541endif ()
3642
37- target_sources (${CMAKE_PROJECT_NAME} PRIVATE src/plugin-main.c)
43+ target_include_directories (${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR} /src)
44+ target_sources (
45+ ${CMAKE_PROJECT_NAME}
46+ PRIVATE src/ptz-controls.ui
47+ src/settings.ui
48+ src/ptz-controls.qrc
49+ src/ptz.c
50+ src/ptz-controls.cpp
51+ src/ptz-device.cpp
52+ src/settings.cpp
53+ src/ptz-visca.cpp
54+ src/ptz-visca-udp.cpp
55+ src/ptz-visca-tcp.cpp
56+ src/protocol-helpers.cpp
57+ src/ptz-action-source .c
58+ src/circularlistview.cpp
59+ src/touch-control.cpp
60+ src/imported /qt-wrappers.cpp
61+ src/imported /obs-app.cpp
62+ src/imported /properties-view.cpp
63+ src/imported /vertical-scroll-area.cpp
64+ src/imported /double-slider.cpp
65+ src/imported /slider-ignorewheel.cpp
66+ src/imported /spinbox-ignorewheel.cpp
67+ src/ptz.h
68+ src/ptz-controls.hpp
69+ src/ptz-device.hpp
70+ src/settings.hpp
71+ src/ptz-visca.hpp
72+ src/ptz-visca-udp.hpp
73+ src/ptz-visca-tcp.hpp
74+ src/protocol-helpers.hpp
75+ src/circularlistview.hpp
76+ src/touch-control.hpp
77+ src/imported /qt-wrappers.hpp
78+ src/imported /obs-app.hpp
79+ src/imported /properties-view.hpp
80+ src/imported /properties-view.moc.hpp
81+ src/imported /vertical-scroll-area.hpp
82+ src/imported /double-slider.hpp
83+ src/imported /slider-ignorewheel.hpp
84+ src/imported /spinbox-ignorewheel.hpp)
85+
86+ if (ENABLE_SERIALPORT)
87+ find_package (Qt${_QT_VERSION} COMPONENTS SerialPort)
88+ if (Qt${_QT_VERSION} SerialPort_FOUND)
89+ add_compile_definitions (ENABLE_SERIALPORT)
90+ target_link_libraries (${CMAKE_PROJECT_NAME} PRIVATE Qt::SerialPort)
91+ target_sources (
92+ ${CMAKE_PROJECT_NAME}
93+ PRIVATE src/uart-wrapper.cpp src/uart-wrapper.hpp src/ptz-visca-uart.cpp
94+ src/ptz-visca-uart.hpp src/ptz-pelco.cpp src/ptz-pelco.hpp)
95+ endif ()
96+ endif ()
97+
98+ if (ENABLE_JOYSTICK)
99+ if (USE_SDL2_STATIC)
100+ find_package (SDL2 COMPONENTS SDL2-static REQUIRED)
101+ set (SDL2_TARGET SDL2::SDL2-static )
102+ else ()
103+ find_package (SDL2 REQUIRED)
104+ set (SDL2_TARGET SDL2::SDL2)
105+ endif ()
106+ if (SDL2_FOUND)
107+ add_compile_definitions (ENABLE_JOYSTICK SDL_SUPPORTED)
108+ target_include_directories (${CMAKE_PROJECT_NAME} PRIVATE ${SDL2_INCLUDE_DIRS} )
109+ target_link_libraries (${CMAKE_PROJECT_NAME} PRIVATE ${SDL2_TARGET} )
110+ target_sources (
111+ ${CMAKE_PROJECT_NAME}
112+ PRIVATE src/imported /qjoysticks/QJoysticks.cpp
113+ src/imported /qjoysticks/QJoysticks.h
114+ src/imported /qjoysticks/JoysticksCommon.h
115+ src/imported /qjoysticks/SDL_Joysticks.cpp
116+ src/imported /qjoysticks/SDL_Joysticks.h
117+ src/imported /qjoysticks/qjoysticks-res.qrc
118+ src/imported /qjoysticks/VirtualJoystick.cpp
119+ src/imported /qjoysticks/VirtualJoystick.h)
120+ endif ()
121+ endif ()
122+
123+ if (ENABLE_USB_CAM)
124+ add_compile_definitions (ENABLE_USB_CAM)
125+ target_sources (
126+ ${CMAKE_PROJECT_NAME}
127+ PRIVATE src/ptz-usb-cam.cpp
128+ src/ptz-usb-cam.hpp
129+ )
130+ endif ()
131+
132+ if (ENABLE_ONVIF)
133+ add_compile_definitions (ENABLE_ONVIF)
134+ target_sources (
135+ ${CMAKE_PROJECT_NAME}
136+ PRIVATE src/ptz-onvif.cpp
137+ src/ptz-onvif.hpp
138+ )
139+ endif ()
38140
39141set_target_properties_plugin(${CMAKE_PROJECT_NAME} PROPERTIES OUTPUT_NAME ${_name} )
0 commit comments