evan.liu d0074858bf CAIIC 定制版 v1.0.0:英文默认界面、2K/4K 支持、集成抠图插件、更换品牌图标
界面与品牌
- 默认 UI 语言固定为英文,不再跟随系统区域设置自动切换(frontend/OBSApp.cpp),用户仍可在设置中手动切换
- 程序图标更换为 CAIIC logo:exe 图标 obs-studio.ico 及界面/托盘/About 图标 obs.png
- About 窗口精简为 logo + 名称 + 版本号,移除项目介绍、赞助名单、Authors/License 标签页
- 版本号定为 1.0.0(构建参数 OBS_VERSION_OVERRIDE=1.0.0)

分辨率支持
- 移除首次启动将画布强制限制为 1920x1080 的逻辑,默认使用显示器原生分辨率
- 设置-视频 与自动配置向导新增 3840x2160 / 2560x1440 预设
- 自动配置向导性能测试上限放宽至 4K60(软硬件编码数据率上限及起始分辨率钳制)

插件
- 集成 obs-shaderfilter 2.6.0(绿幕抠图/自定义着色器滤镜),并适配新版 libobs 的 gs_image_file_ex API
- 补齐缺失的源码:obs-browser、obs-websocket、libdshowcapture(含 external/capture-device-support)

工程
- 新增 .gitignore,排除 deploy/ 发布目录与构建日志
2026-09-18 20:41:13 +08:00

72 lines
3.0 KiB
CMake

find_package(Qt6 REQUIRED Widgets)
target_compile_definitions(obs-browser PRIVATE ENABLE_BROWSER_SHARED_TEXTURE ENABLE_BROWSER_QT_LOOP)
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 14.0.3)
target_compile_options(obs-browser PRIVATE -Wno-error=unqualified-std-cast-call)
endif()
target_link_libraries(obs-browser PRIVATE Qt::Widgets CEF::Wrapper "$<LINK_LIBRARY:FRAMEWORK,CoreFoundation.framework>"
"$<LINK_LIBRARY:FRAMEWORK,AppKit.framework>")
set(helper_basename browser-helper)
set(helper_output_name "OBS Helper")
set(helper_suffixes "::" " (GPU):_gpu:.gpu" " (Plugin):_plugin:.plugin" " (Renderer):_renderer:.renderer")
foreach(helper IN LISTS helper_suffixes)
string(REPLACE ":" ";" helper ${helper})
list(GET helper 0 helper_name)
list(GET helper 1 helper_target)
list(GET helper 2 helper_plist)
set(target_name ${helper_basename}${helper_target})
set(target_output_name "${helper_output_name}${helper_name}")
set(EXECUTABLE_NAME "${target_output_name}")
set(BUNDLE_ID_SUFFIX ${helper_plist})
add_executable(${target_name} MACOSX_BUNDLE EXCLUDE_FROM_ALL)
add_executable(OBS::${target_name} ALIAS ${target_name})
target_sources(
${target_name} PRIVATE # cmake-format: sortable
browser-app.cpp browser-app.hpp browser-dummy-client.cpp browser-dummy-client.hpp
cef-headers.hpp obs-browser-page/obs-browser-page-main.cpp)
target_compile_definitions(${target_name} PRIVATE ENABLE_BROWSER_SHARED_TEXTURE)
target_compile_features(${target_name} PRIVATE cxx_std_20)
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 14.0.3)
target_compile_options(${target_name} PRIVATE -Wno-error=unqualified-std-cast-call)
endif()
target_include_directories(${target_name} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/deps"
"${CMAKE_CURRENT_SOURCE_DIR}/obs-browser-page")
target_link_libraries(${target_name} PRIVATE CEF::Wrapper nlohmann_json::nlohmann_json)
string(TIMESTAMP CURRENT_YEAR "%Y")
set_target_properties(
${target_name}
PROPERTIES
OUTPUT_NAME "${target_output_name}"
FOLDER plugins/obs-browser/Helpers
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER com.obsproject.obs-studio.helper${helper_plist}
XCODE_ATTRIBUTE_CURRENT_PROJECT_VERSION ${OBS_BUILD_NUMBER}
XCODE_ATTRIBUTE_MARKETING_VERSION ${OBS_VERSION_CANONICAL}
XCODE_ATTRIBUTE_GENERATE_INFOPLIST_FILE YES
XCODE_ATTRIBUTE_INFOPLIST_KEY_CFBundleDisplayName "${target_output_name}"
XCODE_ATTRIBUTE_INFOPLIST_KEY_LSApplicationCategoryType "public.app-category.video"
XCODE_ATTRIBUTE_INFOPLIST_KEY_NSHumanReadableCopyright "(c) 2012-${CURRENT_YEAR} Lain Bailey"
XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/macos/entitlements-helper${helper_plist}.plist"
)
endforeach()
target_sources(obs-browser PRIVATE deps/ip-string-posix.cpp)
set_target_properties(
obs-browser
PROPERTIES AUTOMOC ON
AUTOUIC ON
AUTORCC ON)