gdk
简介
gdk基础接口
配置选项
- gbk_version 指定gbk版本。(TODO:暂未使用)
- name 项目名称。最终生成的二进制包命名为(name).zip
- package_dir package.json所在目录。
- include 将其他目录包含到模块构建环境。
- archive 归档列表。
- modules 项目模块集合。每个模块对应一个可运行的程序。
- module.path 模块路径。
- module.entry 模块程序入口脚本。
- module.macro_files 依赖的宏文件列表。(TODO:想办法去掉)
- module.include 将其他目录包含到模块构建环境。
- module.archive 归档列表。根据该配置选项生成模块包。(TODO:把ignore规则也直接添加到这里面,定义一套和.gitignore相反的机制)
- module.output_dir 打包输出目录。
- module.extra_args 附加参数。可以通过platform和run_mode字段设置作用范围。
组件接口
gdk.gs
函数原型 | 函数作用 |
---|---|
void premake(map project_conf, string project_path, bool with_container = false) | 根据项目配置生成pmake文件 |
void make(map project_conf, string project_path) | 构建项目(即将废弃,不推荐使用,请使用命令行接口) |
void run_module_debug(map project_conf, string os_work_dir, string module_name) | 执行指定模块 |
ContainerClient.gs
GS服务器部署后台接口
样例
public void sample()
{
// 读取项目配置文件
map project_conf = json.parse(file.read_all(project_path + "GS-RTS.json"));
// 本地运行服务器
gdk.run_module_debug(project_conf, project_path, "server");
// 为项目生成pmake文件
gdk.premake(project_conf, project_path, /* with_container: */ true);
// 构建项目
gdk.make(project_conf, project_path);
object cli = new_object(ContainerClient);
// 登录GS服务器部署后台
assert(cli.login("localhost", 25129));
// 读取服务器包
buffer image_buff = file.read_all(project_path + "binpacks-release/GS-RTS.zip", "b");
// 上传服务器包(强制覆盖)
cli.upload_image("GS-RTS", image_buff, true);
map system_info = get_system_info();
// 读取driver文件
buffer driver_buff = nil;
if (system_info.os == "windows")
driver_buff = file.read_all("/gs/exec_path/gs.exe", "b");
else
driver_buff = file.read_all("/gs/exec_path/gs", "b");
// 上传driver
cli.upload_driver(system_info.os, system_info.version, driver_buff);
// 部署服务器
cli.deploy_image("GS-RTS");
}