Skip to content

Commit 3f87549

Browse files
committed
Add procedure handler based API
1 parent e873fb0 commit 3f87549

9 files changed

+961
-4
lines changed

Diff for: CMakeLists.txt

+4
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ target_sources(
3838
deps/signal-restore.hpp
3939
deps/wide-string.cpp
4040
deps/wide-string.hpp
41+
obs-browser-api-impl.cpp
42+
obs-browser-api-impl.hpp
4143
obs-browser-plugin.cpp
4244
obs-browser-source-audio.cpp
4345
obs-browser-source.cpp
@@ -60,4 +62,6 @@ if(ENABLE_BROWSER_PANELS)
6062
include(cmake/feature-panels.cmake)
6163
endif()
6264

65+
include(cmake/feature-api.cmake)
66+
6367
set_target_properties_obs(obs-browser PROPERTIES FOLDER plugins/obs-browser PREFIX "")

Diff for: cmake/feature-api.cmake

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
find_package(Qt6 REQUIRED Widgets)
2+
3+
add_library(browser-api INTERFACE)
4+
add_library(OBS::browser-api ALIAS browser-api)
5+
6+
target_sources(browser-api INTERFACE lib/obs-browser-api.hpp)
7+
8+
target_include_directories(browser-api INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/lib")
9+
10+
target_link_libraries(browser-api INTERFACE OBS::libobs Qt::Widgets)

Diff for: cmake/feature-panels.cmake

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ target_compile_definitions(browser-panels INTERFACE BROWSER_AVAILABLE)
1212
target_sources(
1313
obs-browser
1414
PRIVATE # cmake-format: sortable
15-
panel/browser-panel-client.cpp panel/browser-panel-client.hpp panel/browser-panel-internal.hpp
16-
panel/browser-panel.cpp)
15+
obs-browser-api-impl-panel.cpp panel/browser-panel-client.cpp panel/browser-panel-client.hpp
16+
panel/browser-panel-internal.hpp panel/browser-panel.cpp)
1717

1818
target_link_libraries(obs-browser PRIVATE OBS::browser-panels Qt::Widgets)
1919

Diff for: cmake/legacy.cmake

+12-2
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/browser-config.h.in ${CMAKE_BINARY_DI
5454
target_sources(
5555
obs-browser
5656
PRIVATE obs-browser-plugin.cpp
57+
obs-browser-api-impl.cpp
58+
obs-browser-api-impl.hpp
5759
obs-browser-source.cpp
5860
obs-browser-source.hpp
5961
obs-browser-source-audio.cpp
@@ -80,9 +82,9 @@ target_link_libraries(obs-browser PRIVATE OBS::libobs OBS::frontend-api nlohmann
8082

8183
target_compile_features(obs-browser PRIVATE cxx_std_17)
8284

83-
if(ENABLE_BROWSER_PANELS OR ENABLE_BROWSER_QT_LOOP)
84-
find_qt(COMPONENTS Widgets)
85+
find_qt(COMPONENTS Widgets)
8586

87+
if(ENABLE_BROWSER_PANELS OR ENABLE_BROWSER_QT_LOOP)
8688
set_target_properties(
8789
obs-browser
8890
PROPERTIES AUTOMOC ON
@@ -251,11 +253,19 @@ if(ENABLE_BROWSER_PANELS)
251253

252254
target_compile_definitions(obs-browser-panels INTERFACE BROWSER_AVAILABLE)
253255

256+
target_sources(obs-browser PRIVATE obs-browser-api-impl-panel.cpp obs-browser-api-impl.cpp)
257+
254258
if(ENABLE_BROWSER_QT_LOOP)
255259
target_compile_definitions(obs-browser-panels INTERFACE ENABLE_BROWSER_QT_LOOP)
256260
endif()
257261
endif()
258262

263+
add_library(browser-api INTERFACE)
264+
add_library(OBS::browser-api ALIAS browser-api)
265+
target_sources(browser-api INTERFACE lib/obs-browser-api.hpp)
266+
target_include_directories(browser-api INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/lib")
267+
target_link_libraries(browser-api INTERFACE OBS::libobs Qt::Widgets)
268+
259269
set_target_properties(obs-browser PROPERTIES FOLDER "plugins/obs-browser" PREFIX "")
260270

261271
setup_plugin_target(obs-browser)

0 commit comments

Comments
 (0)