Hi Kenton,
Thanks for the reply and for your amazing & tireless work on this library -- it's invaluable.
What you point out is exactly the problem -- the ANT Fileset tag generates a fully qualified path for the protocol buffers themselves, and so I have to also fully qualify my "proto_path" as well to make it match. I can certainly appreciate that it's hard to make the canonical paths work, but it does strike me as non-intuitive -- I'm so used to being able to give any path to a tool. If it's too hard, perhaps at least a warning to this effect in that proto_path error message would help save future users time?
Right now the error it gives is:
"D:\Artem\wsl-trunk\wsl_root\src\com\wsl\CardioTrainer\weightloss\weightloss.proto: File does not reside within any path specified using --proto_path (or -I). You must specify a --proto_path which encompasses this file."
Perhaps add: "Make sure the proto_path is an exact prefix of the file path to the protocol buffer."
// TODO(kenton): It would be nice to handle "..", e.g. so that we can figure
// out that "foo/bar.proto" is inside "baz/../foo". However, if baz is a
// symlink or doesn't exist, then things get complicated, and we can't
// actually determine this without investigating the filesystem, probably
// in non-portable ways. So, we punt.
//
// TODO(kenton): It would be nice to use realpath() here except that it
// resolves symbolic links. This could cause problems if people place
// symbolic links in their source tree. For example, if you executed:
// protoc --proto_path=foo foo/bar/baz.proto
// then if foo/bar is a symbolic link, foo/bar/baz.proto will canonicalize
// to a path which does not appear to be under foo, and thus the compiler
// will complain that baz.proto is not inside the --proto_path.
Thanks for the help,
Artem