Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] Cygwin make and CDT


One of the problems we currently see with CDT when used with Cygwin
make is that Cygwin make does not accept Windows style paths, causing
build errors.
e.g. If users add an include folder, say
${workspace_loc:/projectA/include}, this will be elaborated to
"C:/path/to/wspace/projectA/include". gcc passes this path through
when computing dependencies, so the .d dependency files generated will
end up having rules like:

C:/path/to/wspace/... : other_dependencies

Notice that there are two :'s in the above line in the .d file. So
make will error out on such lines. We could fix it by either escaping
the first :, or by using Unix style paths
(/cygdrive/c/path/to/wspace). I'd like to know if there is a way to
automatically do this. I've found that adding an
IManagedOptionValueHandler for the include path option that does a
conversion to Unix style path could work. But this has a deficiency:
this is called only when the Include path is changed, but some users
change "Paths and Symbols" CDT property to add such paths, and the
option handler is not called.

Managed Build has an option called optionPathConverter, that is
invoked for the reverse situation i.e, whenever a path from the tool
needs to be converted to CDT recognized form. But I haven't found one
that does it the other way - some interface that is always called
whenever a path needs to be passed to a tool. Is there such a thing?

Currently, we suggest our users to provide relative paths if possible,
and if not, enter the full Unix style path.


In the end, everything is a gag.
           Charlie Chaplin

Back to the top