载入中...
搜索中...
未找到
sdk_tools.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
5#include "common/Result.h"
6
7#include <string>
8#include <vector>
9
10namespace eve::cmd::sdk {
11
13enum class Platform {
14 Win32,
15 Linux,
16 Macosx,
17 Android,
18 Ios,
20};
21
23Platform parsePlatform(const std::string& name);
24
26std::string platformName(Platform p);
27
29std::string getEnv(const std::string& name, const std::string& def = "");
30
32void setEnv(const std::string& name, const std::string& value);
33
39
45std::string eveSdkInstallRoot();
46
51std::string eveSdkBaseUrl();
52
58EVENGINE_API_FOUNDATION std::string fileSha256(const std::string& path);
59
65std::string findSdkRoot(const std::string& sdkArg);
66
68std::string sdkTargetPlatform(const std::string& sdkRoot);
69
72std::string androidSdkRoot();
73
75void applyEnvFile(const std::string& path);
76
78int runShell(const std::string& cmd);
79
81bool copyTree(const std::string& from, const std::string& to,
82 const std::vector<std::string>& skipDirs = {});
83
85bool copyTreeContents(const std::string& from, const std::string& to);
86
88bool isAndroidSdkInstalled(const std::string& root);
89
100
108
109} // namespace eve::cmd::sdk
double value
int root
Definition AnimSmr.cpp:119
std::string from
glm::vec4 p[6]
#define EVENGINE_API_FOUNDATION
每个链接组(link group)各自的导出宏。
Definition Export.h:106
HexCoordinates to
Cell the unit walks towards on this segment.
Definition HexUnits.cpp:64
std::string name
std::string path
Definition PlayHost.cpp:110
Move-only, checked operation results for the common layer.
Move-only operation result carrying either a value or Status.
Definition Result.h:155
std::string androidSdkRoot()
解析 Android SDK 根目录:EVENGINE_ANDROID_SDK / ANDROID_SDK_ROOT / ANDROID_HOME,最后回落到平台默认位置(Windows: LOCALA...
std::string getEnv(const std::string &name, const std::string &def)
读取环境变量;未设置时返回 def。
std::string findSdkRoot(const std::string &sdkArg)
定位 EVEngine SDK 根目录:–sdk 参数 > $EVENGINE_SDK > 可执行文件 所在位置的 ../(<sdk>/bin/eve)> 当前目录 > eve get 安装的 SDK。
std::string sdkVersionTag()
当前 eve 版本对应的发布 tag(v0.1.0-dev → v0.1.0)。 可用 EVE_SDK_TAG 覆盖(dev 构建 / 测试)。解析失败时返回空串。
bool copyTree(const std::string &from, const std::string &to, const std::vector< std::string > &skipDirs)
递归复制目录,跳过指定名称的子目录(如 build/.gradle)。
Platform
平台集合(与仓库 Makefile 的 build/<platform> 目标一一对应)。
Definition sdk_tools.h:13
bool isAndroidSdkInstalled(const std::string &root)
判断 Android SDK 是否已安装(cmdline-tools 的 sdkmanager 存在)。
int runShell(const std::string &cmd)
通过系统 shell 执行命令并返回退出码(POSIX 下归一化 WEXITSTATUS)。
eve::Result< void > installAndroidSdk()
自动下载并安装 Android 工具链:EVEngine 官方 android SDK + cmdline-tools / platform-tools / build-tools / platform...
std::string eveSdkBaseUrl()
官方 SDK 下载基址(GitHub Release 对应 tag),可用 EVE_SDK_BASE_URL 覆盖(镜像 / 测试,如 file://...)。
std::string fileSha256(const std::string &path)
流式计算文件的 SHA-256(小写十六进制);保留失败返回空串的既有契约。
void setEnv(const std::string &name, const std::string &value)
设置当前进程的环境变量(不持久化到系统)。
std::string platformName(Platform p)
平台规范名(用于 Makefile 目标名)。
void applyEnvFile(const std::string &path)
读取 KEY=VALUE 环境文件;只应用当前进程尚未设置的变量。
std::string eveSdkInstallRoot()
EVEngine 官方 SDK 安装根目录(Windows: LOCALAPPDATA%/EVEngine/sdk, POSIX: $XDG_DATA_HOME/EVEngine/sdk),可用 EVE...
eve::Result< void > installEveSdk(Platform p)
下载并安装 EVEngine 官方 <platform> SDK(zip 内 eve-sdk/<platform>/, 从 GitHub Release 按当前 eve 版本挑选),校验 SHA256 ...
std::string sdkTargetPlatform(const std::string &sdkRoot)
读取 <sdk>/share/eve/TARGET_PLATFORM(该 SDK 面向的目标平台)。
bool copyTreeContents(const std::string &from, const std::string &to)
把 from 目录的内容(不含 from 本身)复制到 to。
Platform parsePlatform(const std::string &name)
解析平台名(大小写不敏感,含常用别名:windows/win、mac/macos/osx 等)。