5

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

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

4

2 回答 2

5

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

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

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

于 2011-08-02T21:33:24.763 回答
3

如果您想在构建期间运行 protoc 步骤(来自 VC++、makefile 等),您可以设置预构建命令。有关更多信息和示例,请参阅http://industriousone.com/prebuildcommands 。

于 2011-08-03T09:28:29.767 回答