Скомпилируйте папку .profo файлов на нескольких языках - PullRequest
0 голосов
/ 27 октября 2018

Допустим, у меня есть папка с некоторыми .proto файлами:

Message.proto
Conversation.proto

Для каждого .proto файла для python мне нужно сделать следующее:

protoc --python_out=. XXXXXXX.proto

Для каждого .proto файла для swift мне нужно сделать следующее:

protoc --swift_out=. XXXXXXX.proto

Есть ли простой способ автоматической компиляции каждого файла .proto на несколько языков в папке?У меня есть много файлов .proto, которые я использую для обоих языков, теперь мне нужно скомпилировать каждый файл дважды (для python и swift (но можете ли вы представить себе боль, если я добавлю больше языков?)).

Мне интересно, как быстрее всего скомпилировать файлы .proto на несколько языков.В идеале я хочу создать папку с файлами .swift / .py и файлами .proto.

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Если вы запускаете protoc в оболочке, вы можете использовать подстановочные знаки *.proto, например:

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

См. ссылку

Если вам нужно поддерживать несколько языков, вам нужно создать скрипт (или пользовательскую команду) с шаблоном glob, который соответствует всем *.proto файлам в вашей системе сборки, и запустить команду в цикле.

Так же, как add_custom_command в cmake системе сборки.

0 голосов
/ 29 октября 2018

Любая традиционная система сборки должна быть в состоянии сделать это.

Например, Makefiles, scons, cmake или аналогичные.Процесс тот же, что и при компиляции нескольких файлов .c в несколько файлов .o с помощью компилятора C, и для этого есть множество примеров.

...