diff --git a/CMakeLists.txt b/CMakeLists.txt index fb62167ebe0bea..9819235af760bd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,145 +1,34 @@ cmake_minimum_required(VERSION 3.22...3.25) -if(CMAKE_HOST_SYSTEM_NAME MATCHES "(Windows|Darwin)" OR OBS_CMAKE_VERSION VERSION_GREATER_EQUAL 3.0.0) - include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/common/bootstrap.cmake" NO_POLICY_SCOPE) +include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/common/bootstrap.cmake" NO_POLICY_SCOPE) - project(obs-studio VERSION ${OBS_VERSION_CANONICAL}) - - if(CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") - include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/windows/architecture.cmake") - if(NOT OBS_PARENT_ARCHITECTURE STREQUAL CMAKE_GENERATOR_PLATFORM) - return() - endif() - endif() - - include(compilerconfig) - include(defaults) - include(helpers) - - option(ENABLE_UI "Enable building with UI (requires Qt)" ON) - option(ENABLE_SCRIPTING "Enable scripting support" ON) - option(ENABLE_HEVC "Enable HEVC encoders" ON) +project(obs-studio VERSION ${OBS_VERSION_CANONICAL}) - add_subdirectory(libobs) - if(OS_WINDOWS) - add_subdirectory(libobs-d3d11) - add_subdirectory(libobs-winrt) +if(CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") + include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/windows/architecture.cmake") + if(NOT OBS_PARENT_ARCHITECTURE STREQUAL CMAKE_GENERATOR_PLATFORM) + return() endif() - add_subdirectory(libobs-opengl) - add_subdirectory(plugins) - - add_subdirectory(test/test-input) - - add_subdirectory(UI) - - message_configuration() - return() endif() -message( - DEPRECATION - "\n" - "============ LEGACY BUILD SYSTEM IS DEPRECATED ============" - "\n" - "You are using the legacy build system to build OBS Studio. " - "The legacy build system is unsupported and will be removed in the near future." - "\n" - "To migrate to the new build system, familiarize yourself with CMake presets " - "(https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) and create " - "a user preset with your customized build settings, inheriting from one of the default presets." - "\n" - "============ LEGACY BUILD SYSTEM IS DEPRECATED ============" -) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules") -include(VersionConfig) +include(compilerconfig) +include(defaults) +include(helpers) -# Prohibit in-source builds -if("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}") - message( - FATAL_ERROR - "OBS: You cannot build in a source directory (or any directory with CMakeLists.txt file). " - "Please make a build subdirectory. Feel free to remove CMakeCache.txt and CMakeFiles." - ) -endif() - -project(obs-studio VERSION ${OBS_VERSION_CANONICAL}) -set_property(GLOBAL PROPERTY USE_FOLDERS ON) - -# Use target folders for MSVC/Xcode/etc. -include(DeprecationHelpers) -include(ObsHelpers) -# Set default compiler flags -include(CompilerConfig) - -# Allow selection of common build types via UI -if(NOT CMAKE_BUILD_TYPE) - set( - CMAKE_BUILD_TYPE - "RelWithDebInfo" - CACHE STRING - "OBS build type [Release, RelWithDebInfo, Debug, MinSizeRel]" - FORCE - ) - set_property( - CACHE CMAKE_BUILD_TYPE - PROPERTY STRINGS Release RelWithDebInfo Debug MinSizeRel - ) -endif() - -# Global project options -option(ENABLE_HEVC "Enable HEVC encoders" ON) -if(ENABLE_HEVC) - add_compile_definitions(ENABLE_HEVC) -endif() -option(BUILD_FOR_DISTRIBUTION "Build for distribution (enables optimizations)" OFF) option(ENABLE_UI "Enable building with UI (requires Qt)" ON) option(ENABLE_SCRIPTING "Enable scripting support" ON) -option(USE_LIBCXX "Use libc++ instead of libstdc++" ${APPLE}) -option(BUILD_TESTS "Build test directory (includes test sources and possibly a platform test executable)" OFF) - -if(OS_WINDOWS) - option( - INSTALLER_RUN - "Build a multiarch installer (needs to run independently after both archs have compiled) (Windows)" - OFF - ) -elseif(OS_POSIX) - option(LINUX_PORTABLE "Build portable version (Linux)" OFF) - option(USE_XDG "Utilize XDG Base Directory Specification (Linux)" ON) - option(ENABLE_PULSEAUDIO "Enable PulseAudio support" ON) - if(OS_LINUX) - option(ENABLE_WAYLAND "Enable building with support for Wayland (Linux)" ON) - option(BUILD_FOR_PPA "Build for PPA distribution" OFF) - endif() -endif() - -setup_obs_project() -mark_as_advanced(BUILD_TESTS USE_LIBCXX) - -if(INSTALLER_RUN) - generate_multiarch_installer() - return() -endif() +option(ENABLE_HEVC "Enable HEVC encoders" ON) -# OBS sources and plugins -add_subdirectory(deps) -add_subdirectory(libobs-opengl) +add_subdirectory(libobs) if(OS_WINDOWS) add_subdirectory(libobs-d3d11) add_subdirectory(libobs-winrt) endif() -add_subdirectory(libobs) +add_subdirectory(libobs-opengl) add_subdirectory(plugins) -# OBS main app -add_subdirectory(UI) +add_subdirectory(test/test-input) -# Tests -if(ENABLE_UNIT_TESTS) - enable_testing() -endif() +add_subdirectory(UI) -if(BUILD_TESTS OR ENABLE_UNIT_TESTS) - add_subdirectory(test) -endif() +message_configuration() diff --git a/CMakePresets.json b/CMakePresets.json index 441e66f89f0054..bce62abc9a83fc 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -71,7 +71,6 @@ "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "CMAKE_INSTALL_LIBDIR": "lib/CMAKE_SYSTEM_PROCESSOR-linux-gnu", - "OBS_CMAKE_VERSION": {"type": "STRING", "value": "3.0.0"}, "ENABLE_AJA": false, "ENABLE_VLC": true, "ENABLE_WAYLAND": true, diff --git a/UI/cmake/legacy.cmake b/UI/cmake/legacy.cmake deleted file mode 100644 index d25e900dba7e68..00000000000000 --- a/UI/cmake/legacy.cmake +++ /dev/null @@ -1,562 +0,0 @@ -add_subdirectory(obs-frontend-api) - -option(ENABLE_UI "Enable building with UI (requires Qt)" ON) -if(NOT ENABLE_UI) - obs_status(DISABLED "OBS UI") - return() -endif() - -project(obs) - -# Legacy support -if(TARGET obs-browser - AND NOT TARGET OBS::browser-panels - AND BROWSER_PANEL_SUPPORT_ENABLED) - add_library(obs-browser-panels INTERFACE) - add_library(OBS::browser-panels ALIAS obs-browser-panels) - - target_include_directories(obs-browser-panels INTERFACE ${CMAKE_SOURCE_DIR}/plugins/obs-browser/panel) -endif() - -set(OAUTH_BASE_URL - "https://auth.obsproject.com/" - CACHE STRING "Default OAuth base URL") - -mark_as_advanced(OAUTH_BASE_URL) - -if(NOT DEFINED TWITCH_CLIENTID - OR "${TWITCH_CLIENTID}" STREQUAL "" - OR NOT DEFINED TWITCH_HASH - OR "${TWITCH_HASH}" STREQUAL "" - OR NOT TARGET OBS::browser-panels) - set(TWITCH_ENABLED OFF) - set(TWITCH_CLIENTID "") - set(TWITCH_HASH "0") -else() - set(TWITCH_ENABLED ON) -endif() - -if(NOT DEFINED RESTREAM_CLIENTID - OR "${RESTREAM_CLIENTID}" STREQUAL "" - OR NOT DEFINED RESTREAM_HASH - OR "${RESTREAM_HASH}" STREQUAL "" - OR NOT TARGET OBS::browser-panels) - set(RESTREAM_ENABLED OFF) - set(RESTREAM_CLIENTID "") - set(RESTREAM_HASH "0") -else() - set(RESTREAM_ENABLED ON) -endif() - -if(NOT DEFINED YOUTUBE_CLIENTID - OR "${YOUTUBE_CLIENTID}" STREQUAL "" - OR NOT DEFINED YOUTUBE_SECRET - OR "${YOUTUBE_SECRET}" STREQUAL "" - OR NOT DEFINED YOUTUBE_CLIENTID_HASH - OR "${YOUTUBE_CLIENTID_HASH}" STREQUAL "" - OR NOT DEFINED YOUTUBE_SECRET_HASH - OR "${YOUTUBE_SECRET_HASH}" STREQUAL "") - set(YOUTUBE_SECRET_HASH "0") - set(YOUTUBE_CLIENTID_HASH "0") - set(YOUTUBE_ENABLED OFF) -else() - set(YOUTUBE_ENABLED ON) -endif() - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/ui-config.h.in ${CMAKE_CURRENT_BINARY_DIR}/ui-config.h) - -find_package(FFmpeg REQUIRED COMPONENTS avcodec avutil avformat) -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) - -set_target_properties( - obs - PROPERTIES AUTOMOC ON - AUTOUIC ON - AUTORCC ON - AUTOUIC_SEARCH_PATHS "forms;forms/source-toolbar") - -if(OS_WINDOWS) - set_target_properties(obs PROPERTIES AUTORCC_OPTIONS "--format-version;1") -endif() - -target_include_directories(obs PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) - -target_sources(obs PRIVATE forms/obs.qrc) -target_sources( - obs - PRIVATE forms/AutoConfigFinishPage.ui - forms/AutoConfigStartPage.ui - forms/AutoConfigStartPage.ui - forms/AutoConfigStreamPage.ui - forms/AutoConfigTestPage.ui - forms/AutoConfigVideoPage.ui - forms/ColorSelect.ui - 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/StatusBarWidget.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 - PRIVATE auth-oauth.cpp - auth-oauth.hpp - auth-listener.cpp - auth-listener.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 - api-interface.cpp - auth-base.cpp - auth-base.hpp - display-helpers.hpp - platform.hpp - qt-display.cpp - qt-display.hpp - ui-validation.cpp - ui-validation.hpp - multiview.cpp - multiview.hpp - ffmpeg-utils.cpp - ffmpeg-utils.hpp - ${CMAKE_SOURCE_DIR}/deps/json11/json11.cpp - ${CMAKE_SOURCE_DIR}/deps/json11/json11.hpp - ${CMAKE_CURRENT_BINARY_DIR}/ui-config.h) - -target_sources( - obs - 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 - horizontal-scroll-area.cpp - horizontal-scroll-area.hpp - item-widget-helpers.cpp - item-widget-helpers.hpp - context-bar-controls.cpp - context-bar-controls.hpp - focus-list.cpp - focus-list.hpp - hotkey-edit.cpp - hotkey-edit.hpp - lineedit-autoresize.cpp - lineedit-autoresize.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 - url-push-button.cpp - url-push-button.hpp - undo-stack-obs.cpp - undo-stack-obs.hpp - volume-control.cpp - volume-control.hpp - visibility-item-widget.cpp - visibility-item-widget.hpp) - -target_sources( - obs - PRIVATE window-basic-about.cpp - window-basic-about.hpp - window-basic-auto-config.cpp - window-basic-auto-config.hpp - window-basic-auto-config-test.cpp - window-basic-adv-audio.cpp - window-basic-adv-audio.hpp - window-basic-filters.cpp - window-basic-filters.hpp - window-basic-interaction.cpp - window-basic-interaction.hpp - window-basic-main.cpp - window-basic-main.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-preview.cpp - window-basic-properties.cpp - window-basic-properties.hpp - window-basic-settings.cpp - window-basic-settings.hpp - window-basic-settings-a11y.cpp - window-basic-settings-appearance.cpp - window-basic-settings-stream.cpp - 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-preview.hpp - window-basic-vcam.hpp - window-basic-vcam-config.cpp - window-basic-vcam-config.hpp - window-dock.cpp - window-dock.hpp - window-importer.cpp - window-importer.hpp - window-log-reply.hpp - window-main.hpp - window-missing-files.cpp - window-missing-files.hpp - window-namedialog.cpp - window-namedialog.hpp - window-log-reply.cpp - window-projector.cpp - window-projector.hpp - window-remux.cpp - window-remux.hpp) - -target_sources( - obs - PRIVATE # cmake-format: sortable - goliveapi-censoredjson.cpp - goliveapi-censoredjson.hpp - goliveapi-network.cpp - goliveapi-network.hpp - goliveapi-postdata.cpp - goliveapi-postdata.hpp - multitrack-video-error.cpp - multitrack-video-error.hpp - multitrack-video-output.cpp - multitrack-video-output.hpp - system-info.hpp) - -target_sources(obs PRIVATE importers/importers.cpp importers/importers.hpp importers/classic.cpp importers/sl.cpp - importers/studio.cpp importers/xsplit.cpp) - -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 - 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") - -if(TARGET OBS::browser-panels) - get_target_property(_PANEL_INCLUDE_DIRECTORY OBS::browser-panels INTERFACE_INCLUDE_DIRECTORIES) - target_include_directories(obs PRIVATE ${_PANEL_INCLUDE_DIRECTORY}) - - target_compile_definitions(obs PRIVATE BROWSER_AVAILABLE) - - target_sources(obs PRIVATE window-dock-browser.cpp window-dock-browser.hpp window-extra-browsers.cpp - window-extra-browsers.hpp) - - if(TWITCH_ENABLED) - target_compile_definitions(obs PRIVATE TWITCH_ENABLED) - target_sources(obs PRIVATE auth-twitch.cpp auth-twitch.hpp) - endif() - - if(RESTREAM_ENABLED) - target_compile_definitions(obs PRIVATE RESTREAM_ENABLED) - target_sources(obs PRIVATE auth-restream.cpp auth-restream.hpp) - endif() - - if(OS_WINDOWS OR OS_MACOS) - set(ENABLE_WHATSNEW - ON - CACHE INTERNAL "Enable WhatsNew dialog") - elseif(OS_LINUX) - option(ENABLE_WHATSNEW "Enable WhatsNew dialog" ON) - endif() - - if(ENABLE_WHATSNEW) - target_compile_definitions(obs PRIVATE WHATSNEW_ENABLED) - endif() -endif() - -if(YOUTUBE_ENABLED) - target_compile_definitions(obs PRIVATE YOUTUBE_ENABLED) - target_sources( - obs - 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) -endif() - -if(OS_WINDOWS) - set_target_properties(obs PROPERTIES WIN32_EXECUTABLE ON OUTPUT_NAME "obs${_ARCH_SUFFIX}") - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/obs.rc.in ${CMAKE_BINARY_DIR}/obs.rc) - - find_package(Detours REQUIRED) - find_package(nlohmann_json REQUIRED) - - target_sources( - obs - PRIVATE obs.manifest - platform-windows.cpp - win-dll-blocklist.c - update/update-window.cpp - update/update-window.hpp - update/win-update.cpp - update/win-update.hpp - update/shared-update.cpp - update/shared-update.hpp - update/update-helpers.cpp - update/update-helpers.hpp - update/crypto-helpers-mbedtls.cpp - update/crypto-helpers.hpp - update/models/branches.hpp - update/models/whatsnew.hpp - win-update/updater/manifest.hpp - ${CMAKE_BINARY_DIR}/obs.rc) - - target_sources(obs PRIVATE system-info-windows.cpp) - - find_package(MbedTLS) - target_link_libraries(obs PRIVATE Mbedtls::Mbedtls nlohmann_json::nlohmann_json OBS::blake2 Detours::Detours) - - target_compile_features(obs PRIVATE cxx_std_17) - - target_compile_definitions(obs PRIVATE UNICODE _UNICODE _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS - PSAPI_VERSION=2) - - set_source_files_properties(update/win-update.cpp PROPERTIES COMPILE_DEFINITIONS OBS_COMMIT="${OBS_COMMIT}") - if(MSVC) - target_link_options(obs PRIVATE "LINKER:/IGNORE:4098" "LINKER:/IGNORE:4099") - target_link_libraries(obs PRIVATE OBS::w32-pthreads) - endif() - - if(CMAKE_SIZEOF_VOID_P EQUAL 4) - target_link_options(obs PRIVATE /LARGEADDRESSAWARE) - endif() - - add_subdirectory(win-update/updater) - -elseif(OS_MACOS) - set_target_properties( - obs - PROPERTIES OUTPUT_NAME ${OBS_BUNDLE_NAME} - MACOSX_BUNDLE ON - MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/cmake/bundle/macOS/Info.plist.in) - - if(XCODE) - set_target_properties( - obs - PROPERTIES XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "${MACOSX_BUNDLE_GUI_IDENTIFIER}" - XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME AppIcon - XCODE_ATTRIBUTE_PRODUCT_NAME "OBS") - - set(APP_ICON_TARGET ${CMAKE_SOURCE_DIR}/cmake/bundle/macOS/Assets.xcassets) - - target_sources(obs PRIVATE ${APP_ICON_TARGET}) - set_source_files_properties(${APP_ICON_TARGET} PROPERTIES MACOSX_PACKAGE_LOCATION Resources) - else() - set(APP_ICON_TARGET ${CMAKE_SOURCE_DIR}/cmake/bundle/macOS/AppIcon.iconset) - set(APP_ICON_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/AppIcon.icns) - - add_custom_command(OUTPUT ${APP_ICON_OUTPUT} COMMAND iconutil -c icns "${APP_ICON_TARGET}" -o "${APP_ICON_OUTPUT}") - - set(MACOSX_BUNDLE_ICON_FILE AppIcon.icns) - target_sources(obs PRIVATE ${APP_ICON_OUTPUT} ${CMAKE_CURRENT_SOURCE_DIR}/../AUTHORS) - - set_source_files_properties(${APP_ICON_OUTPUT} PROPERTIES MACOSX_PACKAGE_LOCATION Resources) - endif() - - find_library(APPKIT Appkit) - find_library(AVFOUNDATION AVFoundation) - find_library(APPLICATIONSERVICES ApplicationServices) - mark_as_advanced(APPKIT AVFOUNDATION APPLICATIONSERVICES) - - target_link_libraries(obs PRIVATE ${APPKIT} ${AVFOUNDATION} ${APPLICATIONSERVICES}) - - target_sources(obs PRIVATE platform-osx.mm) - target_sources(obs PRIVATE forms/OBSPermissions.ui window-permissions.cpp window-permissions.hpp) - - target_sources(obs PRIVATE system-info-macos.mm) - - if(ENABLE_WHATSNEW) - find_library(SECURITY Security) - find_package(nlohmann_json REQUIRED) - mark_as_advanced(SECURITY) - - target_link_libraries(obs PRIVATE ${SECURITY} OBS::blake2 nlohmann_json::nlohmann_json) - - target_sources( - obs - PRIVATE update/crypto-helpers.hpp - update/crypto-helpers-mac.mm - update/shared-update.cpp - update/shared-update.hpp - update/update-helpers.cpp - update/update-helpers.hpp - update/models/whatsnew.hpp) - - if(SPARKLE_APPCAST_URL AND SPARKLE_PUBLIC_KEY) - find_library(SPARKLE Sparkle) - mark_as_advanced(SPARKLE) - - target_sources(obs PRIVATE update/mac-update.cpp update/mac-update.hpp update/sparkle-updater.mm - update/models/branches.hpp) - target_compile_definitions(obs PRIVATE ENABLE_SPARKLE_UPDATER) - target_link_libraries(obs PRIVATE ${SPARKLE}) - # Enable Automatic Reference Counting for Sparkle wrapper - set_source_files_properties(update/sparkle-updater.mm PROPERTIES COMPILE_FLAGS -fobjc-arc) - endif() - endif() - - set_source_files_properties(platform-osx.mm PROPERTIES COMPILE_FLAGS -fobjc-arc) - -elseif(OS_POSIX) - target_sources(obs PRIVATE platform-x11.cpp) - target_link_libraries(obs PRIVATE Qt::GuiPrivate Qt::DBus) - - target_sources(obs PRIVATE system-info-posix.cpp) - - target_compile_definitions(obs PRIVATE OBS_INSTALL_PREFIX="${OBS_INSTALL_PREFIX}" - "$<$:LINUX_PORTABLE>") - if(TARGET obspython) - find_package(Python REQUIRED COMPONENTS Interpreter Development) - target_link_libraries(obs PRIVATE Python::Python) - target_link_options(obs PRIVATE "LINKER:-no-as-needed") - endif() - - if(NOT LINUX_PORTABLE) - add_subdirectory(xdg-data) - endif() - - if(OS_FREEBSD) - target_link_libraries(obs PRIVATE procstat) - target_compile_options(obs PRIVATE -Wno-unqualified-std-cast-call) - endif() - - if(OS_LINUX) - if(USE_XDG) - target_compile_definitions(obs PRIVATE USE_XDG) - endif() - - if(ENABLE_WHATSNEW) - find_package(MbedTLS) - find_package(nlohmann_json REQUIRED) - if(NOT MBEDTLS_FOUND) - obs_status(FATAL_ERROR "mbedTLS not found, but required for WhatsNew support on Linux") - endif() - - target_sources(obs PRIVATE update/crypto-helpers.hpp update/crypto-helpers-mbedtls.cpp update/shared-update.cpp - update/shared-update.hpp update/update-helpers.cpp update/update-helpers.hpp) - target_link_libraries(obs PRIVATE Mbedtls::Mbedtls nlohmann_json::nlohmann_json OBS::blake2) - endif() - endif() -endif() - -get_target_property(_SOURCES obs SOURCES) -set(_UI ${_SOURCES}) -list(FILTER _UI INCLUDE REGEX ".*\\.ui?") - -source_group( - TREE "${CMAKE_CURRENT_SOURCE_DIR}/forms" - PREFIX "UI Files" - FILES ${_UI}) -unset(_SOURCES) -unset(_UI) - -get_property(OBS_MODULE_LIST GLOBAL PROPERTY OBS_MODULE_LIST) -list(JOIN OBS_MODULE_LIST "|" SAFE_MODULES) -target_compile_definitions(obs PRIVATE "SAFE_MODULES=\"${SAFE_MODULES}\"") - -define_graphic_modules(obs) -setup_obs_app(obs) -setup_target_resources(obs obs-studio) -add_target_resource(obs ${CMAKE_CURRENT_SOURCE_DIR}/../AUTHORS obs-studio/authors) diff --git a/UI/frontend-plugins/aja-output-ui/cmake/legacy.cmake b/UI/frontend-plugins/aja-output-ui/cmake/legacy.cmake deleted file mode 100644 index df7e2b2adc41cd..00000000000000 --- a/UI/frontend-plugins/aja-output-ui/cmake/legacy.cmake +++ /dev/null @@ -1,93 +0,0 @@ -project(aja-output-ui) - -if(NOT ENABLE_AJA) - return() -endif() - -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( - aja-output-ui - PROPERTIES AUTOMOC ON - AUTOUIC ON - AUTORCC ON - AUTOUIC_SEARCH_PATHS "forms") - -if(OS_WINDOWS) - set_target_properties(aja-output-ui PROPERTIES AUTORCC_OPTIONS "--format-version;1") -endif() - -target_sources(aja-output-ui PRIVATE forms/output.ui) - -target_sources( - aja-output-ui - PRIVATE AJAOutputUI.h - AJAOutputUI.cpp - aja-ui-main.cpp - aja-ui-main.h - ${CMAKE_SOURCE_DIR}/plugins/aja/aja-card-manager.cpp - ${CMAKE_SOURCE_DIR}/plugins/aja/aja-card-manager.hpp - ${CMAKE_SOURCE_DIR}/plugins/aja/aja-common.cpp - ${CMAKE_SOURCE_DIR}/plugins/aja/aja-common.hpp - ${CMAKE_SOURCE_DIR}/plugins/aja/aja-enums.hpp - ${CMAKE_SOURCE_DIR}/plugins/aja/aja-presets.cpp - ${CMAKE_SOURCE_DIR}/plugins/aja/aja-presets.hpp - ${CMAKE_SOURCE_DIR}/plugins/aja/aja-props.cpp - ${CMAKE_SOURCE_DIR}/plugins/aja/aja-props.hpp - ${CMAKE_SOURCE_DIR}/plugins/aja/aja-routing.cpp - ${CMAKE_SOURCE_DIR}/plugins/aja/aja-routing.hpp - ${CMAKE_SOURCE_DIR}/plugins/aja/aja-ui-props.hpp - ${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) - -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) - find_library(COREFOUNDATION_LIBRARY CoreFoundation) - find_library(APPKIT_FRAMEWORK AppKit) - - target_link_libraries(aja-output-ui PRIVATE ${IOKIT} ${COREFOUNDATION} ${APPKIT}) -elseif(OS_WINDOWS) - set(MODULE_DESCRIPTION "OBS AJA Output UI") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in aja-output-ui.rc) - target_sources(aja-output-ui PRIVATE aja-output-ui.rc) - - target_compile_options(aja-output-ui PRIVATE /wd4996) - target_link_libraries(aja-output-ui PRIVATE ws2_32.lib setupapi.lib Winmm.lib netapi32.lib Shlwapi.lib) - target_link_options(aja-output-ui PRIVATE "LINKER:/IGNORE:4099") -else() - find_package(X11 REQUIRED) - target_link_libraries(aja-output-ui PRIVATE X11::X11 Qt::GuiPrivate) -endif() - -if(NOT MSVC) - target_compile_options(aja-output-ui PRIVATE -Wno-error=deprecated-declarations) -endif() - -set_target_properties(aja-output-ui PROPERTIES FOLDER "frontend" PREFIX "") - -get_target_property(_SOURCES aja-output-ui SOURCES) -set(_UI ${_SOURCES}) -list(FILTER _UI INCLUDE REGEX ".*\\.ui?") - -source_group( - TREE "${CMAKE_CURRENT_SOURCE_DIR}/forms" - PREFIX "UI Files" - FILES ${_UI}) -unset(_SOURCES) -unset(_UI) - -setup_plugin_target(aja-output-ui) diff --git a/UI/frontend-plugins/decklink-captions/cmake/legacy.cmake b/UI/frontend-plugins/decklink-captions/cmake/legacy.cmake deleted file mode 100644 index 50a4d33ccd3841..00000000000000 --- a/UI/frontend-plugins/decklink-captions/cmake/legacy.cmake +++ /dev/null @@ -1,62 +0,0 @@ -project(decklink-captions) - -if(NOT ENABLE_DECKLINK) - return() -endif() - -add_library(decklink-captions MODULE) -add_library(OBS::decklink-captions ALIAS decklink-captions) - -find_qt(COMPONENTS Widgets) - -target_link_libraries(decklink-captions PRIVATE Qt::Widgets) - -set_target_properties( - decklink-captions - PROPERTIES AUTOMOC ON - AUTOUIC ON - AUTORCC ON - AUTOUIC_SEARCH_PATHS "forms") - -if(OS_WINDOWS) - set_target_properties(decklink-captions PROPERTIES AUTORCC_OPTIONS "--format-version;1") -endif() - -target_compile_features(decklink-captions PRIVATE cxx_std_17) - -target_sources(decklink-captions PRIVATE forms/captions.ui) - -target_sources(decklink-captions PRIVATE decklink-captions.cpp decklink-captions.h) - -target_link_libraries(decklink-captions PRIVATE OBS::frontend-api OBS::libobs) - -if(OS_MACOS) - find_library(COCOA Cocoa) - mark_as_advanced(COCOA) - target_link_libraries(decklink-captions PRIVATE ${COCOA}) - -elseif(OS_POSIX) - find_package(X11 REQUIRED) - mark_as_advanced(X11) - target_link_libraries(decklink-captions PRIVATE X11::X11) -elseif(OS_WINDOWS) - set(MODULE_DESCRIPTION "OBS DeckLink Captions module") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in decklink-captions.rc) - - target_sources(decklink-captions PRIVATE decklink-captions.rc) -endif() - -set_target_properties(decklink-captions PROPERTIES FOLDER "plugins/decklink" PREFIX "") - -get_target_property(_SOURCES decklink-captions SOURCES) -set(_UI ${_SOURCES}) -list(FILTER _UI INCLUDE REGEX ".*\\.ui?") - -source_group( - TREE "${CMAKE_CURRENT_SOURCE_DIR}/forms" - PREFIX "UI Files" - FILES ${_UI}) -unset(_SOURCES) -unset(_UI) - -setup_plugin_target(decklink-captions) diff --git a/UI/frontend-plugins/decklink-output-ui/cmake/legacy.cmake b/UI/frontend-plugins/decklink-output-ui/cmake/legacy.cmake deleted file mode 100644 index 45c9cc2bce165c..00000000000000 --- a/UI/frontend-plugins/decklink-output-ui/cmake/legacy.cmake +++ /dev/null @@ -1,66 +0,0 @@ -project(decklink-output-ui) - -if(NOT ENABLE_DECKLINK) - return() -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( - decklink-output-ui - PROPERTIES AUTOMOC ON - AUTOUIC ON - AUTORCC ON - AUTOUIC_SEARCH_PATHS "forms") - -if(OS_WINDOWS) - set_target_properties(decklink-output-ui PROPERTIES AUTORCC_OPTIONS "--format-version;1") -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) - -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) - -set_target_properties(decklink-output-ui PROPERTIES FOLDER "frontend" PREFIX "") - -if(OS_WINDOWS) - set(MODULE_DESCRIPTION "OBS Decklink Output UI") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in decklink-output-ui.rc) - - target_sources(decklink-output-ui PRIVATE decklink-output-ui.rc) - -elseif(OS_MACOS) - find_library(COCOA Cocoa) - mark_as_advanced(COCOA) - - target_link_libraries(decklink-output-ui PRIVATE ${COCOA}) - -elseif(OS_POSIX) - find_package(X11 REQUIRED) - target_link_libraries(decklink-output-ui PRIVATE X11::X11 Qt::GuiPrivate) -endif() - -get_target_property(_SOURCES decklink-output-ui SOURCES) -set(_UI ${_SOURCES}) -list(FILTER _UI INCLUDE REGEX ".*\\.ui?") - -source_group( - TREE "${CMAKE_CURRENT_SOURCE_DIR}/forms" - PREFIX "UI Files" - FILES ${_UI}) -unset(_SOURCES) -unset(_UI) - -setup_plugin_target(decklink-output-ui) diff --git a/UI/frontend-plugins/frontend-tools/cmake/legacy.cmake b/UI/frontend-plugins/frontend-tools/cmake/legacy.cmake deleted file mode 100644 index cbfbaa5e0df3a9..00000000000000 --- a/UI/frontend-plugins/frontend-tools/cmake/legacy.cmake +++ /dev/null @@ -1,110 +0,0 @@ -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( - frontend-tools - PROPERTIES AUTOMOC ON - AUTOUIC ON - AUTORCC ON - AUTOUIC_SEARCH_PATHS "forms") - -if(OS_WINDOWS) - set_target_properties(frontend-tools PROPERTIES AUTORCC_OPTIONS "--format-version;1") -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) - -target_compile_features(frontend-tools PRIVATE cxx_std_17) - -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) - - target_sources(frontend-tools PRIVATE scripts.cpp scripts.hpp) - - target_link_libraries(frontend-tools PRIVATE OBS::scripting) - - if(TARGET obslua) - target_compile_definitions(frontend-tools PRIVATE LUAJIT_FOUND) - endif() - - if(TARGET obspython) - target_compile_definitions(frontend-tools PRIVATE Python_FOUND) - endif() -endif() - -set_target_properties(frontend-tools PROPERTIES FOLDER "frontend" PREFIX "") - -if(OS_WINDOWS) - set(MODULE_DESCRIPTION "OBS Frontend Tools") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in frontend-tools.rc) - - target_sources( - frontend-tools - PRIVATE auto-scene-switcher-win.cpp - frontend-tools.rc - captions.cpp - captions.hpp - captions-handler.cpp - captions-handler.hpp - captions-mssapi.cpp - captions-mssapi.hpp - captions-mssapi-stream.cpp - captions-mssapi-stream.hpp) - -elseif(OS_MACOS) - find_library(COCOA Cocoa) - mark_as_advanced(COCOA) - target_link_libraries(frontend-tools PRIVATE ${COCOA}) - - target_sources(frontend-tools PRIVATE auto-scene-switcher-osx.mm) - set_source_files_properties(auto-scene-switcher-osx.mm PROPERTIES COMPILE_FLAGS -fobjc-arc) - -elseif(OS_POSIX) - find_package(X11 REQUIRED) - - target_link_libraries(frontend-tools PRIVATE X11::X11) - - target_sources(frontend-tools PRIVATE auto-scene-switcher-nix.cpp) -endif() - -get_target_property(_SOURCES frontend-tools SOURCES) -set(_UI ${_SOURCES}) -list(FILTER _UI INCLUDE REGEX ".*\\.ui?") - -source_group( - TREE "${CMAKE_CURRENT_SOURCE_DIR}/forms" - PREFIX "UI Files" - FILES ${_UI}) -unset(_SOURCES) -unset(_UI) - -setup_plugin_target(frontend-tools) diff --git a/UI/obs-frontend-api/cmake/legacy.cmake b/UI/obs-frontend-api/cmake/legacy.cmake deleted file mode 100644 index d29b46b8554fe7..00000000000000 --- a/UI/obs-frontend-api/cmake/legacy.cmake +++ /dev/null @@ -1,36 +0,0 @@ -if(POLICY CMP0090) - cmake_policy(SET CMP0090 NEW) -endif() - -project(obs-frontend-api) - -add_library(obs-frontend-api SHARED) -add_library(OBS::frontend-api ALIAS obs-frontend-api) - -target_sources(obs-frontend-api PRIVATE obs-frontend-api.h obs-frontend-api.cpp obs-frontend-internal.hpp) - -target_link_libraries(obs-frontend-api PRIVATE OBS::libobs) - -target_compile_features(obs-frontend-api PUBLIC cxx_auto_type cxx_std_17 c_std_11) - -target_include_directories(obs-frontend-api PUBLIC $ - $) - -set_target_properties( - obs-frontend-api - PROPERTIES FOLDER "frontend" - VERSION "${OBS_VERSION_MAJOR}" - SOVERSION "0" - PUBLIC_HEADER obs-frontend-api.h) - -if(OS_WINDOWS) - set(MODULE_DESCRIPTION "OBS Frontend API") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in obs-frontend-api.rc) - - target_sources(obs-frontend-api PRIVATE obs-frontend-api.rc) -elseif(OS_MACOS) - set_target_properties(obs-frontend-api PROPERTIES SOVERSION "1") -endif() - -setup_binary_target(obs-frontend-api) -export_target(obs-frontend-api) diff --git a/UI/xdg-data/CMakeLists.txt b/UI/xdg-data/CMakeLists.txt deleted file mode 100644 index 2f0eba758c7902..00000000000000 --- a/UI/xdg-data/CMakeLists.txt +++ /dev/null @@ -1,58 +0,0 @@ -if(NOT DEFINED APPDATA_RELEASE_DATE) - if(EXISTS "${CMAKE_SOURCE_DIR}/.git") - execute_process( - COMMAND git log --tags -1 --pretty=%cd --date=short - OUTPUT_VARIABLE APPDATA_RELEASE_DATE - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - else() - file(TIMESTAMP "${CMAKE_SOURCE_DIR}/CMakeLists.txt" APPDATA_RELEASE_DATE "%Y-%m-%d") - endif() -endif() - -if(NOT DEFINED GIT_HASH) - if(EXISTS "${CMAKE_SOURCE_DIR}/.git") - execute_process( - COMMAND git rev-parse HEAD - OUTPUT_VARIABLE GIT_HASH - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - else() - set(GIT_HASH "master") - endif() -endif() - -configure_file(com.obsproject.Studio.metainfo.xml.in com.obsproject.Studio.metainfo.xml) - -install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/com.obsproject.Studio.metainfo.xml - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/metainfo -) - -install(FILES com.obsproject.Studio.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications) - -install( - FILES icons/obs-logo-128.png - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/128x128/apps - RENAME com.obsproject.Studio.png -) - -install( - FILES icons/obs-logo-256.png - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/256x256/apps - RENAME com.obsproject.Studio.png -) - -install( - FILES icons/obs-logo-512.png - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/512x512/apps - RENAME com.obsproject.Studio.png -) - -install( - FILES icons/obs-logo-scalable.svg - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/apps - RENAME com.obsproject.Studio.svg -) diff --git a/UI/xdg-data/com.obsproject.Studio.desktop b/UI/xdg-data/com.obsproject.Studio.desktop deleted file mode 100644 index 95b07a89180be2..00000000000000 --- a/UI/xdg-data/com.obsproject.Studio.desktop +++ /dev/null @@ -1,97 +0,0 @@ -[Desktop Entry] -Version=1.0 -Name=OBS Studio -GenericName=Streaming/Recording Software -Comment=Free and Open Source Streaming/Recording Software -Exec=obs -Icon=com.obsproject.Studio -Terminal=false -Type=Application -Categories=AudioVideo;Recorder; -StartupNotify=true -StartupWMClass=obs - -GenericName[an_ES]=Programa de retransmisión/gravación -Comment[an_ES]=Program de retransmisión/gravación libre y de codigo ubierto -GenericName[ar_SA]=برامج البث / التسجيل -Comment[ar_SA]=برنامج بث / تسجيل مجاني ومفتوح المصدر -GenericName[bn_BD]=স্ট্রিমিং/রেকর্ডিং সফটওয়্যার -Comment[bn_BD]=ফ্রি এবং মুক্ত সোর্স স্ট্রিমিং/রেকর্ডিং সফ্টওয়্যার -GenericName[ca_ES]=Programa de retransmissió/enregistrament -Comment[ca_ES]=Programa de retransmissió/enregistrament de codi lliure i gratuït -GenericName[cs_CZ]=Software pro vysílání a nahrávání -Comment[cs_CZ]=Svobodný software pro vysílání a nahrávání -GenericName[da_DK]=Streaming-/optagelsessoftware -Comment[da_DK]=Gratis og open-source streaming-/optagelsessoftware -GenericName[de_DE]=Streaming-/Aufnahme-Software -Comment[de_DE]=Freie und Open-Source-Streaming-/Aufnahme-Software -GenericName[el_GR]=Λογισμικό Ροής/Καταγραφής -Comment[el_GR]=Δωρεαν Λογισμικό Streaming/Kαταγραφή ανοιχτου κωδικα -GenericName[en_GB]=Streaming/Recording Software -Comment[en_GB]=Free and Open Source Streaming/Recording Software -GenericName[es_ES]=Disfusion digital/ Software de grabacion -Comment[es_ES]=Difusion Digital/Software de grabacion Gratis y con Fuentes Abiertas -GenericName[et_EE]=Video voogesituse ja salvestuse tarkvara -Comment[et_EE]=Tasuta ja avatud lähtekoodiga video voogesituse ja salvestuse tarkvara -GenericName[fa_IR]=نرم افزار جریان/ضبط -Comment[fa_IR]=نرم افزار منبع باز و رایگان جریان/ضبط -GenericName[fi_FI]=Striimaus-/tallennusohjelmisto -Comment[fi_FI]=Ilmainen ja avoimen lähdekoodin striimaus-/tallennusohjelmisto -GenericName[fil_PH]=Software para sa Streaming/Recording -Comment[fil_PH]=Libre at Open Source na Streaming/Recording Software -GenericName[fr_FR]=Logiciel de diffusion/enregistrement -Comment[fr_FR]=Logiciel de diffusion/enregistrement gratuit et Open Source -GenericName[gd_GB]=Bathar-bog sruthaidh/clàraidh -Comment[gd_GB]=Bathar-bog sruthaidh/clàraidh saor le bun-tùs fosgailte -GenericName[he_IL]=תוכנה לשידורים חיים והקלטה -Comment[he_IL]=תכנה חינמית בקוד פתוח לשידורים חיים ולהקלטה -GenericName[hi_IN]=स्ट्रीमिंग/रिकॉर्डिंग सॉफ्टवेयर -Comment[hi_IN]=स्वतंत्र एवं खुले स्रोत वाला स्ट्रीमिंग/रिकॉर्डिंग सॉफ्टवेयर -GenericName[hr_HR]=Softver za emitiranje/snimanje -Comment[hr_HR]=Slobodan softver otvorenog koda za emitiranje/snimanje -GenericName[hu_HU]=Közvetítő/rögzítő szoftver -Comment[hu_HU]=Szabad és nyílt forráskódú közvetítő/rögzítő szoftver -GenericName[id_ID]=Perangkat Lunak Streaming/Perekaman -Comment[id_ID]=Perangkat Lunak Streaming/Perekaman Gratis dan Sumber Terbuka -GenericName[it_IT]=Software per dirette e registrazione schermo -Comment[it_IT]=Software Libero e Open Source Streaming/Registrazione -GenericName[ja_JP]=配信/録画ソフトウェア -Comment[ja_JP]=無料のオープンソース配信/録画ソフトウェア -GenericName[ka_GE]=ვიდეოს ეთერში გამშვები/ჩამწერი პროგრამა -Comment[ka_GE]=თავისუფალი და ღია წყაროს მქონე, ვიდეოს ეთერში გამშვები/ჩამწერი პროგრამა -GenericName[kmr_TR]=Nermalava weşandin/tomarkirin-ê -Comment[kmr_TR]=Nermalava weşandin/tomarkirin-ê belaş û çavkaniya azad -GenericName[ko_KR]=방송 및 녹화 프로그램 -Comment[ko_KR]=무료 오픈소스 방송 및 녹화 프로그램 -GenericName[ms_MY]=Perisian Penstriman/Rakaman -Comment[ms_MY]=Perisian Penstriman/Rakaman Bersumber Terbuka dan Bebas -GenericName[nb_NO]=Strømming- og Opptaksprogramvare -Comment[nb_NO]=Gratis Strømming- og Opptaksprogramvare med Åpen Kildekode -GenericName[nl_NL]=Streaming/Opname Software -Comment[nl_NL]=Vrij en Open Source Streaming/Opname Sofware -GenericName[pl_PL]=Oprogramowanie do transmisji strumieniowej/nagrywania -Comment[pl_PL]=Darmowe i otwarte oprogramowanie do transmisji strumieniowej/nagrywania -GenericName[pt_BR]=Software de Streaming/Gravação -Comment[pt_BR]=Software de Streaming/Gravação de Código Aberto e Livre -GenericName[pt_PT]=Programa de transmissão/gravação -Comment[pt_PT]=Programa de transmissão/gravação livre e de código aberto -GenericName[ro_RO]=Program de Streaming/Înregistrare -Comment[ro_RO]=Program de streaming / înregistrare gratuit și open source -GenericName[ru_RU]=Программа для видеостриминга и видеозаписи -Comment[ru_RU]=Свободное и открытое ПО для видеостриминга и видеозаписи -GenericName[sk_SK]=Streamovací/Nahrávací Software -Comment[sk_SK]=Bezplatný a otvorený streamovací/nahrávací software -GenericName[sl_SI]=Pretočna/snemalna programska oprema -Comment[sl_SI]=Brezplačni in odprtokodna programska oprema za pretakanje/snemanje -GenericName[sv_SE]=Programvara för strömning/inspelning -Comment[sv_SE]=Fri programvara för strömning/inspelning med öppen källkod -GenericName[tr_TR]=Yayın/Kayıt Yazılımı -Comment[tr_TR]=Ücretsiz ve Açık Kaynaklı Yayın/Kayıt Yazılımı -GenericName[uk_UA]=Програма для трансляцій/запису -Comment[uk_UA]=Вільне та відкрите програмне забезпечення для трансляцій/запису -GenericName[vi_VN]=Phần mềm ghi hình/phát luồng -Comment[vi_VN]=Phần mềm ghi hình / phát luồng mở và miễn phí -GenericName[zh_CN]=直播/录像软件 -Comment[zh_CN]=自由且开源的用于直播串流以及视频录制的软件 -GenericName[zh_TW]=串流與錄影軟體 -Comment[zh_TW]=免費,開源的串流與錄影軟體 diff --git a/UI/xdg-data/com.obsproject.Studio.metainfo.xml.in b/UI/xdg-data/com.obsproject.Studio.metainfo.xml.in deleted file mode 100644 index a59d7946d846ce..00000000000000 --- a/UI/xdg-data/com.obsproject.Studio.metainfo.xml.in +++ /dev/null @@ -1,68 +0,0 @@ - - - com.obsproject.Studio - com.obsproject.Studio.desktop - CC0-1.0 - GPL-2.0-or-later - OBS Studio - - OBS Project - - Live stream and record videos - -

Free and open source software for video capturing, recording, and live streaming.

-

Features:

-
    -
  • High performance real time video/audio capturing and mixing. Create scenes made up of multiple sources including window captures, images, text, browser windows, webcams, capture cards and more.
  • -
  • Set up an unlimited number of scenes you can switch between seamlessly via custom transitions.
  • -
  • Intuitive audio mixer with per-source filters such as noise gate, noise suppression, and gain. Take full control with VST plugin support.
  • -
  • Powerful and easy to use configuration options. Add new Sources, duplicate existing ones, and adjust their properties effortlessly.
  • -
  • Streamlined Settings panel gives you access to a wide array of configuration options to tweak every aspect of your broadcast or recording.
  • -
  • Modular 'Dock' UI allows you to rearrange the layout exactly as you like. You can even pop out each individual Dock to its own window.
  • -
-

Create Professional Productions:

-
    -
  • Choose from a number of different and customizable transitions for when you switch between your scenes or add your own stinger video files.
  • -
  • Set hotkeys for nearly every sort of action, such as switching between scenes, starting/stopping streams or recordings, muting audio sources, push to talk, and more.
  • -
  • Studio Mode lets you preview your scenes and sources before pushing them live. Adjust your scenes and sources or create new ones and ensure they're perfect before your viewers ever see them.
  • -
  • Get a high level view of your production using the Multiview. Monitor 8 different scenes and easily cue or transition to any of them with merely a single or double click.
  • -
-
- https://obsproject.com - https://github.com/obsproject/obs-studio/issues - https://obsproject.com/contribute - https://crowdin.com/project/obs-studio - - - always - pointing - keyboard - - - - offline-only - touch - - - - - https://obsproject.com/assets/images/OBSDemoApp301Flathub.png - The OBS Studio window showing a card game, the project website, a video, and a purple rectangle - - - - - #284cb8 - - - - - - - https://github.com/obsproject/obs-studio/releases/tag/@OBS_VERSION@ - - - - https://github.com/obsproject/obs-studio/blob/@GIT_HASH@/build-aux/ - -
diff --git a/UI/xdg-data/icons/obs-logo-128.png b/UI/xdg-data/icons/obs-logo-128.png deleted file mode 100644 index f8c688da2c71e3..00000000000000 Binary files a/UI/xdg-data/icons/obs-logo-128.png and /dev/null differ diff --git a/UI/xdg-data/icons/obs-logo-256.png b/UI/xdg-data/icons/obs-logo-256.png deleted file mode 100644 index aa445cdf66170d..00000000000000 Binary files a/UI/xdg-data/icons/obs-logo-256.png and /dev/null differ diff --git a/UI/xdg-data/icons/obs-logo-512.png b/UI/xdg-data/icons/obs-logo-512.png deleted file mode 100644 index a536f57a19e4aa..00000000000000 Binary files a/UI/xdg-data/icons/obs-logo-512.png and /dev/null differ diff --git a/UI/xdg-data/icons/obs-logo-scalable.svg b/UI/xdg-data/icons/obs-logo-scalable.svg deleted file mode 100644 index 8fe847880c5c31..00000000000000 --- a/UI/xdg-data/icons/obs-logo-scalable.svg +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build-aux/com.obsproject.Studio.json b/build-aux/com.obsproject.Studio.json index fb32fd29269aa4..70129fbd9bafc8 100644 --- a/build-aux/com.obsproject.Studio.json +++ b/build-aux/com.obsproject.Studio.json @@ -74,11 +74,9 @@ "builddir": true, "config-opts": [ "-DCMAKE_BUILD_TYPE=RelWithDebInfo", - "-DOBS_CMAKE_VERSION=3", "-DENABLE_WAYLAND=ON", "-DENABLE_BROWSER=ON", "-DCEF_ROOT_DIR=/app/cef", - "-DUSE_XDG=ON", "-DENABLE_ALSA=OFF", "-DENABLE_PULSEAUDIO=ON", "-DENABLE_JACK=ON", diff --git a/cmake/Modules/CompilerConfig.cmake b/cmake/Modules/CompilerConfig.cmake deleted file mode 100644 index 849d19de75ccf2..00000000000000 --- a/cmake/Modules/CompilerConfig.cmake +++ /dev/null @@ -1,192 +0,0 @@ -include(CheckCCompilerFlag) -include(CheckCXXCompilerFlag) - -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_EXTENSIONS OFF) - -# CMake < 3.21 only goes up to 11, but it's mostly identical to 17 anyway. -if(${CMAKE_VERSION} VERSION_LESS "3.21.0") - set(CMAKE_C_STANDARD 11) - set(CMAKE_C_STANDARD_REQUIRED ON) -else() - set(CMAKE_C_STANDARD 17) - set(CMAKE_C_STANDARD_REQUIRED ON) -endif() - -# TODO/FIXME: Investigate disabling C extensions on Linux/POSIX -if(OS_MACOS OR NOT OS_POSIX) - set(CMAKE_C_EXTENSIONS OFF) -endif() - -# Set compile options for MSVC -if(OS_WINDOWS AND MSVC) - if(NOT EXISTS "${CMAKE_BINARY_DIR}/ALL_BUILD.vcxproj.user") - file( - GENERATE - OUTPUT "${CMAKE_BINARY_DIR}/ALL_BUILD.vcxproj.user" - INPUT "${CMAKE_SOURCE_DIR}/cmake/bundle/windows/ALL_BUILD.vcxproj.user.in") - endif() - - # CMake 3.24 introduces a bug mistakenly interpreting MSVC as supporting `-pthread` - if(${CMAKE_VERSION} VERSION_EQUAL "3.24.0") - set(THREADS_HAVE_PTHREAD_ARG OFF) - endif() - - # Check for Win SDK version 10.0.20348 or above - obs_status(STATUS "Windows API version is ${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}") - string(REPLACE "." ";" WINAPI_VER "${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}") - - list(GET WINAPI_VER 0 WINAPI_VER_MAJOR) - list(GET WINAPI_VER 1 WINAPI_VER_MINOR) - list(GET WINAPI_VER 2 WINAPI_VER_BUILD) - - set(WINAPI_COMPATIBLE FALSE) - if(WINAPI_VER_MAJOR EQUAL 10) - if(WINAPI_VER_MINOR EQUAL 0) - if(WINAPI_VER_BUILD GREATER_EQUAL 20348) - set(WINAPI_COMPATIBLE TRUE) - endif() - else() - set(WINAPI_COMPATIBLE TRUE) - endif() - elseif(WINAPI_VER_MAJOR GREATER 10) - set(WINAPI_COMPATIBLE TRUE) - endif() - - if(NOT WINAPI_COMPATIBLE) - obs_status(FATAL_ERROR "OBS requires Windows 10 SDK version 10.0.20348.0 and above to compile.\n" - "Please download the most recent Windows 10 SDK in order to compile.") - endif() - - add_compile_options( - /Brepro - /MP - /W3 - /WX - /wd4127 - /wd4201 - /wd4456 - /wd4457 - /wd4458 - /wd4459 - /wd4595 - "$<$:/DDEBUG=1;/D_DEBUG=1>" - "$<$:/Ob2>" - /DUNICODE - /D_UNICODE - /D_CRT_SECURE_NO_WARNINGS - /D_CRT_NONSTDC_NO_WARNINGS - /utf-8 - /permissive- - /Zc:__cplusplus - /Zc:preprocessor) - - add_link_options( - "LINKER:/Brepro" "LINKER:/OPT:REF" "LINKER:/WX" "$<$>:LINKER\:/SAFESEH\:NO>" - "$<$:LINKER\:/INCREMENTAL\:NO>" "$<$:LINKER\:/INCREMENTAL\:NO;/OPT:ICF>") -else() - find_program(CCACHE_PROGRAM "ccache") - set(CCACHE_SUPPORT - ON - CACHE BOOL "Enable ccache support") - mark_as_advanced(CCACHE_PROGRAM) - if(CCACHE_PROGRAM AND CCACHE_SUPPORT) - set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_PROGRAM}") - set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_PROGRAM}") - set(CMAKE_OBJC_COMPILER_LAUNCHER "${CCACHE_PROGRAM}") - set(CMAKE_OBJCXX_COMPILER_LAUNCHER "${CCACHE_PROGRAM}") - set(CMAKE_CUDA_COMPILER_LAUNCHER "${CCACHE_PROGRAM}") # CMake 3.9+ - endif() - - option(CALM_DEPRECATION "Keep deprecated-declarations as warnings" OFF) - #[[ - Note about -Wmaybe-uninitialized on GCC, this warning seems to be subject of various regressions and false positives. This - warning is set to not turn into an error. - - - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105562 for 12.1.0 - - https://github.com/obsproject/obs-studio/issues/8850 for 13.1.1 - ]] - add_compile_options( - -Werror - -Wextra - -Wvla - -Wswitch - -Wno-error=switch - -Wformat - -Wformat-security - -Wunused-parameter - -Wno-unused-function - -Wno-missing-field-initializers - -fno-strict-aliasing - "$<$:-Werror-implicit-function-declaration;-Wno-missing-braces>" - "$<$:-stdlib=libc++>" - "$<$:-DDEBUG=1;-D_DEBUG=1>" - "$<$:-Wnull-conversion;-fcolor-diagnostics;-Wno-error=shorten-64-to-32>" - "$<$:-Wnull-conversion;-fcolor-diagnostics;-Wno-error=shorten-64-to-32>" - "$<$:-Wconversion-null;-Wno-error=maybe-uninitialized>" - "$<$:-Wno-error=maybe-uninitialized>" - "$<$:-Wno-error=deprecated-declarations>") - - # GCC on aarch64 emits type-limits warnings that do not appear on x86_64 - if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") - add_compile_options(-Wno-error=type-limits) - endif() - - if(OBS_CODESIGN_LINKER) - add_link_options("LINKER:$<$:-adhoc_codesign>") - endif() - - if(MINGW) - set(CMAKE_WIDL - "widl" - CACHE INTERNAL "wine IDL header file generation program") - add_compile_definitions("_WIN32_WINNT=0x0600;WINVER=0x0600") - endif() -endif() - -if(MSVC_CXX_ARCHITECTURE_ID) - string(TOLOWER ${MSVC_CXX_ARCHITECTURE_ID} LOWERCASE_CMAKE_SYSTEM_PROCESSOR) -else() - string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR) -endif() - -if(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|x86|x64|x86_64|amd64|e2k)") - if(NOT MSVC AND NOT CMAKE_OSX_ARCHITECTURES STREQUAL "arm64") - set(ARCH_SIMD_FLAGS -mmmx -msse -msse2) - endif() -elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64(le)?") - set(ARCH_SIMD_DEFINES -DNO_WARN_X86_INTRINSICS) - set(ARCH_SIMD_FLAGS -mvsx) -else() - if(CMAKE_C_COMPILER_ID MATCHES "^(Apple)?Clang|GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "^(Apple)?Clang|GNU") - check_c_compiler_flag("-fopenmp-simd" C_COMPILER_SUPPORTS_OPENMP_SIMD) - check_cxx_compiler_flag("-fopenmp-simd" CXX_COMPILER_SUPPORTS_OPENMP_SIMD) - set(ARCH_SIMD_FLAGS - -DSIMDE_ENABLE_OPENMP "$<$,$>:-fopenmp-simd>" - "$<$,$>:-fopenmp-simd>") - endif() -endif() - -if(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "e2k") - foreach( - TEST_C_FLAG - "-Wno-unused-parameter" - "-Wno-ignored-qualifiers" - "-Wno-pointer-sign" - "-Wno-unused-variable" - "-Wno-sign-compare" - "-Wno-bad-return-value-type" - "-Wno-maybe-uninitialized") - check_c_compiler_flag(${TEST_C_FLAG} C_COMPILER_SUPPORTS_FLAG_${TEST_C_FLAG}) - if(C_COMPILER_SUPPORTS_FLAG_${TEST_C_FLAG}) - set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} ${TEST_C_FLAG}) - endif() - endforeach() - foreach(TEST_CXX_FLAG "-Wno-invalid-offsetof" "-Wno-maybe-uninitialized") - check_cxx_compiler_flag(${TEST_CXX_FLAG} CXX_COMPILER_SUPPORTS_FLAG_${TEST_CXX_FLAG}) - if(CXX_COMPILER_SUPPORTS_FLAG_${TEST_CXX_FLAG}) - set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} ${TEST_CXX_FLAG}) - endif() - endforeach() -endif() diff --git a/cmake/Modules/CopyMSVCBins.cmake b/cmake/Modules/CopyMSVCBins.cmake deleted file mode 100644 index 390a49edf51643..00000000000000 --- a/cmake/Modules/CopyMSVCBins.cmake +++ /dev/null @@ -1,364 +0,0 @@ -# Doesn't really make sense anywhere else -if(NOT MSVC) - return() -endif() - -# Internal variable to avoid copying more than once -if(COPIED_DEPENDENCIES) - return() -endif() - -option(COPY_DEPENDENCIES "Automatically try copying all dependencies" ON) -if(NOT COPY_DEPENDENCIES) - return() -endif() - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_bin_suffix 64) -else() - set(_bin_suffix 32) -endif() - -file( - GLOB - FFMPEG_BIN_FILES - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin/avcodec-*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin${_bin_suffix}/avcodec-*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin${_bin_suffix}/avcodec-*.dll" - "${FFMPEG_avformat_INCLUDE_DIR}/../bin/avformat-*.dll" - "${FFMPEG_avformat_INCLUDE_DIR}/../bin${_bin_suffix}/avformat-*.dll" - "${FFMPEG_avformat_INCLUDE_DIR}/bin${_bin_suffix}/avformat-*.dll" - "${FFMPEG_avutil_INCLUDE_DIR}/../bin/avutil-*.dll" - "${FFMPEG_avutil_INCLUDE_DIR}/../bin${_bin_suffix}/avutil-*.dll" - "${FFMPEG_avutil_INCLUDE_DIR}/bin${_bin_suffix}/avutil-*.dll" - "${FFMPEG_avdevice_INCLUDE_DIR}/../bin/avdevice-*.dll" - "${FFMPEG_avdevice_INCLUDE_DIR}/../bin${_bin_suffix}/avdevice-*.dll" - "${FFMPEG_avdevice_INCLUDE_DIR}/bin${_bin_suffix}/avdevice-*.dll" - "${FFMPEG_avfilter_INCLUDE_DIR}/../bin/avfilter-*.dll" - "${FFMPEG_avfilter_INCLUDE_DIR}/../bin${_bin_suffix}/avfilter-*.dll" - "${FFMPEG_avfilter_INCLUDE_DIR}/bin${_bin_suffix}/avfilter-*.dll" - "${FFMPEG_postproc_INCLUDE_DIR}/../bin/postproc-*.dll" - "${FFMPEG_postproc_INCLUDE_DIR}/../bin${_bin_suffix}/postproc-*.dll" - "${FFMPEG_postproc_INCLUDE_DIR}/bin${_bin_suffix}/postproc-*.dll" - "${FFMPEG_swscale_INCLUDE_DIR}/../bin/swscale-*.dll" - "${FFMPEG_swscale_INCLUDE_DIR}/bin${_bin_suffix}/swscale-*.dll" - "${FFMPEG_swscale_INCLUDE_DIR}/../bin${_bin_suffix}/swscale-*.dll" - "${FFMPEG_swresample_INCLUDE_DIR}/../bin/swresample-*.dll" - "${FFMPEG_swresample_INCLUDE_DIR}/../bin${_bin_suffix}/swresample-*.dll" - "${FFMPEG_swresample_INCLUDE_DIR}/bin${_bin_suffix}/swresample-*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin/libopus*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin/opus*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin/libopus*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin/opus*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin/libogg*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin/libvorbis*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin/libogg*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin/libvorbis*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin/libvpx*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin/libvpx*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin/libsrt*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin/libsrt*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin/libmbedcrypto*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin/libmbedcrypto*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin/libmbedtls*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin/libmbedtls*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin/libmbedx509*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin/libmbedx509*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin${_bin_suffix}/libopus*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin${_bin_suffix}/opus*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin${_bin_suffix}/libopus*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin${_bin_suffix}/opus*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin/libbz2*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin/zlib*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin/libbz2*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin/zlib*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin${_bin_suffix}/libSvtAv1Enc.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin${_bin_suffix}/libSvtAv1Enc.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin/libSvtAv1Enc.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin/libSvtAv1Enc.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin${_bin_suffix}/libaom.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin${_bin_suffix}/libaom.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin/libaom.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin/libaom.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin${_bin_suffix}/librist.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin${_bin_suffix}/librist.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin/librist.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin/librist.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin${_bin_suffix}/libbz2*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin${_bin_suffix}/zlib*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin${_bin_suffix}/libbz2*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin${_bin_suffix}/zlib*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/../bin/*datachannel*.dll" - "${FFMPEG_avcodec_INCLUDE_DIR}/bin/*datachannel*.dll") - -file(GLOB X264_BIN_FILES "${X264_INCLUDE_DIR}/../bin${_bin_suffix}/libx264-*.dll" - "${X264_INCLUDE_DIR}/../bin/libx264-*.dll" "${X264_INCLUDE_DIR}/bin/libx264-*.dll" - "${X264_INCLUDE_DIR}/bin${_bin_suffix}/libx264-*.dll") - -file( - GLOB - FREETYPE_BIN_FILES - "${FREETYPE_INCLUDE_DIR_ft2build}/../../bin${_bin_suffix}/libfreetype*-*.dll" - "${FREETYPE_INCLUDE_DIR_ft2build}/../../bin/libfreetype*-*.dll" - "${FREETYPE_INCLUDE_DIR_ft2build}/../bin${_bin_suffix}/libfreetype*-*.dll" - "${FREETYPE_INCLUDE_DIR_ft2build}/../bin/libfreetype*-*.dll" - "${FREETYPE_INCLUDE_DIR_ft2build}/bin/libfreetype*-*.dll" - "${FREETYPE_INCLUDE_DIR_ft2build}/bin${_bin_suffix}/libfreetype*-*.dll" - "${FREETYPE_INCLUDE_DIR_ft2build}/../../bin${_bin_suffix}/freetype.dll" - "${FREETYPE_INCLUDE_DIR_ft2build}/../../bin/freetype.dll" - "${FREETYPE_INCLUDE_DIR_ft2build}/../bin${_bin_suffix}/freetype.dll" - "${FREETYPE_INCLUDE_DIR_ft2build}/../bin/freetype.dll") - -file(GLOB LIBFDK_BIN_FILES "${Libfdk_INCLUDE_DIR}/../bin${_bin_suffix}/libfdk*-*.dll" - "${Libfdk_INCLUDE_DIR}/../bin/libfdk*-*.dll" "${Libfdk_INCLUDE_DIR}/bin/libfdk*-*.dll" - "${Libfdk_INCLUDE_DIR}/bin${_bin_suffix}/libfdk*-*.dll") - -file( - GLOB - SSL_BIN_FILES - "${SSL_INCLUDE_DIR}/../bin${_bin_suffix}/ssleay32*.dll" - "${SSL_INCLUDE_DIR}/../bin${_bin_suffix}/libeay32*.dll" - "${SSL_INCLUDE_DIR}/../bin/ssleay32*.dll" - "${SSL_INCLUDE_DIR}/../bin/libeay32*.dll" - "${SSL_INCLUDE_DIR}/bin${_bin_suffix}/ssleay32*.dll" - "${SSL_INCLUDE_DIR}/bin${_bin_suffix}/libeay32*.dll" - "${SSL_INCLUDE_DIR}/bin/ssleay32*.dll" - "${SSL_INCLUDE_DIR}/bin/libeay32*.dll") - -if(NOT DEFINED CURL_INCLUDE_DIR AND TARGET CURL::libcurl) - get_target_property(CURL_INCLUDE_DIR CURL::libcurl INTERFACE_INCLUDE_DIRECTORIES) -endif() - -file( - GLOB - CURL_BIN_FILES - "${CURL_INCLUDE_DIR}/../build/Win${_bin_suffix}/VC12/DLL Release - DLL Windows SSPI/libcurl.dll" - "${CURL_INCLUDE_DIR}/../bin${_bin_suffix}/libcurl*.dll" - "${CURL_INCLUDE_DIR}/../bin${_bin_suffix}/curl*.dll" - "${CURL_INCLUDE_DIR}/../bin/libcurl*.dll" - "${CURL_INCLUDE_DIR}/../bin/curl*.dll" - "${CURL_INCLUDE_DIR}/bin${_bin_suffix}/libcurl*.dll" - "${CURL_INCLUDE_DIR}/bin${_bin_suffix}/curl*.dll" - "${CURL_INCLUDE_DIR}/bin/libcurl*.dll" - "${CURL_INCLUDE_DIR}/bin/curl*.dll") - -file( - GLOB - LUA_BIN_FILES - "${LUAJIT_INCLUDE_DIR}/../../bin${_bin_suffix}/lua*.dll" - "${LUAJIT_INCLUDE_DIR}/../../bin/lua*.dll" - "${LUAJIT_INCLUDE_DIR}/../bin${_bin_suffix}/lua*.dll" - "${LUAJIT_INCLUDE_DIR}/../bin/lua*.dll" - "${LUAJIT_INCLUDE_DIR}/bin${_bin_suffix}/lua*.dll" - "${LUAJIT_INCLUDE_DIR}/bin/lua*.dll" - "${LUAJIT_INCLUDE_DIR}/lua*.dll") - -if(ZLIB_LIB) - get_filename_component(ZLIB_BIN_PATH ${ZLIB_LIB} PATH) -endif() -file(GLOB ZLIB_BIN_FILES "${ZLIB_BIN_PATH}/zlib*.dll") - -if(NOT ZLIB_BIN_FILES) - file(GLOB ZLIB_BIN_FILES "${ZLIB_INCLUDE_DIR}/../bin${_bin_suffix}/zlib*.dll" "${ZLIB_INCLUDE_DIR}/../bin/zlib*.dll" - "${ZLIB_INCLUDE_DIR}/bin${_bin_suffix}/zlib*.dll" "${ZLIB_INCLUDE_DIR}/bin/zlib*.dll") -endif() - -file(GLOB RNNOISE_BIN_FILES "${RNNOISE_INCLUDE_DIR}/../bin${_bin_suffix}/rnnoise*.dll" - "${RNNOISE_INCLUDE_DIR}/../bin/rnnoise*.dll") - -set(QtCore_DIR "${Qt6Core_DIR}") -cmake_path(SET QtCore_DIR_NORM NORMALIZE "${QtCore_DIR}/../../..") -set(QtCore_BIN_DIR "${QtCore_DIR_NORM}bin") -set(QtCore_PLUGIN_DIR "${QtCore_DIR_NORM}plugins") -obs_status(STATUS "QtCore_BIN_DIR: ${QtCore_BIN_DIR}") -obs_status(STATUS "QtCore_PLUGIN_DIR: ${QtCore_PLUGIN_DIR}") - -file( - GLOB - QT_DEBUG_BIN_FILES - "${QtCore_BIN_DIR}/Qt6Cored.dll" - "${QtCore_BIN_DIR}/Qt6Guid.dll" - "${QtCore_BIN_DIR}/Qt6Widgetsd.dll" - "${QtCore_BIN_DIR}/Qt6Svgd.dll" - "${QtCore_BIN_DIR}/Qt6Xmld.dll" - "${QtCore_BIN_DIR}/Qt6Networkd.dll" - "${QtCore_BIN_DIR}/libGLESv2d.dll" - "${QtCore_BIN_DIR}/libEGLd.dll") -file(GLOB QT_DEBUG_PLAT_BIN_FILES "${QtCore_PLUGIN_DIR}/platforms/qwindowsd.dll") -file(GLOB QT_DEBUG_STYLES_BIN_FILES "${QtCore_PLUGIN_DIR}/styles/qwindowsvistastyled.dll") -file(GLOB QT_DEBUG_ICONENGINE_BIN_FILES "${QtCore_PLUGIN_DIR}/iconengines/qsvgicond.dll") -file(GLOB QT_DEBUG_IMAGEFORMATS_BIN_FILES "${QtCore_PLUGIN_DIR}/imageformats/qsvgd.dll" - "${QtCore_PLUGIN_DIR}/imageformats/qgifd.dll" "${QtCore_PLUGIN_DIR}/imageformats/qjpegd.dll") - -file( - GLOB - QT_BIN_FILES - "${QtCore_BIN_DIR}/Qt6Core.dll" - "${QtCore_BIN_DIR}/Qt6Gui.dll" - "${QtCore_BIN_DIR}/Qt6Widgets.dll" - "${QtCore_BIN_DIR}/Qt6Svg.dll" - "${QtCore_BIN_DIR}/Qt6Xml.dll" - "${QtCore_BIN_DIR}/Qt6Network.dll" - "${QtCore_BIN_DIR}/libGLESv2.dll" - "${QtCore_BIN_DIR}/libEGL.dll") -file(GLOB QT_PLAT_BIN_FILES "${QtCore_PLUGIN_DIR}/platforms/qwindows.dll") -file(GLOB QT_STYLES_BIN_FILES "${QtCore_PLUGIN_DIR}/styles/qwindowsvistastyle.dll") -file(GLOB QT_ICONENGINE_BIN_FILES "${QtCore_PLUGIN_DIR}/iconengines/qsvgicon.dll") -file(GLOB QT_IMAGEFORMATS_BIN_FILES "${QtCore_PLUGIN_DIR}/imageformats/qsvg.dll" - "${QtCore_PLUGIN_DIR}/imageformats/qgif.dll" "${QtCore_PLUGIN_DIR}/imageformats/qjpeg.dll") - -file(GLOB QT_ICU_BIN_FILES "${QtCore_BIN_DIR}/icu*.dll") - -set(ALL_BASE_BIN_FILES - ${FFMPEG_BIN_FILES} - ${X264_BIN_FILES} - ${CURL_BIN_FILES} - ${LUA_BIN_FILES} - ${SSL_BIN_FILES} - ${ZLIB_BIN_FILES} - ${LIBFDK_BIN_FILES} - ${FREETYPE_BIN_FILES} - ${RNNOISE_BIN_FILES} - ${QT_ICU_BIN_FILES}) - -set(ALL_REL_BIN_FILES ${QT_BIN_FILES}) - -set(ALL_DBG_BIN_FILES ${QT_DEBUG_BIN_FILES}) - -set(ALL_PLATFORM_BIN_FILES) -set(ALL_PLATFORM_REL_BIN_FILES ${QT_PLAT_BIN_FILES}) -set(ALL_PLATFORM_DBG_BIN_FILES ${QT_DEBUG_PLAT_BIN_FILES}) - -set(ALL_STYLES_BIN_FILES) -set(ALL_STYLES_REL_BIN_FILES ${QT_STYLES_BIN_FILES}) -set(ALL_STYLES_DBG_BIN_FILES ${QT_DEBUG_STYLES_BIN_FILES}) - -set(ALL_ICONENGINE_BIN_FILES) -set(ALL_ICONENGINE_REL_BIN_FILES ${QT_ICONENGINE_BIN_FILES}) -set(ALL_ICONENGINE_DBG_BIN_FILES ${QT_DEBUG_ICONENGINE_BIN_FILES}) - -set(ALL_IMAGEFORMATS_BIN_FILES) -set(ALL_IMAGEFORMATS_REL_BIN_FILES ${QT_IMAGEFORMATS_BIN_FILES}) -set(ALL_IMAGEFORMATS_DBG_BIN_FILES ${QT_DEBUG_IMAGEFORMATS_BIN_FILES}) - -foreach( - list - ALL_BASE_BIN_FILES - ALL_REL_BIN_FILES - ALL_DBG_BIN_FILES - ALL_PLATFORM_BIN_FILES - ALL_PLATFORM_REL_BIN_FILES - ALL_PLATFORM_DBG_BIN_FILES - ALL_STYLES_BIN_FILES - ALL_STYLES_REL_BIN_FILES - ALL_STYLES_DBG_BIN_FILES - ALL_ICONENGINE_BIN_FILES - ALL_ICONENGINE_REL_BIN_FILES - ALL_ICONENGINE_DGB_BIN_FILES - ALL_IMAGEFORMATS_BIN_FILES - ALL_IMAGEFORMATS_REL_BIN_FILES - ALL_IMAGEFORMATS_DGB_BIN_FILES) - if(${list}) - list(REMOVE_DUPLICATES ${list}) - endif() -endforeach() - -obs_status(STATUS "FFmpeg files: ${FFMPEG_BIN_FILES}") -obs_status(STATUS "x264 files: ${X264_BIN_FILES}") -obs_status(STATUS "Libfdk files: ${LIBFDK_BIN_FILES}") -obs_status(STATUS "Freetype files: ${FREETYPE_BIN_FILES}") -obs_status(STATUS "rnnoise files: ${RNNOISE_BIN_FILES}") -obs_status(STATUS "curl files: ${CURL_BIN_FILES}") -obs_status(STATUS "lua files: ${LUA_BIN_FILES}") -obs_status(STATUS "ssl files: ${SSL_BIN_FILES}") -obs_status(STATUS "zlib files: ${ZLIB_BIN_FILES}") -obs_status(STATUS "Qt Debug files: ${QT_DEBUG_BIN_FILES}") -obs_status(STATUS "Qt Debug Platform files: ${QT_DEBUG_PLAT_BIN_FILES}") -obs_status(STATUS "Qt Debug Styles files: ${QT_DEBUG_STYLES_BIN_FILES}") -obs_status(STATUS "Qt Debug Iconengine files: ${QT_DEBUG_ICONENGINE_BIN_FILES}") -obs_status(STATUS "Qt Debug Imageformat files: ${QT_DEBUG_IMAGEFORMATS_BIN_FILES}") -obs_status(STATUS "Qt Release files: ${QT_BIN_FILES}") -obs_status(STATUS "Qt Release Platform files: ${QT_PLAT_BIN_FILES}") -obs_status(STATUS "Qt Release Styles files: ${QT_STYLES_BIN_FILES}") -obs_status(STATUS "Qt Release Iconengine files: ${QT_ICONENGINE_BIN_FILES}") -obs_status(STATUS "Qt Release Imageformat files: ${QT_IMAGEFORMATS_BIN_FILES}") -obs_status(STATUS "Qt ICU files: ${QT_ICU_BIN_FILES}") - -foreach(BinFile ${ALL_BASE_BIN_FILES}) - obs_status(STATUS "copying ${BinFile} to ${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}") - file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}/") -endforeach() - -foreach(BinFile ${ALL_REL_BIN_FILES}) - obs_status(STATUS "copying ${BinFile} to ${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}r") - file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}r/") -endforeach() - -foreach(BinFile ${ALL_DBG_BIN_FILES}) - obs_status(STATUS "copying ${BinFile} to ${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}d") - file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}d/") -endforeach() - -foreach(BinFile ${ALL_PLATFORM_BIN_FILES}) - make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}/platforms") - file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}/platforms/") -endforeach() - -foreach(BinFile ${ALL_PLATFORM_REL_BIN_FILES}) - make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}r/platforms") - file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}r/platforms/") -endforeach() - -foreach(BinFile ${ALL_PLATFORM_DBG_BIN_FILES}) - make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}d/platforms") - file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}d/platforms/") -endforeach() - -foreach(BinFile ${ALL_STYLES_BIN_FILES}) - make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}/styles") - file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}/styles/") -endforeach() - -foreach(BinFile ${ALL_STYLES_REL_BIN_FILES}) - make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}r/styles") - file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}r/styles/") -endforeach() - -foreach(BinFile ${ALL_STYLES_DBG_BIN_FILES}) - make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}d/styles") - file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}d/styles/") -endforeach() - -foreach(BinFile ${ALL_ICONENGINE_BIN_FILES}) - make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}/iconengines") - file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}/iconengines/") -endforeach() - -foreach(BinFile ${ALL_ICONENGINE_REL_BIN_FILES}) - make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}r/iconengines") - file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}r/iconengines/") -endforeach() - -foreach(BinFile ${ALL_ICONENGINE_DBG_BIN_FILES}) - make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}d/iconengines") - file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}d/iconengines/") -endforeach() - -foreach(BinFile ${ALL_IMAGEFORMATS_BIN_FILES}) - make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}/imageformats") - file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}/imageformats/") -endforeach() - -foreach(BinFile ${ALL_IMAGEFORMATS_REL_BIN_FILES}) - make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}r/imageformats") - file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}r/imageformats/") -endforeach() - -foreach(BinFile ${ALL_IMAGEFORMATS_DBG_BIN_FILES}) - make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}d/imageformats") - file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}d/imageformats/") -endforeach() - -set(COPIED_DEPENDENCIES - TRUE - CACHE BOOL "Dependencies have been copied, set to false to copy again" FORCE) diff --git a/cmake/Modules/DeprecationHelpers.cmake b/cmake/Modules/DeprecationHelpers.cmake deleted file mode 100644 index 6d1f8d9edfdf5b..00000000000000 --- a/cmake/Modules/DeprecationHelpers.cmake +++ /dev/null @@ -1,237 +0,0 @@ -function(upgrade_cmake_vars) - if(DEFINED BROWSER_LEGACY) - set(ENABLE_BROWSER_LEGACY - "${BROWSER_LEGACY}" - CACHE BOOL "" FORCE) - endif() - - if(DEFINED BROWSER_PANEL_SUPPORT_ENABLED) - set(ENABLE_BROWSER_PANELS - "${BROWSER_PANEL_SUPPORT_ENABLED}" - CACHE BOOL "" FORCE) - endif() - - if(DEFINED BUILD_BROWSER) - set(ENABLE_BROWSER - "${BUILD_BROWSER}" - CACHE BOOL "" FORCE) - endif() - - if(DEFINED BUILD_CA_ENCODER) - set(ENABLE_COREAUDIO_ENCODER - "${BUILD_CA_ENCODER}" - CACHE BOOL "" FORCE) - endif() - - if(DEFINED BUILD_VST) - set(ENABLE_VST - "${BUILD_VST}" - CACHE BOOL "" FORCE) - endif() - - if(DEFINED CHECK_FOR_SERVICE_UPDATES) - set(ENABLE_SERVICE_UPDATES - "${CHECK_FOR_SERVICE_UPDATES}" - CACHE BOOL "" FORCE) - endif() - - if(DEFINED DEBUG_FFMPEG_MUX) - set(ENABLE_FFMPEG_MUX_DEBUG - "${DEBUG_FFMPEG_MUX}" - CACHE BOOL "" FORCE) - endif() - - if(DEFINED DISABLE_IVCAM) - if(DISABLE_IVCAM) - set(ENABLE_IVCAM - OFF - CACHE BOOL "" FORCE) - else() - set(ENABLE_IVCAM - ON - CACHE BOOL "" FORCE) - endif() - endif() - - if(DEFINED DISABLE_PLUGINS) - if(DISABLE_PLUGINS) - set(ENABLE_PLUGINS - OFF - CACHE BOOL "" FORCE) - else() - set(ENABLE_PLUGINS - ON - CACHE BOOL "" FORCE) - endif() - endif() - - if(DEFINED DISABLE_PYTHON) - if(DISABLE_PYTHON) - set(ENABLE_SCRIPTING_PYTHON - OFF - CACHE BOOL "" FORCE) - else() - set(ENABLE_SCRIPTING_PYTHON - ON - CACHE BOOL "" FORCE) - endif() - endif() - - if(DEFINED DISABLE_LUA) - if(DISABLE_LUA) - set(ENABLE_SCRIPTING_LUA - OFF - CACHE BOOL "" FORCE) - else() - set(ENABLE_SCRIPTING_LUA - ON - CACHE BOOL "" FORCE) - endif() - endif() - - if(DEFINED DISABLE_SPEEXDSP) - if(DISABLE_SPEEXDSP) - set(ENABLE_SPEEXDSP - OFF - CACHE BOOL "" FORCE) - else() - set(ENABLE_SPEEXDSP - ON - CACHE BOOL "" FORCE) - endif() - endif() - - if(DEFINED DISABLE_UPDATE_MODULE) - if(DISABLE_UPDATE_MODULE) - set(ENABLE_UPDATER - OFF - CACHE BOOL "" FORCE) - else() - set(ENABLE_UPDATER - ON - CACHE BOOL "" FORCE) - endif() - endif() - - if(DEFINED SHARED_TEXTURE_SUPPORT_ENABLED) - set(ENABLE_BROWSER_SHARED_TEXTURE - "${SHARED_TEXTURE_SUPPORT_ENABLED}" - CACHE BOOL "" FORCE) - endif() - - if(DEFINED STATIC_MBEDTLS) - set(ENABLE_STATIC_MBEDTLS - "${STATIC_MBEDTLS}" - CACHE BOOL "" FORCE) - endif() - - if(DEFINED UNIX_STRUCTURE AND UNIX_STRUCTURE) - set(LINUX_PORTABLE - OFF - CACHE BOOL "" FORCE) - endif() - - if(DEFINED USE_QT_LOOP) - set(ENABLE_BROWSER_QT_LOOP - "${USE_QT_LOOP}" - CACHE BOOL "" FORCE) - endif() - - if(DEFINED WITH_RTMPS) - set(ENABLE_RTMPS - "${WITH_RTMPS}" - CACHE STRING "" FORCE) - endif() -endfunction() - -function(install_obs_plugin_with_data) - obs_status( - DEPRECATION - "The install_obs_plugin_with_data command is deprecated and will be removed soon. Use 'setup_plugin_target' instead." - ) - _install_obs_plugin_with_data(${ARGV}) -endfunction() - -function(install_obs_plugin) - obs_status( - DEPRECATION - "The install_obs_plugin command is deprecated and will be removed soon. Use 'setup_plugin_target' instead.") - _install_obs_plugin(${ARGV}) -endfunction() - -function(install_obs_datatarget) - obs_status( - DEPRECATION - "The install_obs_datatarget function is deprecated and will be removed soon. Use 'setup_target_resources' instead.") - _install_obs_datatarget(${ARGV}) -endfunction() - -function(__deprecated_var VAR ACCESS) - if(ACCESS STREQUAL "READ_ACCESS") - obs_status(DEPRECATION "The variable '${VAR}' is deprecated!") - endif() -endfunction() - -function(__deprecated_feature VAR ACCESS) - if(ACCESS STREQUAL "UNKNOWN_READ_ACCESS") - obs_status(DEPRECATION "The feature enabled by '${VAR}' is deprecated and will soon be removed from OBS.") - endif() -endfunction() - -set(_DEPRECATED_VARS - zlibPath - vulkanPath - SwigPath - PythonPath - mbedtlsPath - LuajitPath - x264Path - VlcPath - VLCPath - speexPath - rnnoisePath - LibfdkPath - curlPath - JanssonPath - FFmpegPath - DepsPath - DepsPath32 - DepsPath64 - QTDIR32 - QTDIR64 - DISABLE_UI - UI_ENABLED - UNIX_STRUCTURE - UPDATE_SPARKLE - LIBOBS_PREFER_IMAGEMAGICK - DEBUG_FFMPEG_MUX - ENABLE_WINMF - USE_QT_LOOP - SHARED_TEXTURE_SUPPORT_ENABLED - BROWSER_PANEL_SUPPORT_ENABLED - BROWSER_LEGACY - BUILD_BROWSER - BUILD_CAPTIONS - BUILD_CA_ENCODER - BUILD_VST - CHECK_FOR_SERVICE_UPDATES - DISABLE_IVCAM - DISABLE_LUA - DISABLE_PLUGINS - DISABLE_PYTHON - DISABLE_SPEEXDSP - DISABLE_UPDATE_MODULE - SHARED_TEXTURE_SUPPORT_ENABLED - STATIC_MBEDTLS - UNIX_STRUCTURE - USE_QT_LOOP - WITH_RTMPS) - -foreach(_DEPRECATED_VAR IN LISTS _DEPRECATED_VARS) - variable_watch(_DEPRECATED_VAR __deprecated_var) -endforeach() - -variable_watch(FTL_FOUND __deprecated_feature) - -# Upgrade pre-existing build variables to their new variants as best as possible -upgrade_cmake_vars() diff --git a/cmake/Modules/FindAMF.cmake b/cmake/Modules/FindAMF.cmake deleted file mode 100644 index b67c31a2613fb8..00000000000000 --- a/cmake/Modules/FindAMF.cmake +++ /dev/null @@ -1,92 +0,0 @@ -#[=======================================================================[.rst -FindAMF ----------- - -FindModule for AMF and associated headers - -Imported Targets -^^^^^^^^^^^^^^^^ - -.. versionadded:: 2.0 - -This module defines the :prop_tgt:`IMPORTED` target ``AMF::AMF``. - -Result Variables -^^^^^^^^^^^^^^^^ - -This module sets the following variables: - -``AMF_FOUND`` - True, if headers were found. -``AMF_VERSION`` - Detected version of found AMF headers. - -Cache variables -^^^^^^^^^^^^^^^ - -The following cache variables may also be set: - -``AMF_INCLUDE_DIR`` - Directory containing ``AMF/core/Factory.h``. - -#]=======================================================================] - -# cmake-format: off -# cmake-lint: disable=C0103 -# cmake-lint: disable=C0301 -# cmake-format: on - -include(FindPackageHandleStandardArgs) - -find_path( - AMF_INCLUDE_DIR - NAMES AMF/core/Factory.h - PATHS /usr/include /usr/local/include - DOC "AMF include directory") - -if(EXISTS "${AMF_INCLUDE_DIR}/AMF/core/Version.h") - file(STRINGS "${AMF_INCLUDE_DIR}/AMF/core/Version.h" _version_string - REGEX "^.*VERSION_(MAJOR|MINOR|RELEASE|BUILD_NUM)[ \t]+[0-9]+[ \t]*$") - - string(REGEX REPLACE ".*VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" _version_major "${_version_string}") - string(REGEX REPLACE ".*VERSION_MINOR[ \t]+([0-9]+).*" "\\1" _version_minor "${_version_string}") - string(REGEX REPLACE ".*VERSION_RELEASE[ \t]+([0-9]+).*" "\\1" _version_release "${_version_string}") - - set(AMF_VERSION "${_version_major}.${_version_minor}.${_version_release}") - unset(_version_major) - unset(_version_minor) - unset(_version_release) -else() - if(NOT AMF_FIND_QUIETLY) - message(AUTHOR_WARNING "Failed to find AMF version.") - endif() - set(AMF_VERSION 0.0.0) -endif() - -if(CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin|Windows") - set(AMF_ERROR_REASON "Ensure that obs-deps is provided as part of CMAKE_PREFIX_PATH.") -elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|FreeBSD") - set(AMF_ERROR_REASON "Ensure AMF headers are available in local library paths.") -endif() - -find_package_handle_standard_args( - AMF - REQUIRED_VARS AMF_INCLUDE_DIR - VERSION_VAR AMF_VERSION REASON_FAILURE_MESSAGE "${AMF_ERROR_REASON}") -mark_as_advanced(AMF_INCLUDE_DIR) -unset(AMF_ERROR_REASON) - -if(AMF_FOUND) - if(NOT TARGET AMF::AMF) - add_library(AMF::AMF INTERFACE IMPORTED) - set_target_properties(AMF::AMF PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${AMF_INCLUDE_DIR}") - endif() -endif() - -include(FeatureSummary) -set_package_properties( - AMF PROPERTIES - URL "https://github.com/GPUOpen-LibrariesAndSDKs/AMF" - DESCRIPTION - "AMF is a light-weight, portable multimedia framework that abstracts away most of the platform and API-specific details and allows for easy implementation of multimedia applications using a variety of technologies, such as DirectX 11, OpenGL, and OpenCL and facilitates an efficient interop between them." -) diff --git a/cmake/Modules/FindAsio.cmake b/cmake/Modules/FindAsio.cmake deleted file mode 100644 index 78229f96ce1697..00000000000000 --- a/cmake/Modules/FindAsio.cmake +++ /dev/null @@ -1,94 +0,0 @@ -#[=======================================================================[.rst -FindAsio ----------- - -FindModule for Asio and the associated library - -Imported Targets -^^^^^^^^^^^^^^^^ - -.. versionadded:: 2.0 - -This module defines the :prop_tgt:`IMPORTED` target ``Asio::Asio``. - -Result Variables -^^^^^^^^^^^^^^^^ - -This module sets the following variables: - -``Asio_FOUND`` - True, if the library was found. -``Asio_VERSION`` - Detected version of found Asio library. - -Cache variables -^^^^^^^^^^^^^^^ - -The following cache variables may also be set: - -``Asio_INCLUDE_DIR`` - Directory containing ``asio.hpp``. - -#]=======================================================================] - -# cmake-format: off -# cmake-lint: disable=C0103 -# cmake-lint: disable=C0301 -# cmake-format: on - -include(FindPackageHandleStandardArgs) - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_search_module(PC_Asio QUIET asio) -endif() - -find_path( - Asio_INCLUDE_DIR - NAMES asio.hpp - HINTS ${PC_Asio_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include - DOC "Asio include directory") - -if(PC_Asio_VERSION VERSION_GREATER 0) - set(Asio_VERSION ${PC_Asio_VERSION}) -elseif(EXISTS "${Asio_INCLUDE_DIR}/asio/version.hpp") - file(STRINGS "${Asio_INCLUDE_DIR}/asio/version.hpp" _version_string - REGEX "#define[ \t]+ASIO_VERSION[ \t]+[0-9]+[ \t]+\/\/[ \t][0-9]+\.[0-9]+\.[0-9]+") - - string(REGEX REPLACE "#define[ \t]+ASIO_VERSION[ \t]+[0-9]+[ \t]+\/\/[ \t]([0-9]+\.[0-9]+\.[0-9]+)" "\\1" - Asio_VERSION "${_version_string}") -else() - if(NOT Asio_FIND_QUIETLY) - message(AUTHOR_WARNING "Failed to find Asio version.") - endif() - set(Asio_VERSION 0.0.0) -endif() - -if(CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin|Windows") - set(Asio_ERROR_REASON "Ensure that obs-deps is provided as part of CMAKE_PREFIX_PATH.") -elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|FreeBSD") - set(Asio_ERROR_REASON "Ensure Asio library is available in local include paths.") -endif() - -find_package_handle_standard_args( - Asio - REQUIRED_VARS Asio_INCLUDE_DIR - VERSION_VAR Asio_VERSION REASON_FAILURE_MESSAGE "${Asio_ERROR_REASON}") -mark_as_advanced(Asio_INCLUDE_DIR) -unset(Asio_ERROR_REASON) - -if(Asio_FOUND) - if(NOT TARGET Asio::Asio) - add_library(Asio::Asio INTERFACE IMPORTED) - set_target_properties(Asio::Asio PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${Asio_INCLUDE_DIR}") - endif() -endif() - -include(FeatureSummary) -set_package_properties( - Asio PROPERTIES - URL "http://think-async.com/Asio" - DESCRIPTION - "Asio is a cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach." -) diff --git a/cmake/Modules/FindCEF.cmake b/cmake/Modules/FindCEF.cmake deleted file mode 100644 index e39a5ed97eb537..00000000000000 --- a/cmake/Modules/FindCEF.cmake +++ /dev/null @@ -1,128 +0,0 @@ -include(FindPackageHandleStandardArgs) - -set(CEF_ROOT_DIR - "" - CACHE PATH "Path to CEF distributed build") - -if(NOT DEFINED CEF_ROOT_DIR OR CEF_ROOT_DIR STREQUAL "") - message( - FATAL_ERROR - "CEF_ROOT_DIR is not set - if ENABLE_BROWSER is enabled, a CEF distribution with compiled wrapper library is required.\n" - "Please download a CEF distribution for your appropriate architecture and specify CEF_ROOT_DIR to its location") -endif() - -find_path(CEF_INCLUDE_DIR "include/cef_version.h" HINTS ${CEF_ROOT_DIR}) - -if(OS_MACOS) - find_library( - CEF_LIBRARY - NAMES cef libcef cef.lib libcef.o "Chromium Embedded Framework" - NO_DEFAULT_PATH - PATHS ${CEF_ROOT_DIR} ${CEF_ROOT_DIR}/Release) - - find_library( - CEFWRAPPER_LIBRARY - NAMES cef_dll_wrapper libcef_dll_wrapper - NO_DEFAULT_PATH - PATHS ${CEF_ROOT_DIR}/build/libcef_dll/Release ${CEF_ROOT_DIR}/build/libcef_dll_wrapper/Release - ${CEF_ROOT_DIR}/build/libcef_dll ${CEF_ROOT_DIR}/build/libcef_dll_wrapper) - -elseif(OS_POSIX) - find_library( - CEF_LIBRARY - NAMES libcef.so "Chromium Embedded Framework" - NO_DEFAULT_PATH - PATHS ${CEF_ROOT_DIR} ${CEF_ROOT_DIR}/Release) - - find_library( - CEFWRAPPER_LIBRARY - NAMES libcef_dll_wrapper.a - NO_DEFAULT_PATH - PATHS ${CEF_ROOT_DIR}/build/libcef_dll_wrapper ${CEF_ROOT_DIR}/libcef_dll_wrapper) - -else() - find_library( - CEF_LIBRARY - NAMES cef libcef cef.lib libcef.o "Chromium Embedded Framework" - PATHS ${CEF_ROOT_DIR} ${CEF_ROOT_DIR}/Release) - - find_library( - CEFWRAPPER_LIBRARY - NAMES cef_dll_wrapper libcef_dll_wrapper - PATHS ${CEF_ROOT_DIR}/build/libcef_dll/Release ${CEF_ROOT_DIR}/build/libcef_dll_wrapper/Release - ${CEF_ROOT_DIR}/build/libcef_dll ${CEF_ROOT_DIR}/build/libcef_dll_wrapper) - - if(OS_WINDOWS) - find_library( - CEFWRAPPER_LIBRARY_DEBUG - NAMES cef_dll_wrapper libcef_dll_wrapper - PATHS ${CEF_ROOT_DIR}/build/libcef_dll/Debug ${CEF_ROOT_DIR}/build/libcef_dll_wrapper/Debug) - endif() -endif() - -mark_as_advanced(CEFWRAPPER_LIBRARY CEFWRAPPER_LIBRARY_DEBUG) - -if(NOT CEF_LIBRARY) - message(WARNING "Could NOT find Chromium Embedded Framework library (missing: CEF_LIBRARY)") - set(CEF_FOUND FALSE) - return() -endif() - -if(NOT CEFWRAPPER_LIBRARY) - message(WARNING "Could NOT find Chromium Embedded Framework wrapper library (missing: CEFWRAPPER_LIBRARY)") - set(CEF_FOUND FALSE) - return() -endif() - -message(STATUS "Found Chromium Embedded Framework: ${CEF_LIBRARY};${CEF_WRAPPER_LIBRARY}") - -if(OS_WINDOWS) - set(CEF_LIBRARIES ${CEF_LIBRARY} ${CEFWRAPPER_LIBRARY}) - -elseif(OS_MACOS) - if(BROWSER_LEGACY) - set(CEF_LIBRARIES ${CEFWRAPPER_LIBRARY} ${CEF_LIBRARY}) - else() - set(CEF_LIBRARIES ${CEFWRAPPER_LIBRARY}) - endif() -else() - set(CEF_LIBRARIES ${CEF_LIBRARY} optimized ${CEFWRAPPER_LIBRARY}) - - if(CEFWRAPPER_LIBRARY_DEBUG) - list(APPEND CEF_LIBRARIES debug ${CEFWRAPPER_LIBRARY_DEBUG}) - endif() -endif() - -find_package_handle_standard_args(CEF DEFAULT_MSG CEF_LIBRARY CEFWRAPPER_LIBRARY CEF_INCLUDE_DIR) - -mark_as_advanced(CEF_LIBRARY CEF_WRAPPER_LIBRARY CEF_LIBRARIES CEF_INCLUDE_DIR) - -if(NOT TARGET CEF::Wrapper) - if(IS_ABSOLUTE "${CEF_LIBRARIES}") - add_library(CEF::Wrapper UNKNOWN IMPORTED) - add_library(CEF::Library UNKNOWN IMPORTED) - - set_target_properties(CEF::Wrapper PROPERTIES IMPORTED_LOCATION ${CEFWRAPPER_LIBRARY}) - - set_target_properties(CEF::Library PROPERTIES IMPORTED_LOCATION ${CEF_LIBRARY}) - - if(DEFINED CEFWRAPPER_LIBRARY_DEBUG) - set_target_properties(CEF::Wrapper PROPERTIES IMPORTED_LOCATION_DEBUG ${CEFWRAPPER_LIBRARY_DEBUG}) - endif() - else() - add_library(CEF::Wrapper INTERFACE IMPORTED) - add_library(CEF::Library INTERFACE IMPORTED) - - set_target_properties(CEF::Wrapper PROPERTIES IMPORTED_LIBNAME ${CEFWRAPPER_LIBRARY}) - - set_target_properties(CEF::Library PROPERTIES IMPORTED_LIBNAME ${CEF_LIBRARY}) - - if(DEFINED CEFWRAPPER_LIBRARY_DEBUG) - set_target_properties(CEF::Wrapper PROPERTIES IMPORTED_LIBNAME_DEBUG ${CEFWRAPPER_LIBRARY_DEBUG}) - endif() - endif() - - set_target_properties(CEF::Wrapper PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CEF_INCLUDE_DIR}") - - set_target_properties(CEF::Library PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CEF_INCLUDE_DIR}") -endif() diff --git a/cmake/Modules/FindDetours.cmake b/cmake/Modules/FindDetours.cmake deleted file mode 100644 index 1c661c255f1243..00000000000000 --- a/cmake/Modules/FindDetours.cmake +++ /dev/null @@ -1,68 +0,0 @@ -# Once done these will be defined: -# -# * DETOURS_FOUND -# * DETOURS_INCLUDE_DIRS -# * DETOURS_LIBRARIES -# -# For use in OBS: -# -# DETOURS_INCLUDE_DIR - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_DETOURS QUIET detours) -endif() - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_lib_suffix 64) -else() - set(_lib_suffix 32) -endif() - -find_path( - DETOURS_INCLUDE_DIR - NAMES detours.h - HINTS ENV DETOURS_PATH ${DETOURS_PATH} ${CMAKE_SOURCE_DIR}/${DETOURS_PATH} ${_DETOURS_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include /sw/include - PATH_SUFFIXES include) - -find_library( - DETOURS_LIB - NAMES ${_DETOURS_LIBRARIES} detours - HINTS ENV DETOURS_PATH ${DETOURS_PATH} ${CMAKE_SOURCE_DIR}/${DETOURS_PATH} ${_DETOURS_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib - PATH_SUFFIXES - lib${_lib_suffix} - lib - libs${_lib_suffix} - libs - bin${_lib_suffix} - bin - ../lib${_lib_suffix} - ../lib - ../libs${_lib_suffix} - ../libs - ../bin${_lib_suffix} - ../bin) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Detours DEFAULT_MSG DETOURS_LIB DETOURS_INCLUDE_DIR) -mark_as_advanced(DETOURS_INCLUDE_DIR DETOURS_LIB) - -if(DETOURS_FOUND) - set(DETOURS_INCLUDE_DIRS ${DETOURS_INCLUDE_DIR}) - set(DETOURS_LIBRARIES ${DETOURS_LIB}) - - if(NOT TARGET Detours::Detours) - if(IS_ABSOLUTE "${DETOURS_LIBRARIES}") - add_library(Detours::Detours UNKNOWN IMPORTED) - set_target_properties(Detours::Detours PROPERTIES IMPORTED_LOCATION "${DETOURS_LIBRARIES}") - else() - add_library(Detours::Detours INTERFACE IMPORTED) - set_target_properties(Detours::Detours PROPERTIES IMPORTED_LIBNAME "${DETOURS_LIBRARIES}") - endif() - - set_target_properties(Detours::Detours PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${DETOURS_INCLUDE_DIRS}") - endif() - -endif() diff --git a/cmake/Modules/FindFFmpeg.cmake b/cmake/Modules/FindFFmpeg.cmake deleted file mode 100644 index 6c78827b77a415..00000000000000 --- a/cmake/Modules/FindFFmpeg.cmake +++ /dev/null @@ -1,189 +0,0 @@ -# cmake-format: off -# -# This module defines the following variables: -# -# FFMPEG_FOUND - All required components and the core library were found -# FFMPEG_INCLUDE_DIRS - Combined list of all components include dirs -# FFMPEG_LIBRARIES - Combined list of all components libraries -# FFMPEG_VERSION_STRING - Version of the first component requested -# -# For each requested component the following variables are defined: -# -# FFMPEG__FOUND - The component was found -# FFMPEG__INCLUDE_DIRS - The components include dirs -# FFMPEG__LIBRARIES - The components libraries -# FFMPEG__VERSION_STRING - The components version string -# FFMPEG__VERSION_MAJOR - The components major version -# FFMPEG__VERSION_MINOR - The components minor version -# FFMPEG__VERSION_MICRO - The components micro version -# -# is the uppercase name of the component -# cmake-format: on - -find_package(PkgConfig QUIET) - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_lib_suffix 64) -else() - set(_lib_suffix 32) -endif() - -function(find_ffmpeg_library component header) - string(TOUPPER "${component}" component_u) - set(FFMPEG_${component_u}_FOUND - FALSE - PARENT_SCOPE) - set(FFmpeg_${component}_FOUND - FALSE - PARENT_SCOPE) - - if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_FFMPEG_${component} QUIET lib${component}) - endif() - - find_path( - FFMPEG_${component}_INCLUDE_DIR - NAMES "lib${component}/${header}" "lib${component}/version.h" - HINTS ENV FFMPEG_PATH ${FFMPEG_PATH} ${CMAKE_SOURCE_DIR}/${FFMPEG_PATH} ${PC_FFMPEG_${component}_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include /sw/include - PATH_SUFFIXES ffmpeg libav include) - - find_library( - FFMPEG_${component}_LIBRARY - NAMES "${component}" "lib${component}" - HINTS ENV FFMPEG_PATH ${FFMPEG_PATH} ${CMAKE_SOURCE_DIR}/${FFMPEG_PATH} ${PC_FFMPEG_${component}_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib - PATH_SUFFIXES - lib${_lib_suffix} - lib - libs${_lib_suffix} - libs - bin${_lib_suffix} - bin - ../lib${_lib_suffix} - ../lib - ../libs${_lib_suffix} - ../libs - ../bin${_lib_suffix} - ../bin) - - set(FFMPEG_${component_u}_INCLUDE_DIRS - ${FFMPEG_${component}_INCLUDE_DIR} - PARENT_SCOPE) - set(FFMPEG_${component_u}_LIBRARIES - ${FFMPEG_${component}_LIBRARY} - PARENT_SCOPE) - - mark_as_advanced(FFMPEG_${component}_INCLUDE_DIR FFMPEG_${component}_LIBRARY) - - if(FFMPEG_${component}_INCLUDE_DIR AND FFMPEG_${component}_LIBRARY) - set(FFMPEG_${component_u}_FOUND - TRUE - PARENT_SCOPE) - set(FFmpeg_${component}_FOUND - TRUE - PARENT_SCOPE) - - list(APPEND FFMPEG_INCLUDE_DIRS ${FFMPEG_${component}_INCLUDE_DIR}) - list(REMOVE_DUPLICATES FFMPEG_INCLUDE_DIRS) - set(FFMPEG_INCLUDE_DIRS - "${FFMPEG_INCLUDE_DIRS}" - PARENT_SCOPE) - - list(APPEND FFMPEG_LIBRARIES ${FFMPEG_${component}_LIBRARY}) - list(REMOVE_DUPLICATES FFMPEG_LIBRARIES) - set(FFMPEG_LIBRARIES - "${FFMPEG_LIBRARIES}" - PARENT_SCOPE) - - set(FFMPEG_${component_u}_VERSION_STRING - "unknown" - PARENT_SCOPE) - set(_vfile "${FFMPEG_${component}_INCLUDE_DIR}/lib${component}/version.h") - - if(EXISTS "${_vfile}") - file(STRINGS "${_vfile}" _version_parse REGEX "^.*VERSION_(MAJOR|MINOR|MICRO)[ \t]+[0-9]+[ \t]*$") - string(REGEX REPLACE ".*VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" _major "${_version_parse}") - string(REGEX REPLACE ".*VERSION_MINOR[ \t]+([0-9]+).*" "\\1" _minor "${_version_parse}") - string(REGEX REPLACE ".*VERSION_MICRO[ \t]+([0-9]+).*" "\\1" _micro "${_version_parse}") - - set(FFMPEG_${component_u}_VERSION_MAJOR - "${_major}" - PARENT_SCOPE) - set(FFMPEG_${component_u}_VERSION_MINOR - "${_minor}" - PARENT_SCOPE) - set(FFMPEG_${component_u}_VERSION_MICRO - "${_micro}" - PARENT_SCOPE) - - set(FFMPEG_${component_u}_VERSION_STRING - "${_major}.${_minor}.${_micro}" - PARENT_SCOPE) - else() - message(STATUS "Failed parsing FFmpeg ${component} version") - endif() - endif() -endfunction() - -set(FFMPEG_INCLUDE_DIRS) -set(FFMPEG_LIBRARIES) - -if(NOT FFmpeg_FIND_COMPONENTS) - message(FATAL_ERROR "No FFmpeg components requested") -endif() - -list(GET FFmpeg_FIND_COMPONENTS 0 _first_comp) -string(TOUPPER "${_first_comp}" _first_comp) - -foreach(component ${FFmpeg_FIND_COMPONENTS}) - if(component STREQUAL "avcodec") - find_ffmpeg_library("${component}" "avcodec.h") - elseif(component STREQUAL "avdevice") - find_ffmpeg_library("${component}" "avdevice.h") - elseif(component STREQUAL "avfilter") - find_ffmpeg_library("${component}" "avfilter.h") - elseif(component STREQUAL "avformat") - find_ffmpeg_library("${component}" "avformat.h") - elseif(component STREQUAL "avresample") - find_ffmpeg_library("${component}" "avresample.h") - elseif(component STREQUAL "avutil") - find_ffmpeg_library("${component}" "avutil.h") - elseif(component STREQUAL "postproc") - find_ffmpeg_library("${component}" "postprocess.h") - elseif(component STREQUAL "swresample") - find_ffmpeg_library("${component}" "swresample.h") - elseif(component STREQUAL "swscale") - find_ffmpeg_library("${component}" "swscale.h") - else() - message(FATAL_ERROR "Unknown FFmpeg component requested: ${component}") - endif() -endforeach() - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args( - FFmpeg - FOUND_VAR FFMPEG_FOUND - REQUIRED_VARS FFMPEG_${_first_comp}_LIBRARIES FFMPEG_${_first_comp}_INCLUDE_DIRS - VERSION_VAR FFMPEG_${_first_comp}_VERSION_STRING - HANDLE_COMPONENTS) - -if(FFMPEG_FOUND) - foreach(component ${FFmpeg_FIND_COMPONENTS}) - if(NOT TARGET FFmpeg::${component}) - string(TOUPPER ${component} component_u) - if(FFMPEG_${component_u}_FOUND) - if(IS_ABSOLUTE "${FFMPEG_${component_u}_LIBRARIES}") - add_library(FFmpeg::${component} UNKNOWN IMPORTED) - set_target_properties(FFmpeg::${component} PROPERTIES IMPORTED_LOCATION "${FFMPEG_${component_u}_LIBRARIES}") - else() - add_library(FFmpeg::${component} INTERFACE IMPORTED) - set_target_properties(FFmpeg::${component} PROPERTIES IMPORTED_LIBNAME "${FFMPEG_${component_u}_LIBRARIES}") - endif() - - set_target_properties(FFmpeg::${component} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES - "${FFMPEG_${component_u}_INCLUDE_DIRS}") - endif() - endif() - endforeach() -endif() diff --git a/cmake/Modules/FindFFnvcodec.cmake b/cmake/Modules/FindFFnvcodec.cmake deleted file mode 100644 index 5a5c200971eaa3..00000000000000 --- a/cmake/Modules/FindFFnvcodec.cmake +++ /dev/null @@ -1,96 +0,0 @@ -#[=======================================================================[.rst -FindFFnvcodec -------------- - -FindModule for FFnvcodec and the associated headers - -Imported Targets -^^^^^^^^^^^^^^^^ - -.. versionadded:: 3.0 - -This module defines the :prop_tgt:`IMPORTED` target ``FFnvcodec::FFnvcodec``. - -Result Variables -^^^^^^^^^^^^^^^^ - -This module sets the following variables: - -``FFnvcodec_FOUND`` - True, if headers was found. -``FFnvcodec_VERSION`` - Detected version of found FFnvcodec headers. - -Cache variables -^^^^^^^^^^^^^^^ - -The following cache variables may also be set: - -``FFnvcodec_INCLUDE_DIR`` - Directory containing ``nvEncodeAPI.h``. - -#]=======================================================================] - -# cmake-format: off -# cmake-lint: disable=C0103 -# cmake-lint: disable=C0301 -# cmake-format: on - -include(FindPackageHandleStandardArgs) - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_search_module(PC_FFnvcodec QUIET ffnvcodec) -endif() - -find_path( - FFnvcodec_INCLUDE_DIR - NAMES ffnvcodec/nvEncodeAPI.h - HINTS ${PC_FFnvcodec_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include - DOC "FFnvcodec include directory") - -if(PC_FFnvcodec_VERSION VERSION_GREATER 0) - set(FFnvcodec_VERSION ${PC_FFnvcodec_VERSION}) -elseif(EXISTS "${FFnvcodec_INCLUDE_DIR}/ffnvcodec/nvEncodeAPI.h") - file(STRINGS "${FFnvcodec_INCLUDE_DIR}/ffnvcodec/nvEncodeAPI.h" _version_string - REGEX "^.*NVENCAPI_(MAJOR|MINOR)_VERSION[ \t]+[0-9]+[ \t]*$") - - string(REGEX REPLACE ".*MAJOR_VERSION[ \t]+([0-9]+).*" "\\1" _version_major "${_version_string}") - string(REGEX REPLACE ".*MINOR_VERSION[ \t]+([0-9]+).*" "\\1" _version_minor "${_version_string}") - - set(FFnvcodec_VERSION "${_version_major}.${_version_minor}") - unset(_version_major) - unset(_version_minor) -else() - if(NOT FFnvcodec_FIND_QUIETLY) - message(AUTHOR_WARNING "Failed to find FFnvcodec version.") - endif() - set(FFnvcodec_VERSION 0.0.0) -endif() - -if(CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin|Windows") - set(FFnvcodec_ERROR_REASON "Ensure that obs-deps is provided as part of CMAKE_PREFIX_PATH.") -elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|FreeBSD") - set(FFnvcodec_ERROR_REASON "Ensure FFnvcodec headers are available in local include paths.") -endif() - -find_package_handle_standard_args( - FFnvcodec - REQUIRED_VARS FFnvcodec_INCLUDE_DIR - VERSION_VAR FFnvcodec_VERSION HANDLE_VERSION_RANGE REASON_FAILURE_MESSAGE "${FFnvcodec_ERROR_REASON}") -mark_as_advanced(FFnvcodec_INCLUDE_DIR) -unset(FFnvcodec_ERROR_REASON) - -if(FFnvcodec_FOUND) - if(NOT TARGET FFnvcodec::FFnvcodec) - add_library(FFnvcodec::FFnvcodec INTERFACE IMPORTED) - set_target_properties(FFnvcodec::FFnvcodec PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${FFnvcodec_INCLUDE_DIR}") - endif() -endif() - -include(FeatureSummary) -set_package_properties( - FFnvcodec PROPERTIES - URL "https://github.com/FFmpeg/nv-codec-headers/" - DESCRIPTION "FFmpeg version of headers required to interface with NVIDIA's codec APIs.") diff --git a/cmake/Modules/FindGio.cmake b/cmake/Modules/FindGio.cmake deleted file mode 100644 index aa8d1d07d09044..00000000000000 --- a/cmake/Modules/FindGio.cmake +++ /dev/null @@ -1,52 +0,0 @@ -# cmake-format: off -# * Try to find Gio Once done this will define -# -# GIO_FOUND - system has Gio GIO_INCLUDE_DIRS - the Gio include directory -# GIO_LIBRARIES - the libraries needed to use Gio GIO_DEFINITIONS - Compiler -# switches required for using Gio - -# Use pkg-config to get the directories and then use these values in the -# find_path() and find_library() calls -# cmake-format: on - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_GIO gio-2.0 gio-unix-2.0) -endif() - -find_path( - GIO_INCLUDE_DIR - NAMES gio.h - HINTS ${_GIO_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include /sw/include - PATH_SUFFIXES glib-2.0/gio/) - -find_library( - GIO_LIB - NAMES gio-2.0 libgio-2.0 gio-unix-2.0 - HINTS ${_GIO_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Gio REQUIRED_VARS GIO_LIB GIO_INCLUDE_DIR) -mark_as_advanced(GIO_INCLUDE_DIR GIO_LIB) - -if(GIO_FOUND) - set(GIO_INCLUDE_DIRS ${GIO_INCLUDE_DIR}) - set(GIO_LIBRARIES ${GIO_LIB}) - - if(NOT TARGET GIO::GIO) - if(IS_ABSOLUTE "${GIO_LIBRARIES}") - add_library(GIO::GIO UNKNOWN IMPORTED) - set_target_properties(GIO::GIO PROPERTIES IMPORTED_LOCATION "${GIO_LIBRARIES}") - else() - add_library(GIO::GIO INTERFACE IMPORTED) - set_target_properties(GIO::GIO PROPERTIES IMPORTED_LIBNAME "${GIO_LIBRARIES}") - endif() - - # Special case for gio, as both the - set_target_properties(GIO::GIO PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_GIO_INCLUDE_DIRS}") - - target_compile_options(GIO::GIO INTERFACE ${_GIO_CFLAGS}) - endif() -endif() diff --git a/cmake/Modules/FindJack.cmake b/cmake/Modules/FindJack.cmake deleted file mode 100644 index 3ff3bd615948ce..00000000000000 --- a/cmake/Modules/FindJack.cmake +++ /dev/null @@ -1,74 +0,0 @@ -# cmake-format: off -# * Try to find jack-2.6 Once done this will define -# -# JACK_FOUND - system has jack JACK_INCLUDE_DIRS - the jack include directory -# JACK_LIBRARIES - Link these to use jack JACK_DEFINITIONS - Compiler switches -# required for using jack -# -# Copyright (c) 2008 Andreas Schneider Modified for other -# libraries by Lasse Kärkkäinen -# -# Redistribution and use is allowed according to the terms of the New BSD -# license. For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# -# cmake-format: on - -if(JACK_LIBRARIES AND JACK_INCLUDE_DIRS) - # in cache already - set(JACK_FOUND TRUE) -else(JACK_LIBRARIES AND JACK_INCLUDE_DIRS) - # use pkg-config to get the directories and then use these values in the FIND_PATH() and FIND_LIBRARY() calls - if(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - include(UsePkgConfig) - pkgconfig(jack _JACK_INCLUDEDIR _JACK_LIBDIR _JACK_LDFLAGS _JACK_CFLAGS) - else(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_package(PkgConfig) - if(PKG_CONFIG_FOUND) - pkg_check_modules(_JACK jack) - endif(PKG_CONFIG_FOUND) - endif(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) - find_path( - JACK_INCLUDE_DIR - NAMES jack/jack.h - PATHS ${_JACK_INCLUDE_DIRS} /usr/include /usr/local/include /opt/local/include /sw/include) - - find_library( - JACK_LIBRARY - NAMES jack - PATHS ${_JACK_LIBRARY_DIRS} /usr/lib /usr/local/lib /opt/local/lib /sw/lib) - - if(JACK_LIBRARY AND JACK_INCLUDE_DIR) - set(JACK_FOUND TRUE) - - set(JACK_INCLUDE_DIRS ${JACK_INCLUDE_DIR}) - - set(JACK_LIBRARIES ${JACK_LIBRARIES} ${JACK_LIBRARY}) - - endif(JACK_LIBRARY AND JACK_INCLUDE_DIR) - - if(JACK_FOUND) - if(NOT JACK_FIND_QUIETLY) - message(STATUS "Found jack: ${JACK_LIBRARY}") - endif(NOT JACK_FIND_QUIETLY) - - if(NOT TARGET Jack::Jack) - if(IS_ABSOLUTE "${JACK_LIBRARIES}") - add_library(Jack::Jack UNKNOWN IMPORTED) - set_target_properties(Jack::Jack PROPERTIES IMPORTED_LOCATION "${JACK_LIBRARIES}") - else() - add_library(Jack::Jack INTERFACE IMPORTED) - set_target_properties(Jack::Jack PROPERTIES IMPORTED_LIBNAME "${JACK_LIBRARIES}") - endif() - - set_target_properties(Jack::Jack PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${JACK_INCLUDE_DIRS}") - endif() - else(JACK_FOUND) - if(JACK_FIND_REQUIRED) - message(FATAL_ERROR "Could not find JACK") - endif(JACK_FIND_REQUIRED) - endif(JACK_FOUND) - - # show the JACK_INCLUDE_DIRS and JACK_LIBRARIES variables only in the advanced view - mark_as_advanced(JACK_INCLUDE_DIRS JACK_LIBRARIES) - -endif(JACK_LIBRARIES AND JACK_INCLUDE_DIRS) diff --git a/cmake/Modules/FindJansson.cmake b/cmake/Modules/FindJansson.cmake deleted file mode 100644 index f3224f0e2375e2..00000000000000 --- a/cmake/Modules/FindJansson.cmake +++ /dev/null @@ -1,80 +0,0 @@ -# Once done these will be defined: -# -# JANSSON_FOUND JANSSON_INCLUDE_DIRS JANSSON_LIBRARIES JANSSON_VERSION - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_JANSSON QUIET jansson) -endif() - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_lib_suffix 64) -else() - set(_lib_suffix 32) -endif() - -find_path( - Jansson_INCLUDE_DIR - NAMES jansson.h - HINTS ENV JANSSON_PATH ${JANSSON_PATH} ${CMAKE_SOURCE_DIR}/${JANSSON_PATH} ${_JANSSON_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include /sw/include) - -find_library( - Jansson_LIB - NAMES ${_JANSSON_LIBRARIES} jansson libjansson - HINTS ENV JANSSON_PATH ${JANSSON_PATH} ${CMAKE_SOURCE_DIR}/${JANSSON_PATH} ${_JANSSON_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib - PATH_SUFFIXES - lib${_lib_suffix} - lib - libs${_lib_suffix} - libs - bin${_lib_suffix} - bin - ../lib${_lib_suffix} - ../lib - ../libs${_lib_suffix} - ../libs - ../bin${_lib_suffix} - ../bin) - -if(JANSSON_VERSION) - set(_JANSSON_VERSION_STRING "${JANSSON_VERSION}") -elseif(_JANSSON_FOUND AND _JANSSON_VERSION) - set(_JANSSON_VERSION_STRING "${_JANSSON_VERSION}") -elseif(EXISTS "${Jansson_INCLUDE_DIR}/jansson.h") - file(STRINGS "${Jansson_INCLUDE_DIR}/jansson.h" _jansson_version_parse REGEX "#define[ \t]+JANSSON_VERSION[ \t]+.+") - string(REGEX REPLACE ".*#define[ \t]+JANSSON_VERSION[ \t]+\"(.+)\".*" "\\1" _JANSSON_VERSION_STRING - "${_jansson_version_parse}") -else() - if(NOT Jansson_FIND_QUIETLY) - message(WARNING "Failed to find Jansson version") - endif() - set(_JANSSON_VERSION_STRING "unknown") -endif() - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args( - Jansson - FOUND_VAR JANSSON_FOUND - REQUIRED_VARS Jansson_LIB Jansson_INCLUDE_DIR - VERSION_VAR _JANSSON_VERSION_STRING) -mark_as_advanced(Jansson_INCLUDE_DIR Jansson_LIB) - -if(JANSSON_FOUND) - set(JANSSON_INCLUDE_DIRS ${Jansson_INCLUDE_DIR}) - set(JANSSON_LIBRARIES ${Jansson_LIB}) - set(JANSSON_VERSION ${_JANSSON_VERSION_STRING}) - - if(NOT TARGET Jansson::Jansson) - if(IS_ABSOLUTE "${JANSSON_LIBRARIES}") - add_library(Jansson::Jansson UNKNOWN IMPORTED GLOBAL) - set_target_properties(Jansson::Jansson PROPERTIES IMPORTED_LOCATION "${JANSSON_LIBRARIES}") - else() - add_library(Jansson::Jansson INTERFACE IMPORTED GLOBAL) - set_target_properties(Jansson::Jansson PROPERTIES IMPORTED_LIBNAME "${JANSSON_LIBRARIES}") - endif() - - set_target_properties(Jansson::Jansson PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${JANSSON_INCLUDE_DIRS}") - endif() -endif() diff --git a/cmake/Modules/FindLibAJANTV2.cmake b/cmake/Modules/FindLibAJANTV2.cmake deleted file mode 100644 index 2ae1801ffdd5f8..00000000000000 --- a/cmake/Modules/FindLibAJANTV2.cmake +++ /dev/null @@ -1,179 +0,0 @@ -# Once done these will be defined: -# -# LIBAJANTV2_FOUND LIBAJANTV2_INCLUDE_DIRS LIBAJANTV2_LIBRARIES -# -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_AJA QUIET ajantv2) -endif() - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_lib_suffix 64) -else() - set(_lib_suffix 32) -endif() - -find_path( - _LIBAJANTV2_NEW_INCLUDE_DIR - NAMES libajantv2 - HINTS ENV - AJASDKPath${_lib_suffix} - ENV - AJASDKPath - ENV - DepsPath${_lib_suffix} - ENV - DepsPath - ${AJASDKPath${_lib_suffix}} - ${AJASDKPath} - ${DepsPath${_lib_suffix}} - ${DepsPath} - ${_AJA_NTV2_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include /sw/include - PATH_SUFFIXES include) - -if(${_LIBAJANTV2_NEW_INCLUDE_DIR} STREQUAL "_LIBAJANTV2_NEW_INCLUDE_DIR-NOTFOUND") - find_path( - _LIBAJANTV2_OLD_INCLUDE_DIR - NAMES libajantv2 - HINTS ENV - AJASDKPath${_lib_suffix} - ENV - AJASDKPath - ENV - DepsPath${_lib_suffix} - ENV - DepsPath - ${AJASDKPath${_lib_suffix}} - ${AJASDKPath} - ${DepsPath${_lib_suffix}} - ${DepsPath} - ${_AJA_NTV2_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include /sw/include - PATH_SUFFIXES include) - if(${_LIBAJANTV2_OLD_INCLUDE_DIR} STREQUAL "_LIBAJANTV2_OLD_INCLUDE_DIR-NOTFOUND") - set(AJA_LIBRARIES_INCLUDE_DIR ${_LIBAJANTV2_OLD_INCLUDE_DIR}/ajalibraries) - if(NOT LibAJANTV2_FIND_QUIETLY) - message(DEPRECATION "aja: Using old ntv2 library") - endif() - endif() -else() - set(AJA_LIBRARIES_INCLUDE_DIR ${_LIBAJANTV2_NEW_INCLUDE_DIR}/libajantv2) - if(NOT LibAJANTV2_FIND_QUIETLY) - message(STATUS "aja: Using new libajantv2 library") - endif() -endif() - -find_library( - AJA_NTV2_LIB - NAMES ${_AJA_NTV2_LIBRARIES} ajantv2 libajantv2 - HINTS ENV - AJASDKPath${_lib_suffix} - ENV - AJASDKPath - ENV - DepsPath${_lib_suffix} - ENV - DepsPath - ${AJASDKPath${_lib_suffix}} - ${AJASDKPath} - ${DepsPath${_lib_suffix}} - ${DepsPath} - ${_AJA_NTV2_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib - PATH_SUFFIXES - lib${_lib_suffix} - lib - libs${_lib_suffix} - libs - bin${_lib_suffix} - bin - ../lib${_lib_suffix} - ../lib - ../libs${_lib_suffix} - ../libs - ../bin${_lib_suffix} - ../bin) - -find_library( - AJA_NTV2_DEBUG_LIB - NAMES ajantv2d libajantv2d - HINTS ENV - AJASDKPath${_lib_suffix} - ENV - AJASDKPath - ENV - DepsPath${_lib_suffix} - ENV - DepsPath - ${AJASDKPath${_lib_suffix}} - ${AJASDKPath} - ${DepsPath${_lib_suffix}} - ${DepsPath} - ${_AJA_NTV2_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib - PATH_SUFFIXES - lib${_lib_suffix} - lib - libs${_lib_suffix} - libs - bin${_lib_suffix} - bin - ../lib${_lib_suffix} - ../lib - ../libs${_lib_suffix} - ../libs - ../bin${_lib_suffix} - ../bin) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(LibAJANTV2 DEFAULT_MSG AJA_LIBRARIES_INCLUDE_DIR AJA_NTV2_LIB) -mark_as_advanced(AJA_LIBRARIES_INCLUDE_DIR AJA_NTV2_LIB) - -if(LIBAJANTV2_FOUND) - set(AJA_LIBRARIES_INCLUDE_DIR ${AJA_LIBRARIES_INCLUDE_DIR}) - set(AJA_LIBRARIES_INCLUDE_DIRS - ${AJA_LIBRARIES_INCLUDE_DIR} ${AJA_LIBRARIES_INCLUDE_DIR}/ajaanc ${AJA_LIBRARIES_INCLUDE_DIR}/ajabase - ${AJA_LIBRARIES_INCLUDE_DIR}/ajantv2 ${AJA_LIBRARIES_INCLUDE_DIR}/ajantv2/includes) - if(CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") - list(APPEND LibAJANTV2_INCLUDE_DIRS ${AJA_LIBRARIES_INCLUDE_DIR}/ajantv2/src/win) - elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin") - list(APPEND LibAJANTV2_INCLUDE_DIRS ${AJA_LIBRARIES_INCLUDE_DIR}/ajantv2/src/mac) - elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux") - list(APPEND LibAJANTV2_INCLUDE_DIRS ${AJA_LIBRARIES_INCLUDE_DIR}/ajantv2/src/lin) - endif() - - set(LIBAJANTV2_LIBRARIES ${AJA_NTV2_LIB}) - if(AJA_NTV2_DEBUG_LIB STREQUAL "AJA_NTV2_DEBUG_LIB-NOTFOUND") - set(AJA_NTV2_DEBUG_LIB ${AJA_NTV2_LIB}) - mark_as_advanced(AJA_NTV2_DEBUG_LIB) - endif() - set(LIBAJANTV2_DEBUG_LIBRARIES ${AJA_NTV2_DEBUG_LIB}) - set(LIBAJANTV2_INCLUDE_DIRS ${AJA_LIBRARIES_INCLUDE_DIRS}) - - if(NOT TARGET AJA::LibAJANTV2) - if(IS_ABSOLUTE "${LIBAJANTV2_LIBRARIES}") - add_library(AJA::LibAJANTV2 UNKNOWN IMPORTED) - set_target_properties(AJA::LibAJANTV2 PROPERTIES IMPORTED_LOCATION "${LIBAJANTV2_LIBRARIES}") - - if(DEFINED LIBAJANTV2_DEBUG_LIBRARIES) - set_target_properties(AJA::LibAJANTV2 PROPERTIES IMPORTED_LOCATION_DEBUG "${LIBAJANTV2_DEBUG_LIBRARIES}") - endif() - else() - add_library(AJA::LibAJANTV2 INTERFACE IMPORTED) - set_target_properties(AJA::LibAJANTV2 PROPERTIES IMPORTED_LIBNAME "${LIBAJANTV2_LIBRARIES}") - - if(DEFINED LIBAJANTV2_DEBUG_LIBRARIES) - set_target_properties(AJA::LibAJANTV2 PROPERTIES IMPORTED_LIBNAME_DEBUG "${LIBAJANTV2_DEBUG_LIBRARIES}") - endif() - endif() - - set_target_properties(AJA::LibAJANTV2 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBAJANTV2_INCLUDE_DIRS}") - - target_compile_definitions( - AJA::LibAJANTV2 - INTERFACE "$<$:AJA_WINDOWS;_WINDOWS;WIN32;MSWindows>" - "$<$,$>:_DEBUG;_NDEBUG>" - "$<$:AJAMac;AJA_MAC>" "$<$:AJA_LINUX;AJALinux>") - endif() -endif() diff --git a/cmake/Modules/FindLibUUID.cmake b/cmake/Modules/FindLibUUID.cmake deleted file mode 100644 index 2b28f9891b7f11..00000000000000 --- a/cmake/Modules/FindLibUUID.cmake +++ /dev/null @@ -1,32 +0,0 @@ -# Stripped down version of -# https://gitlab.kitware.com/cmake/cmake/blob/e1409101c99f7a3487990e9927e8bd0e275f564f/Source/Modules/FindLibUUID.cmake -# -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or -# https://cmake.org/licensing for details. -# -# Once done these will be defined: -# -# LibUUID_FOUND LibUUID_INCLUDE_DIRS LibUUID_LIBRARIES - -find_library(LibUUID_LIBRARY NAMES uuid) -mark_as_advanced(LibUUID_LIBRARY) - -find_path(LibUUID_INCLUDE_DIR NAMES uuid/uuid.h) -mark_as_advanced(LibUUID_INCLUDE_DIR) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args( - LibUUID - FOUND_VAR LibUUID_FOUND - REQUIRED_VARS LibUUID_LIBRARY LibUUID_INCLUDE_DIR) -set(LIBUUID_FOUND ${LibUUID_FOUND}) - -if(LibUUID_FOUND) - set(LibUUID_INCLUDE_DIRS ${LibUUID_INCLUDE_DIR}) - set(LibUUID_LIBRARIES ${LibUUID_LIBRARY}) - if(NOT TARGET LibUUID::LibUUID) - add_library(LibUUID::LibUUID UNKNOWN IMPORTED) - set_target_properties(LibUUID::LibUUID PROPERTIES IMPORTED_LOCATION "${LibUUID_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${LibUUID_INCLUDE_DIRS}") - endif() -endif() diff --git a/cmake/Modules/FindLibVLC.cmake b/cmake/Modules/FindLibVLC.cmake deleted file mode 100644 index 63fbd64ea017ed..00000000000000 --- a/cmake/Modules/FindLibVLC.cmake +++ /dev/null @@ -1,56 +0,0 @@ -# Once done these will be defined: -# -# LIBVLC_FOUND LIBVLC_INCLUDE_DIRS LIBVLC_LIBRARIES -# - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_VLC QUIET libvlc) -endif() - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_lib_suffix 64) -else() - set(_lib_suffix 32) -endif() - -find_path( - VLC_INCLUDE_DIR - NAMES libvlc.h - HINTS ENV VLC_PATH ${VLC_PATH} ${CMAKE_SOURCE_DIR}/${VLC_PATH} ${_VLC_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include /sw/include - PATH_SUFFIXES vlc include/vlc include) - -find_library( - VLC_LIB - NAMES ${_VLC_LIBRARIES} VLC libVLC - HINTS ENV VLC_PATH ${VLC_PATH} ${CMAKE_SOURCE_DIR}/${VLC_PATH} ${_VLC_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib - PATH_SUFFIXES - lib${_lib_suffix} - lib - libs${_lib_suffix} - libs - bin${_lib_suffix} - bin - ../lib${_lib_suffix} - ../lib - ../libs${_lib_suffix} - ../libs - ../bin${_lib_suffix} - ../bin) - -include(FindPackageHandleStandardArgs) -# OBS doesnt depend on linking, so we dont include VLC_LIB here as required. -find_package_handle_standard_args(LibVLC DEFAULT_MSG VLC_INCLUDE_DIR) -mark_as_advanced(VLC_INCLUDE_DIR VLC_LIB) - -if(LIBVLC_FOUND) - set(LIBVLC_LIBRARIES ${VLC_LIB}) - set(LIBVLC_INCLUDE_DIRS ${VLC_INCLUDE_DIR}) - - if(NOT TARGET VLC::LibVLC) - add_library(VLC::LibVLC INTERFACE IMPORTED) - set_target_properties(VLC::LibVLC PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBVLC_INCLUDE_DIRS}") - endif() -endif() diff --git a/cmake/Modules/FindLibdrm.cmake b/cmake/Modules/FindLibdrm.cmake deleted file mode 100644 index 56ea43e3aac9b6..00000000000000 --- a/cmake/Modules/FindLibdrm.cmake +++ /dev/null @@ -1,34 +0,0 @@ -# Once done these will be defined: -# -# LIBDRM_FOUND LIBDRM_INCLUDE_DIRS LIBDRM_LIBRARIES - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_LIBDRM QUIET libdrm) -endif() - -find_path( - LIBDRM_INCLUDE_DIR - NAMES libdrm/drm_fourcc.h - HINTS ${_LIBDRM_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include) - -find_library( - LIBDRM_LIB - NAMES drm libdrm - HINTS ${_LIBDRM_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Libdrm DEFAULT_MSG LIBDRM_LIB LIBDRM_INCLUDE_DIR) -mark_as_advanced(LIBDRM_INCLUDE_DIR LIBDRM_LIB) - -if(LIBDRM_FOUND) - set(LIBDRM_INCLUDE_DIRS ${LIBDRM_INCLUDE_DIR}) - set(LIBDRM_LIBRARIES ${LIBDRM_LIB}) - - if(NOT TARGET Libdrm::Libdrm) - add_library(Libdrm::Libdrm INTERFACE IMPORTED) - set_target_properties(Libdrm::Libdrm PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBDRM_INCLUDE_DIRS}") - endif() -endif() diff --git a/cmake/Modules/FindLibfdk.cmake b/cmake/Modules/FindLibfdk.cmake deleted file mode 100644 index 938cda18562c1c..00000000000000 --- a/cmake/Modules/FindLibfdk.cmake +++ /dev/null @@ -1,66 +0,0 @@ -# Once done these will be defined: -# -# LIBFDK_FOUND LIBFDK_INCLUDE_DIRS LIBFDK_LIBRARIES -# -# For use in OBS: -# -# Libfdk_INCLUDE_DIR - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_LIBFDK fdk-aac) -endif() - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_lib_suffix 64) -else() - set(_lib_suffix 32) -endif() - -find_path( - Libfdk_INCLUDE_DIR - NAMES fdk-aac/aacenc_lib.h - HINTS ENV LIBFDK_PATH ${LIBFDK_PATH} ${CMAKE_SOURCE_DIR}/${LIBFDK_PATH} ${_LIBFDK_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include /sw/include - PATH_SUFFIXES include) - -find_library( - Libfdk_LIB - NAMES ${_LIBFDK_LIBRARIES} fdk-aac libfdk-aac - HINTS ENV LIBFDK_PATH ${LIBFDK_PATH} ${CMAKE_SOURCE_DIR}/${LIBFDK_PATH} ${_LIBFDK_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib - PATH_SUFFIXES - lib${_lib_suffix} - lib - libs${_lib_suffix} - libs - bin${_lib_suffix} - bin - ../lib${_lib_suffix} - ../lib - ../libs${_lib_suffix} - ../libs - ../bin${_lib_suffix} - ../bin) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Libfdk DEFAULT_MSG Libfdk_LIB Libfdk_INCLUDE_DIR) -mark_as_advanced(Libfdk_INCLUDE_DIR Libfdk_LIB) - -if(LIBFDK_FOUND) - set(LIBFDK_INCLUDE_DIRS ${Libfdk_INCLUDE_DIR}) - set(LIBFDK_LIBRARIES ${Libfdk_LIB}) - - if(NOT TARGET LibFDK::LibFDK) - if(IS_ABSOLUTE "${LIBFDK_LIBRARIES}") - add_library(LibFDK::LibFDK UNKNOWN IMPORTED) - set_target_properties(LibFDK::LibFDK PROPERTIES IMPORTED_LOCATION "${LIBFDK_LIBRARIES}") - else() - add_library(LibFDK::LibFDK INTERFACE IMPORTED) - set_target_properties(LibFDK::LibFDK PROPERTIES IMPORTED_LIBNAME "${LIBFDK_LIBRARIES}") - endif() - - set_target_properties(LibFDK::LibFDK PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBFDK_INCLUDE_DIRS}") - endif() - -endif() diff --git a/cmake/Modules/FindLibpci.cmake b/cmake/Modules/FindLibpci.cmake deleted file mode 100644 index cb7760c1d37254..00000000000000 --- a/cmake/Modules/FindLibpci.cmake +++ /dev/null @@ -1,48 +0,0 @@ -# cmake-format: off -# * Try to find Libpci Once done this will define -# -# * LIBPCI_FOUND - system has Libpci -# * LIBPCI_INCLUDE_DIRS - the Libpci include directory -# * LIBPCI_LIBRARIES - the libraries needed to use Libpci -# * LIBPCI_DEFINITIONS - Compiler switches required for using Libpci - -# Use pkg-config to get the directories and then use these values in the -# find_path() and find_library() calls -# cmake-format: on - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_LIBPCI libpci) -endif() - -find_path( - LIBPCI_INCLUDE_DIR - NAMES pci.h - HINTS ${_LIBPCI_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include - PATH_SUFFIXES pci/) - -find_library( - LIBPCI_LIB - NAMES ${_LIBPCI_LIBRARIES} libpci - HINTS ${_LIBPCI_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Libpci REQUIRED_VARS LIBPCI_LIB LIBPCI_INCLUDE_DIR) -mark_as_advanced(LIBPCI_INCLUDE_DIR LIBPCI_LIB) - -if(LIBPCI_FOUND) - set(LIBPCI_INCLUDE_DIRS ${LIBPCI_INCLUDE_DIR}) - set(LIBPCI_LIBRARIES ${LIBPCI_LIB}) - - if(NOT TARGET LIBPCI::LIBPCI) - if(IS_ABSOLUTE "${LIBPCI_LIBRARIES}") - add_library(LIBPCI::LIBPCI UNKNOWN IMPORTED) - set_target_properties(LIBPCI::LIBPCI PROPERTIES IMPORTED_LOCATION "${LIBPCI_LIBRARIES}") - else() - add_library(LIBPCI::LIBPCI INTERFACE IMPORTED) - set_target_properties(LIBPCI::LIBPCI PROPERTIES IMPORTED_LIBNAME "${LIBPCI_LIBRARIES}") - endif() - endif() -endif() diff --git a/cmake/Modules/FindLibrist.cmake b/cmake/Modules/FindLibrist.cmake deleted file mode 100644 index ddcb495b17b76a..00000000000000 --- a/cmake/Modules/FindLibrist.cmake +++ /dev/null @@ -1,67 +0,0 @@ -# Once done these will be defined: -# -# LIBRIST_FOUND LIBRIST_INCLUDE_DIRS LIBRIST_LIBRARIES -# -# For use in OBS: -# -# LIBRIST_INCLUDE_DIR - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_LIBRIST QUIET librist) -endif() - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_lib_suffix 64) -else() - set(_lib_suffix 32) -endif() - -find_path( - LIBRIST_INCLUDE_DIR - NAMES librist.h librist/librist.h - HINTS ENV LIBRIST_PATH ${LIBRIST_PATH} ${CMAKE_SOURCE_DIR}/${LIBRIST_PATH} ${_LIBRIST_INCLUDE_DIRS} ${DepsPath} - PATHS /usr/include /usr/local/include /opt/local/include /sw/include - PATH_SUFFIXES include) - -find_library( - LIBRIST_LIB - NAMES ${_LIBRIST_LIBRARIES} librist rist - HINTS ENV LIBRIST_PATH ${LIBRIST_PATH} ${CMAKE_SOURCE_DIR}/${LIBRIST_PATH} ${_LIBRIST_LIBRARY_DIRS} ${DepsPath} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib - PATH_SUFFIXES - lib${_lib_suffix} - lib - libs${_lib_suffix} - libs - bin${_lib_suffix} - bin - ../lib${_lib_suffix} - ../lib - ../libs${_lib_suffix} - ../libs - ../bin${_lib_suffix} - ../bin) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Librist DEFAULT_MSG LIBRIST_LIB LIBRIST_INCLUDE_DIR) -mark_as_advanced(LIBRIST_INCLUDE_DIR LIBRIST_LIB) - -if(LIBRIST_FOUND) - set(LIBRIST_INCLUDE_DIRS ${LIBRIST_INCLUDE_DIR}) - set(LIBRIST_LIBRARIES ${LIBRIST_LIB}) - - if(NOT TARGET Librist::Librist) - if(IS_ABSOLUTE "${LIBRIST_LIBRARIES}") - add_library(Librist::Librist UNKNOWN IMPORTED) - set_target_properties(Librist::Librist PROPERTIES IMPORTED_LOCATION "${LIBRIST_LIBRARIES}") - else() - add_library(Librist::Librist INTERFACE IMPORTED) - set_target_properties(Librist::Librist PROPERTIES IMPORTED_LIBNAME "${LIBRIST_LIBRARIES}") - endif() - - set_target_properties(Librist::Librist PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBRIST_INCLUDE_DIRS}") - endif() -else() - message(STATUS "librist library not found") -endif() diff --git a/cmake/Modules/FindLibrnnoise.cmake b/cmake/Modules/FindLibrnnoise.cmake deleted file mode 100644 index 9cf98123670eef..00000000000000 --- a/cmake/Modules/FindLibrnnoise.cmake +++ /dev/null @@ -1,65 +0,0 @@ -# Once done these will be defined: -# -# LIBRNNOISE_FOUND LIBRNNOISE_INCLUDE_DIRS LIBRNNOISE_LIBRARIES -# -# For use in OBS: -# -# RNNOISE_INCLUDE_DIR - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_RNNOISE QUIET rnnoise) -endif() - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_lib_suffix 64) -else() - set(_lib_suffix 32) -endif() - -find_path( - RNNOISE_INCLUDE_DIR - NAMES rnnoise.h - HINTS ENV RNNOISE_PATH ${RNNOISE_PATH} ${CMAKE_SOURCE_DIR}/${RNNOISE_PATH} ${_RNNOISE_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include /sw/include - PATH_SUFFIXES include) - -find_library( - RNNOISE_LIB - NAMES ${_RNNOISE_LIBRARIES} rnnoise - HINTS ENV RNNOISE_PATH ${RNNOISE_PATH} ${CMAKE_SOURCE_DIR}/${RNNOISE_PATH} ${_RNNOISE_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib - PATH_SUFFIXES - lib${_lib_suffix} - lib - libs${_lib_suffix} - libs - bin${_lib_suffix} - bin - ../lib${_lib_suffix} - ../lib - ../libs${_lib_suffix} - ../libs - ../bin${_lib_suffix} - ../bin) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Librnnoise DEFAULT_MSG RNNOISE_LIB RNNOISE_INCLUDE_DIR) -mark_as_advanced(RNNOISE_INCLUDE_DIR RNNOISE_LIB) - -if(LIBRNNOISE_FOUND) - set(LIBRNNOISE_INCLUDE_DIRS ${RNNOISE_INCLUDE_DIR}) - set(LIBRNNOISE_LIBRARIES ${RNNOISE_LIB}) - - if(NOT TARGET Librnnoise::Librnnoise) - if(IS_ABSOLUTE "${LIBRNNOISE_LIBRARIES}") - add_library(Librnnoise::Librnnoise UNKNOWN IMPORTED) - set_target_properties(Librnnoise::Librnnoise PROPERTIES IMPORTED_LOCATION "${LIBRNNOISE_LIBRARIES}") - else() - add_library(Librnnoise::Librnnoise INTERFACE IMPORTED) - set_target_properties(Librnnoise::Librnnoise PROPERTIES IMPORTED_LIBNAME "${LIBRNNOISE_LIBRARIES}") - endif() - - set_target_properties(Librnnoise::Librnnoise PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBRNNOISE_INCLUDE_DIRS}") - endif() -endif() diff --git a/cmake/Modules/FindLibspeexdsp.cmake b/cmake/Modules/FindLibspeexdsp.cmake deleted file mode 100644 index 817e2750f45ff3..00000000000000 --- a/cmake/Modules/FindLibspeexdsp.cmake +++ /dev/null @@ -1,66 +0,0 @@ -# Once done these will be defined: -# -# LIBSPEEXDSP_FOUND LIBSPEEXDSP_INCLUDE_DIRS LIBSPEEXDSP_LIBRARIES -# -# For use in OBS: -# -# SPEEXDSP_INCLUDE_DIR - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_SPEEXDSP QUIET speexdsp libspeexdsp) -endif() - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_lib_suffix 64) -else() - set(_lib_suffix 32) -endif() - -find_path( - SPEEXDSP_INCLUDE_DIR - NAMES speex/speex_preprocess.h - HINTS ENV SPEEX_PATH ${SPEEX_PATH} ${CMAKE_SOURCE_DIR}/${SPEEX_PATH} ${_SPEEXDSP_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include /sw/include - PATH_SUFFIXES include) - -find_library( - SPEEXDSP_LIB - NAMES ${_SPEEXDSP_LIBRARIES} speexdsp libspeexdsp - HINTS ENV SPEEX_PATH ${SPEEX_PATH} ${CMAKE_SOURCE_DIR}/${SPEEX_PATH} ${_SPEEXDSP_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib - PATH_SUFFIXES - lib${_lib_suffix} - lib - libs${_lib_suffix} - libs - bin${_lib_suffix} - bin - ../lib${_lib_suffix} - ../lib - ../libs${_lib_suffix} - ../libs - ../bin${_lib_suffix} - ../bin) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Libspeexdsp DEFAULT_MSG SPEEXDSP_LIB SPEEXDSP_INCLUDE_DIR) -mark_as_advanced(SPEEXDSP_INCLUDE_DIR SPEEXDSP_LIB) - -if(LIBSPEEXDSP_FOUND) - set(LIBSPEEXDSP_INCLUDE_DIRS ${SPEEXDSP_INCLUDE_DIR}) - set(LIBSPEEXDSP_LIBRARIES ${SPEEXDSP_LIB}) - - if(NOT TARGET LibspeexDSP::LibspeexDSP) - if(IS_ABSOLUTE "${LIBSPEEXDSP_LIBRARIES}") - add_library(LibspeexDSP::LibspeexDSP UNKNOWN IMPORTED) - set_target_properties(LibspeexDSP::LibspeexDSP PROPERTIES IMPORTED_LOCATION "${LIBSPEEXDSP_LIBRARIES}") - else() - add_library(LibspeexDSP::LibspeexDSP INTERFACE IMPORTED) - set_target_properties(LibspeexDSP::LibspeexDSP PROPERTIES IMPORTED_LIBNAME "${LIBSPEEXDSP_LIBRARIES}") - endif() - - set_target_properties(LibspeexDSP::LibspeexDSP PROPERTIES INTERFACE_INCLUDE_DIRECTORIES - "${LIBSPEEXDSP_INCLUDE_DIRS}") - endif() -endif() diff --git a/cmake/Modules/FindLibsrt.cmake b/cmake/Modules/FindLibsrt.cmake deleted file mode 100644 index 50112c3eb66078..00000000000000 --- a/cmake/Modules/FindLibsrt.cmake +++ /dev/null @@ -1,67 +0,0 @@ -# Once done these will be defined: -# -# LIBSRT_FOUND LIBSRT_INCLUDE_DIRS LIBSRT_LIBRARIES -# -# For use in OBS: -# -# LIBSRT_INCLUDE_DIR - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_LIBSRT QUIET libsrt) -endif() - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_lib_suffix 64) -else() - set(_lib_suffix 32) -endif() - -find_path( - LIBSRT_INCLUDE_DIR - NAMES srt.h srt/srt.h - HINTS ENV LIBSRT_PATH ${LIBSRT_PATH} ${CMAKE_SOURCE_DIR}/${LIBSRT_PATH} ${_LIBSRT_INCLUDE_DIRS} ${DepsPath} - PATHS /usr/include /usr/local/include /opt/local/include /sw/include - PATH_SUFFIXES include) - -find_library( - LIBSRT_LIB - NAMES ${_LIBSRT_LIBRARIES} srt libsrt - HINTS ENV LIBSRT_PATH ${LIBSRT_PATH} ${CMAKE_SOURCE_DIR}/${LIBSRT_PATH} ${_LIBSRT_LIBRARY_DIRS} ${DepsPath} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib - PATH_SUFFIXES - lib${_lib_suffix} - lib - libs${_lib_suffix} - libs - bin${_lib_suffix} - bin - ../lib${_lib_suffix} - ../lib - ../libs${_lib_suffix} - ../libs - ../bin${_lib_suffix} - ../bin) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Libsrt DEFAULT_MSG LIBSRT_LIB LIBSRT_INCLUDE_DIR) -mark_as_advanced(LIBSRT_INCLUDE_DIR LIBSRT_LIB) - -if(LIBSRT_FOUND) - set(LIBSRT_INCLUDE_DIRS ${LIBSRT_INCLUDE_DIR}) - set(LIBSRT_LIBRARIES ${LIBSRT_LIB}) - - if(NOT TARGET Libsrt::Libsrt) - if(IS_ABSOLUTE "${LIBSRT_LIBRARIES}") - add_library(Libsrt::Libsrt UNKNOWN IMPORTED) - set_target_properties(Libsrt::Libsrt PROPERTIES IMPORTED_LOCATION "${LIBSRT_LIBRARIES}") - else() - add_library(Libsrt::Libsrt INTERFACE IMPORTED) - set_target_properties(Libsrt::Libsrt PROPERTIES IMPORTED_LIBNAME "${LIBSRT_LIBRARIES}") - endif() - - set_target_properties(Libsrt::Libsrt PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBSRT_INCLUDE_DIRS}") - endif() -else() - message(STATUS "libsrt library not found") -endif() diff --git a/cmake/Modules/FindLibv4l2.cmake b/cmake/Modules/FindLibv4l2.cmake deleted file mode 100644 index da35a0735560c5..00000000000000 --- a/cmake/Modules/FindLibv4l2.cmake +++ /dev/null @@ -1,41 +0,0 @@ -# Once done these will be defined: -# -# LIBV4L2_FOUND LIBV4L2_INCLUDE_DIRS LIBV4L2_LIBRARIES - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_V4L2 QUIET v4l-utils) -endif() - -find_path( - V4L2_INCLUDE_DIR - NAMES libv4l2.h - HINTS ${_V4L2_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include) - -find_library( - V4L2_LIB - NAMES v4l2 - HINTS ${_V4L2_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Libv4l2 DEFAULT_MSG V4L2_LIB V4L2_INCLUDE_DIR) -mark_as_advanced(V4L2_INCLUDE_DIR V4L2_LIB) - -if(LIBV4L2_FOUND) - set(LIBV4L2_INCLUDE_DIRS ${V4L2_INCLUDE_DIR}) - set(LIBV4L2_LIBRARIES ${V4L2_LIB}) - - if(NOT TARGET LIB4L2::LIB4L2) - if(IS_ABSOLUTE "${LIBV4L2_LIBRARIES}") - add_library(LIB4L2::LIB4L2 UNKNOWN IMPORTED) - set_target_properties(LIB4L2::LIB4L2 PROPERTIES IMPORTED_LOCATION "${LIBV4L2_LIBRARIES}") - else() - add_library(LIB4L2::LIB4L2 INTERFACE IMPORTED) - set_target_properties(LIB4L2::LIB4L2 PROPERTIES IMPORTED_LIBNAME "${LIBV4L2_LIBRARIES}") - endif() - - set_target_properties(LIB4L2::LIB4L2 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBV4L2_INCLUDE_DIRS}") - endif() -endif() diff --git a/cmake/Modules/FindLibva.cmake b/cmake/Modules/FindLibva.cmake deleted file mode 100644 index c4280ba5753282..00000000000000 --- a/cmake/Modules/FindLibva.cmake +++ /dev/null @@ -1,71 +0,0 @@ -# cmake-format: off -# -# This module defines the following variables: -# -# * LIBVA_FOUND - The component was found -# * LIBVA_INCLUDE_DIRS - The component include directory -# * LIBVA_LIBRARIES - The component library Libva -# * LIBVA_DRM_LIBRARIES - The component library Libva DRM - -# Use pkg-config to get the directories and then use these values in the -# find_path() and find_library() calls -# cmake-format: on - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_LIBVA libva) - pkg_check_modules(_LIBVA_DRM libva-drm) -endif() - -find_path( - LIBVA_INCLUDE_DIR - NAMES va/va.h va/va_drm.h - HINTS ${_LIBVA_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include) - -find_library( - LIBVA_LIB - NAMES ${_LIBVA_LIBRARIES} libva - HINTS ${_LIBVA_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib) - -find_library( - LIBVA_DRM_LIB - NAMES ${_LIBVA_DRM_LIBRARIES} libva-drm - HINTS ${_LIBVA_DRM_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Libva REQUIRED_VARS LIBVA_INCLUDE_DIR LIBVA_LIB LIBVA_DRM_LIB) -mark_as_advanced(LIBVA_INCLUDE_DIR LIBVA_LIB LIBVA_DRM_LIB) - -if(LIBVA_FOUND) - set(LIBVA_INCLUDE_DIRS ${LIBVA_INCLUDE_DIR}) - set(LIBVA_LIBRARIES ${LIBVA_LIB}) - set(LIBVA_DRM_LIBRARIES ${LIBVA_DRM_LIB}) - - if(NOT TARGET Libva::va) - if(IS_ABSOLUTE "${LIBVA_LIBRARIES}") - add_library(Libva::va UNKNOWN IMPORTED) - set_target_properties(Libva::va PROPERTIES IMPORTED_LOCATION "${LIBVA_LIBRARIES}") - else() - add_library(Libva::va INTERFACE IMPORTED) - set_target_properties(Libva::va PROPERTIES IMPORTED_LIBNAME "${LIBVA_LIBRARIES}") - endif() - - set_target_properties(Libva::va PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBVA_INCLUDE_DIRS}") - endif() - - if(NOT TARGET Libva::drm) - if(IS_ABSOLUTE "${LIBVA_DRM_LIBRARIES}") - add_library(Libva::drm UNKNOWN IMPORTED) - set_target_properties(Libva::drm PROPERTIES IMPORTED_LOCATION "${LIBVA_DRM_LIBRARIES}") - else() - add_library(Libva::drm INTERFACE IMPORTED) - set_target_properties(Libva::drm PROPERTIES IMPORTED_LIBNAME "${LIBVA_DRM_LIBRARIES}") - endif() - - set_target_properties(Libva::drm PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBVA_INCLUDE_DIRS}") - endif() - -endif() diff --git a/cmake/Modules/FindLibx264.cmake b/cmake/Modules/FindLibx264.cmake deleted file mode 100644 index 8d025de6c34593..00000000000000 --- a/cmake/Modules/FindLibx264.cmake +++ /dev/null @@ -1,65 +0,0 @@ -# Once done these will be defined: -# -# LIBX264_FOUND LIBX264_INCLUDE_DIRS LIBX264_LIBRARIES -# -# For use in OBS: -# -# X264_INCLUDE_DIR - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_X264 QUIET x264) -endif() - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_lib_suffix 64) -else() - set(_lib_suffix 32) -endif() - -find_path( - X264_INCLUDE_DIR - NAMES x264.h - HINTS ENV X264_PATH ${X264_PATH} ${CMAKE_SOURCE_DIR}/${X264_PATH} ${_X264_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include /sw/include - PATH_SUFFIXES include) - -find_library( - X264_LIB - NAMES ${_X264_LIBRARIES} x264 libx264 - HINTS ENV X264_PATH ${X264_PATH} ${CMAKE_SOURCE_DIR}/${X264_PATH} ${_X264_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib - PATH_SUFFIXES - lib${_lib_suffix} - lib - libs${_lib_suffix} - libs - bin${_lib_suffix} - bin - ../lib${_lib_suffix} - ../lib - ../libs${_lib_suffix} - ../libs - ../bin${_lib_suffix} - ../bin) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Libx264 DEFAULT_MSG X264_LIB X264_INCLUDE_DIR) -mark_as_advanced(X264_INCLUDE_DIR X264_LIB) - -if(LIBX264_FOUND) - set(LIBX264_INCLUDE_DIRS ${X264_INCLUDE_DIR}) - set(LIBX264_LIBRARIES ${X264_LIB}) - - if(NOT TARGET LIBX264::LIBX264) - if(IS_ABSOLUTE "${LIBX264_LIBRARIES}") - add_library(LIBX264::LIBX264 UNKNOWN IMPORTED) - set_target_properties(LIBX264::LIBX264 PROPERTIES IMPORTED_LOCATION "${LIBX264_LIBRARIES}") - else() - add_library(LIBX264::LIBX264 INTERFACE IMPORTED) - set_target_properties(LIBX264::LIBX264 PROPERTIES IMPORTED_LIBNAME "${LIBX264_LIBRARIES}") - endif() - - set_target_properties(LIBX264::LIBX264 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBX264_INCLUDE_DIRS}") - endif() -endif() diff --git a/cmake/Modules/FindLuajit.cmake b/cmake/Modules/FindLuajit.cmake deleted file mode 100644 index a2ee5a5ca83a49..00000000000000 --- a/cmake/Modules/FindLuajit.cmake +++ /dev/null @@ -1,85 +0,0 @@ -# Once done these will be defined: -# -# LUAJIT_FOUND LUAJIT_INCLUDE_DIRS LUAJIT_LIBRARIES -# -# For use in OBS: -# -# LUAJIT_INCLUDE_DIR - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_LIB_SUFFIX 64) -else() - set(_LIB_SUFFIX 32) -endif() - -find_path( - LUAJIT_INCLUDE_DIR - NAMES lua.h lualib.h - HINTS ENV LUAJIT_PATH ${LUAJIT_PATH} ${CMAKE_SOURCE_DIR}/${LUAJIT_PATH} ${_LUAJIT_INCLUDE_DIRS} - PATHS /usr/include - /usr/local/include - /opt/local/include - /opt/local - /sw/include - ~/Library/Frameworks - /Library/Frameworks - PATH_SUFFIXES - include - luajit - luajit/src - include/luajit - include/luajit/src - luajit-2.0 - include/luajit-2.0 - luajit2.0 - include/luajit2.0 - luajit-2.1 - include/luajit-2.1 - luajit2.1 - include/luajit2.1) - -find_library( - LUAJIT_LIB - NAMES ${_LUAJIT_LIBRARIES} luajit luajit-51 luajit-5.1 lua51 - HINTS ENV LUAJIT_PATH ${LUAJIT_PATH} ${CMAKE_SOURCE_DIR}/${LUAJIT_PATH} ${_LUAJIT_LIBRARY_DIRS} - PATHS /usr/lib - /usr/local/lib - /opt/local/lib - /opt/local - /sw/lib - ~/Library/Frameworks - /Library/Frameworks - PATH_SUFFIXES - lib${_lib_suffix} - lib - libs${_lib_suffix} - libs - bin${_lib_suffix} - bin - ../lib${_lib_suffix} - ../lib - ../libs${_lib_suffix} - ../libs - ../bin${_lib_suffix} - ../bin) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Luajit DEFAULT_MSG LUAJIT_LIB LUAJIT_INCLUDE_DIR) -mark_as_advanced(LUAJIT_INCLUDE_DIR LUAJIT_LIB) - -if(LUAJIT_FOUND) - set(LUAJIT_INCLUDE_DIRS ${LUAJIT_INCLUDE_DIR}) - set(LUAJIT_LIBRARIES ${LUAJIT_LIB}) - - if(NOT TARGET Luajit::Luajit) - if(IS_ABSOLUTE "${LUAJIT_LIBRARIES}") - add_library(Luajit::Luajit UNKNOWN IMPORTED) - set_target_properties(Luajit::Luajit PROPERTIES IMPORTED_LOCATION "${LUAJIT_LIBRARIES}") - else() - add_library(Luajit::Luajit INTERFACE IMPORTED) - set_target_properties(Luajit::Luajit PROPERTIES IMPORTED_LIBNAME "${LUAJIT_LIBRARIES}") - endif() - - set_target_properties(Luajit::Luajit PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LUAJIT_INCLUDE_DIRS}") - endif() -endif() diff --git a/cmake/Modules/FindMbedTLS.cmake b/cmake/Modules/FindMbedTLS.cmake deleted file mode 100644 index 9a095a1599214d..00000000000000 --- a/cmake/Modules/FindMbedTLS.cmake +++ /dev/null @@ -1,156 +0,0 @@ -# Once done these will be defined: -# -# * MBEDTLS_FOUND -# * MBEDTLS_INCLUDE_DIRS -# * MBEDTLS_LIBRARIES -# - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_MBEDTLS QUIET mbedtls) -endif() - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_lib_suffix 64) -else() - set(_lib_suffix 32) -endif() - -# If we're on MacOS or Linux, please try to statically-link mbedtls. -if(ENABLE_STATIC_MBEDTLS AND (APPLE OR UNIX)) - set(_MBEDTLS_LIBRARIES libmbedtls.a) - set(_MBEDCRYPTO_LIBRARIES libmbedcrypto.a) - set(_MBEDX509_LIBRARIES libmbedx509.a) -endif() - -find_path( - MBEDTLS_INCLUDE_DIR - NAMES mbedtls/ssl.h - HINTS ENV MBEDTLS_PATH ${MBEDTLS_PATH} ${CMAKE_SOURCE_DIR}/${MBEDTLS_PATH} ${_MBEDTLS_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include /sw/include - PATH_SUFFIXES include) - -find_library( - MBEDTLS_LIB - NAMES ${_MBEDTLS_LIBRARIES} mbedtls libmbedtls - HINTS ENV MBEDTLS_PATH ${MBEDTLS_PATH} ${CMAKE_SOURCE_DIR}/${MBEDTLS_PATH} ${_MBEDTLS_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib - PATH_SUFFIXES - lib${_lib_suffix} - lib - libs${_lib_suffix} - libs - bin${_lib_suffix} - bin - ../lib${_lib_suffix} - ../lib - ../libs${_lib_suffix} - ../libs - ../bin${_lib_suffix} - ../bin) - -find_library( - MBEDCRYPTO_LIB - NAMES ${_MBEDCRYPTO_LIBRARIES} mbedcrypto libmbedcrypto - HINTS ENV MBEDCRYPTO_PATH ${MBEDCRYPTO_PATH} ${CMAKE_SOURCE_DIR}/${MBEDCRYPTO_PATH} ${_MBEDCRYPTO_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib - PATH_SUFFIXES - lib${_lib_suffix} - lib - libs${_lib_suffix} - libs - bin${_lib_suffix} - bin - ../lib${_lib_suffix} - ../lib - ../libs${_lib_suffix} - ../libs - ../bin${_lib_suffix} - ../bin) - -find_library( - MBEDX509_LIB - NAMES ${_MBEDX509_LIBRARIES} mbedx509 libmbedx509 - HINTS ENV MBEDX509_PATH ${MBEDX509_PATH} ${CMAKE_SOURCE_DIR}/${MBEDX509_PATH} ${_MBEDX509_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib - PATH_SUFFIXES - lib${_lib_suffix} - lib - libs${_lib_suffix} - libs - bin${_lib_suffix} - bin - ../lib${_lib_suffix} - ../lib - ../libs${_lib_suffix} - ../libs - ../bin${_lib_suffix} - ../bin) - -# Sometimes mbedtls is split between three libs, and sometimes it isn't. If it isn't, let's check if the symbols we need -# are all in MBEDTLS_LIB. -if(MBEDTLS_LIB - AND NOT MBEDCRYPTO_LIB - AND NOT MBEDX509_LIB) - set(CMAKE_REQUIRED_LIBRARIES ${MBEDTLS_LIB}) - set(CMAKE_REQUIRED_INCLUDES ${MBEDTLS_INCLUDE_DIR}) - include(CheckSymbolExists) - check_symbol_exists(mbedtls_x509_crt_init "mbedtls/x509_crt.h" MBEDTLS_INCLUDES_X509) - check_symbol_exists(mbedtls_sha256_init "mbedtls/sha256.h" MBEDTLS_INCLUDES_CRYPTO) - unset(CMAKE_REQUIRED_INCLUDES) - unset(CMAKE_REQUIRED_LIBRARIES) -endif() - -# If we find all three libraries, then go ahead. -if(MBEDTLS_LIB - AND MBEDCRYPTO_LIB - AND MBEDX509_LIB) - set(MBEDTLS_INCLUDE_DIRS ${MBEDTLS_INCLUDE_DIR}) - set(MBEDTLS_LIBRARIES ${MBEDTLS_LIB} ${MBEDCRYPTO_LIB} ${MBEDX509_LIB}) - - foreach(component TLS CRYPTO X509) - if(NOT TARGET Mbedtls::${component} AND MBED${component}_LIB) - if(IS_ABSOLUTE "${MBED${component}_LIB}") - add_library(Mbedtls::${component} UNKNOWN IMPORTED) - set_target_properties(Mbedtls::${component} PROPERTIES IMPORTED_LOCATION "${MBED${component}_LIB}") - else() - add_library(Mbedtls::${component} INTERFACE IMPORTED) - set_target_properties(Mbedtls::${component} PROPERTIES IMPORTED_LIBNAME "${MBED${component}_LIB}") - endif() - - set_target_properties(Mbedtls::${component} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES - "${MBED${component}_INCLUDE_DIR}") - endif() - endforeach() - - if(NOT TARGET Mbedtls::Mbedtls) - add_library(Mbedtls::Mbedtls INTERFACE IMPORTED) - target_link_libraries(Mbedtls::Mbedtls INTERFACE Mbedtls::TLS Mbedtls::CRYPTO Mbedtls::X509) - endif() - - # Otherwise, if we find MBEDTLS_LIB, and it has both CRYPTO and x509 within the single lib (i.e. a windows build - # environment), then also feel free to go ahead. -elseif( - MBEDTLS_LIB - AND MBEDTLS_INCLUDES_CRYPTO - AND MBEDTLS_INCLUDES_X509) - set(MBEDTLS_INCLUDE_DIRS ${MBEDTLS_INCLUDE_DIR}) - set(MBEDTLS_LIBRARIES ${MBEDTLS_LIB}) - - if(NOT TARGET Mbedtls::Mbedtls) - if(IS_ABSOLUTE "${MBED${component}_LIB}") - add_library(Mbedtls::${component} UNKNOWN IMPORTED) - set_target_properties(Mbedtls::${component} PROPERTIES IMPORTED_LOCATION "${MBEDTLS_LIBRARIES}") - else() - add_library(Mbedtls::${component} INTERFACE IMPORTED) - set_target_properties(Mbedtls::${component} PROPERTIES IMPORTED_LIBNAME "${MBEDTLS_LIBRARIES}") - endif() - - set_target_properties(Mbedtls::${component} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${MBEDTLS_INCLUDE_DIRS}") - endif() -endif() - -# Now we've accounted for the 3-vs-1 library case: -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(MbedTLS DEFAULT_MSG MBEDTLS_LIBRARIES MBEDTLS_INCLUDE_DIRS) -mark_as_advanced(MBEDTLS_INCLUDE_DIR MBEDTLS_LIB MBEDCRYPTO_LIB MBEDX509_LIB) diff --git a/cmake/Modules/FindOSS.cmake b/cmake/Modules/FindOSS.cmake deleted file mode 100644 index 0474a013b40181..00000000000000 --- a/cmake/Modules/FindOSS.cmake +++ /dev/null @@ -1,36 +0,0 @@ -# cmake-format: off -# Try to find OSS on a *nix system -# -# OSS_FOUND - True if OSS is available OSS_INCLUDE_DIR - Include -# directory of OSS header OSS_HEADER_NAME - OSS header file name -# -# cmake-format: on - -if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") - set(OSS_HEADER_NAME "sys/soundcard.h") -elseif(CMAKE_SYSTEM_NAME MATCHES "DragonFly") - set(OSS_HEADER_NAME "sys/soundcard.h") -endif() - -find_path(OSS_INCLUDE_DIR "${OSS_HEADER_NAME}" "/usr/include" "/usr/local/include") - -if(OSS_INCLUDE_DIR) - set(OSS_FOUND True) -else(OSS_INCLUDE_DIR) - set(OSS_FOUND) -endif(OSS_INCLUDE_DIR) - -if(OSS_FOUND) - message(STATUS "Found OSS header: ${OSS_INCLUDE_DIR}/${OSS_HEADER_NAME}") -else(OSS_FOUND) - if(OSS_FIND_REQUIRED) - message(FATAL_ERROR "Could not find OSS header file") - endif(OSS_FIND_REQUIRED) -endif(OSS_FOUND) - -mark_as_advanced(OSS_FOUND OSS_INCLUDE_DIR OSS_HEADER_NAME) - -if(OSS_FOUND AND NOT TARGET OSS::OSS) - add_library(OSS::OSS INTERFACE IMPORTED) - set_target_properties(OSS::OSS PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${OSS_INCLUDE_DIR}") -endif() diff --git a/cmake/Modules/FindPipeWire.cmake b/cmake/Modules/FindPipeWire.cmake deleted file mode 100644 index 868acf5ec15bb9..00000000000000 --- a/cmake/Modules/FindPipeWire.cmake +++ /dev/null @@ -1,100 +0,0 @@ -# cmake-format: off -# .rst: FindPipeWire -# ------- -# -# Try to find PipeWire on a Unix system. -# -# This will define the following variables: -# -# ``PIPEWIRE_FOUND`` True if (the requested version of) PipeWire is available -# ``PIPEWIRE_VERSION`` The version of PipeWire ``PIPEWIRE_LIBRARIES`` This can -# be passed to target_link_libraries() instead of the ``PipeWire::PipeWire`` -# target ``PIPEWIRE_INCLUDE_DIRS`` This should be passed to -# target_include_directories() if the target is not used for linking -# ``PIPEWIRE_COMPILE_FLAGS`` This should be passed to target_compile_options() -# if the target is not used for linking -# -# If ``PIPEWIRE_FOUND`` is TRUE, it will also define the following imported -# target: -# -# ``PipeWire::PipeWire`` The PipeWire library -# -# In general we recommend using the imported target, as it is easier to use. -# Bear in mind, however, that if the target is in the link interface of an -# exported library, it must be made available by the package config file. - -# ============================================================================= -# Copyright 2014 Alex Merry Copyright 2014 Martin Gräßlin -# Copyright 2018-2020 Jan Grulich -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# 1. Redistributions of source code must retain the copyright notice, this list -# of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the copyright notice, this -# list of conditions and the following disclaimer in the documentation and/or -# other materials provided with the distribution. -# 3. The name of the author may not be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED -# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# ============================================================================= -# cmake-format: on - -# Use pkg-config to get the directories and then use these values in the FIND_PATH() and FIND_LIBRARY() calls -find_package(PkgConfig QUIET) - -pkg_search_module(PKG_PIPEWIRE QUIET libpipewire-0.3) -pkg_search_module(PKG_SPA QUIET libspa-0.2) - -set(PIPEWIRE_COMPILE_FLAGS "${PKG_PIPEWIRE_CFLAGS}" "${PKG_SPA_CFLAGS}") -set(PIPEWIRE_VERSION "${PKG_PIPEWIRE_VERSION}") - -find_path( - PIPEWIRE_INCLUDE_DIRS - NAMES pipewire/pipewire.h - HINTS ${PKG_PIPEWIRE_INCLUDE_DIRS} ${PKG_PIPEWIRE_INCLUDE_DIRS}/pipewire-0.3) - -find_path( - SPA_INCLUDE_DIRS - NAMES spa/param/props.h - HINTS ${PKG_SPA_INCLUDE_DIRS} ${PKG_SPA_INCLUDE_DIRS}/spa-0.2) - -find_library( - PIPEWIRE_LIBRARIES - NAMES pipewire-0.3 - HINTS ${PKG_PIPEWIRE_LIBRARY_DIRS}) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args( - PipeWire - FOUND_VAR PIPEWIRE_FOUND - REQUIRED_VARS PIPEWIRE_LIBRARIES PIPEWIRE_INCLUDE_DIRS SPA_INCLUDE_DIRS - VERSION_VAR PIPEWIRE_VERSION) - -if(PIPEWIRE_FOUND AND NOT TARGET PipeWire::PipeWire) - add_library(PipeWire::PipeWire UNKNOWN IMPORTED) - set_target_properties( - PipeWire::PipeWire - PROPERTIES IMPORTED_LOCATION "${PIPEWIRE_LIBRARIES}" - INTERFACE_COMPILE_OPTIONS "${PIPEWIRE_COMPILE_FLAGS}" - INTERFACE_INCLUDE_DIRECTORIES "${PIPEWIRE_INCLUDE_DIRS};${SPA_INCLUDE_DIRS}") -endif() - -mark_as_advanced(PIPEWIRE_LIBRARIES PIPEWIRE_INCLUDE_DIRS) - -include(FeatureSummary) -set_package_properties( - PipeWire PROPERTIES - URL "https://www.pipewire.org" - DESCRIPTION "PipeWire - multimedia processing") diff --git a/cmake/Modules/FindPythonWindows.cmake b/cmake/Modules/FindPythonWindows.cmake deleted file mode 100644 index 84a4fafd08ac4c..00000000000000 --- a/cmake/Modules/FindPythonWindows.cmake +++ /dev/null @@ -1,60 +0,0 @@ -# Once done these will be defined: -# -# PYTHON_FOUND PYTHON_INCLUDE_DIRS PYTHON_LIBRARIES -# -# For use in OBS: -# -# PYTHON_INCLUDE_DIR - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_LIB_SUFFIX 64) -else() - set(_LIB_SUFFIX 32) -endif() - -find_path( - PYTHON_INCLUDE_DIR - NAMES Python.h - HINTS ${_PYTHON_INCLUDE_DIRS} - PATH_SUFFIXES include include/python) - -find_library( - PYTHON_LIB - NAMES ${_PYTHON_LIBRARIES} python3 - HINTS ${_PYTHON_LIBRARY_DIRS} - PATH_SUFFIXES - lib${_lib_suffix} - lib - libs${_lib_suffix} - libs - bin${_lib_suffix} - bin - ../lib${_lib_suffix} - ../lib - ../libs${_lib_suffix} - ../libs - ../bin${_lib_suffix} - ../bin) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(PythonWindows DEFAULT_MSG PYTHON_LIB PYTHON_INCLUDE_DIR) -mark_as_advanced(PYTHON_INCLUDE_DIR PYTHON_LIB) - -if(PYTHONWINDOWS_FOUND) - set(Python_FOUND TRUE) - set(Python_INCLUDE_DIRS ${PYTHON_INCLUDE_DIR}) - set(Python_LIBRARIES ${PYTHON_LIB}) - set(PYTHONLIBS_FOUND TRUE) - - if(NOT TARGET Python::Python) - if(IS_ABSOLUTE "${Python_LIBRARIES}") - add_library(Python::Python UNKNOWN IMPORTED) - set_target_properties(Python::Python PROPERTIES IMPORTED_LOCATION "${Python_LIBRARIES}") - else() - add_library(Python::Python INTERFACE IMPORTED) - set_target_properties(Python::Python PROPERTIES IMPORTED_LIBNAME "${Python_LIBRARIES}") - endif() - - set_target_properties(Python::Python PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${Python_INCLUDE_DIRS}") - endif() -endif() diff --git a/cmake/Modules/FindSndio.cmake b/cmake/Modules/FindSndio.cmake deleted file mode 100644 index 19db1145a0be48..00000000000000 --- a/cmake/Modules/FindSndio.cmake +++ /dev/null @@ -1,66 +0,0 @@ -# cmake-format: off -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -FindSndio -------- - -Finds the Sndio library. - -Imported Targets -^^^^^^^^^^^^^^^^ - -This module provides the following imported targets, if found: - -``Sndio::Sndio`` - The Sndio library - -Result Variables -^^^^^^^^^^^^^^^^ - -This will define the following variables: - -``Sndio_FOUND`` - True if the system has the Sndio library. -``Sndio_VERSION`` - The version of the Sndio library which was found. -``Sndio_INCLUDE_DIRS`` - Include directories needed to use Sndio. -``Sndio_LIBRARIES`` - Libraries needed to link to Sndio. - -Cache Variables -^^^^^^^^^^^^^^^ - -The following cache variables may also be set: - -``Sndio_INCLUDE_DIR`` - The directory containing ``sndio.h``. -``Sndio_LIBRARY`` - The path to the Sndio library. - -#]=======================================================================] -# cmake-format: on - -find_path(Sndio_INCLUDE_DIR sndio.h) -find_library(Sndio_LIBRARY sndio) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args( - Sndio - FOUND_VAR Sndio_FOUND - REQUIRED_VARS Sndio_LIBRARY Sndio_INCLUDE_DIR) - -if(Sndio_FOUND) - set(Sndio_LIBRARIES ${Sndio_LIBRARY}) - set(Sndio_INCLUDE_DIRS ${Sndio_INCLUDE_DIR}) -endif() - -if(Sndio_FOUND AND NOT TARGET Sndio::Sndio) - add_library(Sndio::Sndio UNKNOWN IMPORTED) - set_target_properties(Sndio::Sndio PROPERTIES IMPORTED_LOCATION "${Sndio_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES - "${Sndio_INCLUDE_DIR}") -endif() - -mark_as_advanced(Sndio_INCLUDE_DIR Sndio_LIBRARY) diff --git a/cmake/Modules/FindSwigWindows.cmake b/cmake/Modules/FindSwigWindows.cmake deleted file mode 100644 index 95b135dda18904..00000000000000 --- a/cmake/Modules/FindSwigWindows.cmake +++ /dev/null @@ -1,19 +0,0 @@ -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_LIB_SUFFIX 64) -else() - set(_LIB_SUFFIX 32) -endif() - -find_path( - SWIG_DIR - NAMES swigrun.i - HINTS ENV SWIG_PATH ${SWIG_PATH} ${CMAKE_SOURCE_DIR}/${SWIG_PATH} - PATH_SUFFIXES ../swig/Lib swig/Lib) - -find_program( - SWIG_EXECUTABLE - NAMES swig - HINTS ENV SWIG_PATH ${SWIG_PATH} ${CMAKE_SOURCE_DIR}/${SWIG_PATH} - PATH_SUFFIXES ../swig swig) - -find_package(SWIG QUIET 2) diff --git a/cmake/Modules/FindSysinfo.cmake b/cmake/Modules/FindSysinfo.cmake deleted file mode 100644 index 5da583095119cc..00000000000000 --- a/cmake/Modules/FindSysinfo.cmake +++ /dev/null @@ -1,34 +0,0 @@ -# Once done these will be defined: -# -# SYSINFO_FOUND SYSINFO_INCLUDE_DIRS SYSINFO_LIBRARIES - -find_path( - SYSINFO_INCLUDE_DIR - NAMES sys/sysinfo.h - PATHS /usr/include /usr/local/include /opt/local/include) - -find_library( - SYSINFO_LIB - NAMES sysinfo libsysinfo - PATHS /usr/lib /usr/local/lib /opt/local/lib) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Sysinfo DEFAULT_MSG SYSINFO_LIB SYSINFO_INCLUDE_DIR) -mark_as_advanced(SYSINFO_INCLUDE_DIR SYSINFO_LIB) - -if(SYSINFO_FOUND) - set(SYSINFO_INCLUDE_DIRS ${SYSINFO_INCLUDE_DIR}) - set(SYSINFO_LIBRARIES ${SYSINFO_LIB}) - - if(NOT TARGET Sysinfo::Sysinfo) - if(IS_ABSOLUTE "${SYSINFO_LIBRARIES}") - add_library(Sysinfo::Sysinfo UNKNOWN IMPORTED) - set_target_properties(Sysinfo::Sysinfo PROPERTIES IMPORTED_LOCATION "${SYSINFO_LIBRARIES}") - else() - add_library(Sysinfo::Sysinfo INTERFACE IMPORTED) - set_target_properties(Sysinfo::Sysinfo PROPERTIES IMPORTED_LIBNAME "${SYSINFO_LIBRARIES}") - endif() - - set_target_properties(Sysinfo::Sysinfo PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${SYSINFO_INCLUDE_DIRS}") - endif() -endif() diff --git a/cmake/Modules/FindUdev.cmake b/cmake/Modules/FindUdev.cmake deleted file mode 100644 index fca8c430812f31..00000000000000 --- a/cmake/Modules/FindUdev.cmake +++ /dev/null @@ -1,41 +0,0 @@ -# Once done these will be defined: -# -# UDEV_FOUND UDEV_INCLUDE_DIRS UDEV_LIBRARIES - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_UDEV QUIET libudev) -endif() - -find_path( - UDEV_INCLUDE_DIR - NAMES libudev.h - HINTS ${_UDEV_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include) - -find_library( - UDEV_LIB - NAMES udev libudev - HINTS ${_UDEV_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Udev DEFAULT_MSG UDEV_LIB UDEV_INCLUDE_DIR) -mark_as_advanced(UDEV_INCLUDE_DIR UDEV_LIB) - -if(UDEV_FOUND) - set(UDEV_INCLUDE_DIRS ${UDEV_INCLUDE_DIR}) - set(UDEV_LIBRARIES ${UDEV_LIB}) - - if(NOT TARGET Udev::Udev) - if(IS_ABSOLUTE "${UDEV_LIBRARIES}") - add_library(Udev::Udev UNKNOWN IMPORTED) - set_target_properties(Udev::Udev PROPERTIES IMPORTED_LOCATION "${UDEV_LIBRARIES}") - else() - add_library(Udev::Udev INTERFACE IMPORTED) - set_target_properties(Udev::Udev PROPERTIES IMPORTED_LIBNAME "${UDEV_LIBRARIES}") - endif() - - set_target_properties(Udev::Udev PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${UDEV_INCLUDE_DIRS}") - endif() -endif() diff --git a/cmake/Modules/FindUthash.cmake b/cmake/Modules/FindUthash.cmake deleted file mode 100644 index fde6bd5d123212..00000000000000 --- a/cmake/Modules/FindUthash.cmake +++ /dev/null @@ -1,84 +0,0 @@ -#[=======================================================================[.rst -FindUthash ----------- - -FindModule for uthash and the associated library - -Imported Targets -^^^^^^^^^^^^^^^^ - -.. versionadded:: 3.0 - -This module defines the :prop_tgt:`IMPORTED` target ``Uthash::Uthash``. - -Result Variables -^^^^^^^^^^^^^^^^ - -This module sets the following variables: - -``Uthash_FOUND`` - True, if the library was found. -``Uthash_VERSION`` - Detected version of found uthash library. - -Cache variables -^^^^^^^^^^^^^^^ - -The following cache variables may also be set: - -``Uthash_INCLUDE_DIR`` - Directory containing ``uthash.h``. - -#]=======================================================================] - -# cmake-format: off -# cmake-lint: disable=C0103 -# cmake-lint: disable=C0301 -# cmake-format: on - -include(FindPackageHandleStandardArgs) - -find_path( - Uthash_INCLUDE_DIR - NAMES uthash.h - PATHS /usr/include /usr/local/include - DOC "uthash include directory") - -if(EXISTS "${Uthash_INCLUDE_DIR}/uthash.h") - file(STRINGS "${Uthash_INCLUDE_DIR}/uthash.h" _version_string - REGEX "#define[ \t]+UTHASH_VERSION[ \t]+[0-9]+\\.[0-9]+\\.[0-9]+") - - string(REGEX REPLACE "#define[ \t]+UTHASH_VERSION[ \t]+([0-9]+\\.[0-9]+\\.[0-9]+)" "\\1" Uthash_VERSION - "${_version_string}") -else() - if(NOT Uthash_FIND_QUIETLY) - message(AUTHOR_WARNING "Failed to find uthash version.") - endif() - set(Uthash_VERSION 0.0.0) -endif() - -if(CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin|Windows") - set(Uthash_ERROR_REASON "Ensure that obs-deps is provided as part of CMAKE_PREFIX_PATH.") -elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|FreeBSD") - set(Uthash_ERROR_REASON "Ensure uthash library is available in local include paths.") -endif() - -find_package_handle_standard_args( - Uthash - REQUIRED_VARS Uthash_INCLUDE_DIR - VERSION_VAR Uthash_VERSION REASON_FAILURE_MESSAGE "${Uthash_ERROR_REASON}") -mark_as_advanced(Uthash_INCLUDE_DIR) -unset(Uthash_ERROR_REASON) - -if(Uthash_FOUND) - if(NOT TARGET Uthash::Uthash) - add_library(Uthash::Uthash INTERFACE IMPORTED) - set_target_properties(Uthash::Uthash PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${Uthash_INCLUDE_DIR}") - endif() -endif() - -include(FeatureSummary) -set_package_properties( - Uthash PROPERTIES - URL "https://troydhanson.github.io/uthash" - DESCRIPTION "A hash table for C structures") diff --git a/cmake/Modules/FindVPL.cmake b/cmake/Modules/FindVPL.cmake deleted file mode 100644 index 21faabd89d89b5..00000000000000 --- a/cmake/Modules/FindVPL.cmake +++ /dev/null @@ -1,147 +0,0 @@ -#[=======================================================================[.rst -FindVPL -------- - -FindModule for VPL and associated headers - -Imported Targets -^^^^^^^^^^^^^^^^ - -.. versionadded:: 3.0 - -This module defines the :prop_tgt:`IMPORTED` target ``VPL::VPL``. - -Result Variables -^^^^^^^^^^^^^^^^ - -This module sets the following variables: - -``VPL_FOUND`` - True, if headers were found. -``VPL_VERSION`` - Detected version of found VPL headers. -``VPL_LIBRARIES`` - Libraries needed to link to VPL. - -Cache variables -^^^^^^^^^^^^^^^ - -The following cache variables may also be set: - -``VPL_INCLUDE_DIR`` - Directory containing ``mfxdispatcher.h``. -``VPL_LIBRARY_RELEASE`` - Path to the library component of VPL in non-debug configuration. -``VPL_LIBRARY_DEBUG`` - Optional path to the library component of VPL in debug configuration. - -#]=======================================================================] - -# cmake-format: off -# cmake-lint: disable=C0103 -# cmake-lint: disable=C0301 -# cmake-format: on - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_search_module(_VPL IMPORTED_TARGET QUIET vpl) - if(_VPL_FOUND) - add_library(VPL::VPL ALIAS PkgConfig::_VPL) - return() - endif() -endif() - -find_path( - VPL_INCLUDE_DIR - NAMES vpl/mfxstructures.h - HINTS ${_VPL_INCLUDE_DIRS} ${_VPL_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include /sw/include - DOC "VPL include directory") - -find_library( - VPL_LIBRARY_RELEASE - NAMES ${_VPL_LIBRARIES} ${_VPL_LIBRARIES} vpl - HINTS ${_VPL_LIBRARY_DIRS} ${_VPL_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib - DOC "VPL library location") - -find_library( - VPL_LIBRARY_DEBUG - NAMES ${_VPL_LIBRARIES} ${_VPL_LIBRARIES} vpld - HINTS ${_VPL_LIBRARY_DIRS} ${_VPL_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib - DOC "VPL debug library location") - -include(SelectLibraryConfigurations) -select_library_configurations(VPL) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args( - VPL - REQUIRED_VARS VPL_LIBRARY VPL_INCLUDE_DIR - VERSION_VAR VPL_VERSION REASON_FAILURE_MESSAGE "${VPL_ERROR_REASON}") -mark_as_advanced(VPL_INCLUDE_DIR VPL_LIBRARY) -unset(VPL_ERROR_REASON) - -if(EXISTS "${VPL_INCLUDE_DIR}/vpl/mfxdefs.h") - file(STRINGS "${VPL_INCLUDE_DIR}/vpl/mfxdefs.h" _version_string REGEX "^.*VERSION_(MAJOR|MINOR)[ \t]+[0-9]+[ \t]*$") - - string(REGEX REPLACE ".*VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" _version_major "${_version_string}") - string(REGEX REPLACE ".*VERSION_MINOR[ \t]+([0-9]+).*" "\\1" _version_minor "${_version_string}") - - set(VPL_VERSION "${_version_major}.${_version_minor}") - unset(_version_major) - unset(_version_minor) -else() - if(NOT VPL_FIND_QUIETLY) - message(AUTHOR_WARNING "Failed to find VPL version.") - endif() - set(VPL_VERSION 0.0.0) -endif() - -if(CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin|Windows") - set(VPL_ERROR_REASON "Ensure that obs-deps is provided as part of CMAKE_PREFIX_PATH.") -elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|FreeBSD") - set(VPL_ERROR_REASON "Ensure VPL headers are available in local library paths.") -endif() - -if(VPL_FOUND) - set(VPL_INCLUDE_DIRS ${VPL_INCLUDE_DIR}) - set(VPL_LIBRARIES ${VPL_LIBRARY}) - - if(NOT TARGET VPL::VPL) - if(IS_ABSOLUTE "${VPL_LIBRARY_RELEASE}") - add_library(VPL::VPL UNKNOWN IMPORTED) - set_target_properties(VPL::VPL PROPERTIES IMPORTED_LOCATION "${VPL_LIBRARY_RELEASE}") - else() - add_library(VPL::VPL INTERFACE IMPORTED) - set_target_properties(VPL::VPL PROPERTIES IMPORTED_LIBNAME "${VPL_LIBRARY_RELEASE}") - endif() - - set_target_properties( - VPL::VPL - PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${VPL_INCLUDE_DIRS}" - VERSION ${VPL_VERSION} - IMPORTED_CONFIGURATIONS Release) - - if(VPL_LIBRARY_DEBUG) - if(IS_ABSOLUTE "${VPL_LIBRARY_DEBUG}") - set_target_properties(VPL::VPL PROPERTIES IMPORTED_LOCATION_DEBUG "${VPL_LIBRARY_DEBUG}") - else() - set_target_properties(VPL::VPL PROPERTIES IMPORTED_LIBNAME_DEBUG "${VPL_LIBRARY_DEBUG}") - endif() - set_property( - TARGET VPL::VPL - APPEND - PROPERTY IMPORTED_CONFIGURATIONS Debug) - endif() - endif() -endif() - -include(FeatureSummary) -set_package_properties( - VPL PROPERTIES - URL "https://github.com/oneapi-src/oneVPL" - DESCRIPTION - "Intel® oneAPI Video Processing Library (oneVPL) supports AI visual inference, media delivery, cloud gaming, and virtual desktop infrastructure use cases by providing access to hardware accelerated video decode, encode, and frame processing capabilities on Intel® GPUs." -) diff --git a/cmake/Modules/FindWayland.cmake b/cmake/Modules/FindWayland.cmake deleted file mode 100644 index b674a0ba36e6ea..00000000000000 --- a/cmake/Modules/FindWayland.cmake +++ /dev/null @@ -1,125 +0,0 @@ -# cmake-format: off -# Try to find Wayland on a Unix system -# -# This will define: -# -# WAYLAND_FOUND - True if Wayland is found WAYLAND_LIBRARIES - Link -# these to use Wayland WAYLAND_INCLUDE_DIRS - Include directory for Wayland -# WAYLAND_COMPILE_FLAGS - Compiler flags for using Wayland -# -# In addition the following more fine grained variables will be defined: -# -# Wayland_Client_FOUND WAYLAND_CLIENT_INCLUDE_DIRS WAYLAND_CLIENT_LIBRARIES -# Wayland_Server_FOUND WAYLAND_SERVER_INCLUDE_DIRS WAYLAND_SERVER_LIBRARIES -# Wayland_EGL_FOUND WAYLAND_EGL_INCLUDE_DIRS WAYLAND_EGL_LIBRARIES -# Wayland_Cursor_FOUND WAYLAND_CURSOR_INCLUDE_DIRS WAYLAND_CURSOR_LIBRARIES -# -# Copyright (c) 2013 Martin Gräßlin 2020 Georges Basile -# Stavracas Neto -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - -# Use pkg-config to get the directories and then use these values in the -# find_path() and find_library() calls -# cmake-format: on - -find_package(PkgConfig) -pkg_check_modules(PKG_WAYLAND QUIET wayland-client wayland-server wayland-egl wayland-cursor) - -set(WAYLAND_COMPILE_FLAGS ${PKG_WAYLAND_CFLAGS}) - -find_path( - WAYLAND_CLIENT_INCLUDE_DIRS - NAMES wayland-client.h - HINTS ${PKG_WAYLAND_INCLUDE_DIRS}) -find_library( - WAYLAND_CLIENT_LIBRARIES - NAMES wayland-client - HINTS ${PKG_WAYLAND_LIBRARY_DIRS}) -if(WAYLAND_CLIENT_INCLUDE_DIRS AND WAYLAND_CLIENT_LIBRARIES) - set(Wayland_Client_FOUND TRUE) -else() - set(Wayland_Client_FOUND FALSE) -endif() -mark_as_advanced(WAYLAND_CLIENT_INCLUDE_DIRS WAYLAND_CLIENT_LIBRARIES) - -find_path( - WAYLAND_CURSOR_INCLUDE_DIRS - NAMES wayland-cursor.h - HINTS ${PKG_WAYLAND_INCLUDE_DIRS}) -find_library( - WAYLAND_CURSOR_LIBRARIES - NAMES wayland-cursor - HINTS ${PKG_WAYLAND_LIBRARY_DIRS}) -if(WAYLAND_CURSOR_INCLUDE_DIRS AND WAYLAND_CURSOR_LIBRARIES) - set(Wayland_Cursor_FOUND TRUE) -else() - set(Wayland_Cursor_FOUND FALSE) -endif() -mark_as_advanced(WAYLAND_CURSOR_INCLUDE_DIRS WAYLAND_CURSOR_LIBRARIES) - -find_path( - WAYLAND_EGL_INCLUDE_DIRS - NAMES wayland-egl.h - HINTS ${PKG_WAYLAND_INCLUDE_DIRS}) -find_library( - WAYLAND_EGL_LIBRARIES - NAMES wayland-egl - HINTS ${PKG_WAYLAND_LIBRARY_DIRS}) -if(WAYLAND_EGL_INCLUDE_DIRS AND WAYLAND_EGL_LIBRARIES) - set(Wayland_EGL_FOUND TRUE) -else() - set(Wayland_EGL_FOUND FALSE) -endif() -mark_as_advanced(WAYLAND_EGL_INCLUDE_DIRS WAYLAND_EGL_LIBRARIES) - -find_path( - WAYLAND_SERVER_INCLUDE_DIRS - NAMES wayland-server.h - HINTS ${PKG_WAYLAND_INCLUDE_DIRS}) -find_library( - WAYLAND_SERVER_LIBRARIES - NAMES wayland-server - HINTS ${PKG_WAYLAND_LIBRARY_DIRS}) -if(WAYLAND_SERVER_INCLUDE_DIRS AND WAYLAND_SERVER_LIBRARIES) - set(Wayland_Server_FOUND TRUE) -else() - set(Wayland_Server_FOUND FALSE) -endif() -mark_as_advanced(WAYLAND_SERVER_INCLUDE_DIRS WAYLAND_SERVER_LIBRARIES) - -set(WAYLAND_INCLUDE_DIRS ${WAYLAND_CLIENT_INCLUDE_DIRS} ${WAYLAND_SERVER_INCLUDE_DIRS} ${WAYLAND_EGL_INCLUDE_DIRS} - ${WAYLAND_CURSOR_INCLUDE_DIRS}) -set(WAYLAND_LIBRARIES ${WAYLAND_CLIENT_LIBRARIES} ${WAYLAND_SERVER_LIBRARIES} ${WAYLAND_EGL_LIBRARIES} - ${WAYLAND_CURSOR_LIBRARIES}) -mark_as_advanced(WAYLAND_INCLUDE_DIRS WAYLAND_LIBRARIES) - -list(REMOVE_DUPLICATES WAYLAND_INCLUDE_DIRS) - -include(FindPackageHandleStandardArgs) - -find_package_handle_standard_args( - Wayland - REQUIRED_VARS WAYLAND_LIBRARIES WAYLAND_INCLUDE_DIRS - HANDLE_COMPONENTS) - -foreach(component "Client" "Server" "EGL" "Cursor") - if(NOT TARGET Wayland::${component}) - string(TOUPPER ${component} component_u) - if(Wayland_${component}_FOUND) - if(IS_ABSOLUTE "${WAYLAND_${component_u}_LIBRARIES}") - add_library(Wayland::${component} UNKNOWN IMPORTED) - set_target_properties(Wayland::${component} PROPERTIES IMPORTED_LOCATION "${WAYLAND_${component_u}_LIBRARIES}") - else() - add_library(Wayland::${component} INTERFACE IMPORTED) - set_target_properties(Wayland::${component} PROPERTIES IMPORTED_LIBNAME "${WAYLAND_${component_u}_LIBRARIES}") - endif() - - set_target_properties(Wayland::${component} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES - "${WAYLAND_${component_u}_INCLUDE_DIRS}") - - set_target_properties(Wayland::${component} PROPERTIES INTERFACE_COMPILE_OPTIONS "${WAYLAND_COMPILE_FLAGS}") - endif() - endif() -endforeach() diff --git a/cmake/Modules/FindWebsocketpp.cmake b/cmake/Modules/FindWebsocketpp.cmake deleted file mode 100644 index edbd1f64cf3c39..00000000000000 --- a/cmake/Modules/FindWebsocketpp.cmake +++ /dev/null @@ -1,91 +0,0 @@ -#[=======================================================================[.rst -FindWebsocketpp ----------- - -FindModule for WebSocket++ and the associated library - -Imported Targets -^^^^^^^^^^^^^^^^ - -.. versionadded:: 2.0 - -This module defines the :prop_tgt:`IMPORTED` target ``Websocketpp::Websocketpp``. - -Result Variables -^^^^^^^^^^^^^^^^ - -This module sets the following variables: - -``Websocketpp_FOUND`` - True, if the library was found. -``Websocketpp_VERSION`` - Detected version of found Websocketpp library. - -Cache variables -^^^^^^^^^^^^^^^ - -The following cache variables may also be set: - -``Websocketpp_INCLUDE_DIR`` - Directory containing ``websocketpp/client.hpp``. - -#]=======================================================================] - -# cmake-format: off -# cmake-lint: disable=C0103 -# cmake-lint: disable=C0301 -# cmake-format: on - -include(FindPackageHandleStandardArgs) - -find_path( - Websocketpp_INCLUDE_DIR - NAMES websocketpp/client.hpp - PATHS /usr/include /usr/local/include - DOC "WebSocket++ include directory") - -if(EXISTS "${Websocketpp_INCLUDE_DIR}/websocketpp/version.hpp") - file(STRINGS "${Websocketpp_INCLUDE_DIR}/websocketpp/version.hpp" _version_string - REGEX "^.*(major|minor|patch)_version[ \t]+=[ \t]+[0-9]+") - - string(REGEX REPLACE ".*major_version[ \t]+=[ \t]+([0-9]+).*" "\\1" _version_major "${_version_string}") - string(REGEX REPLACE ".*minor_version[ \t]+=[ \t]+([0-9]+).*" "\\1" _version_minor "${_version_string}") - string(REGEX REPLACE ".*patch_version[ \t]+=[ \t]+([0-9]+).*" "\\1" _version_patch "${_version_string}") - - set(Websocketpp_VERSION "${_version_major}.${_version_minor}.${_version_patch}") - unset(_version_major) - unset(_version_minor) - unset(_version_patch) -else() - if(NOT Websocketpp_FIND_QUIETLY) - message(AUTHOR_WARNING "Failed to find WebSocket++ version.") - endif() - set(Websocketpp_VERSION 0.0.0) -endif() - -if(CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin|Windows") - set(Websocketpp_ERROR_REASON "Ensure that obs-deps is provided as part of CMAKE_PREFIX_PATH.") -elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|FreeBSD") - set(Websocketpp_ERROR_REASON "Ensure WebSocket++ library is available in local include paths.") -endif() - -find_package_handle_standard_args( - Websocketpp - REQUIRED_VARS Websocketpp_INCLUDE_DIR - VERSION_VAR Websocketpp_VERSION REASON_FAILURE_MESSAGE "${Websocketpp_ERROR_REASON}") -mark_as_advanced(Websocketpp_INCLUDE_DIR) -unset(Websocketpp_ERROR_REASON) - -if(Websocketpp_FOUND) - if(NOT TARGET Websocketpp::Websocketpp) - add_library(Websocketpp::Websocketpp INTERFACE IMPORTED) - set_target_properties(Websocketpp::Websocketpp PROPERTIES INTERFACE_INCLUDE_DIRECTORIES - "${Websocketpp_INCLUDE_DIR}") - endif() -endif() - -include(FeatureSummary) -set_package_properties( - Websocketpp PROPERTIES - URL "https://www.zaphoyd.com/websocketpp/" - DESCRIPTION "WebSocket++ is a header only C++ library that implements RFC6455 The WebSocket Protocol.") diff --git a/cmake/Modules/FindX11_XCB.cmake b/cmake/Modules/FindX11_XCB.cmake deleted file mode 100644 index bf6ab50291faa1..00000000000000 --- a/cmake/Modules/FindX11_XCB.cmake +++ /dev/null @@ -1,45 +0,0 @@ -# cmake-format: off -# * Try to find libX11-xcb Once done this will define -# -# X11_XCB_FOUND - system has libX11-xcb -# X11_XCB_LIBRARIES - Link these to use libX11-xcb -# X11_XCB_INCLUDE_DIR - the libX11-xcb include dir -# X11_XCB_DEFINITIONS - compiler switches required for using libX11-xcb - -# Copyright (c) 2011 Fredrik Höglund -# Copyright (c) 2008 Helio Chissini de Castro, -# Copyright (c) 2007 Matthias Kretz, -# -# Redistribution and use is allowed according to the terms of the BSD license. For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# cmake-format: on - -if(NOT WIN32) - # use pkg-config to get the directories and then use these values in the FIND_PATH() and FIND_LIBRARY() calls - find_package(PkgConfig) - pkg_check_modules(PKG_X11_XCB QUIET x11-xcb) - - set(X11_XCB_DEFINITIONS ${PKG_X11_XCB_CFLAGS}) - - find_path( - X11_XCB_INCLUDE_DIR - NAMES X11/Xlib-xcb.h - HINTS ${PKG_X11_XCB_INCLUDE_DIRS}) - find_library( - X11_XCB_LIBRARIES - NAMES X11-xcb - HINTS ${PKG_X11_XCB_LIBRARY_DIRS}) - - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(X11_XCB DEFAULT_MSG X11_XCB_LIBRARIES X11_XCB_INCLUDE_DIR) - - mark_as_advanced(X11_XCB_INCLUDE_DIR X11_XCB_LIBRARIES) - - if(X11_XCB_FOUND AND NOT TARGET X11::X11_xcb) - add_library(X11::X11_xcb UNKNOWN IMPORTED) - set_target_properties( - X11::X11_xcb - PROPERTIES IMPORTED_LOCATION "${X11_XCB_LIBRARIES}" - INTERFACE_INCLUDE_DIRECTORIES "${X11_XCB_INCLUDE_DIR}" - INTERFACE_LINK_LIBRARIES "XCB::XCB;X11::X11") - endif() -endif() diff --git a/cmake/Modules/FindXCB.cmake b/cmake/Modules/FindXCB.cmake deleted file mode 100644 index 23579b43770b9b..00000000000000 --- a/cmake/Modules/FindXCB.cmake +++ /dev/null @@ -1,267 +0,0 @@ -# cmake-format: off -# Try to find XCB on a Unix system -# -# This will define: -# -# XCB_FOUND - True if xcb is available XCB_LIBRARIES - Link these to -# use xcb XCB_INCLUDE_DIRS - Include directory for xcb XCB_DEFINITIONS - -# Compiler flags for using xcb -# -# In addition the following more fine grained variables will be defined: -# -# XCB_XCB_FOUND XCB_XCB_INCLUDE_DIR XCB_XCB_LIBRARY XCB_UTIL_FOUND -# XCB_UTIL_INCLUDE_DIR XCB_UTIL_LIBRARY XCB_COMPOSITE_FOUND -# XCB_COMPOSITE_INCLUDE_DIR XCB_COMPOSITE_LIBRARY XCB_DAMAGE_FOUND -# XCB_DAMAGE_INCLUDE_DIR XCB_DAMAGE_LIBRARY XCB_XFIXES_FOUND -# XCB_XFIXES_INCLUDE_DIR XCB_XFIXES_LIBRARY XCB_RENDER_FOUND -# XCB_RENDER_INCLUDE_DIR XCB_RENDER_LIBRARY XCB_RANDR_FOUND -# XCB_RANDR_INCLUDE_DIR XCB_RANDR_LIBRARY XCB_SHAPE_FOUND -# XCB_SHAPE_INCLUDE_DIR XCB_SHAPE_LIBRARY XCB_DRI2_FOUND -# XCB_DRI2_INCLUDE_DIR XCB_DRI2_LIBRARY XCB_GLX_FOUND XCB_GLX_INCLUDE_DIR -# XCB_GLX_LIBRARY XCB_SHM_FOUND XCB_SHM_INCLUDE_DIR XCB_SHM_LIBRARY -# XCB_XV_FOUND XCB_XV_INCLUDE_DIR XCB_XV_LIBRARY XCB_XINPUT_FOUND -# XCB_XINPUT_INCLUDE_DIR XCB_XINPUT_LIBRARY XCB_SYNC_FOUND -# XCB_SYNC_INCLUDE_DIR XCB_SYNC_LIBRARY XCB_XTEST_FOUND -# XCB_XTEST_INCLUDE_DIR XCB_XTEST_LIBRARY XCB_ICCCM_FOUND -# XCB_ICCCM_INCLUDE_DIR XCB_ICCCM_LIBRARY XCB_EWMH_FOUND -# XCB_EWMH_INCLUDE_DIR XCB_EWMH_LIBRARY XCB_IMAGE_FOUND -# XCB_IMAGE_INCLUDE_DIR XCB_IMAGE_LIBRARY XCB_RENDERUTIL_FOUND -# XCB_RENDERUTIL_INCLUDE_DIR XCB_RENDERUTIL_LIBRARY XCB_KEYSYMS_FOUND -# XCB_KEYSYMS_INCLUDE_DIR XCB_KEYSYMS_LIBRARY -# -# Copyright (c) 2011 Fredrik Höglund Copyright (c) 2013 Martin -# Gräßlin -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# cmake-format: on - -set(knownComponents - XCB - COMPOSITE - DAMAGE - DRI2 - EWMH - GLX - ICCCM - IMAGE - KEYSYMS - RANDR - RENDER - RENDERUTIL - SHAPE - SHM - SYNC - UTIL - XFIXES - XTEST - XV - XINPUT - XINERAMA) - -unset(unknownComponents) - -set(pkgConfigModules) -set(requiredComponents) - -if(XCB_FIND_COMPONENTS) - set(comps ${XCB_FIND_COMPONENTS}) -else() - set(comps ${knownComponents}) -endif() - -# iterate through the list of requested components, and check that we know them all. If not, fail. -foreach(comp ${comps}) - list(FIND knownComponents ${comp} index) - if("${index}" STREQUAL "-1") - list(APPEND unknownComponents "${comp}") - else() - if("${comp}" STREQUAL "XCB") - list(APPEND pkgConfigModules "xcb") - elseif("${comp}" STREQUAL "COMPOSITE") - list(APPEND pkgConfigModules "xcb-composite") - elseif("${comp}" STREQUAL "DAMAGE") - list(APPEND pkgConfigModules "xcb-damage") - elseif("${comp}" STREQUAL "DRI2") - list(APPEND pkgConfigModules "xcb-dri2") - elseif("${comp}" STREQUAL "EWMH") - list(APPEND pkgConfigModules "xcb-ewmh") - elseif("${comp}" STREQUAL "GLX") - list(APPEND pkgConfigModules "xcb-glx") - elseif("${comp}" STREQUAL "ICCCM") - list(APPEND pkgConfigModules "xcb-icccm") - elseif("${comp}" STREQUAL "IMAGE") - list(APPEND pkgConfigModules "xcb-image") - elseif("${comp}" STREQUAL "KEYSYMS") - list(APPEND pkgConfigModules "xcb-keysyms") - elseif("${comp}" STREQUAL "RANDR") - list(APPEND pkgConfigModules "xcb-randr") - elseif("${comp}" STREQUAL "RENDER") - list(APPEND pkgConfigModules "xcb-render") - elseif("${comp}" STREQUAL "RENDERUTIL") - list(APPEND pkgConfigModules "xcb-renderutil") - elseif("${comp}" STREQUAL "SHAPE") - list(APPEND pkgConfigModules "xcb-shape") - elseif("${comp}" STREQUAL "SHM") - list(APPEND pkgConfigModules "xcb-shm") - elseif("${comp}" STREQUAL "SYNC") - list(APPEND pkgConfigModules "xcb-sync") - elseif("${comp}" STREQUAL "UTIL") - list(APPEND pkgConfigModules "xcb-util") - elseif("${comp}" STREQUAL "XFIXES") - list(APPEND pkgConfigModules "xcb-xfixes") - elseif("${comp}" STREQUAL "XTEST") - list(APPEND pkgConfigModules "xcb-xtest") - elseif("${comp}" STREQUAL "XV") - list(APPEND pkgConfigModules "xcb-xv") - elseif("${comp}" STREQUAL "XINPUT") - list(APPEND pkgConfigModules "xcb-xinput") - elseif("${comp}" STREQUAL "XINERAMA") - list(APPEND pkgConfigModules "xcb-xinerama") - endif() - endif() -endforeach() - -if(DEFINED unknownComponents) - set(msgType STATUS) - if(XCB_FIND_REQUIRED) - set(msgType FATAL_ERROR) - endif() - if(NOT XCB_FIND_QUIETLY) - message(${msgType} "XCB: requested unknown components ${unknownComponents}") - endif() - return() -endif() - -macro(_XCB_HANDLE_COMPONENT _comp) - set(_header) - set(_lib) - if("${_comp}" STREQUAL "XCB") - set(_header "xcb/xcb.h") - set(_lib "xcb") - elseif("${_comp}" STREQUAL "COMPOSITE") - set(_header "xcb/composite.h") - set(_lib "xcb-composite") - elseif("${_comp}" STREQUAL "DAMAGE") - set(_header "xcb/damage.h") - set(_lib "xcb-damage") - elseif("${_comp}" STREQUAL "DRI2") - set(_header "xcb/dri2.h") - set(_lib "xcb-dri2") - elseif("${_comp}" STREQUAL "EWMH") - set(_header "xcb/xcb_ewmh.h") - set(_lib "xcb-ewmh") - elseif("${_comp}" STREQUAL "GLX") - set(_header "xcb/glx.h") - set(_lib "xcb-glx") - elseif("${_comp}" STREQUAL "ICCCM") - set(_header "xcb/xcb_icccm.h") - set(_lib "xcb-icccm") - elseif("${_comp}" STREQUAL "IMAGE") - set(_header "xcb/xcb_image.h") - set(_lib "xcb-image") - elseif("${_comp}" STREQUAL "KEYSYMS") - set(_header "xcb/xcb_keysyms.h") - set(_lib "xcb-keysyms") - elseif("${_comp}" STREQUAL "RANDR") - set(_header "xcb/randr.h") - set(_lib "xcb-randr") - elseif("${_comp}" STREQUAL "RENDER") - set(_header "xcb/render.h") - set(_lib "xcb-render") - elseif("${_comp}" STREQUAL "RENDERUTIL") - set(_header "xcb/xcb_renderutil.h") - set(_lib "xcb-render-util") - elseif("${_comp}" STREQUAL "SHAPE") - set(_header "xcb/shape.h") - set(_lib "xcb-shape") - elseif("${_comp}" STREQUAL "SHM") - set(_header "xcb/shm.h") - set(_lib "xcb-shm") - elseif("${_comp}" STREQUAL "SYNC") - set(_header "xcb/sync.h") - set(_lib "xcb-sync") - elseif("${_comp}" STREQUAL "UTIL") - set(_header "xcb/xcb_util.h") - set(_lib "xcb-util") - elseif("${_comp}" STREQUAL "XFIXES") - set(_header "xcb/xfixes.h") - set(_lib "xcb-xfixes") - elseif("${_comp}" STREQUAL "XTEST") - set(_header "xcb/xtest.h") - set(_lib "xcb-xtest") - elseif("${_comp}" STREQUAL "XV") - set(_header "xcb/xv.h") - set(_lib "xcb-xv") - elseif("${_comp}" STREQUAL "XINPUT") - set(_header "xcb/xinput.h") - set(_lib "xcb-xinput") - elseif("${_comp}" STREQUAL "XINERAMA") - set(_header "xcb/xinerama.h") - set(_lib "xcb-xinerama") - endif() - - find_path( - XCB_${_comp}_INCLUDE_DIR - NAMES ${_header} - HINTS ${PKG_XCB_INCLUDE_DIRS}) - find_library( - XCB_${_comp}_LIBRARY - NAMES ${_lib} - HINTS ${PKG_XCB_LIBRARY_DIRS}) - mark_as_advanced(XCB_${_comp}_LIBRARY XCB_${_comp}_INCLUDE_DIR) - - if(XCB_${_comp}_INCLUDE_DIR AND XCB_${_comp}_LIBRARY) - set(XCB_${_comp}_FOUND TRUE) - list(APPEND XCB_INCLUDE_DIRS ${XCB_${_comp}_INCLUDE_DIR}) - list(APPEND XCB_LIBRARIES ${XCB_${_comp}_LIBRARY}) - if(NOT XCB_FIND_QUIETLY) - message(STATUS "XCB[${_comp}]: Found component ${_comp}") - endif() - endif() -endmacro() - -if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows") - # Use pkg-config to get the directories and then use these values in the FIND_PATH() and FIND_LIBRARY() calls - find_package(PkgConfig) - pkg_check_modules(PKG_XCB QUIET ${pkgConfigModules}) - - set(XCB_DEFINITIONS ${PKG_XCB_CFLAGS}) - - foreach(comp ${comps}) - _xcb_handle_component(${comp}) - endforeach() - - if(XCB_INCLUDE_DIRS) - list(REMOVE_DUPLICATES XCB_INCLUDE_DIRS) - endif() - - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args( - XCB - REQUIRED_VARS XCB_LIBRARIES XCB_INCLUDE_DIRS - HANDLE_COMPONENTS) - - # compatibility for old variable naming - set(XCB_INCLUDE_DIR ${XCB_INCLUDE_DIRS}) -endif() - -if(XCB_FOUND AND NOT TARGET XCB::XCB) - foreach(component ${comps}) - if(NOT TARGET XCB::${component}) - string(TOUPPER ${component} component_u) - if(XCB_${component_u}_FOUND) - if(IS_ABSOLUTE "${XCB_${component_u}_LIBRARY}") - add_library(XCB::${component} UNKNOWN IMPORTED) - set_target_properties(XCB::${component} PROPERTIES IMPORTED_LOCATION "${XCB_${component_u}_LIBRARY}") - else() - add_library(XCB::${component} INTERFACE IMPORTED) - set_target_properties(XCB::${component} PROPERTIES IMPORTED_LIBNAME "${XCB_${component_u}_LIBRARY}") - endif() - - set_target_properties(XCB::${component} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES - "${XCB_${component_u}_INCLUDE_DIR}") - endif() - endif() - endforeach() -endif() diff --git a/cmake/Modules/FindXkbcommon.cmake b/cmake/Modules/FindXkbcommon.cmake deleted file mode 100644 index e2205eaa696db3..00000000000000 --- a/cmake/Modules/FindXkbcommon.cmake +++ /dev/null @@ -1,41 +0,0 @@ -# Once done these will be defined: -# -# XKBCOMMON_FOUND XKBCOMMON_INCLUDE_DIRS XKBCOMMON_LIBRARIES - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(_XKBCOMMON QUIET xkbcommon) -endif() - -find_path( - XKBCOMMON_INCLUDE_DIR - NAMES xkbcommon/xkbcommon.h - HINTS ${_XKBCOMMON_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include /opt/local/include) - -find_library( - XKBCOMMON_LIB - NAMES xkbcommon libxkbcommon - HINTS ${_XKBCOMMON_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /opt/local/lib) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Xkbcommon DEFAULT_MSG XKBCOMMON_LIB XKBCOMMON_INCLUDE_DIR) -mark_as_advanced(XKBCOMMON_INCLUDE_DIR XKBCOMMON_LIB) - -if(XKBCOMMON_FOUND) - set(XKBCOMMON_INCLUDE_DIRS ${XKBCOMMON_INCLUDE_DIR}) - set(XKBCOMMON_LIBRARIES ${XKBCOMMON_LIB}) - - if(NOT TARGET Xkbcommon::Xkbcommon) - if(IS_ABSOLUTE "${XKBCOMMON_LIBRARIES}") - add_library(Xkbcommon::Xkbcommon UNKNOWN IMPORTED) - set_target_properties(Xkbcommon::Xkbcommon PROPERTIES IMPORTED_LOCATION "${XKBCOMMON_LIBRARIES}") - else() - add_library(Xkbcommon::Xkbcommon INTERFACE IMPORTED) - set_target_properties(Xkbcommon::Xkbcommon PROPERTIES IMPORTED_LIBNAME "${XKBCOMMON_LIBRARIES}") - endif() - - set_target_properties(Xkbcommon::Xkbcommon PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${XKBCOMMON_INCLUDE_DIRS}") - endif() -endif() diff --git a/cmake/Modules/Findqrcodegencpp.cmake b/cmake/Modules/Findqrcodegencpp.cmake deleted file mode 100644 index 6ee0638595f27e..00000000000000 --- a/cmake/Modules/Findqrcodegencpp.cmake +++ /dev/null @@ -1,174 +0,0 @@ -#[=======================================================================[.rst -Findqrcodegencpp ----------------- - -FindModule for qrcodegencpp and associated libraries - -Imported Targets -^^^^^^^^^^^^^^^^ - -.. versionadded:: 3.0 - -This module defines the :prop_tgt:`IMPORTED` target ``qrcodegencpp::qrcodegencpp``. - -Result Variables -^^^^^^^^^^^^^^^^ - -This module sets the following variables: - -``qrcodegencpp_FOUND`` - True, if all required components and the core library were found. -``qrcodegencpp_VERSION`` - Detected version of found qrcodegencpp libraries. - -Cache variables -^^^^^^^^^^^^^^^ - -The following cache variables may also be set: - -``qrcodegencpp_LIBRARY`` - Path to the library component of qrcodegencpp. -``qrcodegencpp_INCLUDE_DIR`` - Directory containing ``qrcodegen.hpp``. - -#]=======================================================================] - -# cmake-format: off -# cmake-lint: disable=C0103 -# cmake-lint: disable=C0301 -# cmake-format: on - -include(FindPackageHandleStandardArgs) - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_search_module(PC_qrcodegencpp QUIET qrcodegencpp) -endif() - -# qrcodegencpp_set_soname: Set SONAME on imported library target -macro(qrcodegencpp_set_soname) - if(CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin") - execute_process( - COMMAND sh -c "otool -D '${qrcodegencpp_LIBRARY}' | grep -v '${qrcodegencpp_LIBRARY}'" - OUTPUT_VARIABLE _output - RESULT_VARIABLE _result) - - if(_result EQUAL 0 AND _output MATCHES "^@rpath/") - set_property(TARGET qrcodegencpp::qrcodegencpp PROPERTY IMPORTED_SONAME "${_output}") - endif() - elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|FreeBSD") - execute_process( - COMMAND sh -c "${CMAKE_OBJDUMP} -p '${qrcodegencpp_LIBRARY}' | grep SONAME" - OUTPUT_VARIABLE _output - RESULT_VARIABLE _result) - - if(_result EQUAL 0) - string(REGEX REPLACE "[ \t]+SONAME[ \t]+([^ \t]+)" "\\1" _soname "${_output}") - set_property(TARGET qrcodegencpp::qrcodegencpp PROPERTY IMPORTED_SONAME "${_soname}") - unset(_soname) - endif() - endif() - unset(_output) - unset(_result) -endmacro() - -# qrcodegencpp_find_dll: Find DLL for corresponding import library -macro(qrcodegencpp_find_dll) - cmake_path(GET qrcodegencpp_IMPLIB PARENT_PATH _implib_path) - cmake_path(SET _bin_path NORMALIZE "${_implib_path}/../bin") - - string(REGEX REPLACE "[0-9]+\\.([0-9]+)\\.[0-9]+" "\\1" _dll_version "${qrcodegencpp_VERSION}") - - find_program( - qrcodegencpp_LIBRARY - NAMES qrcodegencpp.dll - HINTS ${_implib_path} ${_bin_path} - DOC "qrcodegencpp DLL location") - - if(NOT qrcodegencpp_LIBRARY) - set(qrcodegencpp_LIBRARY "${qrcodegencpp_IMPLIB}") - endif() - unset(_implib_path) - unset(_bin_path) - unset(_dll_version) -endmacro() - -find_path( - qrcodegencpp_INCLUDE_DIR - NAMES qrcodegen.hpp - HINTS ${PC_qrcodegencpp_INCLUDE_DIRS} - PATHS /usr/include /usr/local/include - PATH_SUFFIXES qrcodegencpp qrcodegen - DOC "qrcodegencpp include directory") - -if(PC_qrcodegencpp_VERSION VERSION_GREATER 0) - set(qrcodegencpp_VERSION ${PC_qrcodegencpp_VERSION}) -else() - if(NOT qrcodegencpp_FIND_QUIETLY) - message(AUTHOR_WARNING "Failed to find qrcodegencpp version.") - endif() - set(qrcodegencpp_VERSION 0.0.0) -endif() - -if(CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") - find_library( - qrcodegencpp_IMPLIB - NAMES qrcodegencpp qrcodegencpp - DOC "qrcodegencpp import library location") - - qrcodegencpp_find_dll() -else() - find_library( - qrcodegencpp_LIBRARY - NAMES qrcodegencpp qrcodegencpp - HINTS ${PC_qrcodegencpp_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib - DOC "qrcodegencpp location") -endif() - -if(CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin|Windows") - set(qrcodegencpp_ERROR_REASON "Ensure that a qrcodegencpp distribution is provided as part of CMAKE_PREFIX_PATH.") -elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|FreeBSD") - set(qrcodegencpp_ERROR_REASON "Ensure that qrcodegencpp is installed on the system.") -endif() - -find_package_handle_standard_args( - qrcodegencpp - REQUIRED_VARS qrcodegencpp_LIBRARY qrcodegencpp_INCLUDE_DIR - VERSION_VAR qrcodegencpp_VERSION REASON_FAILURE_MESSAGE "${qrcodegencpp_ERROR_REASON}") -mark_as_advanced(qrcodegencpp_INCLUDE_DIR qrcodegencpp_LIBRARY qrcodegencpp_IMPLIB) -unset(qrcodegencpp_ERROR_REASON) - -if(qrcodegencpp_FOUND) - if(NOT TARGET qrcodegencpp::qrcodegencpp) - if(IS_ABSOLUTE "${qrcodegencpp_LIBRARY}") - if(DEFINED qrcodegencpp_IMPLIB) - if(qrcodegencpp_IMPLIB STREQUAL qrcodegencpp_LIBRARY) - add_library(qrcodegencpp::qrcodegencpp STATIC IMPORTED) - else() - add_library(qrcodegencpp::qrcodegencpp SHARED IMPORTED) - set_property(TARGET qrcodegencpp::qrcodegencpp PROPERTY IMPORTED_IMPLIB "${qrcodegencpp_IMPLIB}") - endif() - else() - add_library(qrcodegencpp::qrcodegencpp UNKNOWN IMPORTED) - endif() - set_property(TARGET qrcodegencpp::qrcodegencpp PROPERTY IMPORTED_LOCATION "${qrcodegencpp_LIBRARY}") - else() - add_library(qrcodegencpp::qrcodegencpp INTERFACE IMPORTED) - set_property(TARGET qrcodegencpp::qrcodegencpp PROPERTY IMPORTED_LIBNAME "${qrcodegencpp_LIBRARY}") - endif() - - qrcodegencpp_set_soname() - set_target_properties( - qrcodegencpp::qrcodegencpp - PROPERTIES INTERFACE_COMPILE_OPTIONS "${PC_qrcodegencpp_CFLAGS_OTHER}" - INTERFACE_INCLUDE_DIRECTORIES "${qrcodegencpp_INCLUDE_DIR}" - VERSION ${qrcodegencpp_VERSION}) - endif() -endif() - -include(FeatureSummary) -set_package_properties( - qrcodegencpp PROPERTIES - URL "https://www.nayuki.io/page/qr-code-generator-library" - DESCRIPTION "This project aims to be the best, clearest library for generating QR Codes in C++.") diff --git a/cmake/Modules/IDLFileHelper.cmake b/cmake/Modules/IDLFileHelper.cmake deleted file mode 100644 index 594481b51358b4..00000000000000 --- a/cmake/Modules/IDLFileHelper.cmake +++ /dev/null @@ -1,74 +0,0 @@ -macro(add_idl_files_base generated_files with_tlb) - foreach(filename ${ARGN}) - get_filename_component(file_we ${filename} NAME_WE) - get_filename_component(file_path ${filename} PATH) - - set(file_c ${file_we}_i.c) - set(file_h ${file_we}.h) - set(bin_file_h ${CMAKE_CURRENT_BINARY_DIR}/${file_h}) - set(bin_file_c ${CMAKE_CURRENT_BINARY_DIR}/${file_c}) - - if(MSVC) - if(${with_tlb}) - set(file_tlb ${file_we}.tlb) - set(bin_file_tlb ${CMAKE_CURRENT_BINARY_DIR}/${file_tlb}) - set(tlb_opt "") - else() - set(tlb_opt "/notlb") - endif() - - add_custom_command( - OUTPUT ${bin_file_h} ${bin_file_c} - DEPENDS ${filename} - COMMAND midl /h ${file_h} /iid ${file_c} ${tlb_opt} $,/win64,/win32> - ${CMAKE_CURRENT_SOURCE_DIR}/${filename} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) - else() - execute_process( - COMMAND echo - COMMAND ${CMAKE_C_COMPILER} -v -x c++ -E - - ERROR_VARIABLE cpp_inc_output - OUTPUT_QUIET ERROR_STRIP_TRAILING_WHITESPACE) - - string(REPLACE ";" " " include_dirs ${cpp_inc_output}) - string(REPLACE "\n" ";" include_dirs ${cpp_inc_output}) - - set(include_params) - foreach(include_dir ${include_dirs}) - string(SUBSTRING ${include_dir} 0 1 first_char) - if(${first_char} STREQUAL " ") - string(LENGTH "${include_dir}" include_dir_len) - math(EXPR include_dir_len "${include_dir_len} - 1") - string(SUBSTRING ${include_dir} 1 ${include_dir_len} include_dir) - set(include_params "-I\"${include_dir}\" ${include_params}") - endif() - endforeach() - - if(WIN32) - separate_arguments(include_params WINDOWS_COMMAND ${include_params}) - endif() - - add_custom_command( - OUTPUT ${file_h} - DEPENDS ${filename} - COMMAND ${CMAKE_WIDL} ${include_params} -h -o ${file_h} ${CMAKE_CURRENT_SOURCE_DIR}/${filename} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) - - file(WRITE ${bin_file_c} "#include \n#include <${file_h}>\n") - endif() - - set_source_files_properties(${bin_file_h} ${bin_file_c} PROPERTIES GENERATED TRUE) - - set(${generated_files} ${${generated_file}} ${bin_file_h} ${bin_file_c}) - - set_source_files_properties(${filename} PROPERTIES HEADER_FILE_ONLY TRUE) - endforeach(filename ${ARGN}) -endmacro(add_idl_files_base) - -macro(add_idl_files generated_files) - add_idl_files_base(${generated_files} FALSE ${ARGN}) -endmacro(add_idl_files) - -macro(add_idl_files_with_tlb generated_files) - add_idl_files_base(${generated_files} TRUE ${ARGN}) -endmacro(add_idl_files_with_tlb) diff --git a/cmake/Modules/ObsDefaults_Linux.cmake b/cmake/Modules/ObsDefaults_Linux.cmake deleted file mode 100644 index fe8d72364e85c6..00000000000000 --- a/cmake/Modules/ObsDefaults_Linux.cmake +++ /dev/null @@ -1,175 +0,0 @@ -# Enable modern cmake policies -if(POLICY CMP0011) - cmake_policy(SET CMP0011 NEW) -endif() - -if(POLICY CMP0072) - cmake_policy(SET CMP0072 NEW) -endif() - -if(POLICY CMP0095) - cmake_policy(SET CMP0095 NEW) -endif() - -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND LINUX_PORTABLE) - set(CMAKE_INSTALL_PREFIX - "${CMAKE_BINARY_DIR}/install" - CACHE STRING "Directory to install OBS after building" FORCE) -endif() - -macro(setup_obs_project) - #[[ - POSIX directory setup (portable) - CMAKE_BINARY_DIR - └ rundir - └ CONFIG - └ bin - └ ARCH - └ data - └ libobs - └ obs-plugins - └ PLUGIN - └ obs-scripting - └ ARCH - └ obs-studio - └ obs-plugins - └ ARCH - - POSIX directory setup (non-portable) - /usr/local/ - └ bin - └ include - └ obs - └ libs - └ cmake - └ obs-plugins - └ obs-scripting - └ share - └ obs - └ libobs - └ obs-plugins - └ obs-studio - #]] - - if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_ARCH_SUFFIX 64) - else() - set(_ARCH_SUFFIX 32) - endif() - - if(NOT OBS_MULTIARCH_SUFFIX AND DEFINED ENV{OBS_MULTIARCH_SUFFIX}) - set(OBS_MULTIARCH_SUFFIX "$ENV{OBS_MULTIARCH_SUFFIX}") - endif() - - set(OBS_OUTPUT_DIR "${CMAKE_BINARY_DIR}/rundir") - - if(NOT LINUX_PORTABLE) - set(OBS_EXECUTABLE_DESTINATION "${CMAKE_INSTALL_BINDIR}") - set(OBS_INCLUDE_DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/obs") - set(OBS_LIBRARY_DESTINATION "${CMAKE_INSTALL_LIBDIR}") - set(OBS_PLUGIN_DESTINATION "${OBS_LIBRARY_DESTINATION}/obs-plugins") - set(OBS_PLUGIN_PATH "${OBS_PLUGIN_DESTINATION}") - set(OBS_SCRIPT_PLUGIN_DESTINATION "${OBS_LIBRARY_DESTINATION}/obs-scripting") - set(OBS_DATA_DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/obs") - set(OBS_CMAKE_DESTINATION "${OBS_LIBRARY_DESTINATION}/cmake") - - set(OBS_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - set(OBS_DATA_PATH "${OBS_DATA_DESTINATION}") - - set(OBS_SCRIPT_PLUGIN_PATH "${CMAKE_INSTALL_PREFIX}/${OBS_SCRIPT_PLUGIN_DESTINATION}") - set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${OBS_LIBRARY_DESTINATION}") - else() - set(OBS_EXECUTABLE_DESTINATION "bin/${_ARCH_SUFFIX}bit") - set(OBS_INCLUDE_DESTINATION "include") - set(OBS_LIBRARY_DESTINATION "bin/${_ARCH_SUFFIX}bit") - set(OBS_PLUGIN_DESTINATION "obs-plugins/${_ARCH_SUFFIX}bit") - set(OBS_PLUGIN_PATH "../../${OBS_PLUGIN_DESTINATION}") - set(OBS_SCRIPT_PLUGIN_DESTINATION "data/obs-scripting/${_ARCH_SUFFIX}bit") - set(OBS_DATA_DESTINATION "data") - set(OBS_CMAKE_DESTINATION "cmake") - - set(OBS_INSTALL_PREFIX "") - set(OBS_DATA_PATH "../../${OBS_DATA_DESTINATION}") - - set(OBS_SCRIPT_PLUGIN_PATH "../../${OBS_SCRIPT_PLUGIN_DESTINATION}") - set(CMAKE_INSTALL_RPATH "$ORIGIN/" "$ORIGIN/../../${OBS_LIBRARY_DESTINATION}") - endif() - - if(BUILD_FOR_PPA) - set_option(ENABLE_LIBFDK ON) - set_option(ENABLE_JACK ON) - set_option(ENABLE_RTMPS ON) - endif() - - if(BUILD_FOR_DISTRIBUTION OR DEFINED ENV{CI}) - set_option(ENABLE_RTMPS ON) - endif() - - set(CPACK_PACKAGE_NAME "obs-studio") - set(CPACK_PACKAGE_VENDOR "${OBS_WEBSITE}") - set(CPACK_DEBIAN_PACKAGE_MAINTAINER "${OBS_COMPANY_NAME}") - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${OBS_COMMENTS}") - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/UI/data/license/gplv2.txt") - set(CPACK_PACKAGE_VERSION "${OBS_VERSION_CANONICAL}-${OBS_BUILD_NUMBER}") - set(CPACK_PACKAGE_EXECUTABLES "obs") - - if(OS_LINUX AND NOT LINUX_PORTABLE) - set(CPACK_GENERATOR "DEB") - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) - set(CPACK_SET_DESTDIR ON) - set(CPACK_DEBIAN_DEBUGINFO_PACKAGE ON) - elseif(OS_FREEBSD) - option(ENABLE_CPACK_GENERATOR "Enable FreeBSD CPack generator (experimental)" OFF) - - if(ENABLE_CPACK_GENERATOR) - set(CPACK_GENERATOR "FreeBSD") - endif() - - set(CPACK_FREEBSD_PACKAGE_DEPS - "audio/fdk-aac" - "audio/jack" - "audio/pulseaudio" - "audio/sndio" - "audio/speexdsp" - "devel/cmake" - "devel/dbus" - "devel/jansson" - "devel/libsysinfo" - "devel/libudev-devd" - "devel/ninja" - "devel/pkgconf" - "devel/qt5-buildtools" - "devel/qt5-core" - "devel/qt5-qmake" - "devel/swig" - "ftp/curl" - "graphics/mesa-libs" - "graphics/qt5-imageformats" - "graphics/qt5-svg" - "lang/lua52" - "lang/luajit" - "lang/python37" - "multimedia/ffmpeg" - "multimedia/libv4l" - "multimedia/libx264" - "multimedia/v4l_compat" - "multimedia/vlc" - "print/freetype2" - "security/mbedtls" - "textproc/qt5-xml" - "x11/xorgproto" - "x11/libICE" - "x11/libSM" - "x11/libX11" - "x11/libxcb" - "x11/libXcomposite" - "x11/libXext" - "x11/libXfixes" - "x11/libXinerama" - "x11/libXrandr" - "x11-fonts/fontconfig" - "x11-toolkits/qt5-gui" - "x11-toolkits/qt5-widgets") - endif() - include(CPack) -endmacro() diff --git a/cmake/Modules/ObsDefaults_Windows.cmake b/cmake/Modules/ObsDefaults_Windows.cmake deleted file mode 100644 index ce9f27aa287877..00000000000000 --- a/cmake/Modules/ObsDefaults_Windows.cmake +++ /dev/null @@ -1,159 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -# Enable modern cmake policies -if(POLICY CMP0009) - cmake_policy(SET CMP0009 NEW) -endif() - -if(POLICY CMP0011) - cmake_policy(SET CMP0011 NEW) -endif() - -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX - "${CMAKE_BINARY_DIR}/rundir" - CACHE STRING "Directory to install OBS after building" FORCE) -endif() - -# Enable building Windows modules with file descriptors -# https://github.com/obsproject/obs-studio/commit/51be039cf82fc347587d16b48f74e65e86bee301 -set(MODULE_DESCRIPTION "OBS Studio") - -macro(setup_obs_project) - if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_ARCH_SUFFIX 64) - else() - set(_ARCH_SUFFIX 32) - endif() - - set(OBS_OUTPUT_DIR "${CMAKE_BINARY_DIR}/rundir") - - set(OBS_EXECUTABLE_DESTINATION "bin/${_ARCH_SUFFIX}bit") - set(OBS_EXECUTABLE32_DESTINATION "bin/32bit") - set(OBS_EXECUTABLE64_DESTINATION "bin/64bit") - set(OBS_LIBRARY_DESTINATION "bin/${_ARCH_SUFFIX}bit") - set(OBS_LIBRARY32_DESTINATION "bin/32bit") - set(OBS_LIBRARY64_DESTINATION "bin/64bit") - - set(OBS_EXECUTABLE_EXPORT_DESTINATION "bin/${_ARCH_SUFFIX}bit") - set(OBS_LIBRARY_EXPORT_DESTINATION "bin/${_ARCH_SUFFIX}bit") - - set(OBS_PLUGIN_DESTINATION "obs-plugins/${_ARCH_SUFFIX}bit") - set(OBS_PLUGIN_PATH "../../${OBS_PLUGIN_DESTINATION}") - set(OBS_PLUGIN32_DESTINATION "obs-plugins/32bit") - set(OBS_PLUGIN64_DESTINATION "obs-plugins/64bit") - - set(OBS_INCLUDE_DESTINATION "include") - set(OBS_CMAKE_DESTINATION "cmake") - set(OBS_DATA_DESTINATION "data") - set(OBS_DATA_PATH "../../${OBS_DATA_DESTINATION}") - set(OBS_INSTALL_PREFIX "") - - set(OBS_SCRIPT_PLUGIN_DESTINATION "${OBS_DATA_DESTINATION}/obs-scripting/${_ARCH_SUFFIX}bit") - set(OBS_SCRIPT_PLUGIN_PATH "../../${OBS_SCRIPT_PLUGIN_DESTINATION}") - - string(REPLACE "-" ";" UI_VERSION_SPLIT ${OBS_VERSION}) - list(GET UI_VERSION_SPLIT 0 UI_VERSION) - string(REPLACE "." ";" UI_VERSION_SEMANTIC ${UI_VERSION}) - list(GET UI_VERSION_SEMANTIC 0 UI_VERSION_MAJOR) - list(GET UI_VERSION_SEMANTIC 1 UI_VERSION_MINOR) - list(GET UI_VERSION_SEMANTIC 2 UI_VERSION_PATCH) - - if(INSTALLER_RUN - AND NOT DEFINED ENV{OBS_InstallerTempDir} - AND NOT DEFINED ENV{obsInstallerTempDir}) - message(FATAL_ERROR "Environment variable obsInstallerTempDir is needed for multiarch installer generation") - endif() - - if(DEFINED ENV{OBS_DepsPath${_ARCH_SUFFIX}}) - set(DepsPath${_ARCH_SUFFIX} "$ENV{OBS_DepsPath${_ARCH_SUFFIX}}") - elseif(DEFINED ENV{OBS_DepsPath}) - set(DepsPath "$ENV{DepsPath}") - elseif(DEFINED ENV{DepsPath${_ARCH_SUFFIX}}) - set(DepsPath${_ARCH_SUFFIX} "$ENV{DepsPath${_ARCH_SUFFIX}}") - elseif(DEFINED ENV{DepsPath}) - set(DepsPath "$ENV{DepsPath}") - endif() - - if(DEFINED ENV{OBS_QTDIR${_ARCH_SUFFIX}}) - set(QTDIR${_ARCH_SUFFIX} "$ENV{OBS_QTDIR${_ARCH_SUFFIX}}") - elseif(DEFINED ENV{OBS_QTDIR}) - set(QTDIR "$ENV{OBS_QTDIR}") - elseif(DEFINED ENV{QTDIR${_ARCH_SUFFIX}}) - set(QTDIR${_ARCH_SUFFIX} "$ENV{QTDIR${_ARCH_SUFFIX}}") - elseif(DEFINED ENV{QTDIR}) - set(QTDIR "$ENV{QTDIR}") - endif() - - if(DEFINED DepsPath${_ARCH_SUFFIX}) - list(APPEND CMAKE_PREFIX_PATH "${DepsPath${_ARCH_SUFFIX}}" "${DepsPath${_ARCH_SUFFIX}}/bin") - elseif(DEFINED DepsPath) - list(APPEND CMAKE_PREFIX_PATH "${DepsPath}" "${DepsPath}/bin") - elseif(NOT DEFINED CMAKE_PREFIX_PATH) - message( - WARNING "No CMAKE_PREFIX_PATH set: OBS requires pre-built dependencies for building on Windows." - "Please download the appropriate obs-deps package for your architecture and set CMAKE_PREFIX_PATH " - "to the base directory and 'bin' directory inside it:\n" - "CMAKE_PREFIX_PATH=\"\"\n" - "Download pre-built OBS dependencies at https://github.com/obsproject/obs-deps/releases\n") - endif() - - if(DEFINED QTDIR${_ARCH_SUFFIX}) - list(APPEND CMAKE_PREFIX_PATH "${QTDIR${_ARCH_SUFFIX}}") - elseif(DEFINED QTDIR) - list(APPEND CMAKE_PREFIX_PATH "${QTDIR}") - endif() - - if(DEFINED ENV{VLCPath}) - set(VLCPath "$ENV{VLCPath}") - elseif(DEFINED ENV{OBS_VLCPath}) - set(VLCPath "$ENV{OBS_VLCPath}") - endif() - - if(DEFINED VLCPath) - set(VLC_PATH "${VLCPath}") - endif() - - if(DEFINED ENV{CEF_ROOT_DIR}) - set(CEF_ROOT_DIR "$ENV{CEF_ROOT_DIR}") - elseif(DEFINED ENV{OBS_CEF_ROOT_DIR}) - set(CEF_ROOT_DIR "$ENV{OBS_CEF_ROOT_DIR}") - endif() - - if(DEFINED ENV{OBS_InstallerTempDir}) - file(TO_CMAKE_PATH "$ENV{OBS_InstallerTempDir}" _INSTALLER_TEMP_DIR) - elseif(DEFINED ENV{obsInstallerTempDir}) - file(TO_CMAKE_PATH "$ENV{obsInstallerTempDir}" _INSTALLER_TEMP_DIR) - endif() - - set(ENV{OBS_InstallerTempDir} "${_INSTALLER_TEMP_DIR}") - unset(_INSTALLER_TEMP_DIR) - - if(DEFINED ENV{OBS_AdditionalInstallFiles}) - file(TO_CMAKE_PATH "$ENV{OBS_AdditionalInstallFiles}" _ADDITIONAL_FILES) - elseif(DEFINED ENV{obsAdditionalInstallFiles}) - file(TO_CMAKE_PATH "$ENV{obsAdditionalInstallFiles}" _ADDITIONAL_FILES) - else() - set(_ADDITIONAL_FILES "${CMAKE_SOURCE_DIR}/additional_install_files") - endif() - - set(ENV{OBS_AdditionalInstallFiles} "${_ADDITIONAL_FILES}") - unset(_ADDITIONAL_FILES) - - list(APPEND CMAKE_INCLUDE_PATH "$ENV{OBS_AdditionalInstallFiles}/include${_ARCH_SUFFIX}" - "$ENV{OBS_AdditionalInstallFiles}/include") - - list( - APPEND - CMAKE_LIBRARY_PATH - "$ENV{OBS_AdditionalInstallFiles}/lib${_ARCH_SUFFIX}" - "$ENV{OBS_AdditionalInstallFiles}/lib" - "$ENV{OBS_AdditionalInstallFiles}/libs${_ARCH_SUFFIX}" - "$ENV{OBS_AdditionalInstallFiles}/libs" - "$ENV{OBS_AdditionalInstallFiles}/bin${_ARCH_SUFFIX}" - "$ENV{OBS_AdditionalInstallFiles}/bin") - - if(BUILD_FOR_DISTRIBUTION OR DEFINED ENV{CI}) - set_option(ENABLE_RTMPS ON) - endif() -endmacro() diff --git a/cmake/Modules/ObsDefaults_macOS.cmake b/cmake/Modules/ObsDefaults_macOS.cmake deleted file mode 100644 index e61d64d65686bd..00000000000000 --- a/cmake/Modules/ObsDefaults_macOS.cmake +++ /dev/null @@ -1,189 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -# Enable modern cmake policies -if(POLICY CMP0009) - cmake_policy(SET CMP0009 NEW) -endif() - -if(POLICY CMP0011) - cmake_policy(SET CMP0011 NEW) -endif() - -if(POLICY CMP0025) - cmake_policy(SET CMP0025 NEW) -endif() - -# Build options -if(NOT CMAKE_OSX_ARCHITECTURES) - set(CMAKE_OSX_ARCHITECTURES - "${CMAKE_HOST_SYSTEM_PROCESSOR}" - CACHE STRING "OBS build architecture for macOS - x86_64 required at least" FORCE) -endif() -set_property(CACHE CMAKE_OSX_ARCHITECTURES PROPERTY STRINGS arm64 x86_64 "x86_64;arm64") - -if(NOT CMAKE_OSX_DEPLOYMENT_TARGET) - set(CMAKE_XCODE_ATTRIBUTE_MACOSX_DEPLOYMENT_TARGET[arch=arm64] "11.0") - set(CMAKE_XCODE_ATTRIBUTE_MACOSX_DEPLOYMENT_TARGET[arch=x86_64] "10.15") - - if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64") - set(_MACOS_DEPLOYMENT_TARGET "11.0") - else() - set(_MACOS_DEPLOYMENT_TARGET "10.15") - endif() - - set(CMAKE_OSX_DEPLOYMENT_TARGET - "${_MACOS_DEPLOYMENT_TARGET}" - CACHE STRING "OBS deployment target for macOS - 10.15+ required" FORCE) - unset(_MACOS_DEPLOYMENT_TARGET) -endif() -set_property(CACHE CMAKE_OSX_DEPLOYMENT_TARGET PROPERTY STRINGS 10.15 11.0 12.0 13.0) - -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX - "${CMAKE_BINARY_DIR}/install" - CACHE STRING "Directory to install OBS after building" FORCE) -endif() - -if(NOT DEFINED CMAKE_PREFIX_PATH) - message( - WARNING "No CMAKE_PREFIX_PATH set: OBS supplies pre-built dependencies for building on macOS.\n" - "While OBS can be built using packages installed via Homebrew, pre-built dependencies " - "contain beneficial patches and fixes for use within OBS and is the suggested source " - "of these dependencies.\n" - "You can download the appropriate obs-deps package for your " - "architecture and set CMAKE_PREFIX_PATH to this directory:\n" - "CMAKE_PREFIX_PATH=\"\"\n" - "Download pre-built OBS dependencies at https://github.com/obsproject/obs-deps/releases\n") -endif() - -# SWIG hard codes the directory to its library directory at compile time. As obs-deps need to be relocatable, we need to -# force SWIG to look for its files in a directory relative to the PREFIX_PATH. The best way to ensure this is to set the -# SWIG_LIB environment variable. - -if(NOT DEFINED ENV{SWIG_LIB} AND EXISTS "${CMAKE_PREFIX_PATH}/bin/swig") - set(ENV{SWIG_LIB} "${CMAKE_PREFIX_PATH}/share/swig/CURRENT") -endif() - -macro(setup_obs_project) - set(CMAKE_XCODE_GENERATE_SCHEME ON) - - # Set code signing options - if(NOT OBS_BUNDLE_CODESIGN_TEAM) - set(OBS_BUNDLE_CODESIGN_TEAM - "" - CACHE STRING "OBS code signing team for macOS" FORCE) - if(NOT OBS_BUNDLE_CODESIGN_IDENTITY) - set(OBS_BUNDLE_CODESIGN_IDENTITY - "-" - CACHE STRING "OBS code signing identity for macOS" FORCE) - endif() - set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${OBS_BUNDLE_CODESIGN_IDENTITY}") - else() - set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_STYLE "Automatic") - set(CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "${OBS_BUNDLE_CODESIGN_TEAM}") - endif() - - set(OBS_CODESIGN_ENTITLEMENTS - "${CMAKE_SOURCE_DIR}/cmake/bundle/macOS/entitlements.plist" - CACHE INTERNAL "Path to codesign entitlements plist") - set(OBS_CODESIGN_LINKER - ON - CACHE BOOL "Enable linker code-signing on macOS (macOS 11+ required)") - - # Tell Xcode to pretend the linker signed binaries so that editing with install_name_tool preserves ad-hoc signatures. - # This option is supported by codesign on macOS 11 or higher. See CMake Issue 21854: - # https://gitlab.kitware.com/cmake/cmake/-/issues/21854 - - if(OBS_CODESIGN_LINKER) - set(CMAKE_XCODE_ATTRIBUTE_OTHER_CODE_SIGN_FLAGS "-o linker-signed") - endif() - - # Set default options for bundling on macOS - set(CMAKE_MACOSX_RPATH ON) - set(CMAKE_SKIP_BUILD_RPATH OFF) - set(CMAKE_BUILD_WITH_INSTALL_RPATH OFF) - set(CMAKE_INSTALL_RPATH "@executable_path/../Frameworks/") - set(CMAKE_INSTALL_RPATH_USE_LINK_PATH OFF) - - # Set bundle parameters for cmake's automatic plist generation - set(MACOSX_BUNDLE_EXECUTABLE_NAME "OBS") - set(MACOSX_BUNDLE_BUNDLE_NAME "${OBS_PRODUCT_NAME}") - set(MACOSX_BUNDLE_BUNDLE_VERSION "${OBS_BUILD_NUMBER}") - set(MACOSX_BUNDLE_COPYRIGHT "${OBS_LEGAL_COPYRIGHT}") - set(MACOSX_BUNDLE_GUI_IDENTIFIER "com.obsproject.obs-studio") - set(MACOSX_BUNDLE_ICON_FILE "AppIcon") - set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${OBS_VERSION_CANONICAL}") - string(TIMESTAMP CURRENT_YEAR "%Y") - - # Set paths for distribution bundling - set(OBS_BUNDLE_NAME "OBS") - set(OBS_EXECUTABLE_DESTINATION "${CMAKE_INSTALL_BINDIR}") - set(OBS_INCLUDE_DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/obs") - set(OBS_LIBRARY_DESTINATION "${CMAKE_INSTALL_LIBDIR}") - set(OBS_CMAKE_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake") - - if(BUILD_FOR_DISTRIBUTION) - set_option(CMAKE_BUILD_TYPE "Release") - set(CPACK_PACKAGE_VERSION "${OBS_VERSION_CANONICAL}") - else() - set(CPACK_PACKAGE_VERSION "${OBS_VERSION_CANONICAL}-${OBS_BUILD_NUMBER}") - endif() - - if(BUILD_FOR_DISTRIBUTION OR DEFINED ENV{CI}) - set_option(ENABLE_RTMPS ON) - endif() - - set(CPACK_PACKAGE_NAME "OBS") - set(CPACK_PACKAGE_VENDOR "${OBS_WEBSITE}") - set(CPACK_GENERATOR "DragNDrop") - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${OBS_COMMENTS}") - - if(CMAKE_OSX_ARCHITECTURES STREQUAL "x86_64") - set(CPACK_ARCH_SUFFIX "Intel") - elseif(CMAKE_OSX_ARCHITECTURES STREQUAL "arm64") - set(CPACK_ARCH_SUFFIX "Apple") - else() - set(CPACK_ARCH_SUFFIX "Universal") - endif() - - set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-macOS-${CPACK_ARCH_SUFFIX}") - - set(CPACK_COMPONENTS_ALL obs_app obs_frameworks obs_plugins obs_scripting_plugins obs_resources) - set(CPACK_COMPONENT_OBS_APP_DISPLAY_NAME "OBS Studio") - set(CPACK_COMPONENT_OBS_FRAMEWORKS_DISPLAY_NAME "OBS Frameworks") - set(CPACK_COMPONENT_OBS_PLUGINS_DISPLAY_NAME "OBS Plugins") - set(CPACK_COMPONENT_OBS_SCRIPTING_PLUGINS_DISPLAY_NAME "OBS Scripting Plugins") - set(CPACK_COMPONENT_OBS_RESOURCES_DISPLAY_NAME "OBS Resources") - - set(CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_SOURCE_DIR}/cmake/bundle/macOS/background.tiff") - set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/cmake/bundle/macOS/AppIcon.icns") - get_filename_component(CPACK_DMG_BACKGROUND_FILENAME ${CPACK_DMG_BACKGROUND_IMAGE} NAME) - set(CPACK_DMG_FORMAT "UDZO") - set(CPACK_DMG_FILESYSTEM "APFS") - set(CPACK_DMG_DS_STORE_SETUP_SCRIPT "${CMAKE_BINARY_DIR}/package.applescript") - - set(_DMG_WINDOW_X "100") - set(_DMG_WINDOW_Y "100") - set(_DMG_WINDOW_WIDTH "540") - set(_DMG_WINDOW_HEIGHT "380") - set(_DMG_ICON_SIZE "96") - set(_DMG_TEXT_SIZE "16") - set(_DMG_OBS_X "124") - set(_DMG_OBS_Y "180") - set(_DMG_APP_LINK_X "416") - set(_DMG_APP_LINK_Y "180") - - configure_file("${CMAKE_SOURCE_DIR}/cmake/bundle/macOS/package.applescript.in" - "${CMAKE_BINARY_DIR}/package.applescript" @ONLY) - - include(CPack) - - if(ENABLE_UI) - install( - CODE " - set(_BUNDLENAME \"$.app\") - if(EXISTS \"\${CMAKE_INSTALL_PREFIX}/\${_BUNDLENAME}\") - file(REMOVE_RECURSE \"\${CMAKE_INSTALL_PREFIX}/\${_BUNDLENAME}\") - endif()") - endif() -endmacro() diff --git a/cmake/Modules/ObsHelpers.cmake b/cmake/Modules/ObsHelpers.cmake deleted file mode 100644 index b4620ab56daf0b..00000000000000 --- a/cmake/Modules/ObsHelpers.cmake +++ /dev/null @@ -1,477 +0,0 @@ -# Set OS-specific constants in non-deprecated way -include(GNUInstallDirs) -if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - include(ObsDefaults_macOS) - set(OS_MACOS ON) - set(OS_POSIX ON) -elseif(CMAKE_SYSTEM_NAME MATCHES "Linux|FreeBSD|OpenBSD") - include(ObsDefaults_Linux) - set(OS_POSIX ON) - string(TOUPPER "${CMAKE_SYSTEM_NAME}" _SYSTEM_NAME_U) - set(OS_${_SYSTEM_NAME_U} ON) -elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") - include(ObsDefaults_Windows) - set(OS_WINDOWS ON) - set(OS_POSIX OFF) -endif() - -# Create global property to hold list of activated modules -set_property(GLOBAL PROPERTY OBS_MODULE_LIST "") - -# ###################################################################################################################### -# GLOBAL HELPER FUNCTIONS # -# ###################################################################################################################### - -# Helper function to set up runtime or library targets -function(setup_binary_target target) - # Set up installation paths for program install - install( - TARGETS ${target} - RUNTIME DESTINATION ${OBS_EXECUTABLE_DESTINATION} COMPONENT ${target}_Runtime - LIBRARY DESTINATION ${OBS_LIBRARY_DESTINATION} - COMPONENT ${target}_Runtime - NAMELINK_COMPONENT ${target}_Development - ARCHIVE DESTINATION ${OBS_LIBRARY_DESTINATION} COMPONENT ${target}_Development - PUBLIC_HEADER - DESTINATION ${OBS_INCLUDE_DESTINATION} - COMPONENT ${target}_Development - EXCLUDE_FROM_ALL) - - # Set up installation paths for development rundir - install( - TARGETS ${target} - RUNTIME DESTINATION ${OBS_EXECUTABLE_DESTINATION} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL - LIBRARY DESTINATION ${OBS_LIBRARY_DESTINATION} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL - PUBLIC_HEADER - DESTINATION ${OBS_INCLUDE_DESTINATION} - COMPONENT IGNORED - EXCLUDE_FROM_ALL) - - add_custom_command( - TARGET ${target} - POST_BUILD - COMMAND "${CMAKE_COMMAND}" -E env DESTDIR= "${CMAKE_COMMAND}" --install .. --config $ --prefix - ${OBS_OUTPUT_DIR}/$ --component obs_${target} > "$,nul,/dev/null>" - COMMENT "Installing OBS rundir" - VERBATIM) - -endfunction() - -# Helper function to set up OBS plugin targets -function(setup_plugin_target target) - set_target_properties(${target} PROPERTIES PREFIX "") - - install( - TARGETS ${target} - RUNTIME DESTINATION ${OBS_PLUGIN_DESTINATION} COMPONENT ${target}_Runtime - LIBRARY DESTINATION ${OBS_PLUGIN_DESTINATION} - COMPONENT ${target}_Runtime - NAMELINK_COMPONENT ${target}_Development) - - install( - TARGETS ${target} - RUNTIME DESTINATION ${OBS_PLUGIN_DESTINATION} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL - LIBRARY DESTINATION ${OBS_PLUGIN_DESTINATION} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL) - - setup_target_resources("${target}" "obs-plugins/${target}") - set_property(GLOBAL APPEND PROPERTY OBS_MODULE_LIST "${target}") - add_custom_command( - TARGET ${target} - POST_BUILD - COMMAND "${CMAKE_COMMAND}" -E env DESTDIR= "${CMAKE_COMMAND}" --install .. --config $ --prefix - ${OBS_OUTPUT_DIR}/$ --component obs_${target} > "$,nul,/dev/null>" - COMMENT "Installing ${target} to OBS rundir" - VERBATIM) - - obs_status(ENABLED "${target}") -endfunction() - -# Helper function to set up OBS scripting plugin targets -function(setup_script_plugin_target target) - install( - TARGETS ${target} - LIBRARY DESTINATION ${OBS_SCRIPT_PLUGIN_DESTINATION} - COMPONENT ${target}_Runtime - NAMELINK_COMPONENT ${target}_Development) - - install( - TARGETS ${target} - LIBRARY DESTINATION ${OBS_SCRIPT_PLUGIN_DESTINATION} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL) - - if(${target} STREQUAL "obspython") - install( - FILES "$/$.py" - DESTINATION ${OBS_SCRIPT_PLUGIN_DESTINATION} - COMPONENT ${target}_Runtime) - - install( - FILES "$/$.py" - DESTINATION ${OBS_SCRIPT_PLUGIN_DESTINATION} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL) - endif() - set_property(GLOBAL APPEND PROPERTY OBS_SCRIPTING_MODULE_LIST "${target}") - add_custom_command( - TARGET ${target} - POST_BUILD - COMMAND "${CMAKE_COMMAND}" -E env DESTDIR= "${CMAKE_COMMAND}" --install .. --config $ --prefix - ${OBS_OUTPUT_DIR}/$ --component obs_${target} > "$,nul,/dev/null>" - COMMENT "Installing ${target} to OBS rundir" - VERBATIM) - - obs_status(ENABLED "${target}") -endfunction() - -# Helper function to set up target resources (e.g. L10N files) -function(setup_target_resources target destination) - if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/data") - install( - DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/data/ - DESTINATION ${OBS_DATA_DESTINATION}/${destination} - USE_SOURCE_PERMISSIONS - COMPONENT ${target}_Runtime) - - install( - DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/data/ - DESTINATION ${OBS_DATA_DESTINATION}/${destination} - USE_SOURCE_PERMISSIONS - COMPONENT obs_${target} - EXCLUDE_FROM_ALL) - endif() -endfunction() - -# Helper function to set up specific resource files for targets -function(add_target_resource target resource destination) - install( - FILES ${resource} - DESTINATION ${OBS_DATA_DESTINATION}/${destination} - COMPONENT ${target}_Runtime) - - install( - FILES ${resource} - DESTINATION ${OBS_DATA_DESTINATION}/${destination} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL) -endfunction() - -# Helper function to set up OBS app target -function(setup_obs_app target) - setup_binary_target(${target}) - - get_property(OBS_MODULE_LIST GLOBAL PROPERTY OBS_MODULE_LIST) - list(LENGTH OBS_MODULE_LIST _LEN) - if(_LEN GREATER 0) - add_dependencies(${target} ${OBS_MODULE_LIST}) - endif() - - get_property(OBS_SCRIPTING_MODULE_LIST GLOBAL PROPERTY OBS_SCRIPTING_MODULE_LIST) - list(LENGTH OBS_SCRIPTING_MODULE_LIST _LEN) - if(_LEN GREATER 0) - add_dependencies(${target} ${OBS_SCRIPTING_MODULE_LIST}) - endif() - - if(TARGET OBS::browser) - setup_target_browser(${target}) - endif() - - if(TARGET OBS::ffmpeg-mux) - add_dependencies(${target} OBS::ffmpeg-mux) - endif() - - add_custom_command( - TARGET ${target} - POST_BUILD - COMMAND "${CMAKE_COMMAND}" -E env DESTDIR= "${CMAKE_COMMAND}" --install .. --config $ --prefix - ${OBS_OUTPUT_DIR}/$ --component obs_rundir > "$,nul,/dev/null>" - COMMENT "Installing OBS rundir" - VERBATIM) -endfunction() - -# Helper function to do additional setup for browser source plugin -function(setup_target_browser target) - install( - DIRECTORY ${CEF_ROOT_DIR}/Resources/ - DESTINATION ${OBS_PLUGIN_DESTINATION} - COMPONENT ${target}_Runtime) - - install( - DIRECTORY ${CEF_ROOT_DIR}/Release/ - DESTINATION ${OBS_PLUGIN_DESTINATION} - COMPONENT ${target}_Runtime) - - install( - DIRECTORY ${CEF_ROOT_DIR}/Resources/ - DESTINATION ${OBS_OUTPUT_DIR}/$/${OBS_PLUGIN_DESTINATION} - COMPONENT obs_rundir - EXCLUDE_FROM_ALL) - - install( - DIRECTORY ${CEF_ROOT_DIR}/Release/ - DESTINATION ${OBS_OUTPUT_DIR}/$/${OBS_PLUGIN_DESTINATION} - COMPONENT obs_rundir - EXCLUDE_FROM_ALL) -endfunction() - -# Helper function to export target to build and install tree. Allows usage of `find_package(libobs)` by other build -# trees -function(export_target target) - set(CMAKE_EXPORT_PACKAGE_REGISTRY OFF) - - if(OS_LINUX OR OS_FREEBSD) - set(_EXCLUDE "") - else() - set(_EXCLUDE "EXCLUDE_FROM_ALL") - endif() - install( - TARGETS ${target} - EXPORT ${target}Targets - RUNTIME DESTINATION ${OBS_EXECUTABLE_DESTINATION} - COMPONENT obs_libraries - ${_EXCLUDE} - LIBRARY DESTINATION ${OBS_LIBRARY_DESTINATION} - COMPONENT obs_libraries - ${_EXCLUDE} - ARCHIVE DESTINATION ${OBS_LIBRARY_DESTINATION} - COMPONENT obs_libraries - ${_EXCLUDE} - INCLUDES - DESTINATION ${OBS_INCLUDE_DESTINATION} - PUBLIC_HEADER - DESTINATION ${OBS_INCLUDE_DESTINATION} - COMPONENT obs_libraries - ${_EXCLUDE}) - - get_target_property(target_type ${target} TYPE) - if(NOT target_type STREQUAL INTERFACE_LIBRARY) - include(GenerateExportHeader) - generate_export_header(${target} EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/${target}_EXPORT.h) - - target_sources(${target} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/${target}_EXPORT.h) - endif() - - set(TARGETS_EXPORT_NAME "${target}Targets") - include(CMakePackageConfigHelpers) - configure_package_config_file( - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${target}Config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${target}Config.cmake - INSTALL_DESTINATION ${OBS_CMAKE_DESTINATION}/${target} - PATH_VARS OBS_PLUGIN_DESTINATION OBS_DATA_DESTINATION) - - write_basic_package_version_file( - ${CMAKE_CURRENT_BINARY_DIR}/${target}ConfigVersion.cmake - VERSION ${OBS_VERSION_CANONICAL} - COMPATIBILITY SameMajorVersion) - - export( - EXPORT ${target}Targets - FILE ${CMAKE_CURRENT_BINARY_DIR}/${TARGETS_EXPORT_NAME}.cmake - NAMESPACE OBS::) - - export(PACKAGE "${target}") - - install( - EXPORT ${TARGETS_EXPORT_NAME} - FILE ${TARGETS_EXPORT_NAME}.cmake - NAMESPACE OBS:: - DESTINATION ${OBS_CMAKE_DESTINATION}/${target} - COMPONENT obs_libraries - ${_EXCLUDE}) - - install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/${target}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${target}ConfigVersion.cmake - DESTINATION ${OBS_CMAKE_DESTINATION}/${target} - COMPONENT obs_libraries - ${_EXCLUDE}) -endfunction() - -# Helper function to define available graphics modules for targets -function(define_graphic_modules target) - foreach(_GRAPHICS_API metal d3d11 opengl d3d9) - string(TOUPPER ${_GRAPHICS_API} _GRAPHICS_API_u) - if(TARGET OBS::libobs-${_GRAPHICS_API}) - if(OS_POSIX AND NOT LINUX_PORTABLE) - target_compile_definitions(${target} - PRIVATE DL_${_GRAPHICS_API_u}="$") - else() - target_compile_definitions(${target} - PRIVATE DL_${_GRAPHICS_API_u}="$") - endif() - add_dependencies(${target} OBS::libobs-${_GRAPHICS_API}) - else() - target_compile_definitions(${target} PRIVATE DL_${_GRAPHICS_API_u}="") - endif() - endforeach() -endfunction() - -macro(find_qt) - set(multiValueArgs COMPONENTS COMPONENTS_WIN COMPONENTS_MAC COMPONENTS_LINUX) - cmake_parse_arguments(FIND_QT "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - set(QT_NO_CREATE_VERSIONLESS_TARGETS ON) - find_package( - Qt6 - COMPONENTS Core - REQUIRED) - set(QT_NO_CREATE_VERSIONLESS_TARGETS OFF) - - if(OS_WINDOWS) - find_package( - Qt6 - COMPONENTS ${FIND_QT_COMPONENTS} ${FIND_QT_COMPONENTS_WIN} - REQUIRED) - elseif(OS_MACOS) - find_package( - Qt6 - COMPONENTS ${FIND_QT_COMPONENTS} ${FIND_QT_COMPONENTS_MAC} - REQUIRED) - else() - find_package( - Qt6 - COMPONENTS ${FIND_QT_COMPONENTS} ${FIND_QT_COMPONENTS_LINUX} - REQUIRED) - endif() - - list(APPEND FIND_QT_COMPONENTS "Core") - - if("Gui" IN_LIST FIND_QT_COMPONENTS_LINUX) - list(APPEND FIND_QT_COMPONENTS_LINUX "GuiPrivate") - endif() - - foreach(_COMPONENT IN LISTS FIND_QT_COMPONENTS FIND_QT_COMPONENTS_WIN FIND_QT_COMPONENTS_MAC FIND_QT_COMPONENTS_LINUX) - if(NOT TARGET Qt::${_COMPONENT} AND TARGET Qt6::${_COMPONENT}) - - add_library(Qt::${_COMPONENT} INTERFACE IMPORTED) - set_target_properties(Qt::${_COMPONENT} PROPERTIES INTERFACE_LINK_LIBRARIES "Qt6::${_COMPONENT}") - endif() - endforeach() -endmacro() - -# Idea adapted from: https://github.com/edsiper/cmake-options -macro(set_option option value) - set(${option} - ${value} - CACHE INTERNAL "") -endmacro() - -function(obs_status status text) - set(_OBS_STATUS_DISABLED "OBS: DISABLED ") - set(_OBS_STATUS_ENABLED "OBS: ENABLED ") - set(_OBS_STATUS "OBS: ") - if(status STREQUAL "DISABLED") - message(STATUS "${_OBS_STATUS_DISABLED}${text}") - elseif(status STREQUAL "ENABLED") - message(STATUS "${_OBS_STATUS_ENABLED}${text}") - else() - message(${status} "${_OBS_STATUS}${text}") - endif() -endfunction() - -if(OS_WINDOWS) - include(ObsHelpers_Windows) -elseif(OS_MACOS) - include(ObsHelpers_macOS) -elseif(OS_POSIX) - include(ObsHelpers_Linux) -endif() - -# ###################################################################################################################### -# LEGACY FALLBACKS # -# ###################################################################################################################### - -# Helper function to install OBS plugin with associated resource directory -function(_install_obs_plugin_with_data target source) - setup_plugin_target(${target}) - - if(NOT ${source} STREQUAL "data" - AND IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${source}" - AND NOT OS_MACOS) - install( - DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${source}/ - DESTINATION ${OBS_DATA_DESTINATION}/obs-plugins/${target} - USE_SOURCE_PERMISSIONS - COMPONENT ${target}_Runtime) - - install( - DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${source}/ - DESTINATION ${OBS_OUTPUT_DIR}/$/${OBS_DATA_DESTINATION}/obs-plugins/${target} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL) - - if(OS_WINDOWS AND DEFINED ENV{obsInstallerTempDir}) - install( - DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${source}/ - DESTINATION $ENV{obsInstallerTempDir}/${OBS_DATA_DESTINATION}/obs-plugins/${target} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL) - endif() - endif() -endfunction() - -# Helper function to install OBS plugin -function(_install_obs_plugin target) - setup_plugin_target(${target}) -endfunction() - -# Helper function to install data for a target only -function(_install_obs_datatarget target destination) - install( - TARGETS ${target} - LIBRARY DESTINATION ${OBS_DATA_DESTINATION}/${destination} - COMPONENT ${target}_Runtime - NAMELINK_COMPONENT ${target}_Development - RUNTIME DESTINATION ${OBS_DATA_DESTINATION}/${destination} COMPONENT ${target}_Runtime) - - install( - TARGETS ${target} - LIBRARY DESTINATION ${OBS_DATA_DESTINATION}/${destination} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL - RUNTIME DESTINATION ${OBS_DATA_DESTINATION}/${destination} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL) - - if(OS_WINDOWS) - if(MSVC) - add_target_resource(${target} "$" "${destination}" OPTIONAL) - endif() - - if(DEFINED ENV{obsInstallerTempDir}) - install( - TARGETS ${target} - RUNTIME - DESTINATION $ENV{obsInstallerTempDir}/${OBS_DATA_DESTINATION}/${destination}/$ - COMPONENT obs_${target} - EXCLUDE_FROM_ALL - LIBRARY - DESTINATION $ENV{obsInstallerTempDir}/${OBS_DATA_DESTINATION}/${destination}/$ - COMPONENT obs_${target} - EXCLUDE_FROM_ALL) - endif() - endif() - - add_custom_command( - TARGET ${target} - POST_BUILD - COMMAND "${CMAKE_COMMAND}" -E env DESTDIR= "${CMAKE_COMMAND}" --install .. --config $ --prefix - ${OBS_OUTPUT_DIR}/$ --component obs_${target} > "$,nul,/dev/null>" - COMMENT "Installing ${target} to OBS rundir" - VERBATIM) -endfunction() - -# legacy_check: Macro to check for CMake framework version and include legacy list file -macro(legacy_check) - if(OBS_CMAKE_VERSION VERSION_LESS 3.0.0) - if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/cmake/legacy.cmake) - include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/legacy.cmake) - endif() - return() - endif() -endmacro() diff --git a/cmake/Modules/ObsHelpers_Linux.cmake b/cmake/Modules/ObsHelpers_Linux.cmake deleted file mode 100644 index ced6c9ba3ec837..00000000000000 --- a/cmake/Modules/ObsHelpers_Linux.cmake +++ /dev/null @@ -1,104 +0,0 @@ -# Helper function to set up runtime or library targets -function(setup_binary_target target) - set_target_properties( - ${target} - PROPERTIES BUILD_RPATH - "${OBS_OUTPUT_DIR}/$/${OBS_EXECUTABLE_DESTINATION}$<$:/${_ARCH_SUFFIX}bit>") - - _setup_binary_target(${target}) -endfunction() - -# Helper function to export target to build and install tree Allows usage of `find_package(libobs)` by other build trees -function(export_target target) - _export_target(${ARGV}) - - if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig") - export_target_pkgconf(${target}) - endif() -endfunction() - -# Helper function to build pkgconfig file for target -function(export_target_pkgconf target) - get_target_property(_TARGET_DEPENDENCIES ${target} INTERFACE_LINK_LIBRARIES) - get_target_property(_TARGET_DEFINITIONS ${target} INTERFACE_COMPILE_DEFINITIONS) - get_target_property(_TARGET_OPTIONS ${target} INTERFACE_COMPILE_OPTIONS) - - foreach(_LIBRARY IN LISTS _TARGET_DEPENDENCIES) - get_target_property(_LINK_LIBRARY ${_LIBRARY} INTERFACE_LINK_LIBRARIES) - get_target_property(_LINK_DEFINITIONS ${_LIBRARY} INTERFACE_COMPILE_DEFINITIONS) - get_target_property(_LINK_OPTIONS ${_LIBRARY} INTERFACE_COMPILE_OPTIONS) - - if(NOT "${_LINK_LIBRARY}" STREQUAL "_LINK_LIBRARY-NOTFOUND") - list(APPEND _LINKED_LIBRARIES "${_LINK_LIBRARY}") - endif() - - if(NOT "${_LINK_DEFINITIONS}" STREQUAL "_LINK_DEFINITIONS-NOTFOUND") - list(APPEND _LINKED_DEFINITIONS "${_LINK_DEFINITIONS}") - endif() - - if(NOT "${_LINK_OPTIONS}" STREQUAL "_LINK_OPTIONS-NOTFOUND") - list(APPEND _LINKED_OPTIONS "${_LINK_OPTIONS}") - endif() - endforeach() - - string(REPLACE ";" " " _LINKED_LIBRARIES "${_LINKED_LIBRARIES}") - string(REPLACE ";" " " _LINKED_DEFINITIONS "${_LINKED_DEFINITIONS}") - string(REPLACE ";" " " _LINKED_OPTIONS "${_LINKED_OPTIONS}") - - if(NOT "${_TARGET_DEFINITIONS}" STREQUAL "_TARGET_DEFINITIONS-NOTFOUND") - list(JOIN _TARGET_DEFINITIONS "-D" _TARGET_DEFINITIONS) - set(_TARGET_DEFINITIONS "-D${_TARGET_DEFINITIONS}") - else() - set(_TARGET_DEFINITIONS "") - endif() - - if(NOT "${_TARGET_OPTIONS}" STREQUAL "_TARGET_OPTIONS-NOTFOUND") - list(JOIN _TARGET_OPTIONS " " _TARGET_OPTIONS) - else() - set(_TARGET_OPTIONS "") - endif() - - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig/${target}.pc.in" "${target}.pc" @ONLY) - - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${target}.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") -endfunction() - -# Helper function to install header files -function(install_headers target) - install( - DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/" - DESTINATION ${OBS_INCLUDE_DESTINATION} - COMPONENT obs_libraries - FILES_MATCHING - PATTERN "*.h" - PATTERN "*.hpp" - PATTERN "obs-hevc.h" EXCLUDE - PATTERN "*-windows.h" EXCLUDE - PATTERN "audio-monitoring" EXCLUDE - PATTERN "util/apple" EXCLUDE - PATTERN "util/windows" EXCLUDE - PATTERN "cmake" EXCLUDE - PATTERN "pkgconfig" EXCLUDE - PATTERN "data" EXCLUDE) - - if(ENABLE_PULSEAUDIO) - install( - FILES "${CMAKE_CURRENT_SOURCE_DIR}/audio-monitoring/pulse/pulseaudio-wrapper.h" - DESTINATION "${OBS_INCLUDE_DESTINATION}/audio-monitoring/pulse/" - COMPONENT obs_libraries) - endif() - - if(ENABLE_HEVC) - install( - FILES "${CMAKE_CURRENT_SOURCE_DIR}/obs-hevc.h" - DESTINATION "${OBS_INCLUDE_DESTINATION}" - COMPONENT obs_libraries) - endif() - - if(NOT EXISTS "${OBS_INCLUDE_DESTINATION}/obsconfig.h") - install( - FILES "${CMAKE_BINARY_DIR}/config/obsconfig.h" - DESTINATION "${OBS_INCLUDE_DESTINATION}" - COMPONENT obs_libraries) - endif() -endfunction() diff --git a/cmake/Modules/ObsHelpers_Windows.cmake b/cmake/Modules/ObsHelpers_Windows.cmake deleted file mode 100644 index b85751410466e5..00000000000000 --- a/cmake/Modules/ObsHelpers_Windows.cmake +++ /dev/null @@ -1,457 +0,0 @@ -# Helper function to set up runtime or library targets -function(setup_binary_target target) - _setup_binary_target(${ARGV}) - - if(DEFINED ENV{OBS_InstallerTempDir}) - install( - TARGETS ${target} - RUNTIME DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_EXECUTABLE_DESTINATION} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL - LIBRARY DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_LIBRARY_DESTINATION} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL - PUBLIC_HEADER - DESTINATION ${OBS_INCLUDE_DESTINATION} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL) - - if(MSVC) - install( - FILES $ - CONFIGURATIONS "RelWithDebInfo" "Debug" - DESTINATION - $ENV{OBS_InstallerTempDir}/$,EXECUTABLE>,${OBS_EXECUTABLE_DESTINATION},${OBS_LIBRARY_DESTINATION}> - COMPONENT obs_${target} - OPTIONAL EXCLUDE_FROM_ALL) - endif() - endif() - - if(MSVC) - target_link_options(${target} PRIVATE /PDBALTPATH:$) - - install( - FILES $ - CONFIGURATIONS "RelWithDebInfo" "Debug" - DESTINATION - $,EXECUTABLE>,${OBS_EXECUTABLE_DESTINATION},${OBS_LIBRARY_DESTINATION}> - COMPONENT ${target}_Runtime - OPTIONAL) - - install( - FILES $ - CONFIGURATIONS "RelWithDebInfo" "Debug" - DESTINATION - $,EXECUTABLE>,${OBS_EXECUTABLE_DESTINATION},${OBS_LIBRARY_DESTINATION}> - COMPONENT obs_${target} - OPTIONAL EXCLUDE_FROM_ALL) - endif() - - if(${target} STREQUAL "libobs") - setup_libobs_target(${target}) - endif() -endfunction() - -# Helper function to set up OBS plugin targets -function(setup_plugin_target target) - _setup_plugin_target(${ARGV}) - - if(MSVC) - target_link_options(${target} PRIVATE /PDBALTPATH:$) - - install( - FILES $ - CONFIGURATIONS "RelWithDebInfo" "Debug" - DESTINATION ${OBS_PLUGIN_DESTINATION} - COMPONENT ${target}_Runtime - OPTIONAL) - - install( - FILES $ - CONFIGURATIONS "RelWithDebInfo" "Debug" - DESTINATION ${OBS_PLUGIN_DESTINATION} - COMPONENT obs_${target} - OPTIONAL EXCLUDE_FROM_ALL) - endif() - - if(DEFINED ENV{OBS_InstallerTempDir}) - install( - TARGETS ${target} - RUNTIME DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_PLUGIN_DESTINATION} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL - LIBRARY DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_PLUGIN_DESTINATION} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL) - - if(MSVC) - install( - FILES $ - CONFIGURATIONS "RelWithDebInfo" "Debug" - DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_PLUGIN_DESTINATION} - COMPONENT obs_${target} - OPTIONAL EXCLUDE_FROM_ALL) - endif() - endif() -endfunction() - -# Helper function to set up OBS scripting plugin targets -function(setup_script_plugin_target target) - _setup_script_plugin_target(${ARGV}) - - if(MSVC) - target_link_options(${target} PRIVATE /PDBALTPATH:$) - - install( - FILES $ - CONFIGURATIONS "RelWithDebInfo" "Debug" - DESTINATION ${OBS_SCRIPT_PLUGIN_DESTINATION} - COMPONENT obs_${target} - OPTIONAL EXCLUDE_FROM_ALL) - endif() - - if(DEFINED ENV{OBS_InstallerTempDir}) - install( - TARGETS ${target} - RUNTIME DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_SCRIPT_PLUGIN_DESTINATION} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL - LIBRARY DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_SCRIPT_PLUGIN_DESTINATION} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL) - - if(MSVC) - install( - FILES $ - CONFIGURATIONS "RelWithDebInfo" "Debug" - DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_SCRIPT_PLUGIN_DESTINATION} - COMPONENT obs_${target} - OPTIONAL EXCLUDE_FROM_ALL) - endif() - - if(${target} STREQUAL "obspython" AND ${_ARCH_SUFFIX} EQUAL 64) - install( - FILES "$/$.py" - DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_SCRIPT_PLUGIN_DESTINATION} - COMPONENT obs_${target} - EXCLUDE_FROM_ALL) - endif() - endif() -endfunction() - -# Helper function to set up target resources (e.g. L10N files) -function(setup_target_resources target destination) - _setup_target_resources(${ARGV}) - - if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/data") - if(${_ARCH_SUFFIX} EQUAL 64 AND DEFINED ENV{OBS_InstallerTempDir}) - - install( - DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/data/ - DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_DATA_DESTINATION}/${destination} - USE_SOURCE_PERMISSIONS - COMPONENT obs_${target} - EXCLUDE_FROM_ALL) - endif() - endif() -endfunction() - -# Helper function to set up specific resource files for targets -function(add_target_resource) - set(target ${ARGV0}) - set(resource ${ARGV1}) - set(destination ${ARGV2}) - if(${ARGC} EQUAL 4) - set(optional ${ARGV3}) - else() - set(optional "") - endif() - - install( - FILES ${resource} - DESTINATION ${OBS_DATA_DESTINATION}/${destination} - COMPONENT ${target}_Runtime - ${optional}) - - install( - FILES ${resource} - DESTINATION ${OBS_DATA_DESTINATION}/${destination} - COMPONENT obs_${target} - ${optional} EXCLUDE_FROM_ALL) - - if(DEFINED ENV{OBS_InstallerTempDir}) - install( - FILES ${resource} - DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_DATA_DESTINATION}/${destination} - COMPONENT obs_${target} - ${optional} EXCLUDE_FROM_ALL) - endif() -endfunction() - -# Helper function to set up OBS app target -function(setup_obs_app target) - # detect outdated obs-browser submodule - if(NOT TARGET OBS::browser AND TARGET obs-browser) - if(MSVC) - target_compile_options(obs-browser PRIVATE $,/MTd,/MT>) - - target_compile_options(obs-browser-page PRIVATE $,/MTd,/MT>) - endif() - - target_link_options(obs-browser PRIVATE "LINKER:/IGNORE:4099") - - target_link_options(obs-browser-page PRIVATE "LINKER:/IGNORE:4099" "LINKER:/SUBSYSTEM:WINDOWS") - endif() - - _setup_obs_app(${ARGV}) - - if(MSVC) - include(CopyMSVCBins) - endif() -endfunction() - -# Helper function to export target to build and install tree. Allows usage of `find_package(libobs)` by other build -# trees -function(export_target target) - set(CMAKE_EXPORT_PACKAGE_REGISTRY OFF) - - install( - TARGETS ${target} - EXPORT ${target}Targets - RUNTIME DESTINATION "${OBS_EXECUTABLE_EXPORT_DESTINATION}" - COMPONENT obs_libraries - EXCLUDE_FROM_ALL - LIBRARY DESTINATION "${OBS_LIBRARY_EXPORT_DESTINATION}" - COMPONENT obs_libraries - EXCLUDE_FROM_ALL - ARCHIVE DESTINATION "${OBS_LIBRARY_EXPORT_DESTINATION}" - COMPONENT obs_libraries - EXCLUDE_FROM_ALL - INCLUDES - DESTINATION "${OBS_INCLUDE_DESTINATION}" - PUBLIC_HEADER - DESTINATION "${OBS_INCLUDE_DESTINATION}" - COMPONENT obs_libraries - EXCLUDE_FROM_ALL) - - get_target_property(target_type ${target} TYPE) - if(MSVC AND NOT target_type STREQUAL INTERFACE_LIBRARY) - install( - FILES $ - CONFIGURATIONS "RelWithDebInfo" "Debug" - DESTINATION "${OBS_EXECUTABLE_EXPORT_DESTINATION}" - COMPONENT obs_libraries - OPTIONAL EXCLUDE_FROM_ALL) - endif() - - include(GenerateExportHeader) - generate_export_header(${target} EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/${target}_EXPORT.h") - - target_sources(${target} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/${target}_EXPORT.h") - - set(TARGETS_EXPORT_NAME "${target}Targets") - include(CMakePackageConfigHelpers) - configure_package_config_file( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/${target}Config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/${target}Config.cmake" - INSTALL_DESTINATION ${OBS_CMAKE_DESTINATION} - PATH_VARS OBS_PLUGIN_DESTINATION OBS_DATA_DESTINATION) - - write_basic_package_version_file( - ${CMAKE_CURRENT_BINARY_DIR}/${target}ConfigVersion.cmake - VERSION ${OBS_VERSION_CANONICAL} - COMPATIBILITY SameMajorVersion) - - export( - EXPORT ${target}Targets - FILE "${CMAKE_CURRENT_BINARY_DIR}/${TARGETS_EXPORT_NAME}.cmake" - NAMESPACE OBS::) - - export(PACKAGE "${target}") - - install( - EXPORT ${TARGETS_EXPORT_NAME} - FILE ${TARGETS_EXPORT_NAME}.cmake - NAMESPACE OBS:: - DESTINATION ${OBS_CMAKE_DESTINATION} - COMPONENT obs_libraries - EXCLUDE_FROM_ALL) - - install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/${target}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${target}ConfigVersion.cmake - DESTINATION ${OBS_CMAKE_DESTINATION} - COMPONENT obs_libraries - EXCLUDE_FROM_ALL) -endfunction() - -# Helper function to do additional setup for browser source plugin -function(setup_target_browser target) - install( - DIRECTORY ${CEF_ROOT_DIR}/Resources/ - DESTINATION ${OBS_PLUGIN_DESTINATION} - COMPONENT ${target}_Runtime) - - install( - DIRECTORY ${CEF_ROOT_DIR}/Resources/ - DESTINATION ${OBS_OUTPUT_DIR}/$/${OBS_PLUGIN_DESTINATION} - COMPONENT obs_rundir - EXCLUDE_FROM_ALL) - - if(DEFINED ENV{OBS_InstallerTempDir}) - install( - DIRECTORY ${CEF_ROOT_DIR}/Resources/ - DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_PLUGIN_DESTINATION} - COMPONENT obs_rundir - EXCLUDE_FROM_ALL) - endif() - - set(_ADDITIONAL_BROWSER_FILES - "libcef.dll" - "libEGL.dll" - "libGLESv2.dll" - "snapshot_blob.bin" - "v8_context_snapshot.bin" - "natives_blob.bin" - "chrome_elf.dll") - - foreach(_ADDITIONAL_BROWSER_FILE IN LISTS _ADDITIONAL_BROWSER_FILES) - list(REMOVE_ITEM _ADDITIONAL_BROWSER_FILES "${_ADDITIONAL_BROWSER_FILE}") - if(EXISTS "${CEF_ROOT_DIR}/Release/${_ADDITIONAL_BROWSER_FILE}") - list(APPEND _ADDITIONAL_BROWSER_FILES "${CEF_ROOT_DIR}/Release/${_ADDITIONAL_BROWSER_FILE}") - endif() - endforeach() - - install( - FILES ${_ADDITIONAL_BROWSER_FILES} - DESTINATION ${OBS_PLUGIN_DESTINATION}/ - COMPONENT ${target}_Runtime) - - install( - FILES ${_ADDITIONAL_BROWSER_FILES} - DESTINATION ${OBS_OUTPUT_DIR}/$/${OBS_PLUGIN_DESTINATION}/ - COMPONENT obs_rundir - EXCLUDE_FROM_ALL) - - if(DEFINED ENV{OBS_InstallerTempDir}) - install( - FILES ${_ADDITIONAL_BROWSER_FILES} - DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_PLUGIN_DESTINATION}/ - COMPONENT obs_rundir - EXCLUDE_FROM_ALL) - endif() -endfunction() - -# Helper function to gather external libraries depended-on by libobs -function(setup_libobs_target target) - set(_ADDITIONAL_FILES "${CMAKE_SOURCE_DIR}/additional_install_files") - - if(DEFINED ENV{OBS_AdditionalInstallFiles}) - set(_ADDITIONAL_FILES "$ENV{OBS_AdditionalInstallFiles}") - endif() - - if(NOT INSTALLER_RUN) - list(APPEND _LIBOBS_FIXUPS "misc:." "data:${OBS_DATA_DESTINATION}" "libs${_ARCH_SUFFIX}:${OBS_LIBRARY_DESTINATION}" - "exec${_ARCH_SUFFIX}:${OBS_EXECUTABLE_DESTINATION}") - else() - list( - APPEND - _LIBOBS_FIXUPS - "misc:." - "data:${OBS_DATA_DESTINATION}" - "libs32:${OBS_LIBRARY32_DESTINATION}" - "libs64:${OBS_LIBRARY64_DESTINATION}" - "exec32:${OBS_EXECUTABLE32_DESTINATION}" - "exec64:${OBS_EXECUTABLE64_DESTINATION}") - endif() - - foreach(_FIXUP IN LISTS _LIBOBS_FIXUPS) - string(REPLACE ":" ";" _FIXUP ${_FIXUP}) - list(GET _FIXUP 0 _SOURCE) - list(GET _FIXUP 1 _DESTINATION) - - install( - DIRECTORY ${_ADDITIONAL_FILES}/${_SOURCE}/ - DESTINATION ${_DESTINATION} - USE_SOURCE_PERMISSIONS - COMPONENT ${target}_Runtime - PATTERN ".gitignore" EXCLUDE) - - install( - DIRECTORY ${_ADDITIONAL_FILES}/${_SOURCE}/ - DESTINATION ${_DESTINATION} - USE_SOURCE_PERMISSIONS - COMPONENT obs_rundir - EXCLUDE_FROM_ALL - PATTERN ".gitignore" EXCLUDE) - - if(_SOURCE MATCHES "(libs|exec)(32|64)?") - install( - DIRECTORY ${_ADDITIONAL_FILES}/${_SOURCE}$,d,r>/ - DESTINATION ${_DESTINATION} - USE_SOURCE_PERMISSIONS - COMPONENT ${target}_Runtime - PATTERN ".gitignore" EXCLUDE) - - install( - DIRECTORY ${_ADDITIONAL_FILES}/${_SOURCE}$,d,r>/ - DESTINATION ${_DESTINATION} - USE_SOURCE_PERMISSIONS - COMPONENT obs_rundir - EXCLUDE_FROM_ALL - PATTERN ".gitignore" EXCLUDE) - endif() - endforeach() -endfunction() - -# Helper function to compile artifacts for multi-architecture installer -function(generate_multiarch_installer) - if(NOT DEFINED ENV{OBS_InstallerTempDir} AND NOT DEFINED ENV{obsInstallerTempDir}) - obs_status(FATAL_ERROR - "Function generate_multiarch_installer requires environment variable 'OBS_InstallerTempDir' to be set") - endif() - - add_custom_target(installer_files ALL) - - setup_libobs_target(installer_files) - - install( - DIRECTORY "$ENV{OBS_InstallerTempDir}/" - DESTINATION "." - USE_SOURCE_PERMISSIONS) -endfunction() - -# Helper function to install header files -function(install_headers target) - install( - DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/" - DESTINATION ${OBS_INCLUDE_DESTINATION} - COMPONENT obs_libraries - EXCLUDE_FROM_ALL FILES_MATCHING - PATTERN "*.h" - PATTERN "*.hpp" - PATTERN "obs-hevc.h" EXCLUDE - PATTERN "obs-nix-*.h" EXCLUDE - PATTERN "*-posix.h" EXCLUDE - PATTERN "audio-monitoring/null" EXCLUDE - PATTERN "audio-monitoring/osx" EXCLUDE - PATTERN "audio-monitoring/pulse" EXCLUDE - PATTERN "util/apple" EXCLUDE - PATTERN "cmake" EXCLUDE - PATTERN "pkgconfig" EXCLUDE - PATTERN "data" EXCLUDE) - - if(ENABLE_HEVC) - install( - FILES "${CMAKE_CURRENT_SOURCE_DIR}/obs-hevc.h" - DESTINATION "${OBS_INCLUDE_DESTINATION}" - COMPONENT obs_libraries - EXCLUDE_FROM_ALL) - endif() - - if(NOT EXISTS "${OBS_INCLUDE_DESTINATION}/obsconfig.h") - install( - FILES "${CMAKE_BINARY_DIR}/config/obsconfig.h" - DESTINATION "${OBS_INCLUDE_DESTINATION}" - COMPONENT obs_libraries - EXCLUDE_FROM_ALL) - endif() -endfunction() diff --git a/cmake/Modules/ObsHelpers_macOS.cmake b/cmake/Modules/ObsHelpers_macOS.cmake deleted file mode 100644 index 91a7af183b82ce..00000000000000 --- a/cmake/Modules/ObsHelpers_macOS.cmake +++ /dev/null @@ -1,457 +0,0 @@ -# Helper function to set up runtime or library targets -function(setup_binary_target target) - set_target_properties( - ${target} - PROPERTIES XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.obsproject.${target}" - XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_SOURCE_DIR}/cmake/bundle/macOS/entitlements.plist") - - set(MACOSX_PLUGIN_BUNDLE_NAME - "${target}" - PARENT_SCOPE) - set(MACOSX_PLUGIN_GUI_IDENTIFIER - "com.obsproject.${target}" - PARENT_SCOPE) - set(MACOSX_PLUGIN_BUNDLE_VERSION - "${MACOSX_BUNDLE_BUNDLE_VERSION}" - PARENT_SCOPE) - set(MACOSX_PLUGIN_SHORT_VERSION_STRING - "${MACOSX_BUNDLE_SHORT_VERSION_STRING}" - PARENT_SCOPE) - set(MACOSX_PLUGIN_EXECUTABLE_NAME - "${target}" - PARENT_SCOPE) - - if(${target} STREQUAL libobs) - setup_framework_target(${target}) - set_property(GLOBAL APPEND PROPERTY OBS_FRAMEWORK_LIST "${target}") - elseif(NOT ${target} STREQUAL obs-ffmpeg-mux AND NOT ${target} STREQUAL mac-dal-plugin) - set_property(GLOBAL APPEND PROPERTY OBS_FRAMEWORK_LIST "${target}") - endif() -endfunction() - -# Helper function to set-up framework targets on macOS -function(setup_framework_target target) - set_target_properties( - ${target} - PROPERTIES FRAMEWORK ON - FRAMEWORK_VERSION A - OUTPUT_NAME "${target}" - MACOSX_FRAMEWORK_IDENTIFIER "com.obsproject.${target}" - MACOSX_FRAMEWORK_INFO_PLIST "${CMAKE_SOURCE_DIR}/cmake/bundle/macOS/Plugin-Info.plist.in" - XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.obsproject.${target}") - - install( - TARGETS ${target} - EXPORT "${target}Targets" - FRAMEWORK DESTINATION "Frameworks" - COMPONENT obs_libraries - EXCLUDE_FROM_ALL - INCLUDES - DESTINATION Frameworks/$.framework/Headers - PUBLIC_HEADER - DESTINATION Frameworks/$.framework/Headers - COMPONENT obs_libraries - EXCLUDE_FROM_ALL) -endfunction() - -# Helper function to set up OBS plugin targets -function(setup_plugin_target target) - set(MACOSX_PLUGIN_BUNDLE_NAME - "${target}" - PARENT_SCOPE) - set(MACOSX_PLUGIN_GUI_IDENTIFIER - "com.obsproject.${target}" - PARENT_SCOPE) - set(MACOSX_PLUGIN_BUNDLE_VERSION - "${MACOSX_BUNDLE_BUNDLE_VERSION}" - PARENT_SCOPE) - set(MACOSX_PLUGIN_SHORT_VERSION_STRING - "${MACOSX_BUNDLE_SHORT_VERSION_STRING}" - PARENT_SCOPE) - set(MACOSX_PLUGIN_EXECUTABLE_NAME - "${target}" - PARENT_SCOPE) - set(MACOSX_PLUGIN_BUNDLE_TYPE - "BNDL" - PARENT_SCOPE) - - set_target_properties( - ${target} - PROPERTIES BUNDLE ON - BUNDLE_EXTENSION "plugin" - OUTPUT_NAME "${target}" - MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/cmake/bundle/macOS/Plugin-Info.plist.in" - XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.obsproject.${target}" - XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_SOURCE_DIR}/cmake/bundle/macOS/entitlements.plist") - - set_property(GLOBAL APPEND PROPERTY OBS_MODULE_LIST "${target}") - obs_status(ENABLED "${target}") - - install_bundle_resources(${target}) -endfunction() - -# Helper function to set up OBS scripting plugin targets -function(setup_script_plugin_target target) - set_target_properties( - ${target} - PROPERTIES XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.obsproject.${target}" - XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_SOURCE_DIR}/cmake/bundle/macOS/entitlements.plist") - - set_property(GLOBAL APPEND PROPERTY OBS_SCRIPTING_MODULE_LIST "${target}") - obs_status(ENABLED "${target}") -endfunction() - -# Helper function to set up target resources (e.g. L10N files) -function(setup_target_resources target destination) - install_bundle_resources(${target}) -endfunction() - -# Helper function to set up plugin resources inside plugin bundle -function(install_bundle_resources target) - if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/data") - file(GLOB_RECURSE _DATA_FILES "${CMAKE_CURRENT_SOURCE_DIR}/data/*") - foreach(_DATA_FILE IN LISTS _DATA_FILES) - file(RELATIVE_PATH _RELATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/data/ ${_DATA_FILE}) - get_filename_component(_RELATIVE_PATH "${_RELATIVE_PATH}" PATH) - target_sources(${target} PRIVATE ${_DATA_FILE}) - set_source_files_properties(${_DATA_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources/${_RELATIVE_PATH}") - string(REPLACE "\\" "\\\\" _GROUP_NAME "${_RELATIVE_PATH}") - source_group("Resources\\${_GROUP_NAME}" FILES ${_DATA_FILE}) - endforeach() - endif() -endfunction() - -# Helper function to set up specific resource files for targets -function(add_target_resource target resource destination) - target_sources(${target} PRIVATE ${resource}) - set_source_files_properties(${resource} PROPERTIES MACOSX_PACKAGE_LOCATION Resources) -endfunction() - -# Helper function to set up OBS app target -function(setup_obs_app target) - set_target_properties( - ${target} - PROPERTIES BUILD_WITH_INSTALL_RPATH OFF - XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_SOURCE_DIR}/cmake/bundle/macOS/entitlements.plist" - XCODE_SCHEME_ENVIRONMENT "PYTHONDONTWRITEBYTECODE=1") - - install(TARGETS ${target} BUNDLE DESTINATION "." COMPONENT obs_app) - - if(TARGET OBS::browser) - setup_target_browser(${target}) - endif() - - setup_obs_frameworks(${target}) - setup_obs_modules(${target}) - setup_obs_bundle(${target}) -endfunction() - -# Helper function to do additional setup for browser source plugin -function(setup_target_browser target) - get_filename_component(_CEF_FRAMEWORK_NAME "${CEF_LIBRARY}" NAME) - - install( - DIRECTORY "${CEF_LIBRARY}" - DESTINATION "Frameworks" - USE_SOURCE_PERMISSIONS - COMPONENT obs_browser_dev - EXCLUDE_FROM_ALL) - - foreach(_CEF_LIBRARY IN ITEMS "libEGL" "libswiftshader_libEGL" "libGLESv2" "libswiftshader_libGLESv2" - "libvk_swiftshader") - set(_COMMAND - "/usr/bin/codesign --force --sign \\\"${OBS_BUNDLE_CODESIGN_IDENTITY}\\\" $<$:--options linker-signed > \\\"\${CMAKE_INSTALL_PREFIX}/Frameworks/${_CEF_FRAMEWORK_NAME}/Libraries/${_CEF_LIBRARY}.dylib\\\"" - ) - list(APPEND _CEF_CODESIGN_COMMANDS "execute_process(COMMAND /bin/sh -c \"${_COMMAND}\")") - endforeach() - - set(_COMMAND - "/usr/bin/codesign --force --sign \\\"${OBS_BUNDLE_CODESIGN_IDENTITY}\\\" $<$:--options linker-signed > --deep \\\"\${CMAKE_INSTALL_PREFIX}/Frameworks/${_CEF_FRAMEWORK_NAME}/Chromium Embedded Framework\\\"" - ) - - list(APPEND _CEF_CODESIGN_COMMANDS "execute_process(COMMAND /bin/sh -c \"${_COMMAND}\")") - string(REPLACE ";" "\n " _CEF_CODESIGN_COMMANDS "${_CEF_CODESIGN_COMMANDS}") - install( - CODE "${_CEF_CODESIGN_COMMANDS}" - COMPONENT obs_browser_dev - EXCLUDE_FROM_ALL) - - foreach(_SUFFIX IN ITEMS "_gpu" "_plugin" "_renderer" "") - if(TARGET OBS::browser-helper${_SUFFIX}) - add_dependencies(${target} OBS::browser-helper${_SUFFIX}) - - install( - DIRECTORY "$" - DESTINATION "Frameworks" - USE_SOURCE_PERMISSIONS - COMPONENT obs_browser_dev - EXCLUDE_FROM_ALL) - - if(NOT XCODE) - set(_COMMAND - "/usr/bin/codesign --force --sign \\\"${OBS_BUNDLE_CODESIGN_IDENTITY}\\\" $<$:--options linker-signed > \\\"\${CMAKE_INSTALL_PREFIX}/Frameworks/$.app\\\" > /dev/null" - ) - - install( - CODE "execute_process(COMMAND /bin/sh -c \"${_COMMAND}\")" - COMPONENT obs_browser_dev - EXCLUDE_FROM_ALL) - endif() - endif() - endforeach() - - add_custom_command( - TARGET ${target} - POST_BUILD - COMMAND "${CMAKE_COMMAND}" --install . --config $ --prefix $ - --component obs_browser_dev > /dev/null - COMMENT "Installing Chromium Embedded Framework for development" - VERBATIM) -endfunction() - -# Helper function to set-up OBS frameworks for macOS bundling -function(setup_obs_frameworks target) - get_property(OBS_FRAMEWORK_LIST GLOBAL PROPERTY OBS_FRAMEWORK_LIST) - install( - TARGETS ${OBS_FRAMEWORK_LIST} - RUNTIME DESTINATION "$.app/Contents/Frameworks/" COMPONENT obs_frameworks - LIBRARY DESTINATION "$.app/Contents/Frameworks/" COMPONENT obs_frameworks - FRAMEWORK DESTINATION "$.app/Contents/Frameworks/" COMPONENT obs_frameworks - PUBLIC_HEADER - DESTINATION "${OBS_INCLUDE_DESTINATION}" - COMPONENT obs_libraries - EXCLUDE_FROM_ALL) -endfunction() - -# Helper function to set-up OBS plugins and helper binaries for macOS bundling -function(setup_obs_modules target) - - get_property(OBS_MODULE_LIST GLOBAL PROPERTY OBS_MODULE_LIST) - list(LENGTH OBS_MODULE_LIST _LEN) - if(_LEN GREATER 0) - add_dependencies(${target} ${OBS_MODULE_LIST}) - - install( - TARGETS ${OBS_MODULE_LIST} - LIBRARY DESTINATION "PlugIns" - COMPONENT obs_plugin_dev - EXCLUDE_FROM_ALL) - - install( - TARGETS ${OBS_MODULE_LIST} - LIBRARY DESTINATION $.app/Contents/PlugIns - COMPONENT obs_plugins - NAMELINK_COMPONENT ${target}_Development) - endif() - - get_property(OBS_SCRIPTING_MODULE_LIST GLOBAL PROPERTY OBS_SCRIPTING_MODULE_LIST) - list(LENGTH OBS_SCRIPTING_MODULE_LIST _LEN) - if(_LEN GREATER 0) - add_dependencies(${target} ${OBS_SCRIPTING_MODULE_LIST}) - - install( - TARGETS ${OBS_SCRIPTING_MODULE_LIST} - LIBRARY DESTINATION "PlugIns" - COMPONENT obs_plugin_dev - EXCLUDE_FROM_ALL) - - if(TARGET obspython) - install( - FILES "$/obspython.py" - DESTINATION "Resources" - COMPONENT obs_plugin_dev - EXCLUDE_FROM_ALL) - endif() - - install(TARGETS ${OBS_SCRIPTING_MODULE_LIST} LIBRARY DESTINATION $.app/Contents/PlugIns - COMPONENT obs_scripting_plugins) - endif() - - if(TARGET obs-ffmpeg-mux) - add_dependencies(${target} obs-ffmpeg-mux) - - install(TARGETS obs-ffmpeg-mux RUNTIME DESTINATION $.app/Contents/MacOS - COMPONENT obs_plugins) - - install( - PROGRAMS $ - DESTINATION "MacOS" - COMPONENT obs_plugin_dev - EXCLUDE_FROM_ALL) - - set(_COMMAND - "/usr/bin/codesign --force --sign \\\"${OBS_BUNDLE_CODESIGN_IDENTITY}\\\" $<$:--options linker-signed > \\\"\${CMAKE_INSTALL_PREFIX}/MacOS/$\\\" > /dev/null" - ) - - install( - CODE "execute_process(COMMAND /bin/sh -c \"${_COMMAND}\")" - COMPONENT obs_plugin_dev - EXCLUDE_FROM_ALL) - - endif() - - if(TARGET mac-dal-plugin) - add_dependencies(${target} mac-dal-plugin) - - install( - TARGETS mac-dal-plugin - LIBRARY DESTINATION "Resources" - COMPONENT obs_plugin_dev - EXCLUDE_FROM_ALL) - endif() - - add_custom_command( - TARGET ${target} - POST_BUILD - COMMAND "${CMAKE_COMMAND}" --install .. --config $ --prefix $ - --component obs_plugin_dev > /dev/null - COMMENT "Installing OBS plugins for development" - VERBATIM) -endfunction() - -# Helper function to finalize macOS app bundles -function(setup_obs_bundle target) - install( - CODE " - set(_DEPENDENCY_PREFIX \"${CMAKE_PREFIX_PATH}\") - set(_BUILD_FOR_DISTRIBUTION \"${BUILD_FOR_DISTRIBUTION}\") - set(_BUNDLENAME \"$.app\") - set(_BUNDLER_COMMAND \"${CMAKE_SOURCE_DIR}/cmake/bundle/macOS/dylibbundler\") - set(_CODESIGN_IDENTITY \"${OBS_BUNDLE_CODESIGN_IDENTITY}\") - set(_CODESIGN_ENTITLEMENTS \"${CMAKE_SOURCE_DIR}/cmake/bundle/macOS\")" - COMPONENT obs_resources) - - if(SPARKLE_APPCAST_URL AND SPARKLE_PUBLIC_KEY) - add_custom_command( - TARGET ${target} - POST_BUILD - COMMAND - /bin/sh -c - "plutil -replace SUFeedURL -string ${SPARKLE_APPCAST_URL} \"$/Info.plist\"" - VERBATIM) - - add_custom_command( - TARGET ${target} - POST_BUILD - COMMAND - /bin/sh -c - "plutil -replace SUPublicEDKey -string \"${SPARKLE_PUBLIC_KEY}\" \"$/Info.plist\"" - VERBATIM) - - install( - DIRECTORY ${SPARKLE} - DESTINATION $.app/Contents/Frameworks - USE_SOURCE_PERMISSIONS - COMPONENT obs_frameworks) - endif() - - add_custom_command( - TARGET ${target} - POST_BUILD - COMMAND - /usr/bin/sed -i '' 's/font-size: 10pt\;/font-size: 12pt\;/' - "$/Resources/themes/Acri.qss" - "$/Resources/themes/Grey.qss" - "$/Resources/themes/Light.qss" - "$/Resources/themes/Rachni.qss" - "$/Resources/themes/Yami.qss") - - install(SCRIPT "${CMAKE_SOURCE_DIR}/cmake/bundle/macOS/bundleutils.cmake" COMPONENT obs_resources) -endfunction() - -# Helper function to export target to build and install tree Allows usage of `find_package(libobs)` by other build trees -function(export_target target) - get_target_property(_IS_FRAMEWORK ${target} FRAMEWORK) - - set(OBS_PLUGIN_DESTINATION "") - set(OBS_DATA_DESTINATION "") - - if(_IS_FRAMEWORK) - export_framework_target(${target}) - else() - _export_target(${ARGV}) - endif() - set_target_properties(${target} PROPERTIES PUBLIC_HEADER "${CMAKE_CURRENT_BINARY_DIR}/${target}_EXPORT.h") -endfunction() - -# Helper function to export macOS framework targets -function(export_framework_target) - set(CMAKE_EXPORT_PACKAGE_REGISTRY OFF) - - include(GenerateExportHeader) - generate_export_header(${target} EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/${target}_EXPORT.h") - - target_sources(${target} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/${target}_EXPORT.h") - - set(TARGETS_EXPORT_NAME "${target}Targets") - include(CMakePackageConfigHelpers) - configure_package_config_file( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/${target}Config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/${target}Config.cmake" - INSTALL_DESTINATION Frameworks/${target}.framework/Resources/cmake - PATH_VARS OBS_PLUGIN_DESTINATION OBS_DATA_DESTINATION) - - write_basic_package_version_file( - ${CMAKE_CURRENT_BINARY_DIR}/${target}ConfigVersion.cmake - VERSION ${OBS_VERSION_CANONICAL} - COMPATIBILITY SameMajorVersion) - - export( - EXPORT ${target}Targets - FILE "${CMAKE_CURRENT_BINARY_DIR}/${TARGETS_EXPORT_NAME}.cmake" - NAMESPACE OBS::) - - export(PACKAGE "${target}") - - install( - EXPORT ${TARGETS_EXPORT_NAME} - FILE ${TARGETS_EXPORT_NAME}.cmake - NAMESPACE OBS:: - DESTINATION Frameworks/${target}.framework/Resources/cmake - COMPONENT obs_libraries - EXCLUDE_FROM_ALL) - - install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/${target}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${target}ConfigVersion.cmake - DESTINATION Frameworks/$.framework/Resources/cmake - COMPONENT obs_libraries - EXCLUDE_FROM_ALL) -endfunction() - -# Helper function to install header files -function(install_headers target) - install( - DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/" - DESTINATION - $>,Frameworks/$.framework/Headers,${OBS_INCLUDE_DESTINATION}> - COMPONENT obs_libraries - EXCLUDE_FROM_ALL FILES_MATCHING - PATTERN "*.h" - PATTERN "*.hpp" - PATTERN "obs-hevc.h" EXCLUDE - PATTERN "*-windows.h" EXCLUDE - PATTERN "*-x11.h" EXCLUDE - PATTERN "*-wayland.h" EXCLUDE - PATTERN "audio-monitoring/null" EXCLUDE - PATTERN "audio-monitoring/win32" EXCLUDE - PATTERN "audio-monitoring/pulse" EXCLUDE - PATTERN "util/windows" EXCLUDE - PATTERN "cmake" EXCLUDE - PATTERN "pkgconfig" EXCLUDE - PATTERN "data" EXCLUDE) - - if(ENABLE_HEVC) - install( - FILES "${CMAKE_CURRENT_SOURCE_DIR}/obs-hevc.h" - DESTINATION - $>,Frameworks/$.framework/Headers,${OBS_INCLUDE_DESTINATION}> - COMPONENT obs_libraries - EXCLUDE_FROM_ALL) - endif() - - install( - FILES "${CMAKE_BINARY_DIR}/config/obsconfig.h" - DESTINATION - $>,Frameworks/$.framework/Headers,${OBS_INCLUDE_DESTINATION}> - COMPONENT obs_libraries - EXCLUDE_FROM_ALL) -endfunction() diff --git a/cmake/Modules/VersionConfig.cmake b/cmake/Modules/VersionConfig.cmake deleted file mode 100644 index b1d5dd1b977424..00000000000000 --- a/cmake/Modules/VersionConfig.cmake +++ /dev/null @@ -1,118 +0,0 @@ -set(OBS_COMPANY_NAME "OBS Project") -set(OBS_PRODUCT_NAME "OBS Studio") -set(OBS_WEBSITE "https://www.obsproject.com") -set(OBS_COMMENTS "Free and open source software for video recording and live streaming") -set(OBS_LEGAL_COPYRIGHT "(C) Lain Bailey") - -# Configure default version strings -set(_OBS_DEFAULT_VERSION "0" "0" "1") -set(_OBS_RELEASE_CANDIDATE "0" "0" "0" "0") -set(_OBS_BETA "0" "0" "0" "0") - -# Set full and canonical OBS version from current git tag or manual override -if(NOT DEFINED OBS_VERSION_OVERRIDE) - if(NOT DEFINED RELEASE_CANDIDATE - AND NOT DEFINED BETA - AND EXISTS "${CMAKE_SOURCE_DIR}/.git") - execute_process( - COMMAND git describe --always --tags --dirty=-modified - OUTPUT_VARIABLE _OBS_VERSION - ERROR_VARIABLE _GIT_DESCRIBE_ERR - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" - RESULT_VARIABLE _OBS_VERSION_RESULT - OUTPUT_STRIP_TRAILING_WHITESPACE) - - if(_GIT_DESCRIBE_ERR) - message(FATAL_ERROR "Could not fetch OBS version tag from git.\n" ${_GIT_DESCRIBE_ERR}) - endif() - - if(_OBS_VERSION_RESULT EQUAL 0) - if(${_OBS_VERSION} MATCHES "rc[0-9]+$") - set(RELEASE_CANDIDATE ${_OBS_VERSION}) - elseif(${_OBS_VERSION} MATCHES "beta[0-9]+$") - set(BETA ${_OBS_VERSION}) - else() - string(REPLACE "-" "." _CANONICAL_SPLIT ${_OBS_VERSION}) - string(REPLACE "." ";" _CANONICAL_SPLIT ${_CANONICAL_SPLIT}) - list(GET _CANONICAL_SPLIT 0 1 2 _OBS_VERSION_CANONICAL) - string(REPLACE "." ";" _OBS_VERSION ${_OBS_VERSION}) - # Get 8-character commit hash without "g" prefix - foreach(VERSION_PART ${_CANONICAL_SPLIT}) - if(VERSION_PART MATCHES "^g") - string(SUBSTRING ${VERSION_PART}, 1, 8, OBS_COMMIT) - break() - endif() - endforeach() - endif() - endif() - endif() - - # Set release candidate version information Must be a string in the format of "x.x.x-rcx" - if(DEFINED RELEASE_CANDIDATE) - string(REPLACE "-rc" "." _OBS_RELEASE_CANDIDATE ${RELEASE_CANDIDATE}) - string(REPLACE "." ";" _OBS_VERSION ${RELEASE_CANDIDATE}) - string(REPLACE "." ";" _OBS_RELEASE_CANDIDATE ${_OBS_RELEASE_CANDIDATE}) - list(GET _OBS_RELEASE_CANDIDATE 0 1 2 _OBS_VERSION_CANONICAL) - # Set beta version information Must be a string in the format of "x.x.x-betax" - elseif(DEFINED BETA) - string(REPLACE "-beta" "." _OBS_BETA ${BETA}) - string(REPLACE "." ";" _OBS_VERSION ${BETA}) - string(REPLACE "." ";" _OBS_BETA ${_OBS_BETA}) - list(GET _OBS_BETA 0 1 2 _OBS_VERSION_CANONICAL) - elseif(NOT DEFINED _OBS_VERSION) - set(_OBS_VERSION ${_OBS_DEFAULT_VERSION}) - set(_OBS_VERSION_CANONICAL ${_OBS_DEFAULT_VERSION}) - endif() -else() - string(REPLACE "." ";" _OBS_VERSION "${OBS_VERSION_OVERRIDE}") - string(REPLACE "-" ";" _OBS_VERSION_CANONICAL "${OBS_VERSION_OVERRIDE}") - list(GET _OBS_VERSION_CANONICAL 0 _OBS_VERSION_CANONICAL) - string(REPLACE "." ";" _OBS_VERSION_CANONICAL "${_OBS_VERSION_CANONICAL}") -endif() - -list(GET _OBS_VERSION_CANONICAL 0 OBS_VERSION_MAJOR) -list(GET _OBS_VERSION_CANONICAL 1 OBS_VERSION_MINOR) -list(GET _OBS_VERSION_CANONICAL 2 OBS_VERSION_PATCH) -list(GET _OBS_RELEASE_CANDIDATE 0 OBS_RELEASE_CANDIDATE_MAJOR) -list(GET _OBS_RELEASE_CANDIDATE 1 OBS_RELEASE_CANDIDATE_MINOR) -list(GET _OBS_RELEASE_CANDIDATE 2 OBS_RELEASE_CANDIDATE_PATCH) -list(GET _OBS_RELEASE_CANDIDATE 3 OBS_RELEASE_CANDIDATE) -list(GET _OBS_BETA 0 OBS_BETA_MAJOR) -list(GET _OBS_BETA 1 OBS_BETA_MINOR) -list(GET _OBS_BETA 2 OBS_BETA_PATCH) -list(GET _OBS_BETA 3 OBS_BETA) - -string(REPLACE ";" "." OBS_VERSION_CANONICAL "${_OBS_VERSION_CANONICAL}") -string(REPLACE ";" "." OBS_VERSION "${_OBS_VERSION}") - -if(OBS_RELEASE_CANDIDATE GREATER 0) - message( - AUTHOR_WARNING - "******************************************************************************\n" - " + OBS-Studio - Release candidate detected, OBS_VERSION is now: ${OBS_VERSION}\n" - "******************************************************************************") -elseif(OBS_BETA GREATER 0) - message( - AUTHOR_WARNING - "******************************************************************************\n" - " + OBS-Studio - Beta detected, OBS_VERSION is now: ${OBS_VERSION}\n" - "******************************************************************************") -endif() - -# Define build number cache file -set(BUILD_NUMBER_CACHE - ${CMAKE_SOURCE_DIR}/cmake/.CMakeBuildNumber - CACHE INTERNAL "OBS build number cache file") - -# Read build number from cache file or manual override -if(NOT DEFINED OBS_BUILD_NUMBER) - if(EXISTS ${BUILD_NUMBER_CACHE}) - file(READ ${BUILD_NUMBER_CACHE} OBS_BUILD_NUMBER) - math(EXPR OBS_BUILD_NUMBER "${OBS_BUILD_NUMBER}+1") - else() - set(OBS_BUILD_NUMBER "1") - endif() - file(WRITE ${BUILD_NUMBER_CACHE} "${OBS_BUILD_NUMBER}") -endif() - -message(STATUS "OBS: Application Version: ${OBS_VERSION} - Build Number: ${OBS_BUILD_NUMBER}") diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt deleted file mode 100644 index b99cb2cd2635e0..00000000000000 --- a/deps/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -if(OS_WINDOWS) - add_subdirectory(w32-pthreads) -endif() - -add_subdirectory(blake2) -add_subdirectory(glad) -add_subdirectory(libcaption) diff --git a/deps/glad/CMakeLists.txt b/deps/glad/CMakeLists.txt index 457de0a9d0bdeb..d62a7d85a14448 100644 --- a/deps/glad/CMakeLists.txt +++ b/deps/glad/CMakeLists.txt @@ -5,10 +5,6 @@ find_package(OpenGL REQUIRED) add_library(obsglad OBJECT) add_library(OBS::glad ALIAS obsglad) -if(OBS_CMAKE_VERSION VERSION_LESS 3.0.0) - add_library(OBS::obsglad ALIAS obsglad) -endif() - target_sources( obsglad PRIVATE diff --git a/deps/libcaption/cmake/legacy.cmake b/deps/libcaption/cmake/legacy.cmake deleted file mode 100644 index eff25bb9c4b802..00000000000000 --- a/deps/libcaption/cmake/legacy.cmake +++ /dev/null @@ -1,44 +0,0 @@ -project(libcaption) - -add_library(caption STATIC) -add_library(OBS::caption ALIAS caption) - -target_sources( - caption - PRIVATE src/caption.c - src/utf8.c - caption/utf8.h - src/srt.c - src/scc.c - caption/scc.h - src/mpeg.c - caption/mpeg.h - src/cea708.c - caption/cea708.h - src/xds.c - src/eia608.c - caption/eia608.h - src/eia608_from_utf8.c - src/eia608_charmap.c - caption/eia608_charmap.h - PUBLIC caption/caption.h) - -target_compile_definitions(caption PRIVATE __STDC_CONSTANT_MACROS $<$:_CRT_SECURE_NO_WARNINGS>) - -target_compile_options( - caption - PRIVATE - $<$,$,$>:-Wno-unused-but-set-parameter> -) - -target_include_directories( - caption - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/caption - PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) - -set_target_properties( - caption - PROPERTIES FOLDER "deps" - VERSION "0" - SOVERSION "0" - POSITION_INDEPENDENT_CODE ON) diff --git a/deps/w32-pthreads/cmake/legacy.cmake b/deps/w32-pthreads/cmake/legacy.cmake deleted file mode 100644 index e08987cbaa6682..00000000000000 --- a/deps/w32-pthreads/cmake/legacy.cmake +++ /dev/null @@ -1,22 +0,0 @@ -if(POLICY CMP0090) - cmake_policy(SET CMP0090 NEW) -endif() - -project(w32-pthreads) - -add_library(w32-pthreads SHARED) -add_library(OBS::w32-pthreads ALIAS w32-pthreads) - -target_sources(w32-pthreads PRIVATE implement.h pthread.c pthread.h sched.h semaphore.h w32-pthreads.rc) - -set(MODULE_DESCRIPTION "POSIX Threads for Windows") -configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in w32-pthreads.rc) - -target_compile_definitions(w32-pthreads PRIVATE __CLEANUP_C PTW32_BUILD) - -target_include_directories(w32-pthreads PUBLIC "$") - -set_target_properties(w32-pthreads PROPERTIES FOLDER "deps" PUBLIC_HEADER "pthread.h;sched.h") - -setup_binary_target(w32-pthreads) -export_target(w32-pthreads) diff --git a/libobs-opengl/cmake/legacy.cmake b/libobs-opengl/cmake/legacy.cmake deleted file mode 100644 index f540876470c083..00000000000000 --- a/libobs-opengl/cmake/legacy.cmake +++ /dev/null @@ -1,71 +0,0 @@ -project(libobs-opengl) - -add_library(libobs-opengl SHARED) -add_library(OBS::libobs-opengl ALIAS libobs-opengl) - -target_sources( - libobs-opengl - PRIVATE gl-helpers.c - gl-helpers.h - gl-indexbuffer.c - gl-shader.c - gl-shaderparser.c - gl-shaderparser.h - gl-stagesurf.c - gl-subsystem.c - gl-subsystem.h - gl-texture2d.c - gl-texture3d.c - gl-texturecube.c - gl-vertexbuffer.c - gl-zstencil.c) - -target_link_libraries(libobs-opengl PRIVATE OBS::libobs OBS::obsglad) - -set_target_properties( - libobs-opengl - PROPERTIES FOLDER "core" - VERSION "${OBS_VERSION_MAJOR}" - SOVERSION "1") - -if(OS_WINDOWS) - set(MODULE_DESCRIPTION "OBS Library OpenGL wrapper") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in libobs-opengl.rc) - - target_sources(libobs-opengl PRIVATE gl-windows.c libobs-opengl.rc) - -elseif(OS_MACOS) - find_library(COCOA Cocoa) - find_library(IOSURF IOSurface) - - target_sources(libobs-opengl PRIVATE gl-cocoa.m) - target_compile_definitions(libobs-opengl PRIVATE GL_SILENCE_DEPRECATION) - - target_link_libraries(libobs-opengl PRIVATE ${COCOA} ${IOSURF}) - set_target_properties(libobs-opengl PROPERTIES PREFIX "") - -elseif(OS_POSIX) - find_package(X11 REQUIRED) - find_package(XCB COMPONENTS XCB) - find_package(X11_XCB REQUIRED) - - target_sources(libobs-opengl PRIVATE gl-egl-common.c gl-nix.c gl-x11-egl.c) - - target_link_libraries(libobs-opengl PRIVATE XCB::XCB X11::X11_xcb) - - set_target_properties(libobs-opengl PROPERTIES PREFIX "") - - if(ENABLE_WAYLAND) - find_package( - OpenGL - COMPONENTS EGL - REQUIRED) - find_package(Wayland REQUIRED) - - target_sources(libobs-opengl PRIVATE gl-wayland-egl.c) - - target_link_libraries(libobs-opengl PRIVATE OpenGL::EGL Wayland::EGL) - endif() -endif() - -setup_binary_target(libobs-opengl) diff --git a/libobs-winrt/cmake/legacy.cmake b/libobs-winrt/cmake/legacy.cmake deleted file mode 100644 index 578be6fb4d30ab..00000000000000 --- a/libobs-winrt/cmake/legacy.cmake +++ /dev/null @@ -1,31 +0,0 @@ -project(libobs-winrt) - -add_library(libobs-winrt MODULE) -add_library(OBS::libobs-winrt ALIAS libobs-winrt) - -target_sources(libobs-winrt PRIVATE winrt-capture.cpp winrt-capture.h winrt-dispatch.cpp winrt-dispatch.h) - -target_precompile_headers( - libobs-winrt - PRIVATE - [["../libobs/util/windows/ComPtr.hpp"]] - - - - - - - - - ) - -target_link_libraries(libobs-winrt PRIVATE OBS::libobs Dwmapi windowsapp) - -target_compile_features(libobs-winrt PRIVATE cxx_std_17) - -set_target_properties( - libobs-winrt - PROPERTIES OUTPUT_NAME libobs-winrt FOLDER "core" PREFIX "" -) - -setup_binary_target(libobs-winrt) diff --git a/libobs/cmake/legacy.cmake b/libobs/cmake/legacy.cmake deleted file mode 100644 index 177554060ff288..00000000000000 --- a/libobs/cmake/legacy.cmake +++ /dev/null @@ -1,508 +0,0 @@ -if(POLICY CMP0090) - cmake_policy(SET CMP0090 NEW) -endif() - -project(libobs) - -add_library(libobs-version STATIC EXCLUDE_FROM_ALL) -add_library(OBS::libobs-version ALIAS libobs-version) -configure_file(obsversion.c.in obsversion.c @ONLY) -target_sources(libobs-version PRIVATE obsversion.c obsversion.h) -target_include_directories(libobs-version PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) -set_property(TARGET libobs-version PROPERTY FOLDER core) - -find_package(Jansson 2.5 REQUIRED) -find_package(Threads REQUIRED) -find_package(FFmpeg REQUIRED COMPONENTS avformat avutil swscale swresample OPTIONAL_COMPONENTS avcodec) -find_package(ZLIB REQUIRED) -find_package(Uthash REQUIRED) - -add_library(libobs SHARED) -add_library(OBS::libobs ALIAS libobs) - -target_sources( - libobs - PRIVATE - obs.c - obs.h - obs.hpp - obs-audio.c - obs-audio-controls.c - obs-audio-controls.h - obs-av1.c - obs-av1.h - obs-avc.c - obs-avc.h - obs-data.c - obs-data.h - obs-defs.h - obs-display.c - obs-encoder.c - obs-encoder.h - obs-ffmpeg-compat.h - obs-hotkey.c - obs-hotkey.h - obs-hotkeys.h - obs-missing-files.c - obs-missing-files.h - obs-nal.c - obs-nal.h - obs-hotkey-name-map.c - obs-interaction.h - obs-internal.h - obs-module.c - obs-module.h - obs-output.c - obs-output.h - obs-output-delay.c - obs-properties.c - obs-properties.h - obs-service.c - obs-service.h - obs-scene.c - obs-scene.h - obs-source.c - obs-source.h - obs-source-deinterlace.c - obs-source-transition.c - obs-video.c - obs-video-gpu-encode.c - obs-view.c - obs-config.h -) - -target_sources( - libobs - PRIVATE - util/simde/check.h - util/simde/debug-trap.h - util/simde/hedley.h - util/simde/simde-align.h - util/simde/simde-arch.h - util/simde/simde-common.h - util/simde/simde-constify.h - util/simde/simde-detect-clang.h - util/simde/simde-diagnostic.h - util/simde/simde-features.h - util/simde/simde-math.h - util/simde/x86/mmx.h - util/simde/x86/sse2.h - util/simde/x86/sse.h -) - -target_sources( - libobs - PRIVATE - callback/calldata.c - callback/calldata.h - callback/decl.c - callback/decl.h - callback/signal.c - callback/signal.h - callback/proc.c - callback/proc.h -) - -target_sources( - libobs - PRIVATE - graphics/graphics.c - graphics/graphics.h - graphics/graphics-imports.c - graphics/graphics-internal.h - graphics/axisang.c - graphics/axisang.h - graphics/bounds.c - graphics/bounds.h - graphics/device-exports.h - graphics/effect.c - graphics/effect.h - graphics/effect-parser.c - graphics/effect-parser.h - graphics/half.h - graphics/image-file.c - graphics/image-file.h - graphics/math-extra.c - graphics/math-extra.h - graphics/matrix3.c - graphics/matrix3.h - graphics/matrix4.c - graphics/matrix4.h - graphics/plane.c - graphics/plane.h - graphics/quat.c - graphics/quat.h - graphics/shader-parser.c - graphics/shader-parser.h - graphics/srgb.h - graphics/texture-render.c - graphics/vec2.c - graphics/vec2.h - graphics/vec3.c - graphics/vec3.h - graphics/vec4.c - graphics/vec4.h - graphics/libnsgif/libnsgif.c - graphics/libnsgif/libnsgif.h - graphics/graphics-ffmpeg.c -) - -target_sources( - libobs - PRIVATE - media-io/audio-io.c - media-io/audio-io.h - media-io/audio-math.h - media-io/audio-resampler.h - media-io/audio-resampler-ffmpeg.c - media-io/format-conversion.c - media-io/format-conversion.h - media-io/frame-rate.h - media-io/media-remux.c - media-io/media-remux.h - media-io/video-fourcc.c - media-io/video-frame.c - media-io/video-frame.h - media-io/video-io.c - media-io/video-io.h - media-io/media-io-defs.h - media-io/video-matrices.c - media-io/video-scaler-ffmpeg.c - media-io/video-scaler.h -) - -target_sources( - libobs - PRIVATE util/array-serializer.c - util/array-serializer.h - util/base.c - util/base.h - util/bitstream.c - util/bitstream.h - util/bmem.c - util/bmem.h - util/buffered-file-serializer.c - util/buffered-file-serializer.h - util/c99defs.h - util/cf-lexer.c - util/cf-lexer.h - util/cf-parser.c - util/cf-parser.h - util/circlebuf.h - util/config-file.c - util/config-file.h - util/crc32.c - util/crc32.h - util/deque.h - util/dstr.c - util/dstr.h - util/file-serializer.c - util/file-serializer.h - util/lexer.c - util/lexer.h - util/platform.c - util/platform.h - util/profiler.c - util/profiler.h - util/profiler.hpp - util/pipe.c - util/pipe.h - util/serializer.h - util/sse-intrin.h - util/task.c - util/task.h - util/text-lookup.c - util/text-lookup.h - util/threading.h - util/utf8.c - util/utf8.h - util/uthash.h - util/util_uint64.h - util/util_uint128.h - util/curl/curl-helper.h - util/darray.h - util/util.hpp - util/source-profiler.c - util/source-profiler.h) - -if(ENABLE_HEVC) - target_sources(libobs PRIVATE obs-hevc.c obs-hevc.h) -endif() - -# Contents of "data" dir already automatically added to bundles on macOS -if(NOT OS_MACOS) - target_sources( - libobs - PRIVATE - data/area.effect - data/bicubic_scale.effect - data/bilinear_lowres_scale.effect - data/color.effect - data/default.effect - data/default_rect.effect - data/deinterlace_base.effect - data/deinterlace_blend.effect - data/deinterlace_blend_2x.effect - data/deinterlace_discard.effect - data/deinterlace_discard_2x.effect - data/deinterlace_linear.effect - data/deinterlace_linear_2x.effect - data/deinterlace_yadif.effect - data/deinterlace_yadif_2x.effect - data/format_conversion.effect - data/lanczos_scale.effect - data/opaque.effect - data/premultiplied_alpha.effect - data/repeat.effect - data/solid.effect - ) -endif() - -target_link_libraries( - libobs - PRIVATE - FFmpeg::avcodec - FFmpeg::avformat - FFmpeg::avutil - FFmpeg::swscale - FFmpeg::swresample - Jansson::Jansson - OBS::caption - OBS::libobs-version - Uthash::Uthash - ZLIB::ZLIB - PUBLIC Threads::Threads -) - -set_target_properties( - libobs - PROPERTIES OUTPUT_NAME obs FOLDER "core" VERSION "${OBS_VERSION_MAJOR}" SOVERSION "0" -) - -target_compile_definitions(libobs PUBLIC ${ARCH_SIMD_DEFINES} PRIVATE IS_LIBOBS) - -target_compile_features(libobs PRIVATE cxx_alias_templates) - -target_compile_options(libobs PUBLIC ${ARCH_SIMD_FLAGS}) - -target_include_directories( - libobs - PUBLIC $ $ -) - -if(OS_WINDOWS) - set(MODULE_DESCRIPTION "OBS Library") - set(UI_VERSION "${OBS_VERSION_CANONICAL}") - - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in libobs.rc) - - target_sources( - libobs - PRIVATE - obs-win-crash-handler.c - obs-windows.c - util/threading-windows.c - util/threading-windows.h - util/pipe-windows.c - util/platform-windows.c - util/windows/device-enum.c - util/windows/device-enum.h - util/windows/obfuscate.c - util/windows/obfuscate.h - util/windows/win-registry.h - util/windows/win-version.h - util/windows/window-helpers.c - util/windows/window-helpers.h - util/windows/ComPtr.hpp - util/windows/CoTaskMemPtr.hpp - util/windows/HRError.hpp - util/windows/WinHandle.hpp - libobs.rc - audio-monitoring/win32/wasapi-output.c - audio-monitoring/win32/wasapi-enum-devices.c - audio-monitoring/win32/wasapi-output.h - audio-monitoring/win32/wasapi-monitoring-available.c - ) - - target_compile_definitions(libobs PRIVATE UNICODE _UNICODE _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS) - set_source_files_properties( - obs-win-crash-handler.c - PROPERTIES COMPILE_DEFINITIONS OBS_VERSION="${OBS_VERSION_CANONICAL}" - ) - target_link_libraries( - libobs - PRIVATE dxgi Avrt Dwmapi winmm Rpcrt4 - ) - - if(MSVC) - target_link_libraries(libobs PUBLIC OBS::w32-pthreads) - - target_compile_options(libobs PRIVATE "$<$:/EHc->" "$<$:/EHc->") - - target_link_options(libobs PRIVATE "LINKER:/IGNORE:4098" "LINKER:/SAFESEH:NO") - - add_library(obs-obfuscate INTERFACE) - add_library(OBS::obfuscate ALIAS obs-obfuscate) - target_sources(obs-obfuscate INTERFACE util/windows/obfuscate.c util/windows/obfuscate.h) - target_include_directories(obs-obfuscate INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}") - - add_library(obs-comutils INTERFACE) - add_library(OBS::COMutils ALIAS obs-comutils) - target_sources(obs-comutils INTERFACE util/windows/ComPtr.hpp) - target_include_directories(obs-comutils INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}") - - add_library(obs-winhandle INTERFACE) - add_library(OBS::winhandle ALIAS obs-winhandle) - target_sources(obs-winhandle INTERFACE util/windows/WinHandle.hpp) - target_include_directories(obs-winhandle INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}") - endif() -elseif(OS_MACOS) - find_library(COCOA Cocoa) - find_library(COREAUDIO CoreAudio) - find_library(AUDIOTOOLBOX AudioToolbox) - find_library(AUDIOUNIT AudioUnit) - find_library(APPKIT AppKit) - find_library(IOKIT IOKit) - find_library(CARBON Carbon) - - mark_as_advanced( - COCOA - COREAUDIO - AUDIOTOOLBOX - AUDIOUNIT - APPKIT - IOKIT - CARBON - ) - - target_link_libraries( - libobs - PRIVATE ${COCOA} ${COREAUDIO} ${AUDIOTOOLBOX} ${AUDIOUNIT} ${APPKIT} ${IOKIT} ${CARBON} - ) - - target_sources( - libobs - PRIVATE - obs-cocoa.m - util/pipe-posix.c - util/platform-cocoa.m - util/platform-nix.c - util/threading-posix.c - util/threading-posix.h - util/apple/cfstring-utils.h - audio-monitoring/osx/coreaudio-enum-devices.c - audio-monitoring/osx/coreaudio-output.c - audio-monitoring/osx/coreaudio-monitoring-available.c - audio-monitoring/osx/mac-helpers.h - ) - - set_source_files_properties(util/platform-cocoa.m obs-cocoa.m PROPERTIES COMPILE_FLAGS -fobjc-arc) - - set_target_properties(libobs PROPERTIES SOVERSION "1" BUILD_RPATH "$") -elseif(OS_POSIX) - if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) - target_compile_definitions(libobs PRIVATE ENABLE_DARRAY_TYPE_TEST) - endif() - - find_package(LibUUID REQUIRED) - find_package(X11 REQUIRED) - find_package(XCB COMPONENTS XCB OPTIONAL_COMPONENTS XINPUT QUIET) - find_package(X11_XCB REQUIRED) - - target_sources( - libobs - PRIVATE - obs-nix.c - obs-nix-platform.c - obs-nix-platform.h - obs-nix-x11.c - util/threading-posix.c - util/threading-posix.h - util/pipe-posix.c - util/platform-nix.c - ) - - target_link_libraries(libobs PRIVATE X11::X11_xcb XCB::XCB LibUUID::LibUUID) - - if(USE_XDG) - target_compile_definitions(libobs PRIVATE USE_XDG) - endif() - - if(ENABLE_PULSEAUDIO) - find_package(PulseAudio REQUIRED) - obs_status(STATUS "-> PulseAudio found - audio monitoring enabled") - target_sources( - libobs - PRIVATE - audio-monitoring/pulse/pulseaudio-output.c - audio-monitoring/pulse/pulseaudio-enum-devices.c - audio-monitoring/pulse/pulseaudio-wrapper.c - audio-monitoring/pulse/pulseaudio-wrapper.h - audio-monitoring/pulse/pulseaudio-monitoring-available.c - ) - - target_link_libraries(libobs PRIVATE ${PULSEAUDIO_LIBRARY}) - else() - obs_status(WARNING "-> No audio backend found - audio monitoring disabled") - target_sources(libobs PRIVATE audio-monitoring/null/null-audio-monitoring.c) - endif() - - find_package(Gio) - if(TARGET GIO::GIO) - target_link_libraries(libobs PRIVATE GIO::GIO) - - target_sources(libobs PRIVATE util/platform-nix-dbus.c util/platform-nix-portal.c) - endif() - - if(TARGET XCB::XINPUT) - target_link_libraries(libobs PRIVATE XCB::XINPUT) - endif() - - if(ENABLE_WAYLAND) - find_package(Wayland COMPONENTS Client REQUIRED) - find_package(Xkbcommon REQUIRED) - - target_link_libraries(libobs PRIVATE Wayland::Client Xkbcommon::Xkbcommon) - - target_sources(libobs PRIVATE obs-nix-wayland.c) - endif() - - if(OS_LINUX) - target_link_libraries(obsglad PRIVATE ${CMAKE_DL_LIBS}) - endif() - - if(OS_FREEBSD) - find_package(Sysinfo REQUIRED) - target_link_libraries(libobs PRIVATE Sysinfo::Sysinfo) - endif() - - set_target_properties(libobs PROPERTIES BUILD_RPATH "$") -endif() - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/obsconfig.h.in ${CMAKE_BINARY_DIR}/config/obsconfig.h) - -target_compile_definitions( - libobs - PUBLIC HAVE_OBSCONFIG_H - PRIVATE "OBS_INSTALL_PREFIX=\"${OBS_INSTALL_PREFIX}\"" "$<$:LINUX_PORTABLE>" -) - -if(ENABLE_FFMPEG_MUX_DEBUG) - target_compile_definitions(libobs PRIVATE SHOW_SUBPROCESSES) -endif() - -get_target_property(_OBS_SOURCES libobs SOURCES) -set(_OBS_HEADERS ${_OBS_SOURCES}) -set(_OBS_FILTERS ${_OBS_SOURCES}) -list(FILTER _OBS_HEADERS INCLUDE REGEX ".*\\.h(pp)?") -list(FILTER _OBS_SOURCES INCLUDE REGEX ".*\\.(m|c[cp]?p?)") -list(FILTER _OBS_FILTERS INCLUDE REGEX ".*\\.effect") - -source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" PREFIX "Source Files" FILES ${_OBS_SOURCES}) -source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" PREFIX "Header Files" FILES ${_OBS_HEADERS}) -source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" PREFIX "Effect Files" FILES ${_OBS_FILTERS}) - -setup_binary_target(libobs) -setup_target_resources(libobs libobs) -export_target(libobs) -install_headers(libobs) diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index 11f3b165c94df6..1769a02a95733f 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -2,186 +2,89 @@ cmake_minimum_required(VERSION 3.22...3.25) option(ENABLE_PLUGINS "Enable building OBS plugins" ON) -if(OBS_CMAKE_VERSION VERSION_GREATER_EQUAL 3.0.0) - if(NOT ENABLE_PLUGINS) - set_property(GLOBAL APPEND PROPERTY OBS_FEATURES_DISABLED "Plugin Support") - return() - endif() +if(NOT ENABLE_PLUGINS) + set_property(GLOBAL APPEND PROPERTY OBS_FEATURES_DISABLED "Plugin Support") + return() +endif() - set_property(GLOBAL APPEND PROPERTY OBS_FEATURES_ENABLED "Plugin Support") +set_property(GLOBAL APPEND PROPERTY OBS_FEATURES_ENABLED "Plugin Support") - macro(check_obs_browser) - if((OS_WINDOWS AND CMAKE_GENERATOR_PLATFORM MATCHES "(Win32|x64)") OR OS_MACOS OR OS_LINUX) - if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-browser/CMakeLists.txt") - message(FATAL_ERROR "Required submodule 'obs-browser' not available.") - else() - add_subdirectory(obs-browser) - endif() +macro(check_obs_browser) + if((OS_WINDOWS AND CMAKE_GENERATOR_PLATFORM MATCHES "(Win32|x64)") OR OS_MACOS OR OS_LINUX) + if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-browser/CMakeLists.txt") + message(FATAL_ERROR "Required submodule 'obs-browser' not available.") else() - add_custom_target(obs-browser) - target_disable(obs-browser) + add_subdirectory(obs-browser) endif() - endmacro() + else() + add_custom_target(obs-browser) + target_disable(obs-browser) + endif() +endmacro() - macro(check_obs_websocket) - if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-websocket/CMakeLists.txt") - message(FATAL_ERROR "Required submodule 'obs-websocket' not available.") - else() - add_subdirectory(obs-websocket) - endif() - endmacro() +macro(check_obs_websocket) + if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-websocket/CMakeLists.txt") + message(FATAL_ERROR "Required submodule 'obs-websocket' not available.") + else() + add_subdirectory(obs-websocket) + endif() +endmacro() - # Add plugins in alphabetical order to retain order in IDE projects - add_obs_plugin( +# Add plugins in alphabetical order to retain order in IDE projects +add_obs_plugin( aja PLATFORMS WINDOWS MACOS LINUX WITH_MESSAGE - ) - add_obs_plugin(coreaudio-encoder PLATFORMS WINDOWS MACOS) - add_obs_plugin( +) +add_obs_plugin(coreaudio-encoder PLATFORMS WINDOWS MACOS) +add_obs_plugin( decklink PLATFORMS WINDOWS MACOS LINUX WITH_MESSAGE - ) - add_obs_plugin(image-source) - add_obs_plugin(linux-alsa PLATFORMS LINUX FREEBSD OPENBSD) - add_obs_plugin(linux-capture PLATFORMS LINUX FREEBSD OPENBSD) - add_obs_plugin(linux-jack PLATFORMS LINUX FREEBSD OPENBSD) - add_obs_plugin(linux-pipewire PLATFORMS LINUX FREEBSD OPENBSD) - add_obs_plugin(linux-pulseaudio PLATFORMS LINUX FREEBSD OPENBSD) - add_obs_plugin(linux-v4l2 PLATFORMS LINUX FREEBSD OPENBSD) - add_obs_plugin(mac-avcapture PLATFORMS MACOS) - add_obs_plugin(mac-capture PLATFORMS MACOS) - add_obs_plugin(mac-syphon PLATFORMS MACOS) - add_obs_plugin(mac-videotoolbox PLATFORMS MACOS) - add_obs_plugin(mac-virtualcam PLATFORMS MACOS) - add_obs_plugin(nv-filters PLATFORMS WINDOWS) - - check_obs_browser() - - add_obs_plugin(obs-ffmpeg) - add_obs_plugin(obs-filters) - add_obs_plugin(obs-libfdk) - add_obs_plugin(obs-nvenc PLATFORMS WINDOWS LINUX) - add_obs_plugin(obs-outputs) - add_obs_plugin( +) +add_obs_plugin(image-source) +add_obs_plugin(linux-alsa PLATFORMS LINUX FREEBSD OPENBSD) +add_obs_plugin(linux-capture PLATFORMS LINUX FREEBSD OPENBSD) +add_obs_plugin(linux-jack PLATFORMS LINUX FREEBSD OPENBSD) +add_obs_plugin(linux-pipewire PLATFORMS LINUX FREEBSD OPENBSD) +add_obs_plugin(linux-pulseaudio PLATFORMS LINUX FREEBSD OPENBSD) +add_obs_plugin(linux-v4l2 PLATFORMS LINUX FREEBSD OPENBSD) +add_obs_plugin(mac-avcapture PLATFORMS MACOS) +add_obs_plugin(mac-capture PLATFORMS MACOS) +add_obs_plugin(mac-syphon PLATFORMS MACOS) +add_obs_plugin(mac-videotoolbox PLATFORMS MACOS) +add_obs_plugin(mac-virtualcam PLATFORMS MACOS) +add_obs_plugin(nv-filters PLATFORMS WINDOWS) + +check_obs_browser() + +add_obs_plugin(obs-ffmpeg) +add_obs_plugin(obs-filters) +add_obs_plugin(obs-libfdk) +add_obs_plugin(obs-nvenc PLATFORMS WINDOWS LINUX) +add_obs_plugin(obs-outputs) +add_obs_plugin( obs-qsv11 PLATFORMS WINDOWS LINUX ARCHITECTURES x64 x86_64 - ) - add_obs_plugin(obs-text PLATFORMS WINDOWS) - add_obs_plugin(obs-transitions) - add_obs_plugin( +) +add_obs_plugin(obs-text PLATFORMS WINDOWS) +add_obs_plugin(obs-transitions) +add_obs_plugin( obs-vst PLATFORMS WINDOWS MACOS LINUX WITH_MESSAGE - ) - add_obs_plugin(obs-webrtc) - - check_obs_websocket() - - add_obs_plugin(obs-x264) - add_obs_plugin(oss-audio PLATFORMS FREEBSD OPENBSD) - add_obs_plugin(rtmp-services) - add_obs_plugin(sndio PLATFORMS LINUX FREEBSD OPENBSD) - add_obs_plugin(text-freetype2) - add_obs_plugin(vlc-video WITH_MESSAGE) - add_obs_plugin(win-capture PLATFORMS WINDOWS) - add_obs_plugin(win-dshow PLATFORMS WINDOWS) - add_obs_plugin(win-wasapi PLATFORMS WINDOWS) - - return() -endif() - -if(NOT ENABLE_PLUGINS) - obs_status(STATUS "Building with plugins disabled.") - return() -endif() - -function(check_obs_browser) - if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/obs-browser/CMakeLists.txt) - add_subdirectory(obs-browser) - else() - obs_status(FATAL_ERROR "obs-browser submodule not available.") - endif() -endfunction() - -# APPLE/WIN32/UNIX are soft-deprecated: https://discourse.cmake.org/t/platform-id-vs-win32-vs-cmake-system-name/1226/2 -if(OS_WINDOWS) - add_subdirectory(coreaudio-encoder) - add_subdirectory(win-wasapi) - add_subdirectory(win-dshow) - add_subdirectory(win-capture) - add_subdirectory(decklink) - add_subdirectory(obs-qsv11) - add_subdirectory(obs-text) - add_subdirectory(vlc-video) - add_subdirectory(obs-vst) - add_subdirectory(nv-filters) - - check_obs_browser() -elseif(OS_MACOS) - add_subdirectory(coreaudio-encoder) - add_subdirectory(mac-avcapture) - add_subdirectory(mac-capture) - add_subdirectory(mac-videotoolbox) - add_subdirectory(mac-syphon) - add_subdirectory(mac-virtualcam) - add_subdirectory(decklink) - add_subdirectory(vlc-video) - add_subdirectory(linux-jack) - add_subdirectory(obs-vst) - - check_obs_browser() -elseif(OS_LINUX) - add_subdirectory(linux-capture) - add_subdirectory(linux-pulseaudio) - add_subdirectory(linux-v4l2) - add_subdirectory(linux-jack) - add_subdirectory(linux-alsa) - add_subdirectory(linux-pipewire) - add_subdirectory(decklink) - add_subdirectory(vlc-video) - add_subdirectory(sndio) - add_subdirectory(obs-vst) - add_subdirectory(obs-qsv11) - - check_obs_browser() -elseif(OS_FREEBSD) - add_subdirectory(linux-capture) - add_subdirectory(linux-pipewire) - add_subdirectory(linux-pulseaudio) - add_subdirectory(linux-v4l2) - add_subdirectory(linux-jack) - add_subdirectory(linux-alsa) - add_subdirectory(vlc-video) - add_subdirectory(oss-audio) - add_subdirectory(sndio) - - obs_status(STATUS "obs-browser plugin not available.") - obs_status(STATUS "obs-vst plugin not available.") -elseif(OS_OPENBSD) - add_subdirectory(linux-capture) - add_subdirectory(sndio) - - obs_status(STATUS "obs-browser plugin not available.") - obs_status(STATUS "obs-vst plugin not available.") -endif() - -if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/obs-websocket/CMakeLists.txt) - add_subdirectory(obs-websocket) -else() - obs_status(FATAL_ERROR "obs-websocket submodule not available.") -endif() - -add_subdirectory(image-source) -add_subdirectory(obs-x264) -add_subdirectory(obs-libfdk) -add_subdirectory(obs-ffmpeg) -add_subdirectory(obs-outputs) -add_subdirectory(obs-filters) -add_subdirectory(obs-transitions) -add_subdirectory(rtmp-services) -add_subdirectory(text-freetype2) -add_subdirectory(aja) -add_subdirectory(obs-webrtc) +) +add_obs_plugin(obs-webrtc) + +check_obs_websocket() + +add_obs_plugin(obs-x264) +add_obs_plugin(oss-audio PLATFORMS FREEBSD OPENBSD) +add_obs_plugin(rtmp-services) +add_obs_plugin(sndio PLATFORMS LINUX FREEBSD OPENBSD) +add_obs_plugin(text-freetype2) +add_obs_plugin(vlc-video WITH_MESSAGE) +add_obs_plugin(win-capture PLATFORMS WINDOWS) +add_obs_plugin(win-dshow PLATFORMS WINDOWS) +add_obs_plugin(win-wasapi PLATFORMS WINDOWS) diff --git a/plugins/aja/cmake/legacy.cmake b/plugins/aja/cmake/legacy.cmake deleted file mode 100644 index 35d0f246bedd93..00000000000000 --- a/plugins/aja/cmake/legacy.cmake +++ /dev/null @@ -1,74 +0,0 @@ -project(aja) - -option(ENABLE_AJA "Build OBS with aja support" ON) -if(NOT ENABLE_AJA) - obs_status(DISABLED "aja") - return() -endif() - -if(NOT OS_MACOS AND NOT CMAKE_SIZEOF_VOID_P EQUAL 8) - obs_status(STATUS "aja support not enabled (32-bit not supported).") - set(ENABLE_AJA - OFF - CACHE BOOL "Build OBS with aja support" FORCE) - return() -endif() - -find_package(LibAJANTV2 REQUIRED) - -add_library(aja MODULE) -add_library(OBS::aja ALIAS aja) - -target_sources( - aja - PRIVATE main.cpp - aja-card-manager.cpp - aja-common.cpp - aja-common.hpp - aja-output.cpp - aja-enums.hpp - aja-output.hpp - aja-presets.cpp - aja-presets.hpp - aja-props.cpp - aja-props.hpp - aja-routing.cpp - aja-routing.hpp - aja-source.cpp - aja-source.hpp - aja-vpid-data.cpp - aja-vpid-data.hpp - aja-widget-io.cpp - aja-widget-io.hpp - aja-card-manager.hpp - aja-ui-props.hpp - audio-repack.c - audio-repack.h - audio-repack.hpp) - -target_link_libraries(aja PRIVATE OBS::libobs AJA::LibAJANTV2) - -if(OS_MACOS) - find_library(IOKIT IOKit) - find_library(COREFOUNDATION CoreFoundation) - find_library(APPKIT AppKit) - - target_link_libraries(aja PRIVATE ${IOKIT} ${COREFOUNDATION} ${APPKIT}) -elseif(OS_WINDOWS) - set(MODULE_DESCRIPTION "OBS AJA Windows module") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in win-aja.rc) - - target_sources(aja PRIVATE win-aja.rc) - - target_compile_options(aja PRIVATE /wd4996) - target_link_libraries(aja PRIVATE ws2_32.lib setupapi.lib Winmm.lib netapi32.lib Shlwapi.lib) - target_link_options(aja PRIVATE "LINKER:/IGNORE:4099") -endif() - -if(NOT MSVC) - target_compile_options(aja PRIVATE -Wno-error=deprecated-declarations) -endif() - -set_target_properties(aja PROPERTIES FOLDER "plugins/aja" PREFIX "") - -setup_plugin_target(aja) diff --git a/plugins/coreaudio-encoder/cmake/legacy.cmake b/plugins/coreaudio-encoder/cmake/legacy.cmake deleted file mode 100644 index 4d45816324438c..00000000000000 --- a/plugins/coreaudio-encoder/cmake/legacy.cmake +++ /dev/null @@ -1,48 +0,0 @@ -project(coreaudio-encoder) - -if(OS_WINDOWS) - option(ENABLE_COREAUDIO_ENCODER "Enable building with CoreAudio encoder (Windows)" ON) - if(NOT ENABLE_COREAUDIO_ENCODER) - obs_status(DISABLED "coreaudio-encoder") - return() - endif() -endif() - -add_library(coreaudio-encoder MODULE) -add_library(OBS::coreaudio-encoder ALIAS coreaudio-encoder) - -target_sources(coreaudio-encoder PRIVATE encoder.cpp) - -set_target_properties( - coreaudio-encoder - PROPERTIES OUTPUT_NAME "coreaudio-encoder" - FOLDER "plugins" - PREFIX "") - -target_compile_features(coreaudio-encoder PRIVATE cxx_std_11) - -target_link_libraries(coreaudio-encoder PRIVATE OBS::libobs) - -if(OS_MACOS) - find_library(COREFOUNDATION CoreFoundation) - find_library(COREAUDIO CoreAudio) - find_library(AUDIOTOOLBOX AudioToolbox) - - mark_as_advanced(AUDIOTOOLBOX COREAUDIO COREFOUNDATION) - - target_link_libraries(coreaudio-encoder PRIVATE ${COREFOUNDATION} ${COREAUDIO} ${AUDIOTOOLBOX}) - -elseif(OS_WINDOWS) - if(MINGW) - set_source_files_properties(encoder.cpp PROPERTIES COMPILE_FLAGS -Wno-multichar) - endif() - - target_compile_definitions(coreaudio-encoder PRIVATE UNICODE _UNICODE) - - set(MODULE_DESCRIPTION "OBS CoreAudio encoder") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in coreaudio-encoder.rc) - - target_sources(coreaudio-encoder PRIVATE coreaudio-encoder.rc windows-imports.h) -endif() - -setup_plugin_target(coreaudio-encoder) diff --git a/plugins/decklink/cmake/legacy.cmake b/plugins/decklink/cmake/legacy.cmake deleted file mode 100644 index b30c3ae43e7a47..00000000000000 --- a/plugins/decklink/cmake/legacy.cmake +++ /dev/null @@ -1,104 +0,0 @@ -project(decklink) - -option(ENABLE_DECKLINK "Build OBS with Decklink support" ON) -if(NOT ENABLE_DECKLINK) - obs_status(DISABLED "decklink") - return() -endif() - -if(OS_WINDOWS) - include(IDLFileHelper) - add_idl_files(win-decklink-sdk_GENERATED_FILES win/decklink-sdk/DeckLinkAPI.idl) -endif() - -add_library(decklink MODULE) -add_library(OBS::decklink ALIAS decklink) - -add_library(decklink-sdk INTERFACE) -add_library(Decklink::SDK ALIAS decklink-sdk) - -target_sources( - decklink - PRIVATE OBSVideoFrame.cpp - OBSVideoFrame.h - audio-repack.c - audio-repack.h - audio-repack.hpp - const.h - decklink-device.cpp - decklink-device.hpp - decklink-devices.cpp - decklink-devices.hpp - decklink-device-discovery.cpp - decklink-device-discovery.hpp - decklink-device-instance.cpp - decklink-device-instance.hpp - decklink-device-mode.cpp - decklink-device-mode.hpp - decklink-output.cpp - decklink-source.cpp - DecklinkBase.cpp - DecklinkBase.h - DecklinkInput.cpp - DecklinkInput.hpp - DecklinkOutput.cpp - DecklinkOutput.hpp - platform.hpp - plugin-main.cpp - util.cpp - util.hpp) - -target_include_directories(decklink-sdk INTERFACE ${CMAKE_CURRENT_BINARY_DIR}) - -target_link_libraries(decklink PRIVATE OBS::libobs OBS::caption Decklink::SDK) - -set_target_properties(decklink PROPERTIES FOLDER "plugins/decklink") - -if(OS_WINDOWS) - set(MODULE_DESCRIPTION "OBS DeckLink Windows module") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in win-decklink.rc) - - target_compile_definitions(decklink PRIVATE NOMINMAX) - target_sources(decklink PRIVATE win/platform.cpp win-decklink.rc) - - target_sources(decklink-sdk INTERFACE win/decklink-sdk/DeckLinkAPIVersion.h ${win-decklink-sdk_GENERATED_FILES}) - -elseif(OS_MACOS) - find_library(COREFOUNDATION CoreFoundation) - mark_as_advanced(COREFOUNDATION) - - target_sources(decklink PRIVATE mac/platform.cpp) - - target_sources( - decklink-sdk - INTERFACE mac/decklink-sdk/DeckLinkAPIDispatch.cpp - mac/decklink-sdk/DeckLinkAPI.h - mac/decklink-sdk/DeckLinkAPIConfiguration.h - mac/decklink-sdk/DeckLinkAPIDeckControl.h - mac/decklink-sdk/DeckLinkAPIDiscovery.h - mac/decklink-sdk/DeckLinkAPIModes.h - mac/decklink-sdk/DeckLinkAPIStreaming.h - mac/decklink-sdk/DeckLinkAPITypes.h - mac/decklink-sdk/DeckLinkAPIVersion.h) - - target_link_libraries(decklink PRIVATE ${COREFOUNDATION}) - - target_compile_features(decklink PRIVATE cxx_auto_type) -elseif(OS_POSIX) - target_sources(decklink PRIVATE linux/platform.cpp) - - target_sources( - decklink-sdk - INTERFACE linux/decklink-sdk/DeckLinkAPIDispatch.cpp - linux/decklink-sdk/DeckLinkAPI.h - linux/decklink-sdk/DeckLinkAPIConfiguration.h - linux/decklink-sdk/DeckLinkAPIDeckControl.h - linux/decklink-sdk/DeckLinkAPIDiscovery.h - linux/decklink-sdk/DeckLinkAPIModes.h - linux/decklink-sdk/DeckLinkAPITypes.h - linux/decklink-sdk/DeckLinkAPIVersion.h - linux/decklink-sdk/LinuxCOM.h) -endif() - -setup_plugin_target(decklink) -setup_target_resources(decklink "obs-plugins/decklink") diff --git a/plugins/image-source/cmake/legacy.cmake b/plugins/image-source/cmake/legacy.cmake deleted file mode 100644 index 38582c06fb6eeb..00000000000000 --- a/plugins/image-source/cmake/legacy.cmake +++ /dev/null @@ -1,23 +0,0 @@ -project(image-source) - -add_library(image-source MODULE) -add_library(OBS::image-source ALIAS image-source) - -target_sources(image-source PRIVATE image-source.c color-source.c obs-slideshow.c obs-slideshow-mk2.c) - -target_link_libraries(image-source PRIVATE OBS::libobs) - -if(OS_WINDOWS) - if(MSVC) - target_link_libraries(image-source PRIVATE OBS::w32-pthreads) - endif() - - set(MODULE_DESCRIPTION "OBS image module") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in image-source.rc) - - target_sources(image-source PRIVATE image-source.rc) -endif() - -set_target_properties(image-source PROPERTIES FOLDER "plugins" PREFIX "") - -setup_plugin_target(image-source) diff --git a/plugins/linux-alsa/cmake/legacy.cmake b/plugins/linux-alsa/cmake/legacy.cmake deleted file mode 100644 index a3ea221fb6ca91..00000000000000 --- a/plugins/linux-alsa/cmake/legacy.cmake +++ /dev/null @@ -1,20 +0,0 @@ -project(linux-alsa) - -option(ENABLE_ALSA "Build OBS with ALSA support" ON) -if(NOT ENABLE_ALSA) - obs_status(DISABLED "linux-alsa") - return() -endif() - -find_package(ALSA REQUIRED) - -add_library(linux-alsa MODULE) -add_library(OBS::alsa ALIAS linux-alsa) - -target_sources(linux-alsa PRIVATE linux-alsa.c alsa-input.c) - -target_link_libraries(linux-alsa PRIVATE OBS::libobs ALSA::ALSA) - -set_target_properties(linux-alsa PROPERTIES FOLDER "plugins") - -setup_plugin_target(linux-alsa) diff --git a/plugins/linux-capture/cmake/legacy.cmake b/plugins/linux-capture/cmake/legacy.cmake deleted file mode 100644 index feb8077e823b1d..00000000000000 --- a/plugins/linux-capture/cmake/legacy.cmake +++ /dev/null @@ -1,37 +0,0 @@ -project(linux-capture) - -find_package(X11 REQUIRED) -find_package(XCB COMPONENTS XCB XFIXES RANDR SHM XINERAMA COMPOSITE) -if(NOT TARGET XCB::COMPOSITE) - obs_status(FATAL_ERROR "xcb composite library not found") -endif() - -add_library(linux-capture MODULE) -add_library(OBS::capture ALIAS linux-capture) - -target_sources( - linux-capture - PRIVATE linux-capture.c - xcursor-xcb.c - xcursor-xcb.h - xhelpers.c - xhelpers.h - xshm-input.c - xcomposite-input.c - xcomposite-input.h) - -target_link_libraries( - linux-capture - PRIVATE OBS::libobs - OBS::obsglad - X11::X11 - XCB::XCB - XCB::XFIXES - XCB::RANDR - XCB::SHM - XCB::XINERAMA - XCB::COMPOSITE) - -set_target_properties(linux-capture PROPERTIES FOLDER "plugins") - -setup_plugin_target(linux-capture) diff --git a/plugins/linux-jack/cmake/legacy.cmake b/plugins/linux-jack/cmake/legacy.cmake deleted file mode 100644 index c78418d63ff0c3..00000000000000 --- a/plugins/linux-jack/cmake/legacy.cmake +++ /dev/null @@ -1,20 +0,0 @@ -project(linux-jack) - -option(ENABLE_JACK "Build OBS with JACK support" OFF) -if(NOT ENABLE_JACK) - obs_status(DISABLED "linux-jack") - return() -endif() - -find_package(Jack REQUIRED) - -add_library(linux-jack MODULE) -add_library(OBS::jack ALIAS linux-jack) - -target_sources(linux-jack PRIVATE linux-jack.c jack-wrapper.c jack-input.c) - -target_link_libraries(linux-jack PRIVATE OBS::libobs Jack::Jack) - -set_target_properties(linux-jack PROPERTIES FOLDER "plugins" PROJECT_LABEL "JACK Audio") - -setup_plugin_target(linux-jack) diff --git a/plugins/linux-pipewire/cmake/legacy.cmake b/plugins/linux-pipewire/cmake/legacy.cmake deleted file mode 100644 index 9f4b601bb326a8..00000000000000 --- a/plugins/linux-pipewire/cmake/legacy.cmake +++ /dev/null @@ -1,46 +0,0 @@ -project(linux-pipewire) - -option(ENABLE_PIPEWIRE "Enable PipeWire support" ON) -if(NOT ENABLE_PIPEWIRE) - obs_status(DISABLED "linux-pipewire") - return() -endif() - -find_package(PipeWire 0.3.33 REQUIRED) -find_package(Gio QUIET) -find_package(Libdrm QUIET) # we require libdrm/drm_fourcc.h to build - -if(NOT TARGET PipeWire::PipeWire) - obs_status(FATAL_ERROR "PipeWire library not found! Please install PipeWire or set ENABLE_PIPEWIRE=OFF.") -elseif(NOT TARGET GIO::GIO) - obs_status(FATAL_ERROR "Gio library not found! Please install GLib2 (or Gio) or set ENABLE_PIPEWIRE=OFF.") -elseif(NOT TARGET Libdrm::Libdrm) - obs_status(FATAL_ERROR "libdrm headers not found! Please install libdrm or set ENABLE_PIPEWIRE=OFF.") -endif() - -add_library(linux-pipewire MODULE) -add_library(OBS::pipewire ALIAS linux-pipewire) - -target_sources( - linux-pipewire - PRIVATE formats.c - formats.h - linux-pipewire.c - pipewire.c - pipewire.h - portal.c - portal.h - screencast-portal.c - screencast-portal.h) - -target_link_libraries(linux-pipewire PRIVATE OBS::libobs OBS::obsglad PipeWire::PipeWire GIO::GIO Libdrm::Libdrm) - -if(PIPEWIRE_VERSION VERSION_GREATER_EQUAL 0.3.60) - obs_status(STATUS "PipeWire 0.3.60+ found, enabling camera support") - - target_sources(linux-pipewire PRIVATE camera-portal.c camera-portal.h) -endif() - -set_target_properties(linux-pipewire PROPERTIES FOLDER "plugins") - -setup_plugin_target(linux-pipewire) diff --git a/plugins/linux-pulseaudio/cmake/legacy.cmake b/plugins/linux-pulseaudio/cmake/legacy.cmake deleted file mode 100644 index 59d0d5d97c32aa..00000000000000 --- a/plugins/linux-pulseaudio/cmake/legacy.cmake +++ /dev/null @@ -1,21 +0,0 @@ -project(linux-pulseaudio) - -if(NOT ENABLE_PULSEAUDIO) - obs_status(DISABLED "linux-pulseaudio") - return() -endif() - -find_package(PulseAudio REQUIRED) - -add_library(linux-pulseaudio MODULE) -add_library(OBS::pulseaudio ALIAS linux-pulseaudio) - -target_sources(linux-pulseaudio PRIVATE linux-pulseaudio.c pulse-wrapper.c pulse-input.c) - -target_include_directories(linux-pulseaudio PRIVATE ${PULSEAUDIO_INCLUDE_DIR}) - -target_link_libraries(linux-pulseaudio PRIVATE OBS::libobs ${PULSEAUDIO_LIBRARY}) - -set_target_properties(linux-pulseaudio PROPERTIES FOLDER "plugins") - -setup_plugin_target(linux-pulseaudio) diff --git a/plugins/linux-v4l2/cmake/legacy.cmake b/plugins/linux-v4l2/cmake/legacy.cmake deleted file mode 100644 index 90db5d46e0812b..00000000000000 --- a/plugins/linux-v4l2/cmake/legacy.cmake +++ /dev/null @@ -1,31 +0,0 @@ -project(linux-v4l2) - -option(ENABLE_V4L2 "Build OBS with v4l2 support" ON) -if(NOT ENABLE_V4L2) - obs_status(DISABLED "linux-v4l2") - return() -endif() - -option(ENABLE_UDEV "Build linux-v4l2 with UDEV support" ON) - -find_package(Libv4l2 REQUIRED) -find_package(FFmpeg REQUIRED COMPONENTS avcodec avutil avformat) - -add_library(linux-v4l2 MODULE) -add_library(OBS::v4l2 ALIAS linux-v4l2) - -target_sources(linux-v4l2 PRIVATE linux-v4l2.c v4l2-controls.c v4l2-input.c v4l2-helpers.c v4l2-output.c v4l2-decoder.c) - -target_link_libraries(linux-v4l2 PRIVATE OBS::libobs LIB4L2::LIB4L2 FFmpeg::avcodec FFmpeg::avformat FFmpeg::avutil) - -set_target_properties(linux-v4l2 PROPERTIES FOLDER "plugins") - -if(ENABLE_UDEV) - find_package(Udev REQUIRED) - target_sources(linux-v4l2 PRIVATE v4l2-udev.c) - - target_link_libraries(linux-v4l2 PRIVATE Udev::Udev) - target_compile_definitions(linux-v4l2 PRIVATE HAVE_UDEV) -endif() - -setup_plugin_target(linux-v4l2) diff --git a/plugins/obs-ffmpeg/cmake/legacy.cmake b/plugins/obs-ffmpeg/cmake/legacy.cmake deleted file mode 100644 index 6bc1b6b2f090b7..00000000000000 --- a/plugins/obs-ffmpeg/cmake/legacy.cmake +++ /dev/null @@ -1,125 +0,0 @@ -project(obs-ffmpeg) - -option(ENABLE_FFMPEG_LOGGING "Enables obs-ffmpeg logging" OFF) -option(ENABLE_NEW_MPEGTS_OUTPUT "Use native SRT/RIST mpegts output" ON) - -if(OS_LINUX OR OS_WINDOWS) - option(ENABLE_FFMPEG_NVENC "Enables legacy FFmpeg NVENC encoder" OFF) -endif() - -find_package( - FFmpeg REQUIRED - COMPONENTS avcodec - avfilter - avdevice - avutil - swscale - avformat - swresample) - -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) - find_package(Libsrt QUIET) - - if(NOT TARGET Librist::Librist AND NOT TARGET Libsrt::Libsrt) - obs_status( - FATAL_ERROR - "SRT and RIST libraries not found! Please install SRT and RIST libraries or set ENABLE_NEW_MPEGTS_OUTPUT=OFF.") - elseif(NOT TARGET Libsrt::Libsrt) - obs_status(FATAL_ERROR "SRT library not found! Please install SRT library or set ENABLE_NEW_MPEGTS_OUTPUT=OFF.") - elseif(NOT TARGET Librist::Librist) - obs_status(FATAL_ERROR "RIST library not found! Please install RIST library or set ENABLE_NEW_MPEGTS_OUTPUT=OFF.") - endif() -endif() - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/obs-ffmpeg-config.h.in ${CMAKE_BINARY_DIR}/config/obs-ffmpeg-config.h) - -target_sources( - obs-ffmpeg - PRIVATE obs-ffmpeg.c - obs-ffmpeg-video-encoders.c - obs-ffmpeg-audio-encoders.c - obs-ffmpeg-av1.c - obs-ffmpeg-output.c - obs-ffmpeg-output.h - obs-ffmpeg-mux.c - obs-ffmpeg-mux.h - obs-ffmpeg-hls-mux.c - obs-ffmpeg-source.c - obs-ffmpeg-compat.h - obs-ffmpeg-formats.h - ${CMAKE_BINARY_DIR}/config/obs-ffmpeg-config.h) - -target_include_directories(obs-ffmpeg PRIVATE ${CMAKE_BINARY_DIR}/config) - -target_link_libraries( - obs-ffmpeg - PRIVATE OBS::libobs - OBS::media-playback - OBS::opts-parser - FFmpeg::avcodec - FFmpeg::avfilter - FFmpeg::avformat - FFmpeg::avdevice - FFmpeg::avutil - FFmpeg::swscale - FFmpeg::swresample) - -if(ENABLE_NEW_MPEGTS_OUTPUT) - target_sources(obs-ffmpeg PRIVATE obs-ffmpeg-mpegts.c obs-ffmpeg-srt.h obs-ffmpeg-rist.h obs-ffmpeg-url.h) - - target_link_libraries(obs-ffmpeg PRIVATE Librist::Librist Libsrt::Libsrt) - if(OS_WINDOWS) - target_link_libraries(obs-ffmpeg PRIVATE ws2_32.lib) - endif() - target_compile_definitions(obs-ffmpeg PRIVATE NEW_MPEGTS_OUTPUT) -endif() - -if(ENABLE_FFMPEG_NVENC) - target_sources(obs-ffmpeg PRIVATE obs-ffmpeg-nvenc.c) - target_compile_definitions(obs-ffmpeg PRIVATE ENABLE_FFMPEG_NVENC) -endif() - -if(ENABLE_FFMPEG_LOGGING) - target_sources(obs-ffmpeg PRIVATE obs-ffmpeg-logging.c) -endif() - -set_target_properties(obs-ffmpeg PROPERTIES FOLDER "plugins/obs-ffmpeg" PREFIX "") - -if(OS_WINDOWS) - find_package(AMF 1.4.29 REQUIRED) - find_package(FFnvcodec 12 REQUIRED) - - add_subdirectory(obs-amf-test) - - if(MSVC) - target_link_libraries(obs-ffmpeg PRIVATE OBS::w32-pthreads) - endif() - target_link_libraries(obs-ffmpeg PRIVATE AMF::AMF FFnvcodec::FFnvcodec) - - set(MODULE_DESCRIPTION "OBS FFmpeg module") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in obs-ffmpeg.rc) - - target_sources(obs-ffmpeg PRIVATE texture-amf.cpp texture-amf-opts.hpp obs-ffmpeg.rc) - -elseif(OS_POSIX AND NOT OS_MACOS) - find_package(Libva REQUIRED) - find_package(Libpci REQUIRED) - find_package(Libdrm REQUIRED) - target_sources(obs-ffmpeg PRIVATE obs-ffmpeg-vaapi.c vaapi-utils.c vaapi-utils.h) - target_link_libraries(obs-ffmpeg PRIVATE Libva::va Libva::drm LIBPCI::LIBPCI Libdrm::Libdrm) -endif() - -setup_plugin_target(obs-ffmpeg) diff --git a/plugins/obs-filters/cmake/legacy.cmake b/plugins/obs-filters/cmake/legacy.cmake deleted file mode 100644 index e7675586b5f7a3..00000000000000 --- a/plugins/obs-filters/cmake/legacy.cmake +++ /dev/null @@ -1,188 +0,0 @@ -project(obs-filters) - -option(ENABLE_SPEEXDSP "Enable building with SpeexDSP-based noise suppression filter" ON) -option(ENABLE_RNNOISE "Enable building with RNNoise noise supression filter" ON) - -if(OS_WINDOWS) - option(ENABLE_NVAFX "Enable building with NVIDIA Audio Effects SDK (requires redistributable to be installed)" ON) - option(ENABLE_NVVFX "Enable building with NVIDIA Video Effects SDK (requires redistributable to be installed)" ON) -endif() - -add_library(obs-filters MODULE) -add_library(OBS::filters ALIAS obs-filters) - -set(HAS_NOISEREDUCTION OFF) - -if(NOT ENABLE_SPEEXDSP) - obs_status(DISABLED "SpeexDSP") -else() - find_package(Libspeexdsp REQUIRED) - - target_sources(obs-filters PRIVATE noise-suppress-filter.c) - - target_link_libraries(obs-filters PRIVATE LibspeexDSP::LibspeexDSP) - - target_compile_definitions(obs-filters PRIVATE LIBSPEEXDSP_ENABLED) - - if(OS_WINDOWS) - target_link_options(obs-filters PRIVATE "LINKER:/LTCG" "LINKER:/IGNORE:4098" "LINKER:/IGNORE:4099") - endif() -endif() - -if(NOT ENABLE_RNNOISE) - obs_status(DISABLED "RNNoise") -else() - find_package(Librnnoise QUIET) - - if(NOT TARGET Librnnoise::Librnnoise) - obs_status(STATUS "obs-filters -> using bundled RNNoise library") - add_library(obs-rnnoise INTERFACE) - add_library(Librnnoise::Librnnoise ALIAS obs-rnnoise) - - set(_RNNOISE_SOURCES - rnnoise/src/arch.h - rnnoise/src/celt_lpc.c - rnnoise/src/celt_lpc.h - rnnoise/src/common.h - rnnoise/src/denoise.c - rnnoise/src/kiss_fft.c - rnnoise/src/kiss_fft.h - rnnoise/src/opus_types.h - rnnoise/src/pitch.c - rnnoise/src/pitch.h - rnnoise/src/rnn_data.c - rnnoise/src/rnn_data.h - rnnoise/src/rnn_reader.c - rnnoise/src/rnn.c - rnnoise/src/rnn.h - rnnoise/src/tansig_table.h - rnnoise/src/_kiss_fft_guts.h - rnnoise/include/rnnoise.h) - - target_sources(obs-rnnoise INTERFACE ${_RNNOISE_SOURCES}) - - target_include_directories(obs-rnnoise INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/rnnoise/include") - - target_compile_definitions(obs-rnnoise INTERFACE COMPILE_OPUS) - - target_compile_options(obs-rnnoise INTERFACE "$<$:-Wno-null-dereference>") - - if(OS_LINUX) - set_property(SOURCE ${_RNNOISE_SOURCES} PROPERTY COMPILE_FLAGS -fvisibility=hidden) - endif() - - source_group("rnnoise" FILES ${_RNNOISE_SOURCES}) - endif() - - target_sources(obs-filters PRIVATE noise-suppress-filter.c) - - target_link_libraries(obs-filters PRIVATE Librnnoise::Librnnoise) - - target_compile_definitions(obs-filters PRIVATE LIBRNNOISE_ENABLED) -endif() - -if(NOT ENABLE_NVAFX) - obs_status(DISABLED "NVIDIA Audio FX support") - set(LIBNVAFX_FOUND OFF) -else() - obs_status(ENABLED "NVIDIA Audio FX support") - - target_compile_definitions(obs-filters PRIVATE LIBNVAFX_ENABLED) - - set(LIBNVAFX_FOUND ON) -endif() - -if(NOT ENABLE_NVVFX) - obs_status(DISABLED "NVIDIA Video FX support") - set(LIBNVVFX_FOUND OFF) -else() - obs_status(ENABLED "NVIDIA Video FX support") - set(LIBNVVFX_FOUND ON) - target_compile_definitions(obs-filters PRIVATE LIBNVVFX_ENABLED) -endif() - -if(TARGET Librnnoise::Librnnoise - OR TARGET LibspeexDSP::LibspeexDSP - OR LIBNVAFX_FOUND) - target_compile_definitions(obs-filters PRIVATE HAS_NOISEREDUCTION) -endif() - -target_sources( - obs-filters - PRIVATE obs-filters.c - color-correction-filter.c - async-delay-filter.c - gpu-delay.c - hdr-tonemap-filter.c - crop-filter.c - scale-filter.c - scroll-filter.c - chroma-key-filter.c - color-key-filter.c - color-grade-filter.c - sharpness-filter.c - eq-filter.c - gain-filter.c - noise-gate-filter.c - mask-filter.c - invert-audio-polarity.c - compressor-filter.c - limiter-filter.c - expander-filter.c - luma-key-filter.c) - -if(NOT OS_MACOS) - target_sources( - obs-filters - PRIVATE data/blend_add_filter.effect - data/blend_mul_filter.effect - data/blend_sub_filter.effect - data/chroma_key_filter.effect - data/chroma_key_filter_v2.effect - data/color.effect - data/color_correction_filter.effect - data/color_grade_filter.effect - data/color_key_filter.effect - data/color_key_filter_v2.effect - data/crop_filter.effect - data/hdr_tonemap_filter.effect - data/luma_key_filter.effect - data/luma_key_filter_v2.effect - data/mask_alpha_filter.effect - data/mask_color_filter.effect - data/sharpness.effect - data/rtx_greenscreen.effect) - - get_target_property(_SOURCES obs-filters SOURCES) - set(_FILTERS ${_SOURCES}) - list(FILTER _FILTERS INCLUDE REGEX ".*\\.effect") - - source_group( - TREE "${CMAKE_CURRENT_SOURCE_DIR}" - PREFIX "Effect Files" - FILES ${_FILTERS}) -endif() - -if(LIBNVVFX_FOUND) - target_sources(obs-filters PRIVATE nvidia-greenscreen-filter.c) - obs_status(STATUS "NVIDIA Video FX support enabled; requires redist to be installed by end-user") -endif() - -target_include_directories(obs-filters PRIVATE $) - -target_link_libraries(obs-filters PRIVATE OBS::libobs) - -set_target_properties(obs-filters PROPERTIES FOLDER "plugins" PREFIX "") - -if(OS_WINDOWS) - if(MSVC) - target_link_libraries(obs-filters PRIVATE OBS::w32-pthreads) - endif() - - set(MODULE_DESCRIPTION "OBS A/V Filters") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in obs-filters.rc) - - target_sources(obs-filters PRIVATE obs-filters.rc) -endif() - -setup_plugin_target(obs-filters) diff --git a/plugins/obs-libfdk/cmake/legacy.cmake b/plugins/obs-libfdk/cmake/legacy.cmake deleted file mode 100644 index efdb6908f650c4..00000000000000 --- a/plugins/obs-libfdk/cmake/legacy.cmake +++ /dev/null @@ -1,21 +0,0 @@ -project(obs-libfdk) - -option(ENABLE_LIBFDK "Enable FDK AAC support" OFF) - -if(NOT ENABLE_LIBFDK) - obs_status(DISABLED "obs-libfdk") - return() -endif() - -find_package(Libfdk REQUIRED) - -add_library(obs-libfdk MODULE) -add_library(OBS::libfdk ALIAS obs-libfdk) - -target_sources(obs-libfdk PRIVATE obs-libfdk.c) - -target_link_libraries(obs-libfdk PRIVATE OBS::libobs LibFDK::LibFDK) - -set_target_properties(obs-libfdk PROPERTIES FOLDER "plugins" PREFIX "") - -setup_plugin_target(obs-libfdk) diff --git a/plugins/obs-outputs/cmake/legacy.cmake b/plugins/obs-outputs/cmake/legacy.cmake deleted file mode 100644 index fd16b035b5567b..00000000000000 --- a/plugins/obs-outputs/cmake/legacy.cmake +++ /dev/null @@ -1,121 +0,0 @@ -project(obs-outputs) - -if(NOT DEFINED ENABLE_RTMPS) - set(ENABLE_RTMPS - AUTO - CACHE STRING "Enable RTMPS support with mbedTLS" FORCE) - set_property(CACHE ENABLE_RTMPS PROPERTY STRINGS AUTO ON OFF) -endif() - -option(ENABLE_STATIC_MBEDTLS "Enable statically linking mbedTLS into binary" OFF) -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 - obs-output-ver.h - flv-mux.c - flv-mux.h - flv-output.c - mp4-mux-internal.h - mp4-mux.c - mp4-mux.h - mp4-output.c - net-if.c - net-if.h - null-output.c - rtmp-helpers.h - rtmp-stream.c - rtmp-stream.h - rtmp-windows.c - rtmp-av1.c - rtmp-av1.h - utils.h - librtmp/amf.c - librtmp/amf.h - librtmp/bytes.h - librtmp/cencode.c - librtmp/cencode.h - librtmp/handshake.h - librtmp/hashswf.c - librtmp/http.h - librtmp/log.c - librtmp/log.h - librtmp/md5.c - librtmp/md5.h - librtmp/parseurl.c - librtmp/rtmp.c - librtmp/rtmp.h - librtmp/rtmp_sys.h) - -if(ENABLE_HEVC) - target_sources(obs-outputs PRIVATE rtmp-hevc.c rtmp-hevc.h) -endif() - -target_link_libraries(obs-outputs PRIVATE OBS::libobs OBS::happy-eyeballs OBS::opts-parser) - -set_target_properties(obs-outputs PROPERTIES FOLDER "plugins" PREFIX "") - -if(OS_WINDOWS) - set(MODULE_DESCRIPTION "OBS output module") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in obs-outputs.rc) - - target_sources(obs-outputs PRIVATE obs-outputs.rc) - - if(MSVC) - target_link_libraries(obs-outputs PRIVATE OBS::w32-pthreads) - target_link_options(obs-outputs PRIVATE "LINKER:/IGNORE:4098" "LINKER:/IGNORE:4099") - endif() - - target_link_libraries(obs-outputs PRIVATE ws2_32 winmm Iphlpapi) -endif() - -if(ENABLE_RTMPS STREQUAL "AUTO" OR ENABLE_RTMPS STREQUAL "ON") - find_package(MbedTLS) - find_package(ZLIB) - if(NOT MBEDTLS_FOUND OR NOT ZLIB_FOUND) - if(ENABLE_RTMPS STREQUAL "ON") - obs_status(FATAL_ERROR "mbedTLS or zlib not found, but required for RTMPS support.") - return() - else() - obs_status(WARNING "mbedTLS or zlib was not found, RTMPS will be automatically disabled.") - target_compile_definitions(obs-outputs PRIVATE NO_CRYPTO) - endif() - else() - target_compile_definitions(obs-outputs PRIVATE USE_MBEDTLS CRYPTO) - - target_link_libraries(obs-outputs PRIVATE Mbedtls::Mbedtls ZLIB::ZLIB) - - if(OS_WINDOWS) - target_link_libraries(obs-outputs PRIVATE crypt32) - - elseif(OS_MACOS) - find_library(FOUNDATION_FRAMEWORK Foundation) - find_library(SECURITY_FRAMEWORK Security) - mark_as_advanced(FOUNDATION_FRAMEWORK SECURITY_FRAMEWORK) - - target_link_libraries(obs-outputs PRIVATE ${FOUNDATION_FRAMEWORK} ${SECURITY_FRAMEWORK}) - set_target_properties(obs-outputs PROPERTIES CXX_VISIBILITY_PRESET hidden) - set_target_properties(obs-outputs PROPERTIES C_VISIBILITY_PRESET hidden) - - elseif(OS_POSIX) - set_target_properties(obs-outputs PROPERTIES CXX_VISIBILITY_PRESET hidden) - set_target_properties(obs-outputs PROPERTIES C_VISIBILITY_PRESET hidden) - endif() - endif() -else() - target_compile_definitions(obs-outputs PRIVATE NO_CRYPTO) -endif() - -setup_plugin_target(obs-outputs) diff --git a/plugins/obs-qsv11/cmake/legacy.cmake b/plugins/obs-qsv11/cmake/legacy.cmake deleted file mode 100644 index 34a445bde2433c..00000000000000 --- a/plugins/obs-qsv11/cmake/legacy.cmake +++ /dev/null @@ -1,60 +0,0 @@ -option(ENABLE_QSV11 "Build Intel QSV11 Hardware Encoder." TRUE) - -if(NOT ENABLE_QSV11) - obs_status(DISABLED "obs-qsv11") - return() -endif() - -project(obs-qsv11) - -add_library(obs-qsv11 MODULE) -add_library(OBS::qsv11 ALIAS obs-qsv11) - -find_package(VPL 2.6 REQUIRED) - -target_sources( - obs-qsv11 - PRIVATE obs-qsv11.c - obs-qsv11-plugin-main.c - common_utils.cpp - common_utils.h - QSV_Encoder.cpp - QSV_Encoder.h - QSV_Encoder_Internal.cpp - QSV_Encoder_Internal.h - bits/linux_defs.h - bits/windows_defs.h) - -target_link_libraries(obs-qsv11 PRIVATE OBS::libobs VPL::VPL) - -if(OS_WINDOWS) - add_subdirectory(obs-qsv-test) - - target_compile_definitions(obs-qsv11 PRIVATE DX11_D3D) - - set(MODULE_DESCRIPTION "OBS QSV encoder") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in obs-qsv11.rc) - - target_sources(obs-qsv11 PRIVATE obs-qsv11.rc common_directx11.cpp common_directx11.h common_utils_windows.cpp) - - target_link_libraries(obs-qsv11 PRIVATE d3d11 dxgi dxguid) - target_link_options(obs-qsv11 PRIVATE /IGNORE:4099) - - target_compile_definitions(obs-qsv11 PRIVATE UNICODE _UNICODE _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS) -elseif(OS_LINUX) - find_package(Libva REQUIRED) - - target_sources(obs-qsv11 PRIVATE common_utils_linux.cpp) - - target_link_libraries(obs-qsv11 PRIVATE Libva::va Libva::drm) -endif() - -set_target_properties(obs-qsv11 PROPERTIES FOLDER "plugins/obs-qsv11") - -file(GLOB _OBS_QSV11_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.c ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) -file(GLOB _OBS_QSV11_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp) - -source_group("obs-qsv11\\Source Files" FILES ${_OBS_QSV11_SOURCE_FILES}) -source_group("obs-qsv11\\Header Files" FILES ${_OBS_QSV11_HEADER_FILES}) - -setup_plugin_target(obs-qsv11) diff --git a/plugins/obs-transitions/cmake/legacy.cmake b/plugins/obs-transitions/cmake/legacy.cmake deleted file mode 100644 index 6153ad784d90b6..00000000000000 --- a/plugins/obs-transitions/cmake/legacy.cmake +++ /dev/null @@ -1,45 +0,0 @@ -project(obs-transitions) - -add_library(obs-transitions MODULE) -add_library(OBS::transition ALIAS obs-transitions) - -target_sources( - obs-transitions - PRIVATE obs-transitions.c - transition-slide.c - transition-swipe.c - transition-fade.c - transition-cut.c - transition-fade-to-color.c - transition-luma-wipe.c - transition-stinger.c) - -if(NOT OS_MACOS) - target_sources( - obs-transitions - PRIVATE data/fade_to_color_transition.effect data/fade_transition.effect data/luma_wipe_transition.effect - data/slide_transition.effect data/stinger_matte_transition.effect data/swipe_transition.effect) - - get_target_property(_SOURCES obs-transitions SOURCES) - set(_FILTERS ${_SOURCES}) - list(FILTER _FILTERS INCLUDE REGEX ".*\\.effect") - - source_group( - TREE "${CMAKE_CURRENT_SOURCE_DIR}" - PREFIX "Effect Files" - FILES ${_FILTERS}) -endif() - -target_link_libraries(obs-transitions PRIVATE OBS::libobs) - -if(OS_WINDOWS) - set(MODULE_DESCRIPTION "OBS Transitions module") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in obs-transitions.rc) - - target_sources(obs-transitions PRIVATE obs-transitions.rc) - -endif() - -set_target_properties(obs-transitions PROPERTIES FOLDER "plugins" PREFIX "") - -setup_plugin_target(obs-transitions) diff --git a/plugins/obs-vst/cmake/legacy.cmake b/plugins/obs-vst/cmake/legacy.cmake deleted file mode 100644 index a605664975b1d7..00000000000000 --- a/plugins/obs-vst/cmake/legacy.cmake +++ /dev/null @@ -1,79 +0,0 @@ -project(obs-vst) - -option(ENABLE_VST "Enable building OBS with VST plugin" ON) - -if(NOT ENABLE_VST) - message(STATUS "OBS: DISABLED obs-vst") - return() -endif() - -option(ENABLE_VST_BUNDLED_HEADERS "Build with Bundled Headers" ON) -mark_as_advanced(ENABLE_VST_BUNDLED_HEADERS) - -add_library(obs-vst MODULE) -add_library(OBS::vst ALIAS obs-vst) - -find_qt(COMPONENTS Widgets) - -set_target_properties( - obs-vst - PROPERTIES AUTOMOC ON - AUTOUIC ON - AUTORCC ON) - -if(OS_WINDOWS) - set_target_properties(obs-vst PROPERTIES AUTORCC_OPTIONS "--format-version;1") -endif() - -target_include_directories(obs-vst PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) - -target_sources(obs-vst PRIVATE obs-vst.cpp VSTPlugin.cpp EditorWidget.cpp headers/vst-plugin-callbacks.hpp - headers/EditorWidget.h headers/VSTPlugin.h) - -target_link_libraries(obs-vst PRIVATE OBS::libobs Qt::Widgets) - -target_include_directories(obs-vst PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/headers) - -target_compile_features(obs-vst PRIVATE cxx_std_17) - -if(ENABLE_VST_BUNDLED_HEADERS) - message(STATUS "OBS: - obs-vst uses bundled VST headers") - - target_sources(obs-vst PRIVATE vst_header/aeffectx.h) - - target_include_directories(obs-vst PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/vst_header) -else() - set(VST_INCLUDE_DIR - "" - CACHE PATH "Path to Steinburg headers (e.g. C:/VST3 SDK/pluginterfaces/vst2.x)" FORCE) - mark_as_advanced(VST_INCLUDE_DIR) - - message(WARNING "OBS: You should only use the Steinburg headers for debugging or local builds. " - "It is illegal to distribute the Steinburg headers with anything, and " - "possibly against the GPL to distribute the binaries from the resultant compile.") - - target_sources(obs-vst PRIVATE ${VST_INCLUDE_DIR}/aeffectx.h) -endif() - -if(OS_MACOS) - find_library(FOUNDATION Foundation) - find_library(COCOA Cocoa) - mark_as_advanced(COCOA FOUNDATION) - - target_sources(obs-vst PRIVATE mac/VSTPlugin-osx.mm mac/EditorWidget-osx.mm) - - target_link_libraries(obs-vst PRIVATE ${COCOA} ${FOUNDATION}) - -elseif(OS_WINDOWS) - target_sources(obs-vst PRIVATE win/VSTPlugin-win.cpp win/EditorWidget-win.cpp) - - target_compile_definitions(obs-vst PRIVATE UNICODE _UNICODE) - -elseif(OS_POSIX) - target_sources(obs-vst PRIVATE linux/VSTPlugin-linux.cpp linux/EditorWidget-linux.cpp) - -endif() - -set_target_properties(obs-vst PROPERTIES FOLDER "plugins" PREFIX "") - -setup_plugin_target(obs-vst) diff --git a/plugins/obs-webrtc/cmake/legacy.cmake b/plugins/obs-webrtc/cmake/legacy.cmake deleted file mode 100644 index 76d9d0903ad434..00000000000000 --- a/plugins/obs-webrtc/cmake/legacy.cmake +++ /dev/null @@ -1,22 +0,0 @@ -project(obs-webrtc) - -option(ENABLE_WEBRTC "Enable WebRTC Output support" ON) -if(NOT ENABLE_WEBRTC) - obs_status(DISABLED "obs-webrtc") - return() -endif() - -find_package(LibDataChannel 0.20 REQUIRED) -find_package(CURL REQUIRED) - -add_library(obs-webrtc MODULE) -add_library(OBS::webrtc ALIAS obs-webrtc) - -target_sources(obs-webrtc PRIVATE obs-webrtc.cpp whip-output.cpp whip-output.h whip-service.cpp whip-service.h - whip-utils.h) - -target_link_libraries(obs-webrtc PRIVATE OBS::libobs LibDataChannel::LibDataChannel CURL::libcurl) - -set_target_properties(obs-webrtc PROPERTIES FOLDER "plugins") - -setup_plugin_target(obs-webrtc) diff --git a/plugins/obs-x264/cmake/legacy.cmake b/plugins/obs-x264/cmake/legacy.cmake deleted file mode 100644 index c9d0fa21317c24..00000000000000 --- a/plugins/obs-x264/cmake/legacy.cmake +++ /dev/null @@ -1,34 +0,0 @@ -project(obs-x264) - -find_package(Libx264 REQUIRED) - -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) - -target_sources(obs-x264 PRIVATE obs-x264.c obs-x264-plugin-main.c) - -target_link_libraries(obs-x264 PRIVATE LIBX264::LIBX264 OBS::opts-parser) - -set_target_properties(obs-x264 PROPERTIES FOLDER "plugins" PREFIX "") - -if(OS_WINDOWS) - set(MODULE_DESCRIPTION "OBS x264 encoder") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in obs-x264.rc) - - target_sources(obs-x264 PRIVATE obs-x264.rc) - -endif() - -set_target_properties(obs-x264-test PROPERTIES FOLDER "plugins") -add_test(NAME obs-x264-test COMMAND obs-x264-test) - -setup_plugin_target(obs-x264) diff --git a/plugins/oss-audio/cmake/legacy.cmake b/plugins/oss-audio/cmake/legacy.cmake deleted file mode 100644 index b538cf4db21342..00000000000000 --- a/plugins/oss-audio/cmake/legacy.cmake +++ /dev/null @@ -1,27 +0,0 @@ -project(oss-audio) - -option(ENABLE_OSS "Enable building with OSS audio support" ON) - -if(NOT ENABLE_OSS) - obs_status(DISABLED "oss-audio") - return() -endif() - -find_package(OSS REQUIRED) - -add_library(oss-audio MODULE) -add_library(OBS::oss-audio ALIAS oss-audio) - -target_sources(oss-audio PRIVATE oss-audio.c oss-input.c) - -target_link_libraries(oss-audio PRIVATE OBS::libobs OSS::OSS) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/oss-platform.h.in oss-platform.h) - -target_include_directories(oss-audio PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) - -target_sources(oss-audio PRIVATE oss-platform.h) - -set_target_properties(oss-audio PROPERTIES FOLDER "plugins") - -setup_plugin_target(oss-audio) diff --git a/plugins/rtmp-services/cmake/legacy.cmake b/plugins/rtmp-services/cmake/legacy.cmake deleted file mode 100644 index 92a925d76c6b10..00000000000000 --- a/plugins/rtmp-services/cmake/legacy.cmake +++ /dev/null @@ -1,55 +0,0 @@ -project(rtmp-services) - -option(ENABLE_SERVICE_UPDATES "Checks for service updates" ON) - -set(RTMP_SERVICES_URL - "https://obsproject.com/obs2_update/rtmp-services" - CACHE STRING "Default services package URL" FORCE) - -mark_as_advanced(RTMP_SERVICES_URL) - -add_library(rtmp-services MODULE) -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 - service-specific/twitch.h - service-specific/nimotv.c - service-specific/nimotv.h - service-specific/showroom.c - service-specific/showroom.h - service-specific/dacast.c - service-specific/dacast.h - rtmp-common.c - rtmp-custom.c - rtmp-services-main.c - rtmp-format-ver.h) - -target_compile_definitions(rtmp-services PRIVATE SERVICES_URL="${RTMP_SERVICES_URL}" - $<$:ENABLE_SERVICE_UPDATES>) - -target_include_directories(rtmp-services PRIVATE ${CMAKE_BINARY_DIR}/config) - -target_link_libraries(rtmp-services PRIVATE OBS::libobs OBS::file-updater Jansson::Jansson) - -if(OS_WINDOWS) - set(MODULE_DESCRIPTION "OBS RTMP Services") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in rtmp-services.rc) - - target_sources(rtmp-services PRIVATE rtmp-services.rc) - - if(MSVC) - target_link_options(rtmp-services PRIVATE "LINKER:/IGNORE:4098") - endif() -endif() - -set_target_properties(rtmp-services PROPERTIES FOLDER "plugins" PREFIX "") - -setup_plugin_target(rtmp-services) diff --git a/plugins/sndio/cmake/legacy.cmake b/plugins/sndio/cmake/legacy.cmake deleted file mode 100644 index 850f685e34c3b5..00000000000000 --- a/plugins/sndio/cmake/legacy.cmake +++ /dev/null @@ -1,20 +0,0 @@ -project(sndio) - -option(ENABLE_SNDIO "Build OBS with sndio support" OFF) -if(NOT ENABLE_SNDIO) - obs_status(DISABLED "sndio") - return() -endif() - -find_package(Sndio REQUIRED) - -add_library(sndio MODULE) -add_library(OBS::sndio ALIAS sndio) - -target_sources(sndio PRIVATE sndio.c sndio-input.c) - -target_link_libraries(sndio PRIVATE OBS::libobs Sndio::Sndio) - -set_target_properties(sndio PROPERTIES FOLDER "plugins") - -setup_plugin_target(sndio) diff --git a/plugins/text-freetype2/cmake/legacy.cmake b/plugins/text-freetype2/cmake/legacy.cmake deleted file mode 100644 index 598ef81a9affe4..00000000000000 --- a/plugins/text-freetype2/cmake/legacy.cmake +++ /dev/null @@ -1,46 +0,0 @@ -project(text-freetype2) - -option(ENABLE_FREETYPE "Enable FreeType text plugin" ON) - -if(NOT ENABLE_FREETYPE) - obs_status(DISABLED "text-freetype2") - return() -endif() - -find_package(Freetype REQUIRED) - -add_library(text-freetype2 MODULE) -add_library(OBS::text-freetype2 ALIAS text-freetype2) - -target_sources(text-freetype2 PRIVATE find-font.h obs-convenience.c text-functionality.c text-freetype2.c - obs-convenience.h text-freetype2.h) - -target_link_libraries(text-freetype2 PRIVATE OBS::libobs Freetype::Freetype) - -set_target_properties(text-freetype2 PROPERTIES FOLDER "plugins" PREFIX "") - -if(OS_WINDOWS) - set(MODULE_DESCRIPTION "OBS FreeType text module") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in text-freetype2.rc) - - target_sources(text-freetype2 PRIVATE find-font.c find-font-windows.c text-freetype2.rc) - target_link_options(text-freetype2 PRIVATE "LINKER:/IGNORE:4098" "LINKER:/IGNORE:4099") - -elseif(OS_MACOS) - find_package(Iconv REQUIRED) - find_library(COCOA Cocoa) - mark_as_advanced(COCOA) - - target_sources(text-freetype2 PRIVATE find-font.c find-font-cocoa.m find-font-iconv.c) - - target_link_libraries(text-freetype2 PRIVATE Iconv::Iconv ${COCOA}) - -elseif(OS_POSIX) - find_package(Fontconfig REQUIRED) - - target_sources(text-freetype2 PRIVATE find-font-unix.c) - - target_link_libraries(text-freetype2 PRIVATE Fontconfig::Fontconfig) -endif() - -setup_plugin_target(text-freetype2) diff --git a/plugins/vlc-video/cmake/legacy.cmake b/plugins/vlc-video/cmake/legacy.cmake deleted file mode 100644 index c7fd1bdc02ca28..00000000000000 --- a/plugins/vlc-video/cmake/legacy.cmake +++ /dev/null @@ -1,35 +0,0 @@ -project(vlc-video) - -option(ENABLE_VLC "Build OBS with VLC plugin support" ${OS_LINUX}) -if(NOT ENABLE_VLC) - obs_status(DISABLED "vlc-video") - obs_status( - WARNING - "VLC plugin supported is not enabled by default - please switch ENABLE_VLC to ON to enable this functionality.") - return() -endif() - -find_package(LibVLC REQUIRED) - -add_library(vlc-video MODULE) -add_library(OBS::vlc-video ALIAS vlc-video) - -target_sources(vlc-video PRIVATE vlc-video-plugin.c vlc-video-plugin.h vlc-video-source.c) - -target_link_libraries(vlc-video PRIVATE OBS::libobs VLC::LibVLC) - -if(OS_WINDOWS) - if(MSVC) - target_link_libraries(vlc-video PRIVATE OBS::w32-pthreads) - endif() - - set(MODULE_DESCRIPTION "OBS VLC Plugin") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in vlc-video.rc) - - target_sources(vlc-video PRIVATE vlc-video.rc) - -endif() - -set_target_properties(vlc-video PROPERTIES FOLDER "plugins" PREFIX "") - -setup_plugin_target(vlc-video) diff --git a/shared/media-playback/CMakeLists.txt b/shared/media-playback/CMakeLists.txt index 59321510ebf498..5b2d4ebba0619b 100644 --- a/shared/media-playback/CMakeLists.txt +++ b/shared/media-playback/CMakeLists.txt @@ -21,9 +21,4 @@ target_sources( target_include_directories(media-playback INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}") -if(OBS_CMAKE_VERSION VERSION_LESS 3.0) - target_compile_options(media-playback INTERFACE ${ARCH_SIMD_FLAGS}) - target_compile_definitions(media-playback INTERFACE ${ARCH_SIMD_DEFINES}) -endif() - target_link_libraries(media-playback INTERFACE FFmpeg::avcodec FFmpeg::avdevice FFmpeg::avutil FFmpeg::avformat) diff --git a/shared/obs-scripting/cmake/legacy.cmake b/shared/obs-scripting/cmake/legacy.cmake deleted file mode 100644 index 75a7d72aa3e7ac..00000000000000 --- a/shared/obs-scripting/cmake/legacy.cmake +++ /dev/null @@ -1,181 +0,0 @@ -option(ENABLE_SCRIPTING_LUA "Enable Lua scripting support" ON) -option(ENABLE_SCRIPTING_PYTHON "Enable Python scripting support" ON) - -if(NOT ENABLE_SCRIPTING) - obs_status(DISABLED "obs-scripting") - return() -endif() - -project(obs-scripting) - -if(ENABLE_SCRIPTING_LUA) - add_subdirectory(obslua) - find_package(Luajit) - - if(NOT TARGET Luajit::Luajit) - obs_status(FATAL_ERROR "obs-scripting -> Luajit not found.") - return() - else() - obs_status(STATUS "obs-scripting -> Luajit found.") - endif() -else() - obs_status(DISABLED "Luajit support") -endif() - -if(ENABLE_SCRIPTING_PYTHON) - add_subdirectory(obspython) - if(OS_WINDOWS) - find_package(PythonWindows) - else() - find_package(Python COMPONENTS Interpreter Development) - endif() - - if(NOT TARGET Python::Python) - obs_status(FATAL_ERROR "obs-scripting -> Python not found.") - return() - else() - obs_status(STATUS "obs-scripting -> Python ${Python_VERSION} found.") - endif() -else() - obs_status(DISABLED "Python support") -endif() - -if(NOT TARGET Luajit::Luajit AND NOT TARGET Python::Python) - obs_status(WARNING "obs-scripting -> No supported scripting libraries found.") - return() -endif() - -if(OS_MACOS) - find_package(SWIG 4 REQUIRED) -elseif(OS_POSIX) - find_package(SWIG 3 REQUIRED) -elseif(OS_WINDOWS) - find_package(SwigWindows 3 REQUIRED) -endif() - -add_library(obs-scripting SHARED) -add_library(OBS::scripting ALIAS obs-scripting) - -target_sources( - obs-scripting - PUBLIC obs-scripting.h - PRIVATE obs-scripting.c cstrcache.cpp cstrcache.h obs-scripting-logging.c obs-scripting-callback.h) - -target_link_libraries(obs-scripting PRIVATE OBS::libobs) - -target_compile_features(obs-scripting PRIVATE cxx_auto_type) - -target_include_directories(obs-scripting PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) - -if(OS_WINDOWS) - set(MODULE_DESCRIPTION "OBS Studio scripting module") - configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in obs-scripting.rc) - - target_sources(obs-scripting PRIVATE obs-scripting.rc) - - target_link_libraries(obs-scripting PRIVATE OBS::w32-pthreads) - -elseif(OS_MACOS) - target_link_libraries(obs-scripting PRIVATE objc) -endif() - -set_target_properties( - obs-scripting - PROPERTIES FOLDER "scripting" - VERSION "${OBS_VERSION_MAJOR}" - SOVERSION "1") - -file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/swig) - -if(TARGET Luajit::Luajit) - add_custom_command( - OUTPUT swig/swigluarun.h - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - PRE_BUILD - COMMAND ${CMAKE_COMMAND} -E env "SWIG_LIB=${SWIG_DIR}" ${SWIG_EXECUTABLE} -lua -external-runtime swig/swigluarun.h - COMMENT "obs-scripting - generating Luajit SWIG interface headers") - - set_source_files_properties(swig/swigluarun.h PROPERTIES GENERATED ON) - - target_link_libraries(obs-scripting PRIVATE Luajit::Luajit) - - target_compile_definitions(obs-scripting PUBLIC LUAJIT_FOUND) - - target_sources(obs-scripting PRIVATE obs-scripting-lua.c obs-scripting-lua.h obs-scripting-lua-source.c - ${CMAKE_CURRENT_BINARY_DIR}/swig/swigluarun.h) - - target_include_directories(obs-scripting PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) - - if(ENABLE_UI) - target_link_libraries(obs-scripting PRIVATE OBS::frontend-api) - - target_sources(obs-scripting PRIVATE obs-scripting-lua-frontend.c) - - target_compile_definitions(obs-scripting PRIVATE UI_ENABLED=ON) - endif() - -endif() - -if(TARGET Python::Python) - add_custom_command( - OUTPUT swig/swigpyrun.h - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - PRE_BUILD - COMMAND - ${CMAKE_COMMAND} -E env "SWIG_LIB=${SWIG_DIR}" ${SWIG_EXECUTABLE} -python - $,$>>,-py3,-py3-stable-abi> -external-runtime - swig/swigpyrun.h - COMMENT "obs-scripting - generating Python 3 SWIG interface headers") - - set_source_files_properties(swig/swigpyrun.h PROPERTIES GENERATED ON) - - target_sources(obs-scripting PRIVATE obs-scripting-python.c obs-scripting-python.h obs-scripting-python-import.h - ${CMAKE_CURRENT_BINARY_DIR}/swig/swigpyrun.h) - - target_compile_definitions( - obs-scripting - PRIVATE ENABLE_SCRIPTING PYTHON_LIB="$" - PUBLIC Python_FOUND) - - target_include_directories(obs-scripting PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) - - get_filename_component(_PYTHON_PATH "${Python_LIBRARIES}" PATH) - get_filename_component(_PYTHON_FILE "${Python_LIBRARIES}" NAME) - - string(REGEX REPLACE "\\.[^.]*$" "" _PYTHON_FILE ${_PYTHON_FILE}) - - if(OS_WINDOWS) - string(REGEX REPLACE "_d" "" _PYTHON_FILE ${_PYTHON_FILE}) - endif() - set(OBS_SCRIPT_PYTHON_PATH "${_PYTHON_FILE}") - - unset(_PYTHON_FILE) - unset(_PYTHON_PATH) - - if(OS_WINDOWS OR OS_MACOS) - target_include_directories(obs-scripting PRIVATE ${Python_INCLUDE_DIRS}) - - target_sources(obs-scripting PRIVATE obs-scripting-python-import.c) - if(OS_MACOS) - target_link_options(obs-scripting PRIVATE -undefined dynamic_lookup) - endif() - else() - target_link_libraries(obs-scripting PRIVATE Python::Python) - endif() - - if(ENABLE_UI) - target_link_libraries(obs-scripting PRIVATE OBS::frontend-api) - - target_sources(obs-scripting PRIVATE obs-scripting-python-frontend.c) - - target_compile_definitions(obs-scripting PRIVATE UI_ENABLED=ON) - endif() -endif() - -target_compile_definitions(obs-scripting PRIVATE SCRIPT_DIR="${OBS_SCRIPT_PLUGIN_PATH}" - $<$: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/shared/obs-scripting/obslua/cmake/legacy.cmake b/shared/obs-scripting/obslua/cmake/legacy.cmake deleted file mode 100644 index d032a47b18e719..00000000000000 --- a/shared/obs-scripting/obslua/cmake/legacy.cmake +++ /dev/null @@ -1,63 +0,0 @@ -if(POLICY CMP0086) - cmake_policy(SET CMP0086 NEW) -endif() - -if(POLICY CMP0078) - cmake_policy(SET CMP0078 NEW) -endif() - -project(obslua) - -find_package(Luajit REQUIRED) - -if(OS_MACOS) - find_package(SWIG 4 REQUIRED) -elseif(OS_POSIX) - find_package(SWIG 3 REQUIRED) -elseif(OS_WINDOWS) - find_package(SwigWindows 3 REQUIRED) -endif() -include(UseSWIG) - -set_source_files_properties(obslua.i PROPERTIES USE_TARGET_INCLUDE_DIRECTORIES TRUE) - -swig_add_library( - obslua - LANGUAGE lua - TYPE MODULE - SOURCES obslua.i ../cstrcache.cpp ../cstrcache.h) - -target_link_libraries(obslua PRIVATE OBS::scripting OBS::libobs Luajit::Luajit) - -list(APPEND _SWIG_DEFINITIONS "SWIG_TYPE_TABLE=obslua" "SWIG_LUA_INTERPRETER_NO_DEBUG") - -set_target_properties( - obslua - PROPERTIES FOLDER "scripting" - VERSION "${OBS_VERSION_MAJOR}" - SOVERSION "${OBS_VERSION_CANONICAL}") - -target_compile_definitions(obslua PRIVATE SWIG_TYPE_TABLE=obslua SWIG_LUA_INTERPRETER_NO_DEBUG) - -if(ENABLE_UI) - list(APPEND _SWIG_DEFINITIONS "ENABLE_UI") - target_link_libraries(obslua PRIVATE OBS::frontend-api) - - target_compile_definitions(obslua PRIVATE ENABLE_UI) -endif() - -set_target_properties(obslua PROPERTIES SWIG_COMPILE_DEFINITIONS "${_SWIG_DEFINITIONS}") - -if(OS_WINDOWS) - if(MSVC) - target_compile_options(obslua PRIVATE /wd4054 /wd4197 /wd4244 /wd4267) - endif() -elseif(OS_MACOS) - set_target_properties(obslua PROPERTIES MACHO_CURRENT_VERSION 0 MACHO_COMPATIBILITY_VERSION 0) -endif() - -if(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND SWIG_VERSION VERSION_LESS "4.1") - target_compile_options(obslua PRIVATE -Wno-maybe-uninitialized) -endif() - -setup_script_plugin_target(obslua) diff --git a/shared/obs-scripting/obspython/cmake/legacy.cmake b/shared/obs-scripting/obspython/cmake/legacy.cmake deleted file mode 100644 index 572ec0546fe585..00000000000000 --- a/shared/obs-scripting/obspython/cmake/legacy.cmake +++ /dev/null @@ -1,107 +0,0 @@ -if(POLICY CMP0078) - cmake_policy(SET CMP0078 NEW) -endif() - -if(POLICY CMP0086) - cmake_policy(SET CMP0086 NEW) -endif() - -project(obspython) - -if(OS_MACOS) - find_package(Python REQUIRED COMPONENTS Interpreter Development) - find_package(SWIG 4 REQUIRED) -elseif(OS_POSIX) - find_package(Python REQUIRED COMPONENTS Interpreter Development) - find_package(SWIG 3 REQUIRED) -elseif(OS_WINDOWS) - find_package(PythonWindows REQUIRED) - find_package(SwigWindows 3 REQUIRED) -endif() -include(UseSWIG) - -set_source_files_properties( - obspython.i PROPERTIES USE_TARGET_INCLUDE_DIRECTORIES TRUE - SWIG_FLAGS "$,$>>,-py3,-py3-stable-abi>") - -swig_add_library( - obspython - LANGUAGE python - TYPE MODULE - SOURCES obspython.i ../cstrcache.cpp ../cstrcache.h) - -file( - GENERATE - OUTPUT $<$:$/>obspython.h - CONTENT "#pragma once\n\n#define PYTHON_LIB \"$\"") - -target_include_directories(obspython PRIVATE "$<$:${CMAKE_CURRENT_BINARY_DIR}/$>" - "${CMAKE_CURRENT_BINARY_DIR}") - -target_link_libraries(obspython PRIVATE OBS::scripting OBS::libobs) - -list(APPEND _SWIG_DEFINITIONS "SWIG_TYPE_TABLE=obspython" "Py_ENABLE_SHARED=1" "SWIG_PYTHON_INTERPRETER_NO_DEBUG") - -target_compile_features(obspython PRIVATE cxx_auto_type c_std_11) - -target_compile_definitions(obspython PRIVATE SWIG_TYPE_TABLE=obspython Py_ENABLE_SHARED=1 - SWIG_PYTHON_INTERPRETER_NO_DEBUG) - -if(ENABLE_UI) - list(APPEND _SWIG_DEFINITIONS "ENABLE_UI") - target_link_libraries(obspython PRIVATE OBS::frontend-api) - - target_compile_definitions(obspython PRIVATE ENABLE_UI) -endif() - -set_target_properties(obspython PROPERTIES SWIG_COMPILE_DEFINITIONS "${_SWIG_DEFINITIONS}") - -if(OS_WINDOWS) - set_target_properties(obspython PROPERTIES SWIG_COMPILE_DEFINITIONS "${_SWIG_DEFINITIONS};MS_NO_COREDLL") - - target_link_libraries(obspython PRIVATE Python::Python) - - target_compile_options(obspython PRIVATE /wd4100 /wd4197) - - if(MSVC) - add_custom_command( - TARGET obspython - POST_BUILD - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_CURRENT_BINARY_DIR}/obspython.py" - "${CMAKE_CURRENT_BINARY_DIR}/$/obspython.py" - VERBATIM) - endif() - -elseif(OS_MACOS) - get_target_property(_PYTHON_INCLUDE_DIRECTORY Python::Python INTERFACE_INCLUDE_DIRECTORIES) - - target_include_directories(obspython PRIVATE ${_PYTHON_INCLUDE_DIRECTORY}) - - target_link_options(obspython PRIVATE -undefined dynamic_lookup) - - target_compile_options(obspython PRIVATE -Wno-unused-parameter -Wno-error=macro-redefined) - - if(XCODE) - add_custom_command( - TARGET obspython - POST_BUILD - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_CURRENT_BINARY_DIR}/obspython.py" - "${CMAKE_CURRENT_BINARY_DIR}/$/obspython.py" - VERBATIM) - endif() - - set_target_properties(obspython PROPERTIES MACHO_CURRENT_VERSION 0 MACHO_COMPATIBILITY_VERSION 0) -elseif(OS_POSIX) - target_link_libraries(obspython PRIVATE Python::Python) - - target_compile_options(obspython PRIVATE -Wno-unused-parameter) - -endif() - -set_target_properties( - obspython - PROPERTIES FOLDER "scripting" - VERSION "${OBS_VERSION_MAJOR}" - SOVERSION "${OBS_VERSION_CANONICAL}") - -setup_script_plugin_target(obspython)