From 174e6a80172ca531d20afc376194cc13b3bb4464 Mon Sep 17 00:00:00 2001 From: tytan652 Date: Thu, 29 Aug 2024 09:39:44 +0200 Subject: [PATCH] Remove CMake legacy code path --- CMakeLists.txt | 2 - FindCEF.cmake | 160 --------------------------- cmake/legacy.cmake | 261 --------------------------------------------- 3 files changed, 423 deletions(-) delete mode 100644 FindCEF.cmake delete mode 100644 cmake/legacy.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 240d1d6cf..0d669744f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required(VERSION 3.16...3.25) -legacy_check() - option(ENABLE_BROWSER "Enable browser source plugin (required Chromium Embedded Framework)" OFF) if(NOT ENABLE_BROWSER) diff --git a/FindCEF.cmake b/FindCEF.cmake deleted file mode 100644 index 00d020328..000000000 --- a/FindCEF.cmake +++ /dev/null @@ -1,160 +0,0 @@ -include(FindPackageHandleStandardArgs) - -set_property(CACHE CEF_ROOT_DIR PROPERTY HELPSTRING - "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) - add_library(CEF::Wrapper_Debug UNKNOWN IMPORTED) - set_target_properties( - CEF::Wrapper_Debug PROPERTIES IMPORTED_LOCATION - ${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) - add_library(CEF::Wrapper_Debug INTERFACE IMPORTED) - set_target_properties( - CEF::Wrapper_Debug PROPERTIES IMPORTED_LIBNAME - ${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}") - - if(DEFINED CEFWRAPPER_LIBRARY_DEBUG) - set_target_properties( - CEF::Wrapper_Debug PROPERTIES INTERFACE_INCLUDE_DIRECTORIES - "${CEF_INCLUDE_DIR}") - endif() -endif() diff --git a/cmake/legacy.cmake b/cmake/legacy.cmake deleted file mode 100644 index 6560de8a6..000000000 --- a/cmake/legacy.cmake +++ /dev/null @@ -1,261 +0,0 @@ -project(obs-browser) - -option(ENABLE_BROWSER "Enable building OBS with browser source plugin (required Chromium Embedded Framework)" - ${OS_LINUX}) - -if(NOT ENABLE_BROWSER OR NOT ENABLE_UI) - message(STATUS "OBS: DISABLED obs-browser") - message( - WARNING - "Browser source support is not enabled by default - please switch ENABLE_BROWSER to ON and specify CEF_ROOT_DIR to enable this functionality." - ) - return() -endif() - -if(OS_WINDOWS) - option(ENABLE_BROWSER_LEGACY "Use legacy CEF version 3770 for browser source plugin" OFF) -endif() - -if(OS_MACOS OR OS_WINDOWS) - option(ENABLE_BROWSER_SHARED_TEXTURE "Enable shared texture support for browser source plugin" ON) -endif() - -option(ENABLE_BROWSER_PANELS "Enable Qt web browser panel support" ON) -option(ENABLE_BROWSER_QT_LOOP "Enable running CEF on the main UI thread alongside Qt" ${OS_MACOS}) - -mark_as_advanced(ENABLE_BROWSER_LEGACY ENABLE_BROWSER_SHARED_TEXTURE ENABLE_BROWSER_PANELS ENABLE_BROWSER_QT_LOOP) - -find_package(CEF REQUIRED 95) - -if(NOT TARGET CEF::Wrapper) - message( - FATAL_ERROR "OBS: - Unable to find CEF Libraries - set CEF_ROOT_DIR or configure with ENABLE_BROWSER=OFF") -endif() - -find_package(nlohmann_json REQUIRED) - -add_library(obs-browser MODULE) -add_library(OBS::browser ALIAS obs-browser) - -if(ENABLE_BROWSER_LEGACY) - target_compile_definitions(obs-browser PRIVATE ENABLE_BROWSER_LEGACY) -endif() - -if(ENABLE_BROWSER_SHARED_TEXTURE) - target_compile_definitions(obs-browser PRIVATE ENABLE_BROWSER_SHARED_TEXTURE) -endif() - -if(ENABLE_BROWSER_QT_LOOP) - target_compile_definitions(obs-browser PRIVATE ENABLE_BROWSER_QT_LOOP) -endif() - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/browser-config.h.in ${CMAKE_BINARY_DIR}/config/browser-config.h) - -target_sources( - obs-browser - PRIVATE obs-browser-plugin.cpp - obs-browser-source.cpp - obs-browser-source.hpp - obs-browser-source-audio.cpp - browser-app.cpp - browser-app.hpp - browser-client.cpp - browser-client.hpp - browser-scheme.cpp - browser-scheme.hpp - browser-version.h - cef-headers.hpp - deps/base64/base64.cpp - deps/base64/base64.hpp - deps/wide-string.cpp - deps/wide-string.hpp - deps/signal-restore.cpp - deps/signal-restore.hpp - deps/obs-websocket-api/obs-websocket-api.h - ${CMAKE_BINARY_DIR}/config/browser-config.h) - -target_include_directories(obs-browser PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/deps ${CMAKE_BINARY_DIR}/config) - -target_link_libraries(obs-browser PRIVATE OBS::libobs OBS::frontend-api nlohmann_json::nlohmann_json) - -target_compile_features(obs-browser PRIVATE cxx_std_17) - -if(ENABLE_BROWSER_PANELS OR ENABLE_BROWSER_QT_LOOP) - find_qt(COMPONENTS Widgets) - - set_target_properties( - obs-browser - PROPERTIES AUTOMOC ON - AUTOUIC ON - AUTORCC ON) - - target_link_libraries(obs-browser PRIVATE Qt::Widgets) -endif() - -if(NOT OS_MACOS OR ENABLE_BROWSER_LEGACY) - add_executable(obs-browser-page) - - target_sources(obs-browser-page PRIVATE cef-headers.hpp obs-browser-page/obs-browser-page-main.cpp browser-app.cpp - browser-app.hpp) - - target_link_libraries(obs-browser-page PRIVATE CEF::Library nlohmann_json::nlohmann_json) - - target_include_directories(obs-browser-page PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/deps - ${CMAKE_CURRENT_SOURCE_DIR}/obs-browser-page) - - target_compile_features(obs-browser-page PRIVATE cxx_std_17) - - if(OS_WINDOWS) - - if(TARGET CEF::Wrapper_Debug) - target_link_libraries(obs-browser-page PRIVATE optimized CEF::Wrapper) - target_link_libraries(obs-browser-page PRIVATE debug CEF::Wrapper_Debug) - else() - target_link_libraries(obs-browser-page PRIVATE CEF::Wrapper) - endif() - - target_sources(obs-browser-page PRIVATE obs-browser-page.manifest) - else() - target_link_libraries(obs-browser-page PRIVATE CEF::Wrapper) - endif() - - if(ENABLE_BROWSER_LEGACY) - target_compile_definitions(obs-browser-page PRIVATE ENABLE_BROWSER_LEGACY) - endif() - - if(ENABLE_BROWSER_SHARED_TEXTURE) - target_compile_definitions(obs-browser-page PRIVATE ENABLE_BROWSER_SHARED_TEXTURE) - endif() - - if(ENABLE_BROWSER_QT_LOOP) - target_compile_definitions(obs-browser-page PRIVATE ENABLE_BROWSER_QT_LOOP) - endif() - - set_target_properties(obs-browser-page PROPERTIES FOLDER "plugins/obs-browser") - - setup_plugin_target(obs-browser-page) -endif() - -if(OS_WINDOWS) - if(MSVC) - target_compile_options(obs-browser PRIVATE $,/MTd,/MT>) - - target_compile_options(obs-browser-page PRIVATE $,/MTd,/MT>) - endif() - - target_link_libraries(obs-browser PRIVATE CEF::Library d3d11 dxgi) - - if(TARGET CEF::Wrapper_Debug) - target_link_libraries(obs-browser PRIVATE optimized CEF::Wrapper) - target_link_libraries(obs-browser PRIVATE debug CEF::Wrapper_Debug) - else() - target_link_libraries(obs-browser PRIVATE CEF::Wrapper) - endif() - - target_link_options(obs-browser PRIVATE "LINKER:/IGNORE:4099") - - target_link_options(obs-browser-page PRIVATE "LINKER:/IGNORE:4099" "LINKER:/SUBSYSTEM:WINDOWS") - - list(APPEND obs-browser_LIBRARIES d3d11 dxgi) - -elseif(OS_MACOS) - find_library(COREFOUNDATION CoreFoundation) - find_library(APPKIT AppKit) - mark_as_advanced(COREFOUNDATION APPKIT) - - target_link_libraries(obs-browser PRIVATE ${COREFOUNDATION} ${APPKIT} CEF::Wrapper) - - target_sources(obs-browser PRIVATE macutil.mm) - - set(CEF_HELPER_TARGET "obs-browser-helper") - set(CEF_HELPER_OUTPUT_NAME "OBS Helper") - set(CEF_HELPER_APP_SUFFIXES "::" " (GPU):_gpu:.gpu" " (Plugin):_plugin:.plugin" " (Renderer):_renderer:.renderer") - - foreach(_SUFFIXES ${CEF_HELPER_APP_SUFFIXES}) - string(REPLACE ":" ";" _SUFFIXES ${_SUFFIXES}) - list(GET _SUFFIXES 0 _NAME_SUFFIX) - list(GET _SUFFIXES 1 _TARGET_SUFFIX) - list(GET _SUFFIXES 2 _PLIST_SUFFIX) - - set(_HELPER_TARGET "${CEF_HELPER_TARGET}${_TARGET_SUFFIX}") - set(_HELPER_OUTPUT_NAME "${CEF_HELPER_OUTPUT_NAME}${_NAME_SUFFIX}") - - set(_HELPER_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/helper-info${_PLIST_SUFFIX}.plist") - file(READ "${CMAKE_CURRENT_SOURCE_DIR}/helper-info.plist" _PLIST_CONTENTS) - string(REPLACE "\${EXECUTABLE_NAME}" "${_HELPER_OUTPUT_NAME}" _PLIST_CONTENTS ${_PLIST_CONTENTS}) - string(REPLACE "\${PRODUCT_NAME}" "${_HELPER_OUTPUT_NAME}" _PLIST_CONTENTS ${_PLIST_CONTENTS}) - string(REPLACE "\${BUNDLE_ID_SUFFIX}" "${_PLIST_SUFFIX}" _PLIST_CONTENTS ${_PLIST_CONTENTS}) - string(REPLACE "\${MINIMUM_VERSION}" "${CMAKE_OSX_DEPLOYMENT_TARGET}" _PLIST_CONTENTS ${_PLIST_CONTENTS}) - string(REPLACE "\${CURRENT_YEAR}" "${CURRENT_YEAR}" _PLIST_CONTENTS ${_PLIST_CONTENTS}) - file(WRITE ${_HELPER_INFO_PLIST} ${_PLIST_CONTENTS}) - - set(MACOSX_BUNDLE_GUI_IDENTIFIER "${MACOSX_BUNDLE_GUI_IDENTIFIER}.helper${_PLIST_SUFFIX}") - - add_executable(${_HELPER_TARGET} MACOSX_BUNDLE) - add_executable(OBS::browser-helper${_TARGET_SUFFIX} ALIAS ${_HELPER_TARGET}) - target_sources(${_HELPER_TARGET} PRIVATE browser-app.cpp browser-app.hpp obs-browser-page/obs-browser-page-main.cpp - cef-headers.hpp) - - target_link_libraries(${_HELPER_TARGET} PRIVATE CEF::Wrapper nlohmann_json::nlohmann_json) - - target_include_directories(${_HELPER_TARGET} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/deps - ${CMAKE_CURRENT_SOURCE_DIR}/obs-browser-page) - - target_compile_features(${_HELPER_TARGET} PRIVATE cxx_std_17) - - if(ENABLE_BROWSER_SHARED_TEXTURE) - target_compile_definitions(${_HELPER_TARGET} PRIVATE ENABLE_BROWSER_SHARED_TEXTURE) - endif() - - set_target_properties( - ${_HELPER_TARGET} - PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${_HELPER_INFO_PLIST} - OUTPUT_NAME ${_HELPER_OUTPUT_NAME} - FOLDER "plugins/obs-browser/helpers/" - XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.obsproject.obs-studio.helper${_PLIST_SUFFIX}" - XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS - "${CMAKE_SOURCE_DIR}/cmake/bundle/macOS/entitlements-helper${_PLIST_SUFFIX}.plist") - endforeach() - -elseif(OS_POSIX) - find_package(X11 REQUIRED) - - target_link_libraries(obs-browser PRIVATE CEF::Wrapper CEF::Library X11::X11) - - get_target_property(_CEF_DIRECTORY CEF::Library INTERFACE_LINK_DIRECTORIES) - - set_target_properties(obs-browser PROPERTIES BUILD_RPATH "$ORIGIN/") - - set_target_properties(obs-browser-page PROPERTIES BUILD_RPATH "$ORIGIN/") - - set_target_properties(obs-browser PROPERTIES INSTALL_RPATH "$ORIGIN/") - set_target_properties(obs-browser-page PROPERTIES INSTALL_RPATH "$ORIGIN/") -endif() - -if(ENABLE_BROWSER_PANELS) - add_library(obs-browser-panels INTERFACE) - add_library(OBS::browser-panels ALIAS obs-browser-panels) - target_sources( - obs-browser-panels INTERFACE panel/browser-panel.cpp panel/browser-panel.hpp panel/browser-panel-client.cpp - panel/browser-panel-client.hpp panel/browser-panel-internal.hpp) - - target_include_directories(obs-browser-panels INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/panel) - - target_link_libraries(obs-browser-panels INTERFACE CEF::Wrapper) - - if(OS_MACOS) - target_link_libraries(obs-browser-panels INTERFACE objc) - endif() - - target_link_libraries(obs-browser PRIVATE obs-browser-panels) - - target_compile_definitions(obs-browser-panels INTERFACE BROWSER_AVAILABLE) - - if(ENABLE_BROWSER_QT_LOOP) - target_compile_definitions(obs-browser-panels INTERFACE ENABLE_BROWSER_QT_LOOP) - endif() -endif() - -set_target_properties(obs-browser PROPERTIES FOLDER "plugins/obs-browser" PREFIX "") - -setup_plugin_target(obs-browser)