跳转至

CMake 选项

要更改这些选项,请在命令行中添加 -DOPTION_NAME=NEWVALUE。

  • 在 Qt Creator 中,转到 项目 -> 当前配置

注意:

  • 默认值按平台分别标注。
  • “非 UNIX”仅指 Windows/MSVC 和 Android(没错,macOS 是 UNIX)。
  • Android 通常不需要更改任何内容;如果需要,请前往 src/android/app/build.gradle.kts
  • 要将布尔变量设为开,请使用 ON 作为值;要关闭,请使用 OFF
  • 如果某个变量被标注为例如“ON”仅适用于特定平台,则意味着在其他平台上默认值为 OFF
  • 除非另有说明,类型始终为布尔值
  • 格式:
  • OPTION_NAME(类型 默认值)描述

选项

依赖项

以下选项控制依赖项。

  • YUZU_USE_BUNDLED_FFMPEG(非 UNIX 下为 ON)下载预构建并配置好的 FFmpeg
  • YUZU_USE_EXTERNAL_FFMPEG(Solaris 下为 ON)从源码构建 FFmpeg
  • YUZU_DOWNLOAD_ANDROID_VVL(ON)为 Android 下载验证层二进制文件
  • YUZU_DOWNLOAD_TIME_ZONE_DATA(ON)始终下载时区二进制文件
  • 目前,缺少此项会导致构建失败
  • YUZU_TZDB_PATH(字符串)预下载时区数据库的路径(对 nixOS 和 Gentoo 很有用)
  • YUZU_USE_BUNDLED_MOLTENVK(ON,仅 macOS)下载附带的 MoltenVK 库
  • YUZU_USE_BUNDLED_OPENSSL(MSVC、Android、Solaris 和 OpenBSD 下为 ON)下载附带的 OpenSSL 构建
  • YUZU_USE_BUNDLED_SDL3(MSVC 下为 ON)下载预构建的 SDL3

其他

  • ENABLE_WEB_SERVICE(ON)启用多人游戏服务
  • ENABLE_WIFI_SCAN(OFF)启用 WiFi 扫描(在 Linux 上需要 iw)- 实验性
  • ENABLE_CUBEB(ON)启用 cubeb 音频后端
  • 此选项可能会被移除。
  • YUZU_TESTS(ON)编译测试 - 需要 Catch2
  • ENABLE_LTO(OFF)启用链接时优化
  • 不建议在 Windows 上使用
  • UNIX 上最好在编译器参数后追加 -flto=thin
  • USE_FASTER_LINKER(OFF)检查是否有更快的链接器可用
  • 不建议在 Linux 之外使用
  • YUZU_INSTALL_UDEV_RULES(OFF)安装 udev 规则以启用 hidraw 访问
  • 陀螺仪需要此项
  • 仅适用于 Linux
  • ENABLE_DEBUG_TOOLS(OFF)启用调试和开发工具,参见 tools。
  • ENABLE_WERROR(ON)将警告视为错误(-Werror)。

构建变体

以下选项控制可执行文件和构建变体。

  • YUZU_LEGACY(OFF):应用补丁以提高部分旧 GPU 的兼容性,但会牺牲性能
  • NIGHTLY_BUILD(OFF):仅供 CI 使用。除非你在制作自己的发行版并且清楚自己在做什么,否则不要使用。
  • YUZU_STATIC_BUILD(OFF)尽可能尝试使用静态库进行构建
  • 不支持 Linux
  • 如果 YUZU_USE_BUNDLED_QT 在非 Linux 下为 ON,则自动设置
  • ENABLE_UPDATE_CHECKER(OFF)启用更新检查功能
  • YUZU_DISABLE_LLVM(OFF)不要尝试链接 LLVM demangler
  • 仅对 CI 或发行版构建有用

仅限桌面版:

  • YUZU_CMD(ON)编译基于 SDL 的前端(eden-cli)
  • YUZU_ROOM(OFF)将专用房间功能编译到主可执行文件中
  • YUZU_ROOM_STANDALONE(OFF)为房间功能编译一个单独的可执行文件
  • YUZU_STATIC_ROOM(OFF)仅将房间可执行文件编译为静态、可移植的可执行文件
  • 仅在 Alpine Linux 上可用。

桌面版

以下选项仅适用于桌面版。

  • ENABLE_LIBUSB(ON)启用 libusb 输入后端的使用(强烈推荐)
  • ENABLE_OPENGL(ON)启用 OpenGL 图形后端
  • 在 Windows/ARM64 和 Android 上不可用
  • 你可能不应该关闭它。

Qt

同样是桌面版专用,但严格适用于 Qt

  • ENABLE_QT(ON)启用 Qt 前端(推荐)
  • ENABLE_QT_TRANSLATION(OFF)启用 Qt 前端的翻译
  • YUZU_USE_BUNDLED_QT(MSVC 下为 ON)下载附带的 Qt 二进制文件
  • 不建议在 Linux 上使用。对于 Windows 和 macOS,提供的构建是静态链接的。
  • YUZU_QT_MIRROR(字符串)用于下载附带的 Qt 库时使用哪个镜像
  • YUZU_USE_QT_MULTIMEDIA(OFF)使用 QtMultimedia 提供摄像头支持
  • YUZU_USE_QT_WEB_ENGINE(OFF)使用 QtWebEngine 实现 Web 小程序(需要庞大的 QtWebEngine 依赖;不建议)
  • USE_DISCORD_PRESENCE(OFF)启用 Discord Rich Presence(仅限 Qt 前端)

已退役选项

以下选项曾是 Eden 的一部分,但现已退役。

  • ENABLE_OPENSSL - MbedTLS 已在 #3606 中被 OpenSSL 完全取代,因为 OpenSSL 的性能确实更好。
  • ENABLE_SDL2 - 尽管从技术上讲,在桌面端可以 不 使用 SDL2,但这无论如何都 不是 受支持的配置,而且将这个矩阵加入我们的构建系统并不值得。
  • YUZU_USE_CPM - 这个选项曾经有它的用途,但那个用途早已成为过去。所有构建现在都使用 CPMUtil 来管理依赖。
  • 如果你想 强制 使用系统依赖,请使用 -DCPMUTIL_FORCE_SYSTEM=ON。
  • YUZU_USE_EXTERNAL_SDL - 现在这会自动处理。即使在使用 CPM 之后它也曾被包含在内,但其所针对的用途早已长期不再适用。

有关更多选项,请参见 src/dynarmic/CMakeLists.txt——通常,这些不需要更改。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 eg/Eglantine