mirror of
https://github.com/Palakis/obs-websocket.git
synced 2024-08-30 18:12:16 +00:00
16bf61aab6
The CMake generator expression to enable plugin tests mistakenly used a string literal, which evaluated to 1, which enabled the plugin tests by default. Use variable notation to correctly test this value.
174 lines
5.8 KiB
CMake
174 lines
5.8 KiB
CMake
cmake_minimum_required(VERSION 3.16...3.25)
|
|
|
|
legacy_check()
|
|
|
|
set(obs-websocket_VERSION 5.3.1)
|
|
set(OBS_WEBSOCKET_RPC_VERSION 1)
|
|
|
|
option(ENABLE_WEBSOCKET "Enable building OBS with websocket plugin" ON)
|
|
if(NOT ENABLE_WEBSOCKET)
|
|
target_disable(obs-websocket)
|
|
return()
|
|
endif()
|
|
|
|
# Find Qt
|
|
find_qt(COMPONENTS Core Widgets Svg Network)
|
|
|
|
# Find nlohmann JSON
|
|
find_package(nlohmann_json 3 REQUIRED)
|
|
|
|
# Find qrcodegencpp
|
|
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)
|
|
find_package(qrcodegencpp REQUIRED)
|
|
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG OFF)
|
|
|
|
# Find WebSocket++
|
|
find_package(Websocketpp 0.8 REQUIRED)
|
|
|
|
# Find Asio
|
|
find_package(Asio 1.12.1 REQUIRED)
|
|
|
|
add_library(obs-websocket MODULE)
|
|
add_library(OBS::websocket ALIAS obs-websocket)
|
|
|
|
target_sources(obs-websocket PRIVATE)
|
|
|
|
target_sources(
|
|
obs-websocket
|
|
PRIVATE src/obs-websocket.cpp
|
|
src/obs-websocket.h
|
|
src/Config.cpp
|
|
src/Config.h
|
|
lib/obs-websocket-api.h
|
|
src/forms/ConnectInfo.cpp
|
|
src/forms/ConnectInfo.h
|
|
src/forms/resources.qrc
|
|
src/forms/SettingsDialog.cpp
|
|
src/forms/SettingsDialog.h
|
|
src/WebSocketApi.cpp
|
|
src/WebSocketApi.h)
|
|
|
|
target_sources(
|
|
obs-websocket
|
|
PRIVATE src/websocketserver/WebSocketServer.cpp
|
|
src/websocketserver/WebSocketServer_Protocol.cpp
|
|
src/websocketserver/WebSocketServer.h
|
|
src/websocketserver/rpc/WebSocketSession.h
|
|
src/websocketserver/types/WebSocketCloseCode.h
|
|
src/websocketserver/types/WebSocketOpCode.h)
|
|
|
|
target_sources(
|
|
obs-websocket
|
|
PRIVATE src/eventhandler/EventHandler.cpp
|
|
src/eventhandler/EventHandler.h
|
|
src/eventhandler/EventHandler_Config.cpp
|
|
src/eventhandler/EventHandler_General.cpp
|
|
src/eventhandler/EventHandler_Filters.cpp
|
|
src/eventhandler/EventHandler_Inputs.cpp
|
|
src/eventhandler/EventHandler_MediaInputs.cpp
|
|
src/eventhandler/EventHandler_Outputs.cpp
|
|
src/eventhandler/EventHandler_Scenes.cpp
|
|
src/eventhandler/EventHandler_SceneItems.cpp
|
|
src/eventhandler/EventHandler_Transitions.cpp
|
|
src/eventhandler/EventHandler_Ui.cpp
|
|
src/eventhandler/types/EventSubscription.h)
|
|
|
|
target_sources(
|
|
obs-websocket
|
|
PRIVATE src/requesthandler/RequestBatchHandler.cpp
|
|
src/requesthandler/RequestBatchHandler.h
|
|
src/requesthandler/RequestHandler.cpp
|
|
src/requesthandler/RequestHandler.h
|
|
src/requesthandler/RequestHandler_Config.cpp
|
|
src/requesthandler/RequestHandler_Filters.cpp
|
|
src/requesthandler/RequestHandler_General.cpp
|
|
src/requesthandler/RequestHandler_Inputs.cpp
|
|
src/requesthandler/RequestHandler_MediaInputs.cpp
|
|
src/requesthandler/RequestHandler_Outputs.cpp
|
|
src/requesthandler/RequestHandler_Sources.cpp
|
|
src/requesthandler/RequestHandler_Record.cpp
|
|
src/requesthandler/RequestHandler_Scenes.cpp
|
|
src/requesthandler/RequestHandler_SceneItems.cpp
|
|
src/requesthandler/RequestHandler_Stream.cpp
|
|
src/requesthandler/RequestHandler_Transitions.cpp
|
|
src/requesthandler/RequestHandler_Ui.cpp
|
|
src/requesthandler/rpc/Request.cpp
|
|
src/requesthandler/rpc/Request.h
|
|
src/requesthandler/rpc/RequestBatchRequest.cpp
|
|
src/requesthandler/rpc/RequestBatchRequest.h
|
|
src/requesthandler/rpc/RequestResult.cpp
|
|
src/requesthandler/rpc/RequestResult.h
|
|
src/requesthandler/types/RequestStatus.h
|
|
src/requesthandler/types/RequestBatchExecutionType.h)
|
|
|
|
target_sources(
|
|
obs-websocket
|
|
PRIVATE src/utils/Compat.cpp
|
|
src/utils/Compat.h
|
|
src/utils/Crypto.cpp
|
|
src/utils/Crypto.h
|
|
src/utils/Json.cpp
|
|
src/utils/Json.h
|
|
src/utils/Obs.cpp
|
|
src/utils/Obs.h
|
|
src/utils/Obs_ActionHelper.cpp
|
|
src/utils/Obs_ArrayHelper.cpp
|
|
src/utils/Obs_NumberHelper.cpp
|
|
src/utils/Obs_ObjectHelper.cpp
|
|
src/utils/Obs_StringHelper.cpp
|
|
src/utils/Obs_SearchHelper.cpp
|
|
src/utils/Obs_VolumeMeter.cpp
|
|
src/utils/Obs_VolumeMeter.h
|
|
src/utils/Obs_VolumeMeter_Helpers.h
|
|
src/utils/Platform.cpp
|
|
src/utils/Platform.h
|
|
src/utils/Utils.h)
|
|
|
|
configure_file(src/plugin-macros.h.in plugin-macros.generated.h)
|
|
target_sources(obs-websocket PRIVATE plugin-macros.generated.h)
|
|
|
|
target_compile_definitions(
|
|
obs-websocket PRIVATE ASIO_STANDALONE $<$<BOOL:${PLUGIN_TESTS}>:PLUGIN_TESTS>
|
|
$<$<PLATFORM_ID:Windows>:_WEBSOCKETPP_CPP11_STL_> $<$<PLATFORM_ID:Windows>:_WIN32_WINNT=0x0603>)
|
|
|
|
target_compile_options(
|
|
obs-websocket
|
|
PRIVATE
|
|
$<$<PLATFORM_ID:Windows>:/wd4267>
|
|
$<$<PLATFORM_ID:Windows>:/wd4996>
|
|
$<$<PLATFORM_ID:Darwin,Linux,FreeBSD>:-Wall>
|
|
$<$<COMPILE_LANG_AND_ID:CXX,GNU,AppleClang,Clang>:-Wno-error=float-conversion;-Wno-error=shadow>
|
|
$<$<COMPILE_LANG_AND_ID:CXX,GNU>:-Wno-error=format-overflow;-Wno-error=int-conversion;-Wno-error=comment>
|
|
$<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:-Wno-error=null-pointer-subtraction;-Wno-error=deprecated-declarations;-Wno-error=implicit-int-conversion;-Wno-error=shorten-64-to-32;-Wno-comma;-Wno-quoted-include-in-framework-header>
|
|
)
|
|
|
|
target_link_libraries(
|
|
obs-websocket
|
|
PRIVATE OBS::libobs
|
|
OBS::frontend-api
|
|
Qt::Core
|
|
Qt::Widgets
|
|
Qt::Svg
|
|
Qt::Network
|
|
nlohmann_json::nlohmann_json
|
|
Websocketpp::Websocketpp
|
|
Asio::Asio
|
|
qrcodegencpp::qrcodegencpp)
|
|
|
|
set_target_properties_obs(
|
|
obs-websocket
|
|
PROPERTIES FOLDER plugins
|
|
PREFIX ""
|
|
AUTOMOC ON
|
|
AUTOUIC ON
|
|
AUTORCC ON)
|
|
|
|
if(OS_WINDOWS)
|
|
set_property(
|
|
TARGET obs-websocket
|
|
APPEND
|
|
PROPERTY AUTORCC_OPTIONS --format-version 1)
|
|
|
|
target_link_options(obs-websocket PRIVATE /IGNORE:4099)
|
|
endif()
|