命名空间 | |
| namespace | detail |
枚举 | |
| enum class | Platform { Win32 , Linux , Macosx , Android , Ios , Unknown } |
| 平台集合(与仓库 Makefile 的 build/<platform> 目标一一对应)。 更多... | |
函数 | |
| Platform | parsePlatform (const std::string &name) |
| 解析平台名(大小写不敏感,含常用别名:windows/win、mac/macos/osx 等)。 | |
| std::string | platformName (Platform p) |
| 平台规范名(用于 Makefile 目标名)。 | |
| std::string | getEnv (const std::string &name, const std::string &def="") |
| 读取环境变量;未设置时返回 def。 | |
| void | setEnv (const std::string &name, const std::string &value) |
| 设置当前进程的环境变量(不持久化到系统)。 | |
| std::string | sdkVersionTag () |
| 当前 eve 版本对应的发布 tag(v0.1.0-dev → v0.1.0)。 可用 EVE_SDK_TAG 覆盖(dev 构建 / 测试)。解析失败时返回空串。 | |
| std::string | eveSdkInstallRoot () |
| EVEngine 官方 SDK 安装根目录(Windows: LOCALAPPDATA%/EVEngine/sdk, POSIX: $XDG_DATA_HOME/EVEngine/sdk),可用 EVE_SDK_INSTALL_ROOT 覆盖。 各平台 SDK 安装在 <root>/<platform> 下。 | |
| std::string | eveSdkBaseUrl () |
| 官方 SDK 下载基址(GitHub Release 对应 tag),可用 EVE_SDK_BASE_URL 覆盖(镜像 / 测试,如 file://...)。 | |
| std::string | fileSha256 (const std::string &path) |
| 流式计算文件的 SHA-256(小写十六进制);保留失败返回空串的既有契约。 | |
| std::string | findSdkRoot (const std::string &sdkArg) |
定位 EVEngine SDK 根目录:–sdk 参数 > $EVENGINE_SDK > 可执行文件 所在位置的 ../(<sdk>/bin/eve)> 当前目录 > eve get 安装的 SDK。 | |
| eve::Result< void > | installEveSdk (Platform p) |
| 下载并安装 EVEngine 官方 <platform> SDK(zip 内 eve-sdk/<platform>/, 从 GitHub Release 按当前 eve 版本挑选),校验 SHA256 后落位到 <eveSdkInstallRoot()>/<platform>。 | |
| std::string | sdkTargetPlatform (const std::string &sdkRoot) |
| 读取 <sdk>/share/eve/TARGET_PLATFORM(该 SDK 面向的目标平台)。 | |
| std::string | androidSdkRoot () |
| 解析 Android SDK 根目录:EVENGINE_ANDROID_SDK / ANDROID_SDK_ROOT / ANDROID_HOME,最后回落到平台默认位置(Windows: LOCALAPPDATA%/Android/Sdk)。 | |
| void | applyEnvFile (const std::string &path) |
| 读取 KEY=VALUE 环境文件;只应用当前进程尚未设置的变量。 | |
| int | runShell (const std::string &cmd) |
| 通过系统 shell 执行命令并返回退出码(POSIX 下归一化 WEXITSTATUS)。 | |
| bool | isAndroidSdkInstalled (const std::string &root) |
| 判断 Android SDK 是否已安装(cmdline-tools 的 sdkmanager 存在)。 | |
| eve::Result< void > | installAndroidSdk () |
| 自动下载并安装 Android 工具链:EVEngine 官方 android SDK + cmdline-tools / platform-tools / build-tools / platform + JDK 17 + Gradle。 | |
| bool | copyTree (const std::string &from, const std::string &to, const std::vector< std::string > &skipDirs={}) |
| 递归复制目录,跳过指定名称的子目录(如 build/.gradle)。 | |
| bool | copyTreeContents (const std::string &from, const std::string &to) |
| 把 from 目录的内容(不含 from 本身)复制到 to。 | |
枚举类型说明
◆ Platform
|
strong |
平台集合(与仓库 Makefile 的 build/<platform> 目标一一对应)。
| 枚举值 | |
|---|---|
| Win32 | |
| Linux | |
| Macosx | |
| Android | |
| Ios | |
| Unknown | |
在文件 sdk_tools.h 第 13 行定义.
函数说明
◆ androidSdkRoot()
| std::string eve::cmd::sdk::androidSdkRoot | ( | ) |
解析 Android SDK 根目录:EVENGINE_ANDROID_SDK / ANDROID_SDK_ROOT / ANDROID_HOME,最后回落到平台默认位置(Windows: LOCALAPPDATA%/Android/Sdk)。
在文件 sdk_tools.cpp 第 509 行定义.
引用了 getEnv(), local, n , 以及 v.
被这些函数引用 installAndroidSdk().
◆ applyEnvFile()
| void eve::cmd::sdk::applyEnvFile | ( | const std::string & | path | ) |
◆ copyTree()
| bool eve::cmd::sdk::copyTree | ( | const std::string & | from, |
| const std::string & | to, | ||
| const std::vector< std::string > & | skipDirs | ||
| ) |
◆ copyTreeContents()
| bool eve::cmd::sdk::copyTreeContents | ( | const std::string & | from, |
| const std::string & | to | ||
| ) |
◆ eveSdkBaseUrl()
| std::string eve::cmd::sdk::eveSdkBaseUrl | ( | ) |
官方 SDK 下载基址(GitHub Release 对应 tag),可用 EVE_SDK_BASE_URL 覆盖(镜像 / 测试,如 file://...)。
在文件 sdk_tools.cpp 第 260 行定义.
引用了 getEnv() , 以及 sdkVersionTag().
被这些函数引用 installEveSdk().
◆ eveSdkInstallRoot()
| std::string eve::cmd::sdk::eveSdkInstallRoot | ( | ) |
EVEngine 官方 SDK 安装根目录(Windows: LOCALAPPDATA%/EVEngine/sdk, POSIX: $XDG_DATA_HOME/EVEngine/sdk),可用 EVE_SDK_INSTALL_ROOT 覆盖。 各平台 SDK 安装在 <root>/<platform> 下。
在文件 sdk_tools.cpp 第 243 行定义.
引用了 getEnv().
被这些函数引用 findSdkRoot(), installAndroidSdk() , 以及 installEveSdk().
◆ fileSha256()
| EVENGINE_API_FOUNDATION std::string eve::cmd::sdk::fileSha256 | ( | const std::string & | path | ) |
流式计算文件的 SHA-256(小写十六进制);保留失败返回空串的既有契约。
- 参数
-
path 同步调用期间借用的文件路径;不保留引用。
- 返回
- 摘要文本;文件无法读取时为空。
- 注解
- 可重入,各调用独立持有摘要状态,不生成临时文件或启动子进程。
在文件 sdk_tools.cpp 第 267 行定义.
引用了 buffer, digest, path , 以及 eve::cmd::sdk::detail::Sha256::update().
被这些函数引用 installEveSdk().
◆ findSdkRoot()
| std::string eve::cmd::sdk::findSdkRoot | ( | const std::string & | sdkArg | ) |
定位 EVEngine SDK 根目录:–sdk 参数 > $EVENGINE_SDK > 可执行文件 所在位置的 ../(<sdk>/bin/eve)> 当前目录 > eve get 安装的 SDK。
- 返回
- SDK 根目录绝对路径;找不到时返回空串。
在文件 sdk_tools.cpp 第 290 行定义.
引用了 end, eveSdkInstallRoot(), getEnv(), n, p , 以及 sdkTargetPlatform().
◆ getEnv()
| std::string eve::cmd::sdk::getEnv | ( | const std::string & | name, |
| const std::string & | def | ||
| ) |
读取环境变量;未设置时返回 def。
在文件 sdk_tools.cpp 第 219 行定义.
被这些函数引用 androidSdkRoot(), applyEnvFile(), eveSdkBaseUrl(), eveSdkInstallRoot(), findSdkRoot(), installAndroidSdk() , 以及 sdkVersionTag().
◆ installAndroidSdk()
| eve::Result< void > eve::cmd::sdk::installAndroidSdk | ( | ) |
自动下载并安装 Android 工具链:EVEngine 官方 android SDK + cmdline-tools / platform-tools / build-tools / platform + JDK 17 + Gradle。
- 返回
- 成功时为空结果;外部命令、网络、文件或格式失败时返回结构化诊断。 @thread 调用线程;该操作同步执行,不可并发调用同一安装根目录。
在文件 sdk_tools.cpp 第 738 行定义.
引用了 Android, androidSdkRoot(), eve::Diagnostic::error(), eveSdkInstallRoot(), f, eve::Failed, eve::Result< T >::failure(), getEnv(), installEveSdk(), isAndroidSdkInstalled(), eve::ParseError, root, runShell(), setEnv() , 以及 eve::Result< T >::success().
◆ installEveSdk()
| EVENGINE_API_FOUNDATION eve::Result< void > eve::cmd::sdk::installEveSdk | ( | Platform | p | ) |
下载并安装 EVEngine 官方 <platform> SDK(zip 内 eve-sdk/<platform>/, 从 GitHub Release 按当前 eve 版本挑选),校验 SHA256 后落位到 <eveSdkInstallRoot()>/<platform>。
- 参数
-
p 要安装的目标平台。
- 返回
- 成功时为空结果;下载、校验、解压或安装失败时返回结构化诊断。 @ownership 安装过程只在内部拥有临时文件;失败不会发布半安装的 SDK。 @thread 调用线程;该操作同步执行,不可并发调用同一安装根目录。
在文件 sdk_tools.cpp 第 375 行定义.
引用了 eve::Diagnostic::error(), eveSdkBaseUrl(), eveSdkInstallRoot(), eve::Failed, eve::Result< T >::failure(), fileSha256(), eve::HashMismatch, eve::InvalidArgument, p, eve::ParseError, platformName(), runShell(), sdkTargetPlatform(), sdkVersionTag(), eve::Result< T >::success(), tag , 以及 Unknown.
被这些函数引用 installAndroidSdk().
◆ isAndroidSdkInstalled()
| bool eve::cmd::sdk::isAndroidSdkInstalled | ( | const std::string & | root | ) |
判断 Android SDK 是否已安装(cmdline-tools 的 sdkmanager 存在)。
在文件 sdk_tools.cpp 第 730 行定义.
引用了 root.
被这些函数引用 installAndroidSdk().
◆ parsePlatform()
| Platform eve::cmd::sdk::parsePlatform | ( | const std::string & | name | ) |
◆ platformName()
| std::string eve::cmd::sdk::platformName | ( | Platform | p | ) |
平台规范名(用于 Makefile 目标名)。
在文件 sdk_tools.cpp 第 208 行定义.
引用了 Android, Ios, Linux, Macosx, p , 以及 Win32.
被这些函数引用 installEveSdk().
◆ runShell()
| int eve::cmd::sdk::runShell | ( | const std::string & | cmd | ) |
通过系统 shell 执行命令并返回退出码(POSIX 下归一化 WEXITSTATUS)。
在文件 sdk_tools.cpp 第 538 行定义.
被这些函数引用 installAndroidSdk() , 以及 installEveSdk().
◆ sdkTargetPlatform()
| std::string eve::cmd::sdk::sdkTargetPlatform | ( | const std::string & | sdkRoot | ) |
读取 <sdk>/share/eve/TARGET_PLATFORM(该 SDK 面向的目标平台)。
在文件 sdk_tools.cpp 第 501 行定义.
引用了 s.
被这些函数引用 findSdkRoot() , 以及 installEveSdk().
◆ sdkVersionTag()
| EVENGINE_API_FOUNDATION std::string eve::cmd::sdk::sdkVersionTag | ( | ) |
当前 eve 版本对应的发布 tag(v0.1.0-dev → v0.1.0)。 可用 EVE_SDK_TAG 覆盖(dev 构建 / 测试)。解析失败时返回空串。
在文件 sdk_tools.cpp 第 232 行定义.
被这些函数引用 eveSdkBaseUrl() , 以及 installEveSdk().
◆ setEnv()
| void eve::cmd::sdk::setEnv | ( | const std::string & | name, |
| const std::string & | value | ||
| ) |