From a477945f88c295fcd186286ebd0260b8762d2e9f Mon Sep 17 00:00:00 2001 From: tytan652 Date: Sat, 13 Jan 2024 15:48:16 +0100 Subject: [PATCH] cmake,lib,base: Export obs-websocket-api as a target This enables the installation of the header in the include directory --- CMakeLists.txt | 4 +++- cmake/legacy.cmake | 17 ++++++++++++++++- cmake/obs-websocket-api.cmake | 14 ++++++++++++++ cmake/obs-websocket-apiConfig.cmake.in | 8 ++++++++ src/WebSocketApi.h | 3 +-- 5 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 cmake/obs-websocket-api.cmake create mode 100644 cmake/obs-websocket-apiConfig.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt index a9d7c36e3..1affd0911 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,8 @@ legacy_check() set(obs-websocket_VERSION 5.4.2) set(OBS_WEBSOCKET_RPC_VERSION 1) +include(cmake/obs-websocket-api.cmake) + option(ENABLE_WEBSOCKET "Enable building OBS with websocket plugin" ON) if(NOT ENABLE_WEBSOCKET) target_disable(obs-websocket) @@ -34,7 +36,6 @@ add_library(OBS::websocket ALIAS obs-websocket) target_sources( obs-websocket PRIVATE # cmake-format: sortable - lib/obs-websocket-api.h src/Config.cpp src/Config.h src/forms/ConnectInfo.cpp @@ -154,6 +155,7 @@ target_link_libraries( obs-websocket PRIVATE OBS::libobs OBS::frontend-api + OBS::websocket-api Qt::Core Qt::Widgets Qt::Svg diff --git a/cmake/legacy.cmake b/cmake/legacy.cmake index a22caf241..2cd327ebb 100644 --- a/cmake/legacy.cmake +++ b/cmake/legacy.cmake @@ -3,6 +3,21 @@ set(OBS_WEBSOCKET_RPC_VERSION 1) option(ENABLE_WEBSOCKET "Enable building OBS with websocket plugin" ON) +add_library(obs-websocket-api INTERFACE) +add_library(OBS::websocket-api ALIAS obs-websocket-api) + +target_sources(obs-websocket-api INTERFACE $ + $) + +target_link_libraries(obs-websocket-api INTERFACE OBS::libobs) + +target_include_directories(obs-websocket-api INTERFACE $ + $) + +set_target_properties(obs-websocket-api PROPERTIES PUBLIC_HEADER lib/obs-websocket-api.h) + +export_target(obs-websocket-api) + if(NOT ENABLE_WEBSOCKET OR NOT ENABLE_UI) message(STATUS "OBS: DISABLED obs-websocket") return() @@ -56,7 +71,6 @@ target_sources( src/obs-websocket.h src/Config.cpp src/Config.h - lib/obs-websocket-api.h src/forms/SettingsDialog.cpp src/forms/SettingsDialog.h src/forms/ConnectInfo.cpp @@ -133,6 +147,7 @@ target_link_libraries( obs-websocket PRIVATE OBS::libobs OBS::frontend-api + OBS::websocket-api Qt::Core Qt::Widgets Qt::Svg diff --git a/cmake/obs-websocket-api.cmake b/cmake/obs-websocket-api.cmake new file mode 100644 index 000000000..2a6c8121c --- /dev/null +++ b/cmake/obs-websocket-api.cmake @@ -0,0 +1,14 @@ +add_library(obs-websocket-api INTERFACE) +add_library(OBS::websocket-api ALIAS obs-websocket-api) + +target_sources(obs-websocket-api INTERFACE $ + $) + +target_link_libraries(obs-websocket-api INTERFACE OBS::libobs) + +target_include_directories(obs-websocket-api INTERFACE "$" + "$") + +set_target_properties(obs-websocket-api PROPERTIES PREFIX "" PUBLIC_HEADER lib/obs-websocket-api.h) + +target_export(obs-websocket-api) diff --git a/cmake/obs-websocket-apiConfig.cmake.in b/cmake/obs-websocket-apiConfig.cmake.in new file mode 100644 index 000000000..fcc2f62a9 --- /dev/null +++ b/cmake/obs-websocket-apiConfig.cmake.in @@ -0,0 +1,8 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) + +find_dependency(libobs REQUIRED) + +include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") +check_required_components("@PROJECT_NAME@") diff --git a/src/WebSocketApi.h b/src/WebSocketApi.h index cb8b98169..35d9ecd5c 100644 --- a/src/WebSocketApi.h +++ b/src/WebSocketApi.h @@ -24,8 +24,7 @@ with this program. If not, see #include #include #include - -#include "../lib/obs-websocket-api.h" +#include class WebSocketApi { public: