许多库/框架使用某种代码生成器将易于读取的IDL文件转换为源代码。我在C ++项目中使用的一些包括:
使用CMake,设置运行代码生成器的自定义目标并使应用程序目标依赖于它是相对简单的,这样如果IDL文件发生更改,生成器将自动重新运行。
现在,我需要为Android应用程序做同样的事情,而且我在网上找不到太多帮助。我在这个网站上找到的最接近的问题是:
但该问题的OP只是想手动运行代码生成器 并将其包含在他的项目中。我已经知道如何做到这一点,现在我想要Android Studio / Gradle 为我做。
为了使问题更具体,我正在运行此命令以从文件FacialRecognitionContext.java
生成FacialRecognition.sm
:
$ java ./smc/bin/Smc.jar -java FacialRecognition.sm
如果FacialRecognition.sm
更改,我如何指示Gradle自动为我执行此操作?
进一步搜索导致this SO question和this tutorial,这两者似乎都暗示处理.proto
文件的“最佳”(?)方式是使用Protobuf Plugin for Gradle 。我不得不说,这很令人烦恼。当我查看protobuf插件的sources时,我发现它包含九个 Groovy文件(?!)我真的需要编写一个完整的SMC 插件只是为了生成一个文件?