载入中...
搜索中...
未找到
eve::cmd::sdk 命名空间参考

命名空间

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

enum class eve::cmd::sdk::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)

读取 KEY=VALUE 环境文件;只应用当前进程尚未设置的变量。

在文件 sdk_tools.cpp 第 524 行定义.

引用了 getEnv(), key, line, path , 以及 setEnv().

◆ copyTree()

bool eve::cmd::sdk::copyTree ( const std::string &  from,
const std::string &  to,
const std::vector< std::string > &  skipDirs 
)

递归复制目录,跳过指定名称的子目录(如 build/.gradle)。

在文件 sdk_tools.cpp 第 902 行定义.

引用了 from , 以及 to.

◆ copyTreeContents()

bool eve::cmd::sdk::copyTreeContents ( const std::string &  from,
const std::string &  to 
)

把 from 目录的内容(不含 from 本身)复制到 to。

在文件 sdk_tools.cpp 第 910 行定义.

引用了 from , 以及 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 行定义.

引用了 name , 以及 v.

被这些函数引用 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)

解析平台名(大小写不敏感,含常用别名:windows/win、mac/macos/osx 等)。

在文件 sdk_tools.cpp 第 198 行定义.

引用了 Android, Ios, Linux, Macosx, n, name, Unknown , 以及 Win32.

◆ 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 行定义.

引用了 getEnv() , 以及 v.

被这些函数引用 eveSdkBaseUrl() , 以及 installEveSdk().

◆ setEnv()

void eve::cmd::sdk::setEnv ( const std::string &  name,
const std::string &  value 
)

设置当前进程的环境变量(不持久化到系统)。

在文件 sdk_tools.cpp 第 224 行定义.

引用了 name , 以及 value.

被这些函数引用 applyEnvFile() , 以及 installAndroidSdk().