frontend: Migrate CMake files

This commit is contained in:
PatTheMav committed 2025-01-08 17:33:13 +01:00
1 parent ff3b62422e
commit 08a2eb304b
57 files changed
+509 -389

No files matched your search

-10
View File
@@ -1,10 +0,0 @@
if(TARGET OBS::browser-panels)
target_enable_feature(obs-studio "Browser panels" BROWSER_AVAILABLE)
target_link_libraries(obs-studio PRIVATE OBS::browser-panels)
target_sources(
obs-studio
PRIVATE window-dock-browser.cpp window-dock-browser.hpp window-extra-browsers.cpp window-extra-browsers.hpp
)
endif()
-10
View File
@@ -1,10 +0,0 @@
target_sources(
obs-studio
PRIVATE
importers/classic.cpp
importers/importers.cpp
importers/importers.hpp
importers/sl.cpp
importers/studio.cpp
importers/xsplit.cpp
)
-78
View File
@@ -1,78 +0,0 @@
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()
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
PRIVATE
absolute-slider.cpp
absolute-slider.hpp
adv-audio-control.cpp
adv-audio-control.hpp
audio-encoders.cpp
audio-encoders.hpp
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
item-widget-helpers.hpp
log-viewer.cpp
log-viewer.hpp
media-controls.cpp
media-controls.hpp
menu-button.cpp
menu-button.hpp
mute-checkbox.hpp
noncheckable-button.hpp
preview-controls.cpp
preview-controls.hpp
remote-text.cpp
remote-text.hpp
scene-tree.cpp
scene-tree.hpp
screenshot-obj.hpp
source-label.cpp
source-label.hpp
source-tree.cpp
source-tree.hpp
undo-stack-obs.cpp
undo-stack-obs.hpp
url-push-button.cpp
url-push-button.hpp
visibility-item-widget.cpp
visibility-item-widget.hpp
volume-control.cpp
volume-control.hpp
)
-65
View File
@@ -1,65 +0,0 @@
find_package(Qt6 REQUIRED Widgets Network Svg Xml)
if(OS_LINUX OR OS_FREEBSD OR OS_OPENBSD)
find_package(Qt6 REQUIRED Gui DBus)
endif()
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
PROPERTIES AUTOMOC ON AUTOUIC ON AUTORCC ON
)
set_property(TARGET obs-studio APPEND PROPERTY AUTOUIC_SEARCH_PATHS forms forms/source-toolbar)
set(
_qt_sources
forms/AutoConfigFinishPage.ui
forms/AutoConfigStartPage.ui
forms/AutoConfigStartPage.ui
forms/AutoConfigStreamPage.ui
forms/AutoConfigTestPage.ui
forms/AutoConfigVideoPage.ui
forms/ColorSelect.ui
forms/obs.qrc
forms/OBSAbout.ui
forms/OBSAdvAudio.ui
forms/OBSBasic.ui
forms/OBSBasicControls.ui
forms/OBSBasicFilters.ui
forms/OBSBasicInteraction.ui
forms/OBSBasicProperties.ui
forms/OBSBasicSettings.ui
forms/OBSBasicSourceSelect.ui
forms/OBSBasicTransform.ui
forms/OBSBasicVCamConfig.ui
forms/OBSExtraBrowsers.ui
forms/OBSImporter.ui
forms/OBSLogReply.ui
forms/OBSLogViewer.ui
forms/OBSMissingFiles.ui
forms/OBSRemux.ui
forms/OBSUpdate.ui
forms/OBSYoutubeActions.ui
forms/source-toolbar/browser-source-toolbar.ui
forms/source-toolbar/color-source-toolbar.ui
forms/source-toolbar/device-select-toolbar.ui
forms/source-toolbar/game-capture-toolbar.ui
forms/source-toolbar/image-source-toolbar.ui
forms/source-toolbar/media-controls.ui
forms/source-toolbar/text-source-toolbar.ui
)
target_sources(obs-studio PRIVATE ${_qt_sources})
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}/forms" PREFIX "UI Files" FILES ${_qt_sources})
unset(_qt_sources)
-63
View File
@@ -1,63 +0,0 @@
target_sources(
obs-studio
PRIVATE
window-basic-about.cpp
window-basic-about.hpp
window-basic-adv-audio.cpp
window-basic-adv-audio.hpp
window-basic-auto-config-test.cpp
window-basic-auto-config.cpp
window-basic-auto-config.hpp
window-basic-filters.cpp
window-basic-filters.hpp
window-basic-interaction.cpp
window-basic-interaction.hpp
window-basic-main-browser.cpp
window-basic-main-dropfiles.cpp
window-basic-main-icons.cpp
window-basic-main-outputs.cpp
window-basic-main-outputs.hpp
window-basic-main-profiles.cpp
window-basic-main-scene-collections.cpp
window-basic-main-screenshot.cpp
window-basic-main-transitions.cpp
window-basic-main.cpp
window-basic-main.hpp
window-basic-preview.cpp
window-basic-preview.hpp
window-basic-properties.cpp
window-basic-properties.hpp
window-basic-settings-a11y.cpp
window-basic-settings-appearance.cpp
window-basic-settings-stream.cpp
window-basic-settings.cpp
window-basic-settings.hpp
window-basic-source-select.cpp
window-basic-source-select.hpp
window-basic-stats.cpp
window-basic-stats.hpp
window-basic-status-bar.cpp
window-basic-status-bar.hpp
window-basic-transform.cpp
window-basic-transform.hpp
window-basic-vcam-config.cpp
window-basic-vcam-config.hpp
window-basic-vcam.hpp
window-dock.cpp
window-dock.hpp
window-importer.cpp
window-importer.hpp
window-log-reply.cpp
window-log-reply.hpp
window-main.hpp
window-missing-files.cpp
window-missing-files.hpp
window-namedialog.cpp
window-namedialog.hpp
window-projector.cpp
window-projector.hpp
window-remux.cpp
window-remux.hpp
window-whats-new.cpp
window-whats-new.hpp
)
-20
View File
@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<description>OBS Studio</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"
/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 and Windows 11 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
</assembly>
-26
View File
@@ -1,26 +0,0 @@
IDI_ICON1 ICON DISCARDABLE "../cmake/bundle/windows/obs-studio.ico"
1 VERSIONINFO
FILEVERSION ${UI_VERSION_MAJOR},${UI_VERSION_MINOR},${UI_VERSION_PATCH},0
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904B0"
BEGIN
VALUE "CompanyName", "OBS"
VALUE "FileDescription", "OBS Studio"
VALUE "FileVersion", "${UI_VERSION}"
VALUE "InternalName", "obs"
VALUE "OriginalFilename", "obs"
VALUE "ProductName", "OBS Studio"
VALUE "ProductVersion", "${UI_VERSION}"
VALUE "Comments", "Free and open source software for video recording and live streaming"
VALUE "LegalCopyright", "(C) Lain Bailey"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0409, 0x04B0
END
END
+36 -55
View File
@@ -1,10 +1,10 @@
cmake_minimum_required(VERSION 3.28...3.30)
add_subdirectory(obs-frontend-api)
add_subdirectory(api)
option(ENABLE_UI "Enable building with UI (requires Qt)" ON)
option(ENABLE_FRONTEND "Enable building with UI frontend (requires Qt6)" ON)
if(NOT ENABLE_UI)
if(NOT ENABLE_FRONTEND)
target_disable_feature(obs "User Interface")
return()
else()
@@ -15,11 +15,15 @@ find_package(FFmpeg REQUIRED COMPONENTS avcodec avutil avformat)
find_package(CURL REQUIRED)
if(NOT TARGET OBS::json11)
add_subdirectory("${CMAKE_SOURCE_DIR}/deps/json11" "${CMAKE_BINARY_DIR}/deps/json11")
add_subdirectory("${CMAKE_SOURCE_DIR}/deps/json11" json11)
endif()
if(NOT TARGET OBS::libobs)
add_subdirectory("${CMAKE_SOURCE_DIR}/libobs" libobs)
endif()
if(NOT TARGET OBS::bpm)
add_subdirectory("${CMAKE_SOURCE_DIR}/shared/bpm" "${CMAKE_BINARY_DIR}/shared/bpm")
add_subdirectory("${CMAKE_SOURCE_DIR}/shared/bpm" bpm)
endif()
add_executable(obs-studio)
@@ -32,17 +36,23 @@ target_link_libraries(
FFmpeg::avcodec
FFmpeg::avutil
FFmpeg::avformat
OBS::bpm
OBS::libobs
OBS::frontend-api
OBS::json11
OBS::bpm
)
include(cmake/ui-qt.cmake)
include(cmake/ui-elements.cmake)
include(cmake/ui-windows.cmake)
include(cmake/ui-components.cmake)
include(cmake/ui-dialogs.cmake)
include(cmake/ui-docks.cmake)
include(cmake/feature-importers.cmake)
include(cmake/ui-oauth.cmake)
include(cmake/feature-browserpanels.cmake)
include(cmake/ui-qt.cmake)
include(cmake/ui-settings.cmake)
include(cmake/ui-utility.cmake)
include(cmake/ui-widgets.cmake)
include(cmake/ui-wizards.cmake)
if(NOT OAUTH_BASE_URL)
set(OAUTH_BASE_URL "https://auth.obsproject.com/" CACHE STRING "Default OAuth base URL")
@@ -53,56 +63,13 @@ include(cmake/feature-restream.cmake)
include(cmake/feature-youtube.cmake)
include(cmake/feature-whatsnew.cmake)
add_subdirectory(frontend-plugins)
add_subdirectory(plugins)
configure_file(ui-config.h.in ui-config.h)
configure_file(cmake/templates/ui-config.h.in ui-config.h)
target_sources(
obs-studio
PRIVATE
api-interface.cpp
auth-base.cpp
auth-base.hpp
auth-listener.cpp
auth-listener.hpp
auth-oauth.cpp
auth-oauth.hpp
display-helpers.hpp
ffmpeg-utils.cpp
ffmpeg-utils.hpp
multiview.cpp
multiview.hpp
obf.c
obf.h
obs-app-theming.cpp
obs-app-theming.hpp
obs-app.cpp
obs-app.hpp
obs-proxy-style.cpp
obs-proxy-style.hpp
platform.hpp
qt-display.cpp
qt-display.hpp
ui-config.h
ui-validation.cpp
ui-validation.hpp
)
target_sources(
obs-studio
PRIVATE
goliveapi-censoredjson.cpp
goliveapi-censoredjson.hpp
goliveapi-network.cpp
goliveapi-network.hpp
goliveapi-postdata.cpp
goliveapi-postdata.hpp
models/multitrack-video.hpp
multitrack-video-error.cpp
multitrack-video-error.hpp
multitrack-video-output.cpp
multitrack-video-output.hpp
system-info.hpp
PRIVATE obs-main.cpp OBSStudioAPI.cpp OBSStudioAPI.hpp OBSApp.cpp OBSApp.hpp OBSApp_Themes.cpp ui-config.h
)
if(OS_WINDOWS)
@@ -132,4 +99,18 @@ get_property(obs_module_list GLOBAL PROPERTY OBS_MODULES_ENABLED)
list(JOIN obs_module_list "|" SAFE_MODULES)
target_compile_definitions(obs-studio PRIVATE "SAFE_MODULES=\"${SAFE_MODULES}\"")
get_target_property(target_sources obs-studio SOURCES)
set(target_cpp_sources ${target_sources})
set(target_hpp_sources ${target_sources})
set(target_qt_sources ${target_sources})
list(FILTER target_cpp_sources INCLUDE REGEX ".+\\.(cpp|mm|c|m)")
list(SORT target_cpp_sources COMPARE NATURAL CASE SENSITIVE ORDER ASCENDING)
list(FILTER target_hpp_sources INCLUDE REGEX ".+\\.(hpp|h)")
list(SORT target_hpp_sources COMPARE NATURAL CASE SENSITIVE ORDER ASCENDING)
list(FILTER target_qt_sources INCLUDE REGEX ".+\\.(ui|qrc)")
list(SORT target_qt_sources COMPARE NATURAL CASE SENSITIVE ORDER ASCENDING)
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" PREFIX "Source Files" FILES ${target_cpp_sources})
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" PREFIX "Header Files" FILES ${target_hpp_sources})
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" PREFIX "Qt Files" FILES ${target_qt_sources})
set_target_properties_obs(obs-studio PROPERTIES FOLDER frontend OUTPUT_NAME "$<IF:$<PLATFORM_ID:Windows>,obs64,obs>")
@@ -0,0 +1,18 @@
if(TARGET OBS::browser-panels)
target_enable_feature(obs-studio "Browser panels" BROWSER_AVAILABLE)
target_link_libraries(obs-studio PRIVATE OBS::browser-panels)
target_sources(
obs-studio
PRIVATE
dialogs/OBSExtraBrowsers.cpp
dialogs/OBSExtraBrowsers.hpp
docks/BrowserDock.cpp
docks/BrowserDock.hpp
utility/ExtraBrowsersDelegate.cpp
utility/ExtraBrowsersDelegate.hpp
utility/ExtraBrowsersModel.cpp
utility/ExtraBrowsersModel.hpp
)
endif()
+16
View File
@@ -0,0 +1,16 @@
target_sources(
obs-studio
PRIVATE
importer/ImporterEntryPathItemDelegate.cpp
importer/ImporterEntryPathItemDelegate.hpp
importer/ImporterModel.cpp
importer/ImporterModel.hpp
importer/OBSImporter.cpp
importer/OBSImporter.hpp
importers/classic.cpp
importers/importers.cpp
importers/importers.hpp
importers/sl.cpp
importers/studio.cpp
importers/xsplit.cpp
)
@@ -9,14 +9,16 @@ endif()
target_sources(
obs-studio
PRIVATE
update/crypto-helpers-mac.mm
update/crypto-helpers.hpp
update/models/branches.hpp
update/models/whatsnew.hpp
update/shared-update.cpp
update/shared-update.hpp
update/update-helpers.cpp
update/update-helpers.hpp
utility/crypto-helpers-mac.mm
utility/crypto-helpers.hpp
utility/models/branches.hpp
utility/models/whatsnew.hpp
utility/update-helpers.cpp
utility/update-helpers.hpp
utility/WhatsNewBrowserInitThread.cpp
utility/WhatsNewBrowserInitThread.hpp
utility/WhatsNewInfoThread.cpp
utility/WhatsNewInfoThread.hpp
)
target_link_libraries(
@@ -1,5 +1,5 @@
if(RESTREAM_CLIENTID AND RESTREAM_HASH MATCHES "^(0|[a-fA-F0-9]+)$" AND TARGET OBS::browser-panels)
target_sources(obs-studio PRIVATE auth-restream.cpp auth-restream.hpp)
target_sources(obs-studio PRIVATE oauth/RestreamAuth.cpp oauth/RestreamAuth.hpp)
target_enable_feature(obs-studio "Restream API connection" RESTREAM_ENABLED)
else()
target_disable_feature(obs-studio "Restream API connection")
@@ -1,8 +1,17 @@
if(SPARKLE_APPCAST_URL AND SPARKLE_PUBLIC_KEY)
find_library(SPARKLE Sparkle)
mark_as_advanced(SPARKLE)
target_sources(obs-studio PRIVATE update/mac-update.cpp update/mac-update.hpp update/sparkle-updater.mm)
set_source_files_properties(update/sparkle-updater.mm PROPERTIES COMPILE_FLAGS -fobjc-arc)
target_sources(
obs-studio
PRIVATE
utility/MacUpdateThread.cpp
utility/MacUpdateThread.hpp
utility/OBSSparkle.hpp
utility/OBSSparkle.mm
utility/OBSUpdateDelegate.h
utility/OBSUpdateDelegate.mm
)
set_source_files_properties(utility/OBSSparkle.mm PROPERTIES COMPILE_FLAGS -fobjc-arc)
target_link_libraries(obs-studio PRIVATE "$<LINK_LIBRARY:FRAMEWORK,${SPARKLE}>")
@@ -1,5 +1,5 @@
if(TWITCH_CLIENTID AND TWITCH_HASH MATCHES "^(0|[a-fA-F0-9]+)$" AND TARGET OBS::browser-panels)
target_sources(obs-studio PRIVATE auth-twitch.cpp auth-twitch.hpp)
target_sources(obs-studio PRIVATE oauth/TwitchAuth.cpp oauth/TwitchAuth.hpp)
target_enable_feature(obs-studio "Twitch API connection" TWITCH_ENABLED)
else()
target_disable_feature(obs-studio "Twitch API connection")
@@ -20,13 +20,15 @@ if(ENABLE_WHATSNEW AND TARGET OBS::browser-panels)
target_sources(
obs-studio
PRIVATE
update/crypto-helpers-mbedtls.cpp
update/crypto-helpers.hpp
update/models/whatsnew.hpp
update/shared-update.cpp
update/shared-update.hpp
update/update-helpers.cpp
update/update-helpers.hpp
utility/crypto-helpers-mbedtls.cpp
utility/crypto-helpers.hpp
utility/models/whatsnew.hpp
utility/update-helpers.cpp
utility/update-helpers.hpp
utility/WhatsNewBrowserInitThread.cpp
utility/WhatsNewBrowserInitThread.hpp
utility/WhatsNewInfoThread.cpp
utility/WhatsNewInfoThread.hpp
)
endif()
@@ -8,14 +8,17 @@ if(
target_sources(
obs-studio
PRIVATE
auth-youtube.cpp
auth-youtube.hpp
window-dock-youtube-app.cpp
window-dock-youtube-app.hpp
window-youtube-actions.cpp
window-youtube-actions.hpp
youtube-api-wrappers.cpp
youtube-api-wrappers.hpp
dialogs/OBSYoutubeActions.cpp
dialogs/OBSYoutubeActions.hpp
docks/YouTubeAppDock.cpp
docks/YouTubeAppDock.hpp
docks/YouTubeChatDock.cpp
docks/YouTubeChatDock.hpp
forms/OBSYoutubeActions.ui
oauth/YoutubeAuth.cpp
oauth/YoutubeAuth.hpp
utility/YoutubeApiWrappers.cpp
utility/YoutubeApiWrappers.hpp
)
target_enable_feature(obs-studio "YouTube API connection" YOUTUBE_ENABLED)
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,9 +1,7 @@
target_sources(obs-studio PRIVATE platform-x11.cpp)
target_sources(obs-studio PRIVATE utility/platform-x11.cpp utility/system-info-posix.cpp)
target_compile_definitions(obs-studio PRIVATE OBS_INSTALL_PREFIX="${OBS_INSTALL_PREFIX}")
target_link_libraries(obs-studio PRIVATE Qt::GuiPrivate Qt::DBus procstat)
target_sources(obs-studio PRIVATE system-info-posix.cpp)
if(TARGET OBS::python)
find_package(Python REQUIRED COMPONENTS Interpreter Development)
target_link_libraries(obs-studio PRIVATE Python::Python)
@@ -1,12 +1,10 @@
target_sources(obs-studio PRIVATE platform-x11.cpp)
target_sources(obs-studio PRIVATE utility/platform-x11.cpp utility/system-info-posix.cpp)
target_compile_definitions(
obs-studio
PRIVATE OBS_INSTALL_PREFIX="${OBS_INSTALL_PREFIX}" $<$<BOOL:${ENABLE_PORTABLE_CONFIG}>:ENABLE_PORTABLE_CONFIG>
)
target_link_libraries(obs-studio PRIVATE Qt::GuiPrivate Qt::DBus)
target_sources(obs-studio PRIVATE system-info-posix.cpp)
if(TARGET OBS::python)
find_package(Python REQUIRED COMPONENTS Interpreter Development)
target_link_libraries(obs-studio PRIVATE Python::Python)
@@ -1,10 +1,16 @@
include(cmake/feature-sparkle.cmake)
target_sources(obs-studio PRIVATE platform-osx.mm forms/OBSPermissions.ui window-permissions.cpp window-permissions.hpp)
target_sources(
obs-studio
PRIVATE
dialogs/OBSPermissions.cpp
dialogs/OBSPermissions.hpp
forms/OBSPermissions.ui
utility/platform-osx.mm
utility/system-info-macos.mm
)
target_compile_options(obs-studio PRIVATE -Wno-quoted-include-in-framework-header -Wno-comma)
target_sources(obs-studio PRIVATE system-info-macos.mm)
set_source_files_properties(platform-osx.mm PROPERTIES COMPILE_FLAGS -fobjc-arc)
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 14.0.3)
@@ -18,42 +18,48 @@ target_sources(
obs-studio
PRIVATE
cmake/windows/obs.manifest
dialogs/OBSUpdate.cpp
dialogs/OBSUpdate.hpp
forms/OBSUpdate.ui
obs.rc
platform-windows.cpp
update/crypto-helpers-mbedtls.cpp
update/crypto-helpers.hpp
update/models/branches.hpp
update/models/whatsnew.hpp
update/shared-update.cpp
update/shared-update.hpp
update/update-helpers.cpp
update/update-helpers.hpp
update/update-window.cpp
update/update-window.hpp
update/win-update.cpp
update/win-update.hpp
win-dll-blocklist.c
win-update/updater/manifest.hpp
utility/AutoUpdateThread.cpp
utility/AutoUpdateThread.hpp
utility/crypto-helpers-mbedtls.cpp
utility/crypto-helpers.hpp
utility/models/branches.hpp
utility/models/whatsnew.hpp
utility/platform-windows.cpp
utility/system-info-windows.cpp
utility/update-helpers.cpp
utility/update-helpers.hpp
utility/WhatsNewBrowserInitThread.cpp
utility/WhatsNewBrowserInitThread.hpp
utility/WhatsNewInfoThread.cpp
utility/WhatsNewInfoThread.hpp
utility/win-dll-blocklist.c
)
target_sources(obs-studio PRIVATE system-info-windows.cpp)
add_library(obs-updater-manifest INTERFACE)
add_library(OBS::updater-manifest ALIAS obs-updater-manifest)
target_sources(obs-updater-manifest INTERFACE updater/manifest.hpp)
target_link_libraries(
obs-studio
PRIVATE crypt32 OBS::blake2 OBS::w32-pthreads MbedTLS::mbedtls nlohmann_json::nlohmann_json Detours::Detours
PRIVATE
crypt32
OBS::blake2
OBS::updater-manifest
OBS::w32-pthreads
MbedTLS::mbedtls
nlohmann_json::nlohmann_json
Detours::Detours
)
target_compile_definitions(obs-studio PRIVATE PSAPI_VERSION=2)
target_link_options(obs-studio PRIVATE /IGNORE:4099 $<$<CONFIG:DEBUG>:/NODEFAULTLIB:MSVCRT>)
add_library(obs-update-helpers INTERFACE)
add_library(OBS::update-helpers ALIAS obs-update-helpers)
target_sources(obs-update-helpers INTERFACE win-update/win-update-helpers.cpp win-update/win-update-helpers.hpp)
target_include_directories(obs-update-helpers INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/win-update")
# Set commit for untagged version comparisons in the Windows updater
if(OBS_VERSION MATCHES ".+g[a-f0-9]+.*")
string(REGEX REPLACE ".+g([a-f0-9]+).*$" "\\1" OBS_COMMIT ${OBS_VERSION})
@@ -61,9 +67,9 @@ else()
set(OBS_COMMIT "")
endif()
set_source_files_properties(update/win-update.cpp PROPERTIES COMPILE_DEFINITIONS OBS_COMMIT="${OBS_COMMIT}")
set_source_files_properties(utility/AutoUpdateThread.cpp PROPERTIES COMPILE_DEFINITIONS OBS_COMMIT="${OBS_COMMIT}")
add_subdirectory(win-update/updater)
add_subdirectory(updater)
set_property(TARGET obs-studio APPEND PROPERTY AUTORCC_OPTIONS --format-version 1)
File renamed without changes.
+85
View File
@@ -0,0 +1,85 @@
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_link_libraries(obs-studio PRIVATE OBS::qt-slider-ignorewheel)
target_sources(
obs-studio
PRIVATE
components/AbsoluteSlider.cpp
components/AbsoluteSlider.hpp
components/ApplicationAudioCaptureToolbar.cpp
components/ApplicationAudioCaptureToolbar.hpp
components/AudioCaptureToolbar.cpp
components/AudioCaptureToolbar.hpp
components/BalanceSlider.hpp
components/BrowserToolbar.cpp
components/BrowserToolbar.hpp
components/ClickableLabel.hpp
components/ColorSourceToolbar.cpp
components/ColorSourceToolbar.hpp
components/ComboSelectToolbar.cpp
components/ComboSelectToolbar.hpp
components/DelButton.hpp
components/DeviceCaptureToolbar.cpp
components/DeviceCaptureToolbar.hpp
components/DisplayCaptureToolbar.cpp
components/DisplayCaptureToolbar.hpp
components/EditWidget.hpp
components/FocusList.cpp
components/FocusList.hpp
components/GameCaptureToolbar.cpp
components/GameCaptureToolbar.hpp
components/HScrollArea.cpp
components/HScrollArea.hpp
components/ImageSourceToolbar.cpp
components/ImageSourceToolbar.hpp
components/MediaControls.cpp
components/MediaControls.hpp
components/MenuButton.cpp
components/MenuButton.hpp
components/Multiview.cpp
components/Multiview.hpp
components/MuteCheckBox.hpp
components/NonCheckableButton.hpp
components/OBSAdvAudioCtrl.cpp
components/OBSAdvAudioCtrl.hpp
components/OBSPreviewScalingComboBox.cpp
components/OBSPreviewScalingComboBox.hpp
components/OBSPreviewScalingLabel.cpp
components/OBSPreviewScalingLabel.hpp
components/OBSSourceLabel.cpp
components/OBSSourceLabel.hpp
components/SceneTree.cpp
components/SceneTree.hpp
components/SilentUpdateCheckBox.hpp
components/SilentUpdateSpinBox.hpp
components/SourceToolbar.cpp
components/SourceToolbar.hpp
components/SourceTree.cpp
components/SourceTree.hpp
components/SourceTreeDelegate.cpp
components/SourceTreeDelegate.hpp
components/SourceTreeItem.cpp
components/SourceTreeItem.hpp
components/SourceTreeModel.cpp
components/SourceTreeModel.hpp
components/TextSourceToolbar.cpp
components/TextSourceToolbar.hpp
components/UIValidation.cpp
components/UIValidation.hpp
components/UrlPushButton.cpp
components/UrlPushButton.hpp
components/VisibilityItemDelegate.cpp
components/VisibilityItemDelegate.hpp
components/VisibilityItemWidget.cpp
components/VisibilityItemWidget.hpp
components/VolumeSlider.cpp
components/VolumeSlider.hpp
components/WindowCaptureToolbar.cpp
components/WindowCaptureToolbar.hpp
)
+40
View File
@@ -0,0 +1,40 @@
if(NOT TARGET OBS::properties-view)
add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view")
endif()
target_link_libraries(obs-studio PRIVATE OBS::properties-view)
target_sources(
obs-studio
PRIVATE
dialogs/NameDialog.cpp
dialogs/NameDialog.hpp
dialogs/OAuthLogin.cpp
dialogs/OAuthLogin.hpp
dialogs/OBSAbout.cpp
dialogs/OBSAbout.hpp
dialogs/OBSBasicAdvAudio.cpp
dialogs/OBSBasicAdvAudio.hpp
dialogs/OBSBasicFilters.cpp
dialogs/OBSBasicFilters.hpp
dialogs/OBSBasicInteraction.cpp
dialogs/OBSBasicInteraction.hpp
dialogs/OBSBasicProperties.cpp
dialogs/OBSBasicProperties.hpp
dialogs/OBSBasicSourceSelect.cpp
dialogs/OBSBasicSourceSelect.hpp
dialogs/OBSBasicTransform.cpp
dialogs/OBSBasicTransform.hpp
dialogs/OBSBasicVCamConfig.cpp
dialogs/OBSBasicVCamConfig.hpp
dialogs/OBSLogReply.cpp
dialogs/OBSLogReply.hpp
dialogs/OBSLogViewer.cpp
dialogs/OBSLogViewer.hpp
dialogs/OBSMissingFiles.cpp
dialogs/OBSMissingFiles.hpp
dialogs/OBSRemux.cpp
dialogs/OBSRemux.hpp
dialogs/OBSWhatsNew.cpp
dialogs/OBSWhatsNew.hpp
)
+1
View File
@@ -0,0 +1 @@
target_sources(obs-studio PRIVATE docks/OBSDock.cpp docks/OBSDock.hpp)
+4
View File
@@ -0,0 +1,4 @@
target_sources(
obs-studio
PRIVATE oauth/Auth.cpp oauth/Auth.hpp oauth/AuthListener.cpp oauth/AuthListener.hpp oauth/OAuth.cpp oauth/OAuth.hpp
)
+58
View File
@@ -0,0 +1,58 @@
find_package(Qt6 REQUIRED Widgets Network Svg Xml)
if(OS_LINUX OR OS_FREEBSD OR OS_OPENBSD)
find_package(Qt6 REQUIRED Gui DBus)
endif()
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
PROPERTIES AUTOMOC TRUE AUTOUIC TRUE AUTORCC TRUE AUTOGEN_PARALLEL AUTO
)
set_property(TARGET obs-studio APPEND PROPERTY AUTOUIC_SEARCH_PATHS forms forms/source-toolbar)
target_sources(
obs-studio
PRIVATE
forms/AutoConfigFinishPage.ui
forms/AutoConfigStartPage.ui
forms/AutoConfigStartPage.ui
forms/AutoConfigStreamPage.ui
forms/AutoConfigTestPage.ui
forms/AutoConfigVideoPage.ui
forms/ColorSelect.ui
forms/obs.qrc
forms/OBSAbout.ui
forms/OBSAdvAudio.ui
forms/OBSBasic.ui
forms/OBSBasicControls.ui
forms/OBSBasicFilters.ui
forms/OBSBasicInteraction.ui
forms/OBSBasicProperties.ui
forms/OBSBasicSettings.ui
forms/OBSBasicSourceSelect.ui
forms/OBSBasicVCamConfig.ui
forms/OBSExtraBrowsers.ui
forms/OBSImporter.ui
forms/OBSLogReply.ui
forms/OBSLogReply.ui
forms/OBSMissingFiles.ui
forms/OBSRemux.ui
forms/source-toolbar/browser-source-toolbar.ui
forms/source-toolbar/color-source-toolbar.ui
forms/source-toolbar/device-select-toolbar.ui
forms/source-toolbar/game-capture-toolbar.ui
forms/source-toolbar/image-source-toolbar.ui
forms/source-toolbar/media-controls.ui
forms/source-toolbar/text-source-toolbar.ui
forms/StatusBarWidget.ui
)
+15
View File
@@ -0,0 +1,15 @@
target_sources(
obs-studio
PRIVATE
settings/OBSBasicSettings_A11y.cpp
settings/OBSBasicSettings_Appearance.cpp
settings/OBSBasicSettings_Stream.cpp
settings/OBSBasicSettings.cpp
settings/OBSBasicSettings.hpp
settings/OBSHotkeyEdit.cpp
settings/OBSHotkeyEdit.hpp
settings/OBSHotkeyLabel.cpp
settings/OBSHotkeyLabel.hpp
settings/OBSHotkeyWidget.cpp
settings/OBSHotkeyWidget.hpp
)
+69
View File
@@ -0,0 +1,69 @@
target_sources(
obs-studio
PRIVATE
utility/AdvancedOutput.cpp
utility/AdvancedOutput.hpp
utility/audio-encoders.cpp
utility/audio-encoders.hpp
utility/BaseLexer.hpp
utility/BasicOutputHandler.cpp
utility/BasicOutputHandler.hpp
utility/display-helpers.hpp
utility/FFmpegCodec.cpp
utility/FFmpegCodec.hpp
utility/FFmpegFormat.cpp
utility/FFmpegFormat.hpp
utility/FFmpegShared.hpp
utility/GoLiveAPI_CensoredJson.cpp
utility/GoLiveAPI_CensoredJson.hpp
utility/GoLiveAPI_Network.cpp
utility/GoLiveAPI_Network.hpp
utility/GoLiveAPI_PostData.cpp
utility/GoLiveAPI_PostData.hpp
utility/item-widget-helpers.cpp
utility/item-widget-helpers.hpp
utility/MissingFilesModel.cpp
utility/MissingFilesModel.hpp
utility/MissingFilesPathItemDelegate.cpp
utility/MissingFilesPathItemDelegate.hpp
utility/models/multitrack-video.hpp
utility/MultitrackVideoError.cpp
utility/MultitrackVideoError.hpp
utility/MultitrackVideoOutput.cpp
utility/MultitrackVideoOutput.hpp
utility/obf.c
utility/obf.h
utility/OBSEventFilter.hpp
utility/OBSProxyStyle.cpp
utility/OBSProxyStyle.hpp
utility/OBSTheme.hpp
utility/OBSThemeVariable.hpp
utility/OBSTranslator.cpp
utility/OBSTranslator.hpp
utility/platform.hpp
utility/QuickTransition.cpp
utility/QuickTransition.hpp
utility/RemoteTextThread.cpp
utility/RemoteTextThread.hpp
utility/RemuxEntryPathItemDelegate.cpp
utility/RemuxEntryPathItemDelegate.hpp
utility/RemuxQueueModel.cpp
utility/RemuxQueueModel.hpp
utility/RemuxWorker.cpp
utility/RemuxWorker.hpp
utility/SceneRenameDelegate.cpp
utility/SceneRenameDelegate.hpp
utility/ScreenshotObj.cpp
utility/ScreenshotObj.hpp
utility/SettingsEventFilter.hpp
utility/SimpleOutput.cpp
utility/SimpleOutput.hpp
utility/StartMultiTrackVideoStreamingGuard.hpp
utility/SurfaceEventFilter.hpp
utility/system-info.hpp
utility/undo_stack.cpp
utility/undo_stack.hpp
utility/VCamConfig.hpp
utility/VolumeMeterTimer.cpp
utility/VolumeMeterTimer.hpp
)
+66
View File
@@ -0,0 +1,66 @@
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::qt-vertical-scroll-area)
target_sources(
obs-studio
PRIVATE
widgets/ColorSelect.cpp
widgets/ColorSelect.hpp
widgets/OBSBasic.cpp
widgets/OBSBasic.hpp
widgets/OBSBasic_Browser.cpp
widgets/OBSBasic_Clipboard.cpp
widgets/OBSBasic_ContextToolbar.cpp
widgets/OBSBasic_Docks.cpp
widgets/OBSBasic_Dropfiles.cpp
widgets/OBSBasic_Hotkeys.cpp
widgets/OBSBasic_Icons.cpp
widgets/OBSBasic_MainControls.cpp
widgets/OBSBasic_OutputHandler.cpp
widgets/OBSBasic_Preview.cpp
widgets/OBSBasic_Profiles.cpp
widgets/OBSBasic_Projectors.cpp
widgets/OBSBasic_Recording.cpp
widgets/OBSBasic_ReplayBuffer.cpp
widgets/OBSBasic_SceneCollections.cpp
widgets/OBSBasic_SceneItems.cpp
widgets/OBSBasic_Scenes.cpp
widgets/OBSBasic_Screenshots.cpp
widgets/OBSBasic_Service.cpp
widgets/OBSBasic_StatusBar.cpp
widgets/OBSBasic_Streaming.cpp
widgets/OBSBasic_StudioMode.cpp
widgets/OBSBasic_SysTray.cpp
widgets/OBSBasic_Transitions.cpp
widgets/OBSBasic_Updater.cpp
widgets/OBSBasic_VirtualCam.cpp
widgets/OBSBasic_VolControl.cpp
widgets/OBSBasic_YouTube.cpp
widgets/OBSBasicControls.cpp
widgets/OBSBasicControls.hpp
widgets/OBSBasicPreview.cpp
widgets/OBSBasicPreview.hpp
widgets/OBSBasicStats.cpp
widgets/OBSBasicStats.hpp
widgets/OBSBasicStatusBar.cpp
widgets/OBSBasicStatusBar.hpp
widgets/OBSMainWindow.hpp
widgets/OBSProjector.cpp
widgets/OBSProjector.hpp
widgets/OBSQTDisplay.cpp
widgets/OBSQTDisplay.hpp
widgets/StatusBarWidget.cpp
widgets/StatusBarWidget.hpp
widgets/VolControl.cpp
widgets/VolControl.hpp
widgets/VolumeAccessibleInterface.cpp
widgets/VolumeAccessibleInterface.hpp
widgets/VolumeMeter.cpp
widgets/VolumeMeter.hpp
)
+15
View File
@@ -0,0 +1,15 @@
target_sources(
obs-studio
PRIVATE
wizards/AutoConfig.cpp
wizards/AutoConfig.hpp
wizards/AutoConfigStartPage.cpp
wizards/AutoConfigStartPage.hpp
wizards/AutoConfigStreamPage.cpp
wizards/AutoConfigStreamPage.hpp
wizards/AutoConfigTestPage.cpp
wizards/AutoConfigTestPage.hpp
wizards/AutoConfigVideoPage.cpp
wizards/AutoConfigVideoPage.hpp
wizards/TestMode.hpp
)
File renamed without changes.
File renamed without changes.
File renamed without changes.