如何从预制构建脚本运行自定义工具?

Tam*_*lei 5 lua build-process premake

我在 C++ 应用程序中使用协议缓冲区进行数据序列化。我想protoc在我的premake构建脚本中添加代码生成器的调用(从而确保生成的类的最新状态并避免需要在版本控制下存储生成的源代码)。

甚至他们的FAQ也有关于这个的问答,但对我来说答案很不完整。能够调用任何 lua 函数是很棒的,但是我到底把那个调用放在哪里呢?我需要在构建应用程序或单元测试之前运行 protoc 编译器。

Nic*_*las 5

您当然可以从 Premake 脚本调用外部代码。但请记住:Premake 脚本用于生成构建文件:Makefile、C++ 项目等。在构建项目之前运行 Premake 脚本。

如果您希望此预处理在实际构建文件之外运行(而不是通过 make、VC++、Code::Blocks 等),那么这很容易。Luaos.execute将执行命令行。

Premake 脚本仍然是 Lua 脚本。所有 Premake 命令只是 Lua 调用 Premake 定义的函数。Premake 执行脚本,然后使用脚本中的数据生成构建文件。因此,您的所有 Lua 代码都在脚本执行期间运行。在脚本中放置此命令的位置无关紧要;无论它在哪里,它都会在您的构建文件生成之前执行。