I am building a IOKit driver and would like to use the ampersand "And" logic on some of the IOKitPersonality matching fields, like in IOKit Fundamentals: Device and Driver matching:
<key>IOPCIMatch</key>
<string>0x00789004&0x00ffffff 0x78009004&0xff00ffff</string>
However, I can't get the "&" to go through the info.plist processing in my XCode 2.4 project. I've tried various combinations of
- "&"
- turning off preprocessing
- INFOPLIST_PREPROCESSOR_DEFINITIONS
- &
which eventually set the desired string in the intermediate file. Where it fails is in the com.apple.tools.info-plist-utility Info.plist - expandbuildsettings -o ...., which seems to run regardless of the preprocessing settings. I then get an XML parser issue on the "&" in the string field. Shouldn't "&" have been processed as an escape for "&"?
IOPCIFamily has an IOKitPersonality (IOPCI2PCIBridge-i386) which has an ampersand in it; but it was made with the old style info.plist in the project file. I have been doing everything with separate info.plist files; is there a way to embed the ampersand with an info.plist file?
So, any help would be greatly appreciated. For now, I'll just script a cleanup after the package is built, but I'm thinking there has to be a better way. And where is com.apple.tools.info-plist-utility ? I can't seem to find it as a separate executable.