我如何从Premake构建脚本中运行自定义工具?

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

即使他们的 FAQ 中有一个关于此的问题和答案,但对我来说答案非常不完整。能够调用任何 lua 函数的能力非常棒,但我应该在哪里调用 /e>这个/protoc/ 编译器呢?在构建应用程序或单元测试之前,我需要运行 protoc 编译器。

原文链接 https://stackoverflow.com/questions/6918601

点赞
stackoverflow用户734069
stackoverflow用户734069

你能够从 Premake 脚本中调用外部代码。但是要记住:Premake 脚本用于生成 构建文件 :Makefiles、C++ 项目等。Premake 脚本在构建项目之前运行。

如果你想要在实际的构建文件(例如 make、VC++、Code::Blocks 等)之外运行此预处理,则很容易。Lua 的 os.execute 可以执行命令行。

Premake 脚本仍然是 Lua 脚本。所有 Premake 命令只是对 Premake 定义的函数进行 Lua 调用。Premake 执行脚本,然后使用这些数据来生成构建文件。因此,所有的 Lua 代码都在脚本执行过程中运行。无论你在脚本中放置这个命令的位置是什么,它都会在生成构建文件之前执行。

2011-08-02 21:33:24
stackoverflow用户93921
stackoverflow用户93921

如果你想在构建期间运行 protoc 步骤(从 VC++、makefile 等),你可以设置一个预构建命令。请参见 http://industriousone.com/prebuildcommands 获取更多信息和示例。

2011-08-03 09:28:29