Skip to content

Commit c8cf2d9

Browse files
tytan652tt2468
authored andcommitted
cmake,lib,base: Export obs-websocket-api as a target
This enables the installation of the header in the include directory
1 parent d2d4bfb commit c8cf2d9

File tree

5 files changed

+42
-4
lines changed

5 files changed

+42
-4
lines changed

CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ legacy_check()
55
set(obs-websocket_VERSION 5.4.2)
66
set(OBS_WEBSOCKET_RPC_VERSION 1)
77

8+
include(cmake/obs-websocket-api.cmake)
9+
810
option(ENABLE_WEBSOCKET "Enable building OBS with websocket plugin" ON)
911
if(NOT ENABLE_WEBSOCKET)
1012
target_disable(obs-websocket)
@@ -34,7 +36,6 @@ add_library(OBS::websocket ALIAS obs-websocket)
3436
target_sources(
3537
obs-websocket
3638
PRIVATE # cmake-format: sortable
37-
lib/obs-websocket-api.h
3839
src/Config.cpp
3940
src/Config.h
4041
src/forms/ConnectInfo.cpp
@@ -154,6 +155,7 @@ target_link_libraries(
154155
obs-websocket
155156
PRIVATE OBS::libobs
156157
OBS::frontend-api
158+
OBS::websocket-api
157159
Qt::Core
158160
Qt::Widgets
159161
Qt::Svg

cmake/legacy.cmake

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,21 @@ set(OBS_WEBSOCKET_RPC_VERSION 1)
33

44
option(ENABLE_WEBSOCKET "Enable building OBS with websocket plugin" ON)
55

6+
add_library(obs-websocket-api INTERFACE)
7+
add_library(OBS::websocket-api ALIAS obs-websocket-api)
8+
9+
target_sources(obs-websocket-api INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/lib/obs-websocket-api.h>
10+
$<INSTALL_INTERFACE:${OBS_INCLUDE_DESTINATION}/obs-websocket-api.h>)
11+
12+
target_link_libraries(obs-websocket-api INTERFACE OBS::libobs)
13+
14+
target_include_directories(obs-websocket-api INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/lib>
15+
$<INSTALL_INTERFACE:${OBS_INCLUDE_DESTINATION}>)
16+
17+
set_target_properties(obs-websocket-api PROPERTIES PUBLIC_HEADER lib/obs-websocket-api.h)
18+
19+
export_target(obs-websocket-api)
20+
621
if(NOT ENABLE_WEBSOCKET OR NOT ENABLE_UI)
722
message(STATUS "OBS: DISABLED obs-websocket")
823
return()
@@ -56,7 +71,6 @@ target_sources(
5671
src/obs-websocket.h
5772
src/Config.cpp
5873
src/Config.h
59-
lib/obs-websocket-api.h
6074
src/forms/SettingsDialog.cpp
6175
src/forms/SettingsDialog.h
6276
src/forms/ConnectInfo.cpp
@@ -133,6 +147,7 @@ target_link_libraries(
133147
obs-websocket
134148
PRIVATE OBS::libobs
135149
OBS::frontend-api
150+
OBS::websocket-api
136151
Qt::Core
137152
Qt::Widgets
138153
Qt::Svg

cmake/obs-websocket-api.cmake

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
add_library(obs-websocket-api INTERFACE)
2+
add_library(OBS::websocket-api ALIAS obs-websocket-api)
3+
4+
target_sources(obs-websocket-api INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/lib/obs-websocket-api.h>
5+
$<INSTALL_INTERFACE:${OBS_INCLUDE_DESTINATION}/obs-websocket-api.h>)
6+
7+
target_link_libraries(obs-websocket-api INTERFACE OBS::libobs)
8+
9+
target_include_directories(obs-websocket-api INTERFACE "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/lib>"
10+
"$<INSTALL_INTERFACE:${OBS_INCLUDE_DESTINATION}>")
11+
12+
set_target_properties(obs-websocket-api PROPERTIES PREFIX "" PUBLIC_HEADER lib/obs-websocket-api.h)
13+
14+
target_export(obs-websocket-api)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
@PACKAGE_INIT@
2+
3+
include(CMakeFindDependencyMacro)
4+
5+
find_dependency(libobs REQUIRED)
6+
7+
include("${CMAKE_CURRENT_LIST_DIR}/@[email protected]")
8+
check_required_components("@PROJECT_NAME@")

src/WebSocketApi.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
2424
#include <mutex>
2525
#include <shared_mutex>
2626
#include <obs.h>
27-
28-
#include "../lib/obs-websocket-api.h"
27+
#include <obs-websocket-api.h>
2928

3029
class WebSocketApi {
3130
public:

0 commit comments

Comments
 (0)