gpu accelerated
This commit is contained in:
86
CMakeLists.txt
Normal file
86
CMakeLists.txt
Normal file
@@ -0,0 +1,86 @@
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
project(obs-webkit-browser VERSION 0.1.0 LANGUAGES C)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
find_package(Threads REQUIRED)
|
||||
|
||||
pkg_check_modules(OBS REQUIRED IMPORTED_TARGET libobs)
|
||||
pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0)
|
||||
pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)
|
||||
pkg_check_modules(WEBKIT REQUIRED IMPORTED_TARGET webkit2gtk-4.1)
|
||||
pkg_check_modules(X11_CAPTURE REQUIRED IMPORTED_TARGET x11 xcomposite xext)
|
||||
|
||||
add_library(obs-webkit-browser MODULE
|
||||
src/plugin.c
|
||||
src/protocol.h
|
||||
)
|
||||
target_compile_features(obs-webkit-browser PRIVATE c_std_11)
|
||||
target_compile_definitions(obs-webkit-browser PRIVATE _GNU_SOURCE)
|
||||
target_compile_options(obs-webkit-browser PRIVATE -Wall -Wextra -Wpedantic)
|
||||
target_link_libraries(obs-webkit-browser PRIVATE PkgConfig::OBS Threads::Threads)
|
||||
set_target_properties(obs-webkit-browser PROPERTIES PREFIX "")
|
||||
|
||||
add_executable(obs-webkit-renderer
|
||||
src/renderer.c
|
||||
src/protocol.h
|
||||
)
|
||||
target_compile_features(obs-webkit-renderer PRIVATE c_std_11)
|
||||
target_compile_definitions(obs-webkit-renderer PRIVATE _GNU_SOURCE)
|
||||
target_compile_options(obs-webkit-renderer PRIVATE -Wall -Wextra -Wpedantic)
|
||||
target_link_libraries(obs-webkit-renderer PRIVATE
|
||||
PkgConfig::GLIB
|
||||
PkgConfig::GTK
|
||||
PkgConfig::WEBKIT
|
||||
PkgConfig::X11_CAPTURE
|
||||
Threads::Threads
|
||||
)
|
||||
|
||||
set(OBS_PLUGIN_DIR "${CMAKE_INSTALL_LIBDIR}/obs-plugins" CACHE PATH
|
||||
"Directory for the OBS plugin module")
|
||||
set(OBS_PLUGIN_DATA_DIR "${CMAKE_INSTALL_DATADIR}/obs/obs-plugins/obs-webkit-browser"
|
||||
CACHE PATH "Directory for plugin data and the renderer helper")
|
||||
|
||||
install(TARGETS obs-webkit-browser
|
||||
LIBRARY DESTINATION "${OBS_PLUGIN_DIR}")
|
||||
install(TARGETS obs-webkit-renderer
|
||||
RUNTIME DESTINATION "${OBS_PLUGIN_DATA_DIR}")
|
||||
install(FILES data/locale/en-US.ini data/locale/ru-RU.ini
|
||||
DESTINATION "${OBS_PLUGIN_DATA_DIR}/locale")
|
||||
|
||||
include(CTest)
|
||||
if(BUILD_TESTING)
|
||||
add_executable(protocol-test tests/protocol-test.c)
|
||||
target_compile_features(protocol-test PRIVATE c_std_11)
|
||||
target_include_directories(protocol-test PRIVATE src)
|
||||
add_test(NAME protocol-test COMMAND protocol-test)
|
||||
|
||||
add_executable(renderer-smoke-test tests/renderer-smoke-test.c)
|
||||
target_compile_features(renderer-smoke-test PRIVATE c_std_11)
|
||||
target_compile_definitions(renderer-smoke-test PRIVATE _GNU_SOURCE)
|
||||
target_include_directories(renderer-smoke-test PRIVATE src)
|
||||
add_test(NAME renderer-smoke-test
|
||||
COMMAND renderer-smoke-test $<TARGET_FILE:obs-webkit-renderer>)
|
||||
set_tests_properties(renderer-smoke-test PROPERTIES TIMEOUT 20)
|
||||
|
||||
add_test(NAME renderer-opaque-smoke-test
|
||||
COMMAND renderer-smoke-test $<TARGET_FILE:obs-webkit-renderer> opaque)
|
||||
set_tests_properties(renderer-opaque-smoke-test PROPERTIES TIMEOUT 20)
|
||||
|
||||
add_executable(renderer-fps-test tests/renderer-fps-test.c)
|
||||
target_compile_features(renderer-fps-test PRIVATE c_std_11)
|
||||
target_compile_definitions(renderer-fps-test PRIVATE _GNU_SOURCE)
|
||||
target_include_directories(renderer-fps-test PRIVATE src)
|
||||
add_test(NAME blur-transition-fps-test
|
||||
COMMAND renderer-fps-test $<TARGET_FILE:obs-webkit-renderer>)
|
||||
set_tests_properties(blur-transition-fps-test PROPERTIES TIMEOUT 20)
|
||||
|
||||
add_executable(module-load-test tests/module-load-test.c)
|
||||
target_compile_features(module-load-test PRIVATE c_std_11)
|
||||
target_link_libraries(module-load-test PRIVATE PkgConfig::OBS)
|
||||
add_test(NAME module-load-test COMMAND module-load-test
|
||||
$<TARGET_FILE:obs-webkit-browser> "${CMAKE_CURRENT_SOURCE_DIR}/data"
|
||||
$<TARGET_FILE:obs-webkit-renderer>)
|
||||
set_tests_properties(module-load-test PROPERTIES TIMEOUT 20)
|
||||
endif()
|
||||
Reference in New Issue
Block a user