将.profo文件的文件夹编译为多种语言

时间:2018-10-26 21:26:49

标签: python swift terminal automation protocol-buffers

可以说我有一些.proto文件的文件夹:

Message.proto
Conversation.proto

对于每个.proto file for python,我需要这样做:

protoc --python_out=. XXXXXXX.proto

对于每个.proto file for swift,我需要这样做:

protoc --swift_out=. XXXXXXX.proto

有没有简单的方法可以将每个.proto文件自动编译为文件夹中的多种语言?我有很多.proto文件,我同时使用两种语言,现在我需要将每个文件编译两次(对于python和swift(但是如果添加更多语言,您能想象得到吗?)。

我想知道将.proto文件编译成多种语言的最快方法是什么。理想情况下,我需要.proto文件的.swift / .py文件的生成文件夹。

2 个答案:

答案 0 :(得分:2)

如果您在外壳程序中运行protoc,则可以使用通配符*.proto,如下所示:

protoc C:\your_absolute _path\*.proto --python_out=C:\python_source\

查看此link

如果需要支持多种语言,则需要使用与构建系统中所有*.proto文件匹配的glob模式创建脚本(或自定义命令),然后循环运行该命令。

就像add_custom_command构建系统中的cmake

答案 1 :(得分:0)

任何传统的构建系统都应该能够做到这一点。

例如,Makefile,scons,cmake或类似文件。此过程与使用C编译器将多个.c文件编译为多个.o文件的过程相同,并且有很多示例。