I have spent countless hours on this one. The most frustrating part is that the setup sometimes (rarely) works. Here is the glitch.

Third party library (C++ source and headers) has a file called "Signal.h". XCode confuses the project relative Signal.h with the system's signal.h. Other system headers end up including the local.

The project is organized as such...

The XCode project file is in the root of the third party project directories
All source and header files are in a "source" subdirectory

All source files use #include "source/file.h,inl"

In order for XCode to see any of the project headers, I added the complete path of the "source" directory to the target's Include Header Path attribute. The man-pages then state that adding a " -" after the path specification will only use that path for #include "". It appears to be ignoring the flag.

To figure out what setting is causing the problem (there is a GMake file that works), I copied XCode's compilation command to the command line. The following parameter, when removed, compiles the file on the command without error.


What is going on? How do I tell XCode that "source/Signal.h" is not <singnal.h>?