frontend: Migrate CMake files

This commit is contained in:
PatTheMav
2024-12-09 21:13:03 +01:00
parent ff3b62422e
commit 08a2eb304b
57 changed files with 509 additions and 389 deletions

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()

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
)

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
)

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)

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
)

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>

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

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>")

View File

@@ -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()

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
)

View File

@@ -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(

View File

@@ -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")

View File

@@ -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}>")

View File

@@ -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")

View File

@@ -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()

View File

@@ -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)

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

View File

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 127 KiB

View File

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 160 KiB

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 160 KiB

View File

Before

Width:  |  Height:  |  Size: 542 KiB

After

Width:  |  Height:  |  Size: 542 KiB

View File

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 542 KiB

After

Width:  |  Height:  |  Size: 542 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 MiB

After

Width:  |  Height:  |  Size: 1.7 MiB

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

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
)

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
)

View File

@@ -0,0 +1 @@
target_sources(obs-studio PRIVATE docks/OBSDock.cpp docks/OBSDock.hpp)

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
)

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
)

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
)

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
)

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
)

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
)

View File

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 91 KiB