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