Godot 命令行工具

Version: 0.1.2 License: MIT Platform: windows Donate

一个用于设置环境以使用 Godot 源代码和 GDExtensions 的命令行接口。

尚未达到生产就绪阶段(alpha 阶段)。

仅在 Windows 上进行了测试和实现(稍后将支持 macOS 和 Linux)。

Godot 未认可也未支持此工具。

功能

此工具的灵感来自 flutter doctor,它帮助 Flutter 开发者配置他们的工作空间。此工具应提供类似的体验,以改进和简化 Godot GDExtension 的创建。

  • 测试您的系统是否已正确配置以编译源代码。
  • 安装 godot-cpp 源代码。
  • 构建 godot-cpp 源代码。
  • 从最小 C++ 模板创建 GDExtension。

路线图

  • 添加对 Android 构建的检测
  • 添加对 iOS 构建的检测
  • 添加对 Web 构建的检测
  • 添加对 Linux 的支持
  • 添加对 macOS 的支持
  • 添加测试

入门

  • 下载最新的 版本
  • 将二进制文件解压到系统上的某个位置。
  • 将二进制文件的路径添加到您的 PATH 环境变量中。

此工具将数据存储在

Windows: %APPDATA%\Roaming\gd-cli

用法

以管理员/root 身份在终端中运行命令。

使用此命令开始设置您的工作区

$ gd doctor

一切配置完成后(无问题),您可以安装一个版本的 godotengine/godot-cpp(此处为 v4.0-rc3)。这将花费一些时间下载仓库和构建源代码。

$ gd install --target 7e79aead99a53ee7cdf383add9a6a2aea4f15beb

注意:此提交已知来自官方博客文章,关于 v4.0-rc3 的发布。

现在您可以准备好生成一个 GDExtension 了

$ gd create --name awesome --output gd-extensions/

进入 gd-extensions/awesome/ 目录,使用以下命令构建您的扩展

$ scons target=template_debug

注意:未来可能会实现类似 GDExtension 目录中 gd build 的功能。

您可以将 bin/ 目录与 awesome.gdextension 一起复制到您的 Godot 项目中,并使用您的 GDExtension。

有关每个命令的更多信息,请参见下文。

命令

帮助命令

$ gd help

显示此程序的用法以及您可以使用的所有命令。

doctor 命令

$ gd doctor

使用它来检测您系统上的所有必需工具。它将运行分析并向您报告工具是否已检测到并准备就绪。

config 命令

gd doctor 将期望工具位于您的 PATH 环境变量中才能执行。但是,如果您在特定路径使用某个工具,它可能默认不会被检测到。您可以使用以下命令告诉 gd 在哪里搜索。

$ gd config --program <program> --path <absolute-path>

定义一个 program 和一个 absolute-path 来告诉 gd 在哪里找到要执行的二进制文件。

$ gd config --program <program> --remove

删除 program 和路径值,以恢复到使用 PATH 环境变量的默认行为。

注意:您可以运行 gd help config 来列出允许的程序。它将根据您的操作系统列出。

install 命令

$ gd install [--target <master|commit>] [--mode <editor|template_debug|template_release>]

它将安装 godotengine/godot-cpp 仓库并拉取最新提交。它将使用 mode 作为 scons 目标来构建源代码。您可以选择在被询问时构建 /test 示例的源代码。

target 选项用于检出 master 分支(默认)的 HEAD 或检出 master 分支的提交哈希。

在使用提交哈希时,您必须输入来自 godotengine/godot 仓库的哈希。它会查找 godotengine/godot-cpp 中与上游同步的提交。您应该只使用在 文章 中提到的提交哈希,当某个版本发布时。

示例

  • 您正在使用 Godot v4.0-rc3 的构建。
  • 此版本是从提交 7e79aead9 构建的。
  • 您需要 godotengine/godot-cpp 与提交 7e79aead9 同步。
  • 您可以在提交消息中查找与上游的同步,这里是从提交 c1ff169bf 查找的

gdextension:与上游提交 7e79aead99a53ee7cdf383add9a6a2aea4f15beb 同步

这个例子是您不应该用 gd 做的事情。您只需要提供您正在使用的版本的提交哈希,以防止任何错误和版本不兼容。

下面是您可以使用上一个示例运行的命令

$ gd install --target 7e79aead99a53ee7cdf383add9a6a2aea4f15beb

create 命令

$ gd create --name <library-name> --output <path-output>

它将使用一个最小的 C++ 模板生成一个 GDExtension。它会在 <path-output> 路径下为您创建 <library-name> 目录。

这个模板基于 godotengine/godot-cpp/test,代码量较少。它的优点是为您重命名了 <library-name> 声明。

这是运行此命令后的输出示例

$ gd create --name awesome --output folder/

folder/
└── awesome/
    ├── src/
    │   ├── register_types.cpp
    │   ├── register_types.h
    │   ├── awesome.cpp
    │   └── awesome.h
    ├── .gitignore
    ├── CMakeLists.txt
    ├── SConstruct
    └── awesome.gdextension

这将包括以下声明

  • 一个继承自 ObjectAwesome Godot 类。
  • initialize_awesome_moduleuninitialize_awesome_module
  • .gdextension 文件的声明。

它将在 bin/ 目录中输出二进制文件

folder/
└── awesome/
    ├── bin/
    │   └── libgdawesome.[os].[target].[arch].[ext]
    └── ...

GitHub

查看 Github