我在我的C ++应用程序中使用protocol buffers进行数据序列化。我想在premake构建脚本中添加protoc
代码生成器的调用(从而确保生成的类的最新状态,并避免在版本控制下存储生成的源)。
即使他们FAQ对此有疑问和答案,但对我来说答案是非常不完整的。有能力调用任何lua函数是很好的,但我究竟在哪里拨打电话?我需要在构建应用程序或单元测试之前运行protoc编译器。
答案 0 :(得分:4)
您当然可以从Premake脚本调用外部代码。但请记住:Premake脚本用于生成构建文件:Makefile,C ++项目等。预制脚本在构建项目之前运行。
如果您希望在实际构建文件之外(而不是make,VC ++,Code :: Blocks等)运行此预处理,那么它很容易。 Lua的os.execute
将执行命令行。
Premake脚本仍然是Lua脚本。所有Premake命令都只是对Premake定义的函数的Lua调用。 Premake执行脚本,然后使用它们中的数据生成构建文件。所以你的所有Lua代码都在脚本执行期间运行。将此命令放在脚本中的位置无关紧要;无论它在哪里,它都会在生成构建文件之前执行。
答案 1 :(得分:2)
如果你想在构建过程中运行protoc步骤(从VC ++,makefile等),你可以设置prebuild命令。有关详情和示例,请参阅http://industriousone.com/prebuildcommands。