steven_wu added inline comments.

================
Comment at: cmake/Modules/FindGRPC.cmake:111
 # They may be relative to the source dir or absolute (for generated protos).
-function(generate_protos LibraryName ProtoFile)
+macro(generate_protos_source GeneratedSource ProtoFile)
   cmake_parse_arguments(PARSE_ARGV 2 PROTO "GRPC" "" "DEPENDS")
----------------
sammccall wrote:
> steven_wu wrote:
> > sammccall wrote:
> > > sammccall wrote:
> > > > changing from function to macro means all the local variables here are 
> > > > done in the parent scope, which is hard to reason about.
> > > > 
> > > > I think the only reason you're doing that here is to return the 
> > > > filename in the `ProtoSource` variable, in which case 
> > > > `set(${GeneratedSource} ${GeneratedProtoSource} PARENT_SCOPE)` should 
> > > > do the job from a function.
> > > nit: the plural is in the wrong place: rather `generate_proto_sources`?
> > > this generates the multiple sources for a single proto, rather than the 
> > > other way around.
> > > 
> > > (I'm not sure why the original was plural, but this makes it somehow more 
> > > confusing)
> > The reason why it is a macro is I don't know any elegant way to pass all 
> > the DEPEND down to `add_*_library`.
> > The reason why it is a macro is I don't know any elegant way to pass all 
> > the DEPEND down to add_*_library.
> 
> ... oh, yikes, we're passing through by pretending they're `${ProtoFile}`, I 
> didn't see that :-\
> 
> I guess the easiest option is just to change that name to something like 
> `ProtoArgs` in the wrapping function, and add a bit of documentation.
> I think using CMAKE_PARSE_ARGUMENTS in the wrapping function is an option 
> though, and then pass the unparsed arguments through?
Ah, I just learnt the unparsed_argument option. Then it is not too bad. Fixing.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D135712/new/

https://reviews.llvm.org/D135712

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to