Header search path and spaces Serious limitation while AMD does it right

Trying to build a larger application where you just cannot put everything into one source file I ran into a serious limitation of the NVIDIA, and as well the Apple, implementation of OpenCL.

When adding directories to the search path using “-I dir” it is impossible to specify paths containing spaces. IMHO this is a major limitation, not only because it restricts the names you can use for your paths, but also because the default paths you would have to deal with on Windows contain spaces, namely “Documents and Settings” and “Program Files”.

As I am a Linux user and hopefully will never have to run my app on a windows PC I could say: “So what”, but honestly. This is the freaking 21st century. The age of bash-completion and GUIs, where the computer often knows better what I want to do next than I myself. And why do we have unicode and abundance of storage when APIs restrict us to use stupid directory names like “OpenCLExamples” or “phd_projects”.

I know there is a workaround for the limitation on Windows, which is mentioned in these forums, but honestly. Its a hack, not a solution. Introducing a platform dependency and taking away a lot of the sexiness of OpenCL. After all, parsing an additional pair of quotation marks or some backslash escaping the space shouldn’t be rocket science.

P.S.: Sorry for the rant, but its one of the things that really annoys you when it stalls you for a few hours finding that stupid coding error you did. Especially when afterwards you have to think of a good and not-to-obvious way to force your users to not use spaces in the installation path.

-I “c:\A directory with spaces”

should work. Use the “”

This works with the AMD implementation, but it does not work with the OpenCL implementation that comes with the CUDA 3.0 beta driver. At least on linux.