I want to use protobuf and use advanced compiler options for this.
I use
protoc -I$file_dir --cpp_out=proto $file
for the compiler command. So all source files will be created in the "proto" sub folder of the project
and i use this for the autogenerated files:
proto/$file_name.pb.cc
proto/$file_name.pb.h
But this does not work.
It searches the file in the base path of the project. So ignores the "proto" part of the directory....
i looked into the code and this is quite specious: 
         wxFileName tmp 
...
tmp.SetFullName(tool->generatedFiles[i]);
                wxString tmps = tmp.GetFullPath();
                // any macro replacements here, should also be done in
                // CompilerCommandGenerator::GenerateCommandLine !!!
                tmps.Replace(_T("$file_basename"), pf->file.GetName()); // old way - remove later
                tmps.Replace(_T("$file_name"),     pf->file.GetName());
                tmps.Replace(_T("$file_dir"),      pf->file.GetPath());
                tmps.Replace(_T("$file_ext"),      pf->file.GetExt());
                tmps.Replace(_T("$file"),          pf->file.GetFullName());
                Manager::Get()->GetMacrosManager()->ReplaceMacros(tmps);
                ProjectFile* pfile = AddFile(targetIndex, UnixFilename(tmps));
is it a good idea to give wxFileName a string that cans contain "$" charachters? Why not replace the path before passing it to a wxFileName object?