diff --git a/.gitignore b/.gitignore index 0443d1740aeccb..0748807f414e04 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ !/docs !/libobs* !/plugins +!/shared !/test !/UI !.cirrus.xml diff --git a/UI/absolute-slider.hpp b/UI/absolute-slider.hpp index a5469932411003..67e0adb1fe04c4 100644 --- a/UI/absolute-slider.hpp +++ b/UI/absolute-slider.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include "slider-ignorewheel.hpp" +#include class AbsoluteSlider : public SliderIgnoreScroll { Q_OBJECT diff --git a/UI/adv-audio-control.cpp b/UI/adv-audio-control.cpp index 277ac24d44d11c..161534766c9dc7 100644 --- a/UI/adv-audio-control.cpp +++ b/UI/adv-audio-control.cpp @@ -5,7 +5,7 @@ #include #include #include -#include "qt-wrappers.hpp" +#include #include "obs-app.hpp" #include "adv-audio-control.hpp" #include "window-basic-main.hpp" diff --git a/UI/api-interface.cpp b/UI/api-interface.cpp index 12f03604963ec0..691f507c424933 100644 --- a/UI/api-interface.cpp +++ b/UI/api-interface.cpp @@ -1,6 +1,6 @@ #include +#include #include "obs-app.hpp" -#include "qt-wrappers.hpp" #include "window-basic-main.hpp" #include "window-basic-main-outputs.hpp" diff --git a/UI/auth-listener.cpp b/UI/auth-listener.cpp index 12a7d72fef4118..b6c7a9e0473004 100644 --- a/UI/auth-listener.cpp +++ b/UI/auth-listener.cpp @@ -4,9 +4,9 @@ #include #include #include +#include #include "obs-app.hpp" -#include "qt-wrappers.hpp" #define LOGO_URL "https://obsproject.com/assets/images/new_icon_small-r.png" diff --git a/UI/auth-youtube.cpp b/UI/auth-youtube.cpp index cd07c74cc79759..d3902da5599e8c 100644 --- a/UI/auth-youtube.cpp +++ b/UI/auth-youtube.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #ifdef WIN32 #include @@ -18,7 +19,6 @@ #include "auth-listener.hpp" #include "obs-app.hpp" -#include "qt-wrappers.hpp" #include "ui-config.h" #include "youtube-api-wrappers.hpp" #include "window-basic-main.hpp" diff --git a/UI/cmake/legacy.cmake b/UI/cmake/legacy.cmake index 487c2a5c0996c4..c38c11d3e784af 100644 --- a/UI/cmake/legacy.cmake +++ b/UI/cmake/legacy.cmake @@ -71,6 +71,28 @@ find_package(CURL REQUIRED) add_subdirectory(frontend-plugins) add_executable(obs) +if(NOT TARGET OBS::properties-view) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view") +endif() + +if(NOT TARGET OBS::qt-plain-text-edit) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/plain-text-edit" "${CMAKE_BINARY_DIR}/shared/qt/plain-text-edit") +endif() + +if(NOT TARGET OBS::qt-slider-ignorewheel) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/slider-ignorewheel" + "${CMAKE_BINARY_DIR}/shared/qt/slider-ignorewheel") +endif() + +if(NOT TARGET OBS::qt-vertical-scroll-area) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/vertical-scroll-area" + "${CMAKE_BINARY_DIR}/shared/qt/vertical-scroll-area") +endif() + +if(NOT TARGET OBS::qt-wrappers) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/wrappers" "${CMAKE_BINARY_DIR}/shared/qt/wrappers") +endif() + find_qt(COMPONENTS Widgets Network Svg Xml COMPONENTS_LINUX Gui DBus) target_link_libraries(obs PRIVATE Qt::Widgets Qt::Svg Qt::Xml Qt::Network) @@ -147,8 +169,6 @@ target_sources( platform.hpp qt-display.cpp qt-display.hpp - qt-wrappers.cpp - qt-wrappers.hpp ui-validation.cpp ui-validation.hpp multiview.cpp @@ -171,8 +191,6 @@ target_sources( basic-controls.cpp basic-controls.hpp clickable-label.hpp - double-slider.cpp - double-slider.hpp horizontal-scroll-area.cpp horizontal-scroll-area.hpp item-widget-helpers.cpp @@ -193,22 +211,13 @@ target_sources( menu-button.hpp mute-checkbox.hpp noncheckable-button.hpp - plain-text-edit.cpp - plain-text-edit.hpp - properties-view.cpp - properties-view.hpp - properties-view.moc.hpp remote-text.cpp remote-text.hpp scene-tree.cpp scene-tree.hpp screenshot-obj.hpp - slider-ignorewheel.cpp - slider-ignorewheel.hpp source-label.cpp source-label.hpp - spinbox-ignorewheel.cpp - spinbox-ignorewheel.hpp source-tree.cpp source-tree.hpp url-push-button.cpp @@ -217,8 +226,6 @@ target_sources( undo-stack-obs.hpp volume-control.cpp volume-control.hpp - vertical-scroll-area.cpp - vertical-scroll-area.hpp visibility-item-widget.cpp visibility-item-widget.hpp) @@ -304,8 +311,19 @@ target_compile_features(obs PRIVATE cxx_std_17) target_include_directories(obs PRIVATE ${CMAKE_SOURCE_DIR}/deps/json11) -target_link_libraries(obs PRIVATE CURL::libcurl FFmpeg::avcodec FFmpeg::avutil FFmpeg::avformat OBS::libobs - OBS::frontend-api) +target_link_libraries( + obs + PRIVATE CURL::libcurl + FFmpeg::avcodec + FFmpeg::avutil + FFmpeg::avformat + OBS::libobs + OBS::frontend-api + OBS::qt-wrappers + OBS::qt-plain-text-edit + OBS::qt-vertical-scroll-area + OBS::qt-slider-ignorewheel + OBS::properties-view) set_target_properties(obs PROPERTIES FOLDER "frontend") diff --git a/UI/cmake/ui-elements.cmake b/UI/cmake/ui-elements.cmake index d3f6f44ec29aac..73144a77b1eeaa 100644 --- a/UI/cmake/ui-elements.cmake +++ b/UI/cmake/ui-elements.cmake @@ -1,32 +1,23 @@ -add_library(obs-ui-support INTERFACE) -add_library(OBS::ui-support ALIAS obs-ui-support) +if(NOT TARGET OBS::properties-view) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view") +endif() -target_sources( - obs-ui-support - INTERFACE # cmake-format: sortable - clickable-label.hpp - double-slider.cpp - double-slider.hpp - horizontal-scroll-area.cpp - horizontal-scroll-area.hpp - plain-text-edit.cpp - plain-text-edit.hpp - properties-view.cpp - properties-view.hpp - properties-view.moc.hpp - qt-wrappers.cpp - qt-wrappers.hpp - slider-ignorewheel.cpp - slider-ignorewheel.hpp - spinbox-ignorewheel.cpp - spinbox-ignorewheel.hpp - vertical-scroll-area.cpp - vertical-scroll-area.hpp) +if(NOT TARGET OBS::qt-plain-text-edit) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/plain-text-edit" "${CMAKE_BINARY_DIR}/shared/qt/plain-text-edit") +endif() + +if(NOT TARGET OBS::qt-slider-ignorewheel) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/slider-ignorewheel" + "${CMAKE_BINARY_DIR}/shared/qt/slider-ignorewheel") +endif() -target_include_directories(obs-ui-support INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}") -target_compile_options(obs-ui-support INTERFACE $<$:-Wno-error=enum-conversion>) +if(NOT TARGET OBS::qt-vertical-scroll-area) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/vertical-scroll-area" + "${CMAKE_BINARY_DIR}/shared/qt/vertical-scroll-area") +endif() -target_link_libraries(obs-studio PRIVATE OBS::ui-support) +target_link_libraries(obs-studio PRIVATE OBS::properties-view OBS::qt-plain-text-edit OBS::qt-slider-ignorewheel + OBS::qt-vertical-scroll-area) target_sources( obs-studio @@ -40,10 +31,13 @@ target_sources( balance-slider.hpp basic-controls.cpp basic-controls.hpp + clickable-label.hpp context-bar-controls.cpp context-bar-controls.hpp focus-list.cpp focus-list.hpp + horizontal-scroll-area.cpp + horizontal-scroll-area.hpp hotkey-edit.cpp hotkey-edit.hpp item-widget-helpers.cpp diff --git a/UI/cmake/ui-qt.cmake b/UI/cmake/ui-qt.cmake index 6148fda8854924..d34de0ad9f7f4f 100644 --- a/UI/cmake/ui-qt.cmake +++ b/UI/cmake/ui-qt.cmake @@ -8,7 +8,11 @@ if(OS_LINUX find_package(Qt6 REQUIRED Gui DBus) endif() -target_link_libraries(obs-studio PRIVATE Qt::Widgets Qt::Svg Qt::Xml Qt::Network) +if(NOT TARGET OBS::qt-wrappers) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/wrappers" "${CMAKE_BINARY_DIR}/shared/qt/wrappers") +endif() + +target_link_libraries(obs-studio PRIVATE Qt::Widgets Qt::Svg Qt::Xml Qt::Network OBS::qt-wrappers) set_target_properties( obs-studio diff --git a/UI/context-bar-controls.cpp b/UI/context-bar-controls.cpp index 3eef5188c279c6..cb4b2f8fc58812 100644 --- a/UI/context-bar-controls.cpp +++ b/UI/context-bar-controls.cpp @@ -1,8 +1,8 @@ #include "window-basic-main.hpp" #include "context-bar-controls.hpp" -#include "qt-wrappers.hpp" #include "obs-app.hpp" +#include #include #include #include diff --git a/UI/frontend-plugins/aja-output-ui/AJAOutputUI.h b/UI/frontend-plugins/aja-output-ui/AJAOutputUI.h index dfeb2b09fc77f7..0bf91314866fd9 100644 --- a/UI/frontend-plugins/aja-output-ui/AJAOutputUI.h +++ b/UI/frontend-plugins/aja-output-ui/AJAOutputUI.h @@ -1,9 +1,9 @@ #pragma once #include +#include #include "ui_output.h" -#include "../../UI/properties-view.hpp" namespace aja { class CardManager; diff --git a/UI/frontend-plugins/aja-output-ui/CMakeLists.txt b/UI/frontend-plugins/aja-output-ui/CMakeLists.txt index 56c4be21e49d37..2be9f389379bff 100644 --- a/UI/frontend-plugins/aja-output-ui/CMakeLists.txt +++ b/UI/frontend-plugins/aja-output-ui/CMakeLists.txt @@ -23,6 +23,10 @@ if(NOT TARGET OBS::aja-support) add_subdirectory("${CMAKE_SOURCE_DIR}/plugins/aja" "${CMAKE_BINARY_DIR}/plugins/aja") endif() +if(NOT TARGET OBS::properties-view) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view") +endif() + add_library(aja-output-ui MODULE) add_library(OBS::aja-output-ui ALIAS aja-output-ui) @@ -40,7 +44,7 @@ target_link_libraries( PRIVATE OBS::libobs OBS::aja-support OBS::frontend-api - OBS::ui-support + OBS::properties-view Qt::Widgets AJA::LibAJANTV2 $<$:X11::X11> diff --git a/UI/frontend-plugins/aja-output-ui/cmake/legacy.cmake b/UI/frontend-plugins/aja-output-ui/cmake/legacy.cmake index 3e0a465895b204..df7e2b2adc41cd 100644 --- a/UI/frontend-plugins/aja-output-ui/cmake/legacy.cmake +++ b/UI/frontend-plugins/aja-output-ui/cmake/legacy.cmake @@ -9,6 +9,10 @@ find_package(LibAJANTV2 REQUIRED) add_library(aja-output-ui MODULE) add_library(OBS::aja-output-ui ALIAS aja-output-ui) +if(NOT TARGET OBS::properties-view) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view") +endif() + find_qt(COMPONENTS Widgets COMPONENTS_LINUX Gui) set_target_properties( @@ -45,24 +49,10 @@ target_sources( ${CMAKE_SOURCE_DIR}/plugins/aja/aja-vpid-data.cpp ${CMAKE_SOURCE_DIR}/plugins/aja/aja-vpid-data.hpp ${CMAKE_SOURCE_DIR}/plugins/aja/aja-widget-io.cpp - ${CMAKE_SOURCE_DIR}/plugins/aja/aja-widget-io.hpp - ${CMAKE_SOURCE_DIR}/UI/double-slider.cpp - ${CMAKE_SOURCE_DIR}/UI/double-slider.hpp - ${CMAKE_SOURCE_DIR}/UI/plain-text-edit.hpp - ${CMAKE_SOURCE_DIR}/UI/plain-text-edit.cpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.hpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.cpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.moc.hpp - ${CMAKE_SOURCE_DIR}/UI/qt-wrappers.cpp - ${CMAKE_SOURCE_DIR}/UI/qt-wrappers.hpp - ${CMAKE_SOURCE_DIR}/UI/spinbox-ignorewheel.cpp - ${CMAKE_SOURCE_DIR}/UI/spinbox-ignorewheel.hpp - ${CMAKE_SOURCE_DIR}/UI/slider-ignorewheel.cpp - ${CMAKE_SOURCE_DIR}/UI/slider-ignorewheel.hpp - ${CMAKE_SOURCE_DIR}/UI/vertical-scroll-area.cpp - ${CMAKE_SOURCE_DIR}/UI/vertical-scroll-area.hpp) - -target_link_libraries(aja-output-ui PRIVATE OBS::libobs OBS::frontend-api Qt::Widgets AJA::LibAJANTV2) + ${CMAKE_SOURCE_DIR}/plugins/aja/aja-widget-io.hpp) + +target_link_libraries(aja-output-ui PRIVATE OBS::libobs OBS::frontend-api OBS::properties-view Qt::Widgets + AJA::LibAJANTV2) if(OS_MACOS) find_library(IOKIT_FRAMEWORK Iokit) diff --git a/UI/frontend-plugins/decklink-output-ui/CMakeLists.txt b/UI/frontend-plugins/decklink-output-ui/CMakeLists.txt index 96e5ba2812fb24..db08c2aa5972fc 100644 --- a/UI/frontend-plugins/decklink-output-ui/CMakeLists.txt +++ b/UI/frontend-plugins/decklink-output-ui/CMakeLists.txt @@ -20,6 +20,10 @@ endif() add_library(decklink-output-ui MODULE) add_library(OBS::decklink-output-ui ALIAS decklink-output-ui) +if(NOT TARGET OBS::properties-view) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view") +endif() + target_sources(decklink-output-ui PRIVATE forms/output.ui) target_sources(decklink-output-ui PRIVATE DecklinkOutputUI.cpp DecklinkOutputUI.h decklink-ui-main.cpp @@ -31,7 +35,7 @@ target_link_libraries( decklink-output-ui PRIVATE OBS::libobs OBS::frontend-api - OBS::ui-support + OBS::properties-view Qt::Widgets "$<$:$>" $<$:X11::X11> diff --git a/UI/frontend-plugins/decklink-output-ui/DecklinkOutputUI.h b/UI/frontend-plugins/decklink-output-ui/DecklinkOutputUI.h index f550a4635cfdc3..12ba60530334a4 100644 --- a/UI/frontend-plugins/decklink-output-ui/DecklinkOutputUI.h +++ b/UI/frontend-plugins/decklink-output-ui/DecklinkOutputUI.h @@ -1,9 +1,9 @@ #pragma once #include +#include #include "ui_output.h" -#include "../../UI/properties-view.hpp" class DecklinkOutputUI : public QDialog { Q_OBJECT diff --git a/UI/frontend-plugins/decklink-output-ui/cmake/legacy.cmake b/UI/frontend-plugins/decklink-output-ui/cmake/legacy.cmake index 40de2d1eb04294..45c9cc2bce165c 100644 --- a/UI/frontend-plugins/decklink-output-ui/cmake/legacy.cmake +++ b/UI/frontend-plugins/decklink-output-ui/cmake/legacy.cmake @@ -7,6 +7,10 @@ endif() add_library(decklink-output-ui MODULE) add_library(OBS::decklink-output-ui ALIAS decklink-output-ui) +if(NOT TARGET OBS::properties-view) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view") +endif() + find_qt(COMPONENTS Widgets COMPONENTS_LINUX Gui) set_target_properties( @@ -22,29 +26,10 @@ endif() target_sources(decklink-output-ui PRIVATE forms/output.ui) -target_sources( - decklink-output-ui - PRIVATE DecklinkOutputUI.cpp - DecklinkOutputUI.h - decklink-ui-main.cpp - decklink-ui-main.h - ${CMAKE_SOURCE_DIR}/UI/double-slider.cpp - ${CMAKE_SOURCE_DIR}/UI/double-slider.hpp - ${CMAKE_SOURCE_DIR}/UI/plain-text-edit.hpp - ${CMAKE_SOURCE_DIR}/UI/plain-text-edit.cpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.hpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.cpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.moc.hpp - ${CMAKE_SOURCE_DIR}/UI/qt-wrappers.hpp - ${CMAKE_SOURCE_DIR}/UI/qt-wrappers.cpp - ${CMAKE_SOURCE_DIR}/UI/spinbox-ignorewheel.cpp - ${CMAKE_SOURCE_DIR}/UI/spinbox-ignorewheel.hpp - ${CMAKE_SOURCE_DIR}/UI/slider-ignorewheel.cpp - ${CMAKE_SOURCE_DIR}/UI/slider-ignorewheel.hpp - ${CMAKE_SOURCE_DIR}/UI/vertical-scroll-area.hpp - ${CMAKE_SOURCE_DIR}/UI/vertical-scroll-area.cpp) - -target_link_libraries(decklink-output-ui PRIVATE OBS::libobs OBS::frontend-api Qt::Widgets) +target_sources(decklink-output-ui PRIVATE DecklinkOutputUI.cpp DecklinkOutputUI.h decklink-ui-main.cpp + decklink-ui-main.h) + +target_link_libraries(decklink-output-ui PRIVATE OBS::libobs OBS::frontend-api OBS::properties-view Qt::Widgets) target_compile_features(decklink-output-ui PRIVATE cxx_std_17) diff --git a/UI/frontend-plugins/frontend-tools/CMakeLists.txt b/UI/frontend-plugins/frontend-tools/CMakeLists.txt index bdc6582ec73ebe..6b88874f1075c4 100644 --- a/UI/frontend-plugins/frontend-tools/CMakeLists.txt +++ b/UI/frontend-plugins/frontend-tools/CMakeLists.txt @@ -14,6 +14,18 @@ endif() add_library(frontend-tools MODULE) add_library(OBS::frontend-tools ALIAS frontend-tools) +if(NOT TARGET OBS::properties-view) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view") +endif() + +if(NOT TARGET OBS::qt-plain-text-edit) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/plain-text-edit" "${CMAKE_BINARY_DIR}/shared/qt/plain-text-edit") +endif() + +if(NOT TARGET OBS::qt-wrappers) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/wrappers" "${CMAKE_BINARY_DIR}/shared/qt/wrappers") +endif() + target_sources( frontend-tools PRIVATE # cmake-format: sortable @@ -45,13 +57,15 @@ target_link_libraries( frontend-tools PRIVATE OBS::frontend-api OBS::libobs - OBS::ui-support + OBS::properties-view + OBS::qt-plain-text-edit + OBS::qt-wrappers Qt::Widgets "$<$:$>" $<$:X11::X11> $<$:Qt::GuiPrivate>) -add_subdirectory("${CMAKE_SOURCE_DIR}/deps/obs-scripting" "${CMAKE_BINARY_DIR}/deps/obs-scripting") +add_subdirectory("${CMAKE_SOURCE_DIR}/shared/obs-scripting" "${CMAKE_BINARY_DIR}/shared/obs-scripting") if(ENABLE_SCRIPTING AND TARGET OBS::scripting) target_sources(frontend-tools PRIVATE scripts.cpp scripts.hpp) diff --git a/UI/frontend-plugins/frontend-tools/cmake/legacy.cmake b/UI/frontend-plugins/frontend-tools/cmake/legacy.cmake index 0524ca042ec845..cbfbaa5e0df3a9 100644 --- a/UI/frontend-plugins/frontend-tools/cmake/legacy.cmake +++ b/UI/frontend-plugins/frontend-tools/cmake/legacy.cmake @@ -3,6 +3,18 @@ project(frontend-tools) add_library(frontend-tools MODULE) add_library(OBS::frontend-tools ALIAS frontend-tools) +if(NOT TARGET OBS::properties-view) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view") +endif() + +if(NOT TARGET OBS::qt-plain-text-edit) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/plain-text-edit" "${CMAKE_BINARY_DIR}/shared/qt/plain-text-edit") +endif() + +if(NOT TARGET OBS::qt-wrappers) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/wrappers" "${CMAKE_BINARY_DIR}/shared/qt/wrappers") +endif() + find_qt(COMPONENTS Widgets COMPONENTS_LINUX Gui) set_target_properties( @@ -19,40 +31,20 @@ endif() target_sources(frontend-tools PRIVATE forms/auto-scene-switcher.ui forms/captions.ui forms/output-timer.ui forms/scripts.ui) -target_sources( - frontend-tools - PRIVATE frontend-tools.c - auto-scene-switcher.hpp - auto-scene-switcher.cpp - output-timer.hpp - tool-helpers.hpp - output-timer.cpp - ${CMAKE_SOURCE_DIR}/UI/double-slider.cpp - ${CMAKE_SOURCE_DIR}/UI/double-slider.hpp - ${CMAKE_SOURCE_DIR}/UI/horizontal-scroll-area.cpp - ${CMAKE_SOURCE_DIR}/UI/horizontal-scroll-area.hpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.cpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.hpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.moc.hpp - ${CMAKE_SOURCE_DIR}/UI/qt-wrappers.cpp - ${CMAKE_SOURCE_DIR}/UI/qt-wrappers.hpp - ${CMAKE_SOURCE_DIR}/UI/spinbox-ignorewheel.cpp - ${CMAKE_SOURCE_DIR}/UI/spinbox-ignorewheel.hpp - ${CMAKE_SOURCE_DIR}/UI/slider-ignorewheel.cpp - ${CMAKE_SOURCE_DIR}/UI/slider-ignorewheel.hpp - ${CMAKE_SOURCE_DIR}/UI/vertical-scroll-area.hpp - ${CMAKE_SOURCE_DIR}/UI/vertical-scroll-area.cpp - ${CMAKE_SOURCE_DIR}/UI/plain-text-edit.cpp - ${CMAKE_SOURCE_DIR}/UI/plain-text-edit.hpp) +target_sources(frontend-tools PRIVATE frontend-tools.c auto-scene-switcher.hpp auto-scene-switcher.cpp output-timer.hpp + tool-helpers.hpp output-timer.cpp) target_compile_features(frontend-tools PRIVATE cxx_std_17) -target_link_libraries(frontend-tools PRIVATE OBS::frontend-api OBS::libobs Qt::Widgets) +target_link_libraries(frontend-tools PRIVATE OBS::frontend-api OBS::qt-wrappers OBS::qt-plain-text-edit + OBS::properties-view OBS::libobs Qt::Widgets) if(OS_POSIX AND NOT OS_MACOS) target_link_libraries(frontend-tools PRIVATE Qt::GuiPrivate) endif() +add_subdirectory("${CMAKE_SOURCE_DIR}/shared/obs-scripting" "${CMAKE_BINARY_DIR}/shared/obs-scripting") + if(ENABLE_SCRIPTING AND TARGET OBS::scripting) target_compile_definitions(frontend-tools PRIVATE ENABLE_SCRIPTING) diff --git a/UI/frontend-plugins/frontend-tools/scripts.cpp b/UI/frontend-plugins/frontend-tools/scripts.cpp index 3295de7b7750bc..2906f7e7a50d55 100644 --- a/UI/frontend-plugins/frontend-tools/scripts.cpp +++ b/UI/frontend-plugins/frontend-tools/scripts.cpp @@ -1,8 +1,5 @@ #include "obs-module.h" #include "scripts.hpp" -#include "../../properties-view.hpp" -#include "../../qt-wrappers.hpp" -#include "../../plain-text-edit.hpp" #include #include @@ -18,6 +15,9 @@ #include #include #include +#include +#include +#include #include #include diff --git a/UI/hotkey-edit.cpp b/UI/hotkey-edit.cpp index bcd049428dcb96..ebc40361b36b58 100644 --- a/UI/hotkey-edit.cpp +++ b/UI/hotkey-edit.cpp @@ -22,9 +22,9 @@ #include #include #include +#include #include "obs-app.hpp" -#include "qt-wrappers.hpp" void OBSHotkeyEdit::keyPressEvent(QKeyEvent *event) { diff --git a/UI/log-viewer.cpp b/UI/log-viewer.cpp index f02bcd1a54ab4f..dedc04f492126f 100644 --- a/UI/log-viewer.cpp +++ b/UI/log-viewer.cpp @@ -8,9 +8,9 @@ #include #include #include +#include #include "log-viewer.hpp" -#include "qt-wrappers.hpp" OBSLogViewer::OBSLogViewer(QWidget *parent) : QDialog(parent), diff --git a/UI/media-controls.hpp b/UI/media-controls.hpp index 652ddadc4ff270..6a5ec5953c46a5 100644 --- a/UI/media-controls.hpp +++ b/UI/media-controls.hpp @@ -4,7 +4,7 @@ #include #include #include -#include "qt-wrappers.hpp" +#include class Ui_MediaControls; diff --git a/UI/obs-app.cpp b/UI/obs-app.cpp index 9a7e9fd1063bd2..849226f451e661 100644 --- a/UI/obs-app.cpp +++ b/UI/obs-app.cpp @@ -30,6 +30,8 @@ #include #include #include +#include +#include #include #include @@ -38,7 +40,6 @@ #include #include -#include "qt-wrappers.hpp" #include "obs-app.hpp" #include "obs-proxy-style.hpp" #include "log-viewer.hpp" diff --git a/UI/platform-windows.cpp b/UI/platform-windows.cpp index 303d918a9becdf..229045a64330cc 100644 --- a/UI/platform-windows.cpp +++ b/UI/platform-windows.cpp @@ -19,9 +19,9 @@ #include #include "obs-config.h" #include "obs-app.hpp" -#include "qt-wrappers.hpp" #include "platform.hpp" +#include #include #include diff --git a/UI/qt-display.cpp b/UI/qt-display.cpp index 7444c6cb58868c..136fbc8f32b65f 100644 --- a/UI/qt-display.cpp +++ b/UI/qt-display.cpp @@ -1,11 +1,11 @@ #include "qt-display.hpp" -#include "qt-wrappers.hpp" #include "display-helpers.hpp" #include #include #include #include +#include #include #ifdef _WIN32 @@ -13,6 +13,14 @@ #include #endif +#if !defined(_WIN32) && !defined(__APPLE__) +#include +#endif + +#ifdef ENABLE_WAYLAND +#include +#endif + class SurfaceEventFilter : public QObject { OBSQTDisplay *display; @@ -62,6 +70,38 @@ static inline QColor rgba_to_color(uint32_t rgba) (rgba >> 16) & 0xFF, (rgba >> 24) & 0xFF); } +static bool QTToGSWindow(QWindow *window, gs_window &gswindow) +{ + bool success = true; + +#ifdef _WIN32 + gswindow.hwnd = (HWND)window->winId(); +#elif __APPLE__ + gswindow.view = (id)window->winId(); +#else + switch (obs_get_nix_platform()) { + case OBS_NIX_PLATFORM_X11_EGL: + gswindow.id = window->winId(); + gswindow.display = obs_get_nix_platform_display(); + break; +#ifdef ENABLE_WAYLAND + case OBS_NIX_PLATFORM_WAYLAND: { + QPlatformNativeInterface *native = + QGuiApplication::platformNativeInterface(); + gswindow.display = + native->nativeResourceForWindow("surface", window); + success = gswindow.display != nullptr; + break; + } +#endif + default: + success = false; + break; + } +#endif + return success; +} + OBSQTDisplay::OBSQTDisplay(QWidget *parent, Qt::WindowFlags flags) : QWidget(parent, flags) { diff --git a/UI/remote-text.cpp b/UI/remote-text.cpp index 4a372e156ba765..a5c6dd013d2d0e 100644 --- a/UI/remote-text.cpp +++ b/UI/remote-text.cpp @@ -16,8 +16,8 @@ ******************************************************************************/ #include +#include #include "obs-app.hpp" -#include "qt-wrappers.hpp" #include "remote-text.hpp" using namespace std; diff --git a/UI/source-tree.cpp b/UI/source-tree.cpp index 947b217ce04f66..340d6e3b5f90ab 100644 --- a/UI/source-tree.cpp +++ b/UI/source-tree.cpp @@ -1,10 +1,10 @@ #include "window-basic-main.hpp" #include "obs-app.hpp" #include "source-tree.hpp" -#include "qt-wrappers.hpp" #include "platform.hpp" #include "source-label.hpp" +#include #include #include diff --git a/UI/update/mac-update.cpp b/UI/update/mac-update.cpp index 469b01e92ab2fc..c6b35b0e08277a 100644 --- a/UI/update/mac-update.cpp +++ b/UI/update/mac-update.cpp @@ -1,11 +1,11 @@ #include "update-helpers.hpp" #include "shared-update.hpp" -#include "qt-wrappers.hpp" #include "mac-update.hpp" #include "obs-app.hpp" #include +#include #include /* ------------------------------------------------------------------------ */ diff --git a/UI/update/win-update.cpp b/UI/update/win-update.cpp index 5b21d34d843e0c..a0263ad829c3bf 100644 --- a/UI/update/win-update.cpp +++ b/UI/update/win-update.cpp @@ -3,10 +3,10 @@ #include "shared-update.hpp" #include "update-window.hpp" #include "remote-text.hpp" -#include "qt-wrappers.hpp" #include "win-update.hpp" #include "obs-app.hpp" +#include #include #include diff --git a/UI/visibility-item-widget.cpp b/UI/visibility-item-widget.cpp index 23571e9f6c3589..c310007ed9936b 100644 --- a/UI/visibility-item-widget.cpp +++ b/UI/visibility-item-widget.cpp @@ -1,7 +1,8 @@ #include "visibility-item-widget.hpp" -#include "qt-wrappers.hpp" #include "obs-app.hpp" #include "source-label.hpp" + +#include #include #include #include diff --git a/UI/volume-control.cpp b/UI/volume-control.cpp index ab9b7f095fda4c..6ab17110388c88 100644 --- a/UI/volume-control.cpp +++ b/UI/volume-control.cpp @@ -1,10 +1,12 @@ #include "window-basic-main.hpp" #include "volume-control.hpp" -#include "qt-wrappers.hpp" #include "obs-app.hpp" #include "mute-checkbox.hpp" #include "absolute-slider.hpp" #include "source-label.hpp" + +#include +#include #include #include #include diff --git a/UI/window-basic-about.cpp b/UI/window-basic-about.cpp index 10751bb1af21ba..d5bdc3eed178fb 100644 --- a/UI/window-basic-about.cpp +++ b/UI/window-basic-about.cpp @@ -1,7 +1,7 @@ #include "window-basic-about.hpp" #include "window-basic-main.hpp" -#include "qt-wrappers.hpp" #include "remote-text.hpp" +#include #include #include #include diff --git a/UI/window-basic-adv-audio.cpp b/UI/window-basic-adv-audio.cpp index b2ef201dc7d515..9d80e29ff54188 100644 --- a/UI/window-basic-adv-audio.cpp +++ b/UI/window-basic-adv-audio.cpp @@ -3,7 +3,7 @@ #include "item-widget-helpers.hpp" #include "adv-audio-control.hpp" #include "obs-app.hpp" -#include "qt-wrappers.hpp" +#include #include "ui_OBSAdvAudio.h" diff --git a/UI/window-basic-auto-config-test.cpp b/UI/window-basic-auto-config-test.cpp index 90487578305234..117a8bc6d51d93 100644 --- a/UI/window-basic-auto-config-test.cpp +++ b/UI/window-basic-auto-config-test.cpp @@ -8,10 +8,10 @@ #include #include #include +#include #include "window-basic-auto-config.hpp" #include "window-basic-main.hpp" -#include "qt-wrappers.hpp" #include "obs-app.hpp" #include "ui_AutoConfigTestPage.h" diff --git a/UI/window-basic-auto-config.cpp b/UI/window-basic-auto-config.cpp index 243dce9720f3f1..555304daed7300 100644 --- a/UI/window-basic-auto-config.cpp +++ b/UI/window-basic-auto-config.cpp @@ -2,12 +2,12 @@ #include #include +#include #include #include "window-basic-auto-config.hpp" #include "window-basic-main.hpp" -#include "qt-wrappers.hpp" #include "obs-app.hpp" #include "url-push-button.hpp" diff --git a/UI/window-basic-filters.cpp b/UI/window-basic-filters.cpp index fcab696d61b108..4d0bf5ea8177d4 100644 --- a/UI/window-basic-filters.cpp +++ b/UI/window-basic-filters.cpp @@ -20,12 +20,12 @@ #include "window-basic-main.hpp" #include "window-basic-filters.hpp" #include "display-helpers.hpp" -#include "qt-wrappers.hpp" #include "visibility-item-widget.hpp" #include "item-widget-helpers.hpp" #include "obs-app.hpp" #include "undo-stack-obs.hpp" +#include #include #include #include diff --git a/UI/window-basic-filters.hpp b/UI/window-basic-filters.hpp index 1d170582a4cfbc..9d9d9999b90bc1 100644 --- a/UI/window-basic-filters.hpp +++ b/UI/window-basic-filters.hpp @@ -21,8 +21,7 @@ #include #include #include - -#include "properties-view.hpp" +#include class OBSBasic; class QMenu; diff --git a/UI/window-basic-interaction.cpp b/UI/window-basic-interaction.cpp index 777da93655b45c..2507d7cc41fba3 100644 --- a/UI/window-basic-interaction.cpp +++ b/UI/window-basic-interaction.cpp @@ -18,9 +18,9 @@ #include "obs-app.hpp" #include "window-basic-interaction.hpp" #include "window-basic-main.hpp" -#include "qt-wrappers.hpp" #include "display-helpers.hpp" +#include #include #include #include diff --git a/UI/window-basic-interaction.hpp b/UI/window-basic-interaction.hpp index 029a5fe08e508f..df6a2b7d2bb6eb 100644 --- a/UI/window-basic-interaction.hpp +++ b/UI/window-basic-interaction.hpp @@ -22,8 +22,7 @@ #include #include - -#include "properties-view.hpp" +#include class OBSBasic; diff --git a/UI/window-basic-main-browser.cpp b/UI/window-basic-main-browser.cpp index ec99f141e4987b..24be69fe7713e2 100644 --- a/UI/window-basic-main-browser.cpp +++ b/UI/window-basic-main-browser.cpp @@ -18,8 +18,8 @@ #include #include #include +#include #include "window-basic-main.hpp" -#include "qt-wrappers.hpp" #include diff --git a/UI/window-basic-main-dropfiles.cpp b/UI/window-basic-main-dropfiles.cpp index f8d119b33b11b5..880ae3014055cd 100644 --- a/UI/window-basic-main-dropfiles.cpp +++ b/UI/window-basic-main-dropfiles.cpp @@ -9,9 +9,9 @@ #include #endif #include +#include #include "window-basic-main.hpp" -#include "qt-wrappers.hpp" using namespace std; diff --git a/UI/window-basic-main-outputs.cpp b/UI/window-basic-main-outputs.cpp index 9e644e90acb8df..d77d31a6924943 100644 --- a/UI/window-basic-main-outputs.cpp +++ b/UI/window-basic-main-outputs.cpp @@ -3,7 +3,7 @@ #include #include #include -#include "qt-wrappers.hpp" +#include #include "audio-encoders.hpp" #include "multitrack-video-error.hpp" #include "window-basic-main.hpp" diff --git a/UI/window-basic-main-profiles.cpp b/UI/window-basic-main-profiles.cpp index f9d3f4ea1efcb6..08b869aebe5e73 100644 --- a/UI/window-basic-main-profiles.cpp +++ b/UI/window-basic-main-profiles.cpp @@ -21,10 +21,10 @@ #include #include #include +#include #include "window-basic-main.hpp" #include "window-basic-auto-config.hpp" #include "window-namedialog.hpp" -#include "qt-wrappers.hpp" extern void DestroyPanelCookieManager(); extern void DuplicateCurrentCookieProfile(ConfigFile &config); diff --git a/UI/window-basic-main-scene-collections.cpp b/UI/window-basic-main-scene-collections.cpp index 0fe0867ed45137..26b5506ae4ee59 100644 --- a/UI/window-basic-main-scene-collections.cpp +++ b/UI/window-basic-main-scene-collections.cpp @@ -21,11 +21,11 @@ #include #include #include +#include #include "item-widget-helpers.hpp" #include "window-basic-main.hpp" #include "window-importer.hpp" #include "window-namedialog.hpp" -#include "qt-wrappers.hpp" using namespace std; diff --git a/UI/window-basic-main-screenshot.cpp b/UI/window-basic-main-screenshot.cpp index 4a1c208560b784..ba9c4d2bcf430a 100644 --- a/UI/window-basic-main-screenshot.cpp +++ b/UI/window-basic-main-screenshot.cpp @@ -17,7 +17,8 @@ #include "window-basic-main.hpp" #include "screenshot-obj.hpp" -#include "qt-wrappers.hpp" + +#include #ifdef _WIN32 #include diff --git a/UI/window-basic-main-transitions.cpp b/UI/window-basic-main-transitions.cpp index 2894c6387b6903..ffb28344e39bed 100644 --- a/UI/window-basic-main-transitions.cpp +++ b/UI/window-basic-main-transitions.cpp @@ -20,14 +20,14 @@ #include #include #include +#include +#include #include "window-basic-main.hpp" #include "window-basic-main-outputs.hpp" #include "window-basic-vcam-config.hpp" #include "display-helpers.hpp" #include "window-namedialog.hpp" #include "menu-button.hpp" -#include "slider-ignorewheel.hpp" -#include "qt-wrappers.hpp" #include "obs-hotkey.h" diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 20e2d01a7b26f0..39d04c6d0c8c08 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include #include @@ -67,7 +68,6 @@ #include "window-youtube-actions.hpp" #include "youtube-api-wrappers.hpp" #endif -#include "qt-wrappers.hpp" #include "context-bar-controls.hpp" #include "obs-proxy-style.hpp" #include "display-helpers.hpp" diff --git a/UI/window-basic-properties.cpp b/UI/window-basic-properties.cpp index a10475f23c004f..722812265b170e 100644 --- a/UI/window-basic-properties.cpp +++ b/UI/window-basic-properties.cpp @@ -18,10 +18,10 @@ #include "obs-app.hpp" #include "window-basic-properties.hpp" #include "window-basic-main.hpp" -#include "qt-wrappers.hpp" #include "display-helpers.hpp" -#include "properties-view.hpp" +#include +#include #include #include #include diff --git a/UI/window-basic-settings-a11y.cpp b/UI/window-basic-settings-a11y.cpp index ac9de41dab93d0..899541d5c75759 100644 --- a/UI/window-basic-settings-a11y.cpp +++ b/UI/window-basic-settings-a11y.cpp @@ -2,7 +2,7 @@ #include "window-basic-main.hpp" #include "obs-frontend-api.h" #include "obs-app.hpp" -#include "qt-wrappers.hpp" +#include #include enum ColorPreset { diff --git a/UI/window-basic-settings-stream.cpp b/UI/window-basic-settings-stream.cpp index 881e1d54247f53..907a53222e2e08 100644 --- a/UI/window-basic-settings-stream.cpp +++ b/UI/window-basic-settings-stream.cpp @@ -1,12 +1,12 @@ #include #include #include +#include #include "window-basic-settings.hpp" #include "obs-frontend-api.h" #include "obs-app.hpp" #include "window-basic-main.hpp" -#include "qt-wrappers.hpp" #include "url-push-button.hpp" #ifdef BROWSER_AVAILABLE diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp index dfcd2dd653ca91..1f5812b42cf5db 100644 --- a/UI/window-basic-settings.cpp +++ b/UI/window-basic-settings.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include "audio-encoders.hpp" #include "hotkey-edit.hpp" @@ -42,7 +43,6 @@ #include "obs-app.hpp" #include "platform.hpp" #include "properties-view.hpp" -#include "qt-wrappers.hpp" #include "window-basic-main.hpp" #include "window-basic-settings.hpp" #include "window-basic-main-outputs.hpp" diff --git a/UI/window-basic-source-select.cpp b/UI/window-basic-source-select.cpp index a500e3a72144e1..b494e5d282ef37 100644 --- a/UI/window-basic-source-select.cpp +++ b/UI/window-basic-source-select.cpp @@ -16,9 +16,9 @@ ******************************************************************************/ #include +#include #include "window-basic-main.hpp" #include "window-basic-source-select.hpp" -#include "qt-wrappers.hpp" #include "obs-app.hpp" struct AddSourceData { diff --git a/UI/window-basic-stats.cpp b/UI/window-basic-stats.cpp index d403e717900a57..95ea092ff2ad0a 100644 --- a/UI/window-basic-stats.cpp +++ b/UI/window-basic-stats.cpp @@ -4,8 +4,8 @@ #include "window-basic-main.hpp" #include "platform.hpp" #include "obs-app.hpp" -#include "qt-wrappers.hpp" +#include #include #include #include diff --git a/UI/window-basic-vcam-config.cpp b/UI/window-basic-vcam-config.cpp index 9cb5d15ebfdf9a..e8249967d282d0 100644 --- a/UI/window-basic-vcam-config.cpp +++ b/UI/window-basic-vcam-config.cpp @@ -1,7 +1,7 @@ #include "window-basic-vcam-config.hpp" #include "window-basic-main.hpp" -#include "qt-wrappers.hpp" +#include #include #include diff --git a/UI/window-extra-browsers.cpp b/UI/window-extra-browsers.cpp index 5ee8c686c73edd..ecfe0766fe895f 100644 --- a/UI/window-extra-browsers.cpp +++ b/UI/window-extra-browsers.cpp @@ -1,8 +1,8 @@ #include "window-extra-browsers.hpp" #include "window-dock-browser.hpp" #include "window-basic-main.hpp" -#include "qt-wrappers.hpp" +#include #include #include #include diff --git a/UI/window-importer.cpp b/UI/window-importer.cpp index ff1d0789fb801d..c5aa05c9f6e838 100644 --- a/UI/window-importer.cpp +++ b/UI/window-importer.cpp @@ -26,8 +26,8 @@ #include #include #include +#include -#include "qt-wrappers.hpp" #include "importers/importers.hpp" extern bool SceneCollectionExists(const char *findName); diff --git a/UI/window-missing-files.cpp b/UI/window-missing-files.cpp index 449e8614dd6bce..01eb2977eb2460 100644 --- a/UI/window-missing-files.cpp +++ b/UI/window-missing-files.cpp @@ -24,7 +24,7 @@ #include #include -#include "qt-wrappers.hpp" +#include enum MissingFilesColumn { Source, diff --git a/UI/window-namedialog.cpp b/UI/window-namedialog.cpp index c25cae214807de..86e54aefeed7f6 100644 --- a/UI/window-namedialog.cpp +++ b/UI/window-namedialog.cpp @@ -16,9 +16,9 @@ ******************************************************************************/ #include "window-namedialog.hpp" -#include "qt-wrappers.hpp" #include "obs-app.hpp" +#include #include NameDialog::NameDialog(QWidget *parent) : QDialog(parent) diff --git a/UI/window-projector.cpp b/UI/window-projector.cpp index e61f231825254d..d5322f54790829 100644 --- a/UI/window-projector.cpp +++ b/UI/window-projector.cpp @@ -3,10 +3,10 @@ #include #include #include +#include #include "obs-app.hpp" #include "window-basic-main.hpp" #include "display-helpers.hpp" -#include "qt-wrappers.hpp" #include "platform.hpp" #include "multiview.hpp" diff --git a/UI/window-remux.cpp b/UI/window-remux.cpp index 62ded65ac04608..410ab83d9090d0 100644 --- a/UI/window-remux.cpp +++ b/UI/window-remux.cpp @@ -31,8 +31,8 @@ #include #include #include +#include -#include "qt-wrappers.hpp" #include "window-basic-main.hpp" #include diff --git a/UI/window-youtube-actions.cpp b/UI/window-youtube-actions.cpp index 52d905f911f122..a76ce498926fde 100644 --- a/UI/window-youtube-actions.cpp +++ b/UI/window-youtube-actions.cpp @@ -2,9 +2,9 @@ #include "window-youtube-actions.hpp" #include "obs-app.hpp" -#include "qt-wrappers.hpp" #include "youtube-api-wrappers.hpp" +#include #include #include #include diff --git a/UI/youtube-api-wrappers.cpp b/UI/youtube-api-wrappers.cpp index 2582d5ab30276f..83e6a48996b265 100644 --- a/UI/youtube-api-wrappers.cpp +++ b/UI/youtube-api-wrappers.cpp @@ -6,11 +6,11 @@ #include #include +#include #include "auth-youtube.hpp" #include "obs-app.hpp" #include "window-basic-main.hpp" -#include "qt-wrappers.hpp" #include "remote-text.hpp" #include "ui-config.h" #include "obf.h" diff --git a/build-aux/.run-format.zsh b/build-aux/.run-format.zsh index e34e11e3768923..4a0fc21732ddfa 100755 --- a/build-aux/.run-format.zsh +++ b/build-aux/.run-format.zsh @@ -54,7 +54,7 @@ invoke_formatter() { exit 2 fi - if (( ! #source_files )) source_files=((libobs|libobs-*|UI|plugins|deps)/**/*.(c|cpp|h|hpp|m|mm)(.N)) + if (( ! #source_files )) source_files=((libobs|libobs-*|UI|plugins|deps|shared)/**/*.(c|cpp|h|hpp|m|mm)(.N)) source_files=(${source_files:#*/(obs-websocket/deps|decklink/*/decklink-sdk|mac-syphon/syphon-framework|obs-outputs/ftl-sdk|win-dshow/libdshowcapture)/*}) @@ -75,7 +75,7 @@ invoke_formatter() { exit 2 } - if (( ! #source_files )) source_files=((libobs|libobs-*|UI|plugins|deps|cmake)/**/(CMakeLists.txt|*.cmake)(.N)) + if (( ! #source_files )) source_files=((libobs|libobs-*|UI|plugins|deps|shared|cmake)/**/(CMakeLists.txt|*.cmake)(.N)) source_files=(${source_files:#*/(obs-outputs/ftl-sdk|jansson|decklink/*/decklink-sdk|obs-websocket|obs-browser|win-dshow/libdshowcapture)/*}) diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt index f046aba690e224..b99cb2cd2635e0 100644 --- a/deps/CMakeLists.txt +++ b/deps/CMakeLists.txt @@ -1,13 +1,7 @@ if(OS_WINDOWS) - add_subdirectory(ipc-util) add_subdirectory(w32-pthreads) endif() add_subdirectory(blake2) -add_subdirectory(file-updater) add_subdirectory(glad) -add_subdirectory(happy-eyeballs) add_subdirectory(libcaption) -add_subdirectory(media-playback) -add_subdirectory(obs-scripting) -add_subdirectory(opts-parser) diff --git a/plugins/obs-ffmpeg/cmake/dependencies.cmake b/plugins/obs-ffmpeg/cmake/dependencies.cmake index 087e8c2569b93c..6e809bbc273960 100644 --- a/plugins/obs-ffmpeg/cmake/dependencies.cmake +++ b/plugins/obs-ffmpeg/cmake/dependencies.cmake @@ -17,11 +17,11 @@ find_package( # cmake-format: on if(NOT TARGET OBS::media-playback) - add_subdirectory("${CMAKE_SOURCE_DIR}/deps/media-playback" "${CMAKE_BINARY_DIR}/deps/media-playback") + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/media-playback" "${CMAKE_BINARY_DIR}/shared/media-playback") endif() if(NOT TARGET OBS::opts-parser) - add_subdirectory("${CMAKE_SOURCE_DIR}/deps/opts-parser" "${CMAKE_BINARY_DIR}/deps/opts-parser") + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/opts-parser" "${CMAKE_BINARY_DIR}/shared/opts-parser") endif() if(OS_WINDOWS) diff --git a/plugins/obs-ffmpeg/cmake/legacy.cmake b/plugins/obs-ffmpeg/cmake/legacy.cmake index 558a34df62656e..04866b90ab0b92 100644 --- a/plugins/obs-ffmpeg/cmake/legacy.cmake +++ b/plugins/obs-ffmpeg/cmake/legacy.cmake @@ -17,6 +17,14 @@ find_package( add_library(obs-ffmpeg MODULE) add_library(OBS::ffmpeg ALIAS obs-ffmpeg) +if(NOT TARGET OBS::media-playback) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/media-playback" "${CMAKE_BINARY_DIR}/shared/media-playback") +endif() + +if(NOT TARGET OBS::opts-parser) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/opts-parser" "${CMAKE_BINARY_DIR}/shared/opts-parser") +endif() + add_subdirectory(ffmpeg-mux) if(ENABLE_NEW_MPEGTS_OUTPUT) find_package(Librist QUIET) diff --git a/plugins/obs-outputs/CMakeLists.txt b/plugins/obs-outputs/CMakeLists.txt index 576911a0c399c7..1e0a2fe41a6c9d 100644 --- a/plugins/obs-outputs/CMakeLists.txt +++ b/plugins/obs-outputs/CMakeLists.txt @@ -6,7 +6,11 @@ find_package(MbedTLS REQUIRED) find_package(ZLIB REQUIRED) if(NOT TARGET happy-eyeballs) - add_subdirectory("${CMAKE_SOURCE_DIR}/deps/happy-eyeballs" "${CMAKE_BINARY_DIR}/deps/happy-eyeballs") + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/happy-eyeballs" "${CMAKE_BINARY_DIR}/shared/happy-eyeballs") +endif() + +if(NOT TARGET OBS::opts-parser) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/opts-parser" "${CMAKE_BINARY_DIR}/shared/opts-parser") endif() add_library(obs-outputs MODULE) diff --git a/plugins/obs-outputs/cmake/legacy.cmake b/plugins/obs-outputs/cmake/legacy.cmake index 12b474a1e412f9..bc2607ec1ce8d6 100644 --- a/plugins/obs-outputs/cmake/legacy.cmake +++ b/plugins/obs-outputs/cmake/legacy.cmake @@ -13,6 +13,14 @@ mark_as_advanced(ENABLE_STATIC_MBEDTLS) add_library(obs-outputs MODULE) add_library(OBS::outputs ALIAS obs-outputs) +if(NOT TARGET happy-eyeballs) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/happy-eyeballs" "${CMAKE_BINARY_DIR}/shared/happy-eyeballs") +endif() + +if(NOT TARGET OBS::opts-parser) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/opts-parser" "${CMAKE_BINARY_DIR}/shared/opts-parser") +endif() + target_sources( obs-outputs PRIVATE obs-outputs.c diff --git a/plugins/obs-x264/CMakeLists.txt b/plugins/obs-x264/CMakeLists.txt index 196c5ab7ae5396..557d9655da1747 100644 --- a/plugins/obs-x264/CMakeLists.txt +++ b/plugins/obs-x264/CMakeLists.txt @@ -5,7 +5,7 @@ legacy_check() find_package(Libx264 REQUIRED) if(NOT TARGET OBS::opts-parser) - add_subdirectory("${CMAKE_SOURCE_DIR}/deps/opts-parser" "${CMAKE_BINARY_DIR}/deps/opts-parser") + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/opts-parser" "${CMAKE_BINARY_DIR}/shared/opts-parser") endif() add_library(obs-x264 MODULE) diff --git a/plugins/obs-x264/cmake/legacy.cmake b/plugins/obs-x264/cmake/legacy.cmake index a7049c1d848e79..c9d0fa21317c24 100644 --- a/plugins/obs-x264/cmake/legacy.cmake +++ b/plugins/obs-x264/cmake/legacy.cmake @@ -6,6 +6,10 @@ add_library(obs-x264 MODULE) add_library(OBS::x264 ALIAS obs-x264) add_executable(obs-x264-test) +if(NOT TARGET OBS::opts-parser) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/opts-parser" "${CMAKE_BINARY_DIR}/shared/opts-parser") +endif() + target_sources(obs-x264-test PRIVATE obs-x264-test.c) target_link_libraries(obs-x264-test PRIVATE OBS::opts-parser) diff --git a/plugins/rtmp-services/CMakeLists.txt b/plugins/rtmp-services/CMakeLists.txt index f2cf7555d258ee..9a1c993a981ebd 100644 --- a/plugins/rtmp-services/CMakeLists.txt +++ b/plugins/rtmp-services/CMakeLists.txt @@ -10,7 +10,7 @@ set(RTMP_SERVICES_URL mark_as_advanced(RTMP_SERVICES_URL) if(NOT TARGET OBS::file-updater) - add_subdirectory("${CMAKE_SOURCE_DIR}/deps/file-updater" "${CMAKE_BINARY_DIR}/deps/file-updater") + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/file-updater" "${CMAKE_BINARY_DIR}/shared/file-updater") endif() find_package(jansson REQUIRED) diff --git a/plugins/rtmp-services/cmake/legacy.cmake b/plugins/rtmp-services/cmake/legacy.cmake index 1215746fc7985c..88362cd75f5faa 100644 --- a/plugins/rtmp-services/cmake/legacy.cmake +++ b/plugins/rtmp-services/cmake/legacy.cmake @@ -13,6 +13,10 @@ add_library(OBS::rtmp-services ALIAS rtmp-services) find_package(Jansson 2.5 REQUIRED) +if(NOT TARGET OBS::file-updater) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/file-updater" "${CMAKE_BINARY_DIR}/shared/file-updater") +endif() + target_sources( rtmp-services PRIVATE service-specific/twitch.c diff --git a/plugins/win-capture/CMakeLists.txt b/plugins/win-capture/CMakeLists.txt index ae8bffaff50786..c7026bf2c7aa7d 100644 --- a/plugins/win-capture/CMakeLists.txt +++ b/plugins/win-capture/CMakeLists.txt @@ -27,11 +27,11 @@ mark_as_advanced(COMPAT_URL) # cmake-format: on if(NOT TARGET OBS::ipc-util) - add_subdirectory("${CMAKE_SOURCE_DIR}/deps/ipc-util" "${CMAKE_BINARY_DIR}/deps/ipc-util") + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/ipc-util" "${CMAKE_BINARY_DIR}/shared/ipc-util") endif() if(NOT TARGET OBS::file-updater) - add_subdirectory("${CMAKE_SOURCE_DIR}/deps/file-updater" "${CMAKE_BINARY_DIR}/deps/file-updater") + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/file-updater" "${CMAKE_BINARY_DIR}/shared/file-updater") endif() find_package(jansson REQUIRED) diff --git a/plugins/win-capture/cmake/legacy.cmake b/plugins/win-capture/cmake/legacy.cmake index 1b488a55b5afa3..7c529a678a2103 100644 --- a/plugins/win-capture/cmake/legacy.cmake +++ b/plugins/win-capture/cmake/legacy.cmake @@ -13,6 +13,14 @@ add_library(OBS::capture ALIAS win-capture) find_package(Jansson 2.5 REQUIRED) +if(NOT TARGET OBS::ipc-util) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/ipc-util" "${CMAKE_BINARY_DIR}/shared/ipc-util") +endif() + +if(NOT TARGET OBS::file-updater) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/file-updater" "${CMAKE_BINARY_DIR}/shared/file-updater") +endif() + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/compat-config.h.in ${CMAKE_BINARY_DIR}/config/compat-config.h) target_sources( diff --git a/plugins/win-capture/graphics-hook/CMakeLists.txt b/plugins/win-capture/graphics-hook/CMakeLists.txt index 91378ba9cbe68f..e5ad38324bb9ad 100644 --- a/plugins/win-capture/graphics-hook/CMakeLists.txt +++ b/plugins/win-capture/graphics-hook/CMakeLists.txt @@ -4,7 +4,7 @@ find_package(Detours REQUIRED) find_package(Vulkan REQUIRED) if(NOT TARGET OBS::ipc-util) - add_subdirectory("${CMAKE_SOURCE_DIR}/deps/ipc-util" "${CMAKE_BINARY_DIR}/deps/ipc-util") + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/ipc-util" "${CMAKE_BINARY_DIR}/shared/ipc-util") endif() if(NOT TARGET OBS::obfuscate) diff --git a/plugins/win-capture/graphics-hook/cmake/legacy.cmake b/plugins/win-capture/graphics-hook/cmake/legacy.cmake index bcf2623b0944e0..e23a364efb3eb6 100644 --- a/plugins/win-capture/graphics-hook/cmake/legacy.cmake +++ b/plugins/win-capture/graphics-hook/cmake/legacy.cmake @@ -6,6 +6,10 @@ find_package(Vulkan REQUIRED) add_library(graphics-hook MODULE) add_library(OBS::graphics-hook ALIAS graphics-hook) +if(NOT TARGET OBS::ipc-util) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/ipc-util" "${CMAKE_BINARY_DIR}/shared/ipc-util") +endif() + target_sources( graphics-hook PRIVATE graphics-hook.c diff --git a/deps/file-updater/CMakeLists.txt b/shared/file-updater/CMakeLists.txt similarity index 100% rename from deps/file-updater/CMakeLists.txt rename to shared/file-updater/CMakeLists.txt diff --git a/deps/file-updater/file-updater/file-updater.c b/shared/file-updater/file-updater/file-updater.c similarity index 100% rename from deps/file-updater/file-updater/file-updater.c rename to shared/file-updater/file-updater/file-updater.c diff --git a/deps/file-updater/file-updater/file-updater.h b/shared/file-updater/file-updater/file-updater.h similarity index 100% rename from deps/file-updater/file-updater/file-updater.h rename to shared/file-updater/file-updater/file-updater.h diff --git a/deps/happy-eyeballs/CMakeLists.txt b/shared/happy-eyeballs/CMakeLists.txt similarity index 100% rename from deps/happy-eyeballs/CMakeLists.txt rename to shared/happy-eyeballs/CMakeLists.txt diff --git a/deps/happy-eyeballs/happy-eyeballs.c b/shared/happy-eyeballs/happy-eyeballs.c similarity index 100% rename from deps/happy-eyeballs/happy-eyeballs.c rename to shared/happy-eyeballs/happy-eyeballs.c diff --git a/deps/happy-eyeballs/happy-eyeballs.h b/shared/happy-eyeballs/happy-eyeballs.h similarity index 100% rename from deps/happy-eyeballs/happy-eyeballs.h rename to shared/happy-eyeballs/happy-eyeballs.h diff --git a/deps/ipc-util/CMakeLists.txt b/shared/ipc-util/CMakeLists.txt similarity index 100% rename from deps/ipc-util/CMakeLists.txt rename to shared/ipc-util/CMakeLists.txt diff --git a/deps/ipc-util/ipc-util/pipe-posix.c b/shared/ipc-util/ipc-util/pipe-posix.c similarity index 100% rename from deps/ipc-util/ipc-util/pipe-posix.c rename to shared/ipc-util/ipc-util/pipe-posix.c diff --git a/deps/ipc-util/ipc-util/pipe-posix.h b/shared/ipc-util/ipc-util/pipe-posix.h similarity index 100% rename from deps/ipc-util/ipc-util/pipe-posix.h rename to shared/ipc-util/ipc-util/pipe-posix.h diff --git a/deps/ipc-util/ipc-util/pipe-windows.c b/shared/ipc-util/ipc-util/pipe-windows.c similarity index 100% rename from deps/ipc-util/ipc-util/pipe-windows.c rename to shared/ipc-util/ipc-util/pipe-windows.c diff --git a/deps/ipc-util/ipc-util/pipe-windows.h b/shared/ipc-util/ipc-util/pipe-windows.h similarity index 100% rename from deps/ipc-util/ipc-util/pipe-windows.h rename to shared/ipc-util/ipc-util/pipe-windows.h diff --git a/deps/ipc-util/ipc-util/pipe.h b/shared/ipc-util/ipc-util/pipe.h similarity index 100% rename from deps/ipc-util/ipc-util/pipe.h rename to shared/ipc-util/ipc-util/pipe.h diff --git a/deps/media-playback/CMakeLists.txt b/shared/media-playback/CMakeLists.txt similarity index 100% rename from deps/media-playback/CMakeLists.txt rename to shared/media-playback/CMakeLists.txt diff --git a/deps/media-playback/LICENSE.media-playback b/shared/media-playback/LICENSE.media-playback similarity index 100% rename from deps/media-playback/LICENSE.media-playback rename to shared/media-playback/LICENSE.media-playback diff --git a/deps/media-playback/media-playback/cache.c b/shared/media-playback/media-playback/cache.c similarity index 100% rename from deps/media-playback/media-playback/cache.c rename to shared/media-playback/media-playback/cache.c diff --git a/deps/media-playback/media-playback/cache.h b/shared/media-playback/media-playback/cache.h similarity index 100% rename from deps/media-playback/media-playback/cache.h rename to shared/media-playback/media-playback/cache.h diff --git a/deps/media-playback/media-playback/closest-format.h b/shared/media-playback/media-playback/closest-format.h similarity index 100% rename from deps/media-playback/media-playback/closest-format.h rename to shared/media-playback/media-playback/closest-format.h diff --git a/deps/media-playback/media-playback/decode.c b/shared/media-playback/media-playback/decode.c similarity index 100% rename from deps/media-playback/media-playback/decode.c rename to shared/media-playback/media-playback/decode.c diff --git a/deps/media-playback/media-playback/decode.h b/shared/media-playback/media-playback/decode.h similarity index 100% rename from deps/media-playback/media-playback/decode.h rename to shared/media-playback/media-playback/decode.h diff --git a/deps/media-playback/media-playback/media-playback.c b/shared/media-playback/media-playback/media-playback.c similarity index 100% rename from deps/media-playback/media-playback/media-playback.c rename to shared/media-playback/media-playback/media-playback.c diff --git a/deps/media-playback/media-playback/media-playback.h b/shared/media-playback/media-playback/media-playback.h similarity index 100% rename from deps/media-playback/media-playback/media-playback.h rename to shared/media-playback/media-playback/media-playback.h diff --git a/deps/media-playback/media-playback/media.c b/shared/media-playback/media-playback/media.c similarity index 100% rename from deps/media-playback/media-playback/media.c rename to shared/media-playback/media-playback/media.c diff --git a/deps/media-playback/media-playback/media.h b/shared/media-playback/media-playback/media.h similarity index 100% rename from deps/media-playback/media-playback/media.h rename to shared/media-playback/media-playback/media.h diff --git a/deps/obs-scripting/CMakeLists.txt b/shared/obs-scripting/CMakeLists.txt similarity index 100% rename from deps/obs-scripting/CMakeLists.txt rename to shared/obs-scripting/CMakeLists.txt diff --git a/deps/obs-scripting/cmake/cstrcache.cmake b/shared/obs-scripting/cmake/cstrcache.cmake similarity index 100% rename from deps/obs-scripting/cmake/cstrcache.cmake rename to shared/obs-scripting/cmake/cstrcache.cmake diff --git a/deps/obs-scripting/cmake/legacy.cmake b/shared/obs-scripting/cmake/legacy.cmake similarity index 97% rename from deps/obs-scripting/cmake/legacy.cmake rename to shared/obs-scripting/cmake/legacy.cmake index bf4d9a4ef78e38..75a7d72aa3e7ac 100644 --- a/deps/obs-scripting/cmake/legacy.cmake +++ b/shared/obs-scripting/cmake/legacy.cmake @@ -176,3 +176,6 @@ target_compile_definitions(obs-scripting PRIVATE SCRIPT_DIR="${OBS_SCRIPT_PLUGIN $<$:ENABLE_UI>) setup_binary_target(obs-scripting) + +# Dirty workaround: CMake 2.0 seems to fail without this file +file(TOUCH "${CMAKE_BINARY_DIR}/shared/cmake_install.cmake") diff --git a/deps/obs-scripting/cmake/lua.cmake b/shared/obs-scripting/cmake/lua.cmake similarity index 100% rename from deps/obs-scripting/cmake/lua.cmake rename to shared/obs-scripting/cmake/lua.cmake diff --git a/deps/obs-scripting/cmake/python.cmake b/shared/obs-scripting/cmake/python.cmake similarity index 100% rename from deps/obs-scripting/cmake/python.cmake rename to shared/obs-scripting/cmake/python.cmake diff --git a/deps/obs-scripting/cmake/windows/obs-module.rc.in b/shared/obs-scripting/cmake/windows/obs-module.rc.in similarity index 100% rename from deps/obs-scripting/cmake/windows/obs-module.rc.in rename to shared/obs-scripting/cmake/windows/obs-module.rc.in diff --git a/deps/obs-scripting/cstrcache.cpp b/shared/obs-scripting/cstrcache.cpp similarity index 100% rename from deps/obs-scripting/cstrcache.cpp rename to shared/obs-scripting/cstrcache.cpp diff --git a/deps/obs-scripting/cstrcache.h b/shared/obs-scripting/cstrcache.h similarity index 100% rename from deps/obs-scripting/cstrcache.h rename to shared/obs-scripting/cstrcache.h diff --git a/deps/obs-scripting/obs-scripting-callback.h b/shared/obs-scripting/obs-scripting-callback.h similarity index 100% rename from deps/obs-scripting/obs-scripting-callback.h rename to shared/obs-scripting/obs-scripting-callback.h diff --git a/deps/obs-scripting/obs-scripting-config.h.in b/shared/obs-scripting/obs-scripting-config.h.in similarity index 100% rename from deps/obs-scripting/obs-scripting-config.h.in rename to shared/obs-scripting/obs-scripting-config.h.in diff --git a/deps/obs-scripting/obs-scripting-internal.h b/shared/obs-scripting/obs-scripting-internal.h similarity index 100% rename from deps/obs-scripting/obs-scripting-internal.h rename to shared/obs-scripting/obs-scripting-internal.h diff --git a/deps/obs-scripting/obs-scripting-logging.c b/shared/obs-scripting/obs-scripting-logging.c similarity index 100% rename from deps/obs-scripting/obs-scripting-logging.c rename to shared/obs-scripting/obs-scripting-logging.c diff --git a/deps/obs-scripting/obs-scripting-lua-frontend.c b/shared/obs-scripting/obs-scripting-lua-frontend.c similarity index 100% rename from deps/obs-scripting/obs-scripting-lua-frontend.c rename to shared/obs-scripting/obs-scripting-lua-frontend.c diff --git a/deps/obs-scripting/obs-scripting-lua-source.c b/shared/obs-scripting/obs-scripting-lua-source.c similarity index 100% rename from deps/obs-scripting/obs-scripting-lua-source.c rename to shared/obs-scripting/obs-scripting-lua-source.c diff --git a/deps/obs-scripting/obs-scripting-lua.c b/shared/obs-scripting/obs-scripting-lua.c similarity index 100% rename from deps/obs-scripting/obs-scripting-lua.c rename to shared/obs-scripting/obs-scripting-lua.c diff --git a/deps/obs-scripting/obs-scripting-lua.h b/shared/obs-scripting/obs-scripting-lua.h similarity index 100% rename from deps/obs-scripting/obs-scripting-lua.h rename to shared/obs-scripting/obs-scripting-lua.h diff --git a/deps/obs-scripting/obs-scripting-python-frontend.c b/shared/obs-scripting/obs-scripting-python-frontend.c similarity index 100% rename from deps/obs-scripting/obs-scripting-python-frontend.c rename to shared/obs-scripting/obs-scripting-python-frontend.c diff --git a/deps/obs-scripting/obs-scripting-python-import.c b/shared/obs-scripting/obs-scripting-python-import.c similarity index 100% rename from deps/obs-scripting/obs-scripting-python-import.c rename to shared/obs-scripting/obs-scripting-python-import.c diff --git a/deps/obs-scripting/obs-scripting-python-import.h b/shared/obs-scripting/obs-scripting-python-import.h similarity index 100% rename from deps/obs-scripting/obs-scripting-python-import.h rename to shared/obs-scripting/obs-scripting-python-import.h diff --git a/deps/obs-scripting/obs-scripting-python.c b/shared/obs-scripting/obs-scripting-python.c similarity index 100% rename from deps/obs-scripting/obs-scripting-python.c rename to shared/obs-scripting/obs-scripting-python.c diff --git a/deps/obs-scripting/obs-scripting-python.h b/shared/obs-scripting/obs-scripting-python.h similarity index 100% rename from deps/obs-scripting/obs-scripting-python.h rename to shared/obs-scripting/obs-scripting-python.h diff --git a/deps/obs-scripting/obs-scripting.c b/shared/obs-scripting/obs-scripting.c similarity index 100% rename from deps/obs-scripting/obs-scripting.c rename to shared/obs-scripting/obs-scripting.c diff --git a/deps/obs-scripting/obs-scripting.h b/shared/obs-scripting/obs-scripting.h similarity index 100% rename from deps/obs-scripting/obs-scripting.h rename to shared/obs-scripting/obs-scripting.h diff --git a/deps/obs-scripting/obslua/CMakeLists.txt b/shared/obs-scripting/obslua/CMakeLists.txt similarity index 100% rename from deps/obs-scripting/obslua/CMakeLists.txt rename to shared/obs-scripting/obslua/CMakeLists.txt diff --git a/deps/obs-scripting/obslua/cmake/legacy.cmake b/shared/obs-scripting/obslua/cmake/legacy.cmake similarity index 100% rename from deps/obs-scripting/obslua/cmake/legacy.cmake rename to shared/obs-scripting/obslua/cmake/legacy.cmake diff --git a/deps/obs-scripting/obslua/obslua.i b/shared/obs-scripting/obslua/obslua.i similarity index 100% rename from deps/obs-scripting/obslua/obslua.i rename to shared/obs-scripting/obslua/obslua.i diff --git a/deps/obs-scripting/obspython/CMakeLists.txt b/shared/obs-scripting/obspython/CMakeLists.txt similarity index 100% rename from deps/obs-scripting/obspython/CMakeLists.txt rename to shared/obs-scripting/obspython/CMakeLists.txt diff --git a/deps/obs-scripting/obspython/cmake/legacy.cmake b/shared/obs-scripting/obspython/cmake/legacy.cmake similarity index 100% rename from deps/obs-scripting/obspython/cmake/legacy.cmake rename to shared/obs-scripting/obspython/cmake/legacy.cmake diff --git a/deps/obs-scripting/obspython/obspython.i b/shared/obs-scripting/obspython/obspython.i similarity index 100% rename from deps/obs-scripting/obspython/obspython.i rename to shared/obs-scripting/obspython/obspython.i diff --git a/deps/opts-parser/CMakeLists.txt b/shared/opts-parser/CMakeLists.txt similarity index 100% rename from deps/opts-parser/CMakeLists.txt rename to shared/opts-parser/CMakeLists.txt diff --git a/deps/opts-parser/opts-parser.c b/shared/opts-parser/opts-parser.c similarity index 100% rename from deps/opts-parser/opts-parser.c rename to shared/opts-parser/opts-parser.c diff --git a/deps/opts-parser/opts-parser.h b/shared/opts-parser/opts-parser.h similarity index 100% rename from deps/opts-parser/opts-parser.h rename to shared/opts-parser/opts-parser.h diff --git a/shared/properties-view/CMakeLists.txt b/shared/properties-view/CMakeLists.txt new file mode 100644 index 00000000000000..b66393fcf53f7a --- /dev/null +++ b/shared/properties-view/CMakeLists.txt @@ -0,0 +1,51 @@ +cmake_minimum_required(VERSION 3.22...3.25) + +find_package(Qt6 REQUIRED Core Widgets) + +if(NOT TARGET OBS::qt-wrappers) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/wrappers" "${CMAKE_BINARY_DIR}/shared/qt/wrappers") +endif() + +if(NOT TARGET OBS::qt-plain-text-edit) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/plain-text-edit" "${CMAKE_BINARY_DIR}/shared/qt/plain-text-edit") +endif() + +if(NOT TARGET OBS::qt-vertical-scroll-area) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/vertical-scroll-area" + "${CMAKE_BINARY_DIR}/shared/qt/vertical-scroll-area") +endif() + +if(NOT TARGET OBS::qt-slider-ignorewheel) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/slider-ignorewheel" + "${CMAKE_BINARY_DIR}/shared/qt/slider-ignorewheel") +endif() + +add_library(properties-view INTERFACE) +add_library(OBS::properties-view ALIAS properties-view) + +target_sources( + properties-view + INTERFACE # cmake-format: sortable + double-slider.cpp + double-slider.hpp + properties-view.cpp + properties-view.hpp + properties-view.moc.hpp + spinbox-ignorewheel.cpp + spinbox-ignorewheel.hpp) +target_include_directories(properties-view INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}") + +if(OS_LINUX AND Qt6_VERSION VERSION_LESS 6.3) + target_compile_options(properties-view INTERFACE -Wno-error=enum-conversion) +endif() + +target_link_libraries( + properties-view + INTERFACE OBS::frontend-api + OBS::libobs + OBS::qt-wrappers + OBS::qt-plain-text-edit + OBS::qt-vertical-scroll-area + OBS::qt-slider-ignorewheel + Qt::Core + Qt::Widgets) diff --git a/UI/double-slider.cpp b/shared/properties-view/double-slider.cpp similarity index 100% rename from UI/double-slider.cpp rename to shared/properties-view/double-slider.cpp diff --git a/UI/double-slider.hpp b/shared/properties-view/double-slider.hpp similarity index 91% rename from UI/double-slider.hpp rename to shared/properties-view/double-slider.hpp index cf0e966cf5b7ab..8274506d02a5cd 100644 --- a/UI/double-slider.hpp +++ b/shared/properties-view/double-slider.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include "slider-ignorewheel.hpp" +#include class DoubleSlider : public SliderIgnoreScroll { Q_OBJECT diff --git a/UI/properties-view.cpp b/shared/properties-view/properties-view.cpp similarity index 96% rename from UI/properties-view.cpp rename to shared/properties-view/properties-view.cpp index 69f176b1474d10..ad861ea7ee52d3 100644 --- a/UI/properties-view.cpp +++ b/shared/properties-view/properties-view.cpp @@ -25,20 +25,20 @@ #include #include #include "double-slider.hpp" -#include "slider-ignorewheel.hpp" #include "spinbox-ignorewheel.hpp" -#include "qt-wrappers.hpp" #include "properties-view.hpp" #include "properties-view.moc.hpp" -#include "plain-text-edit.hpp" -#include "obs-app.hpp" +#include +#include +#include #include #include #include #include #include #include +#include using namespace std; @@ -106,7 +106,7 @@ void OBSPropertiesView::ReloadProperties() RefreshProperties(); } -#define NO_PROPERTIES_STRING QTStr("Basic.PropertiesWindow.NoProperties") +#define NO_PROPERTIES_STRING QObject::tr("Basic.PropertiesWindow.NoProperties") void OBSPropertiesView::RefreshProperties() { @@ -306,7 +306,7 @@ QWidget *OBSPropertiesView::AddText(obs_property_t *prop, QFormLayout *layout, QLineEdit *edit = new QLineEdit(); QPushButton *show = new QPushButton(); - show->setText(QTStr("Show")); + show->setText(tr("Show")); show->setCheckable(true); edit->setText(QT_UTF8(val)); edit->setEchoMode(QLineEdit::Password); @@ -318,7 +318,7 @@ QWidget *OBSPropertiesView::AddText(obs_property_t *prop, QFormLayout *layout, connect(show, &QAbstractButton::toggled, info, &WidgetInfo::TogglePasswordText); connect(show, &QAbstractButton::toggled, [=](bool hide) { - show->setText(hide ? QTStr("Hide") : QTStr("Show")); + show->setText(hide ? tr("Hide") : tr("Show")); }); children.emplace_back(info); @@ -345,7 +345,7 @@ QWidget *OBSPropertiesView::AddText(obs_property_t *prop, QFormLayout *layout, label = new QLabel(desc); if (long_desc != NULL && !info_label->text().isEmpty()) { - QString file = !App()->IsThemeDark() + QString file = !obs_frontend_is_theme_dark() ? ":/res/images/help.svg" : ":/res/images/help_light.svg"; QString lStr = "%1