[webkit-dev] Moving away from qmake

Kevin Ollivier kevino at theolliviers.com
Mon Nov 12 14:01:05 PST 2007


Hi David,

On Nov 12, 2007, at 1:19 PM, David D. Kilzer wrote:

> Kevin Ollivier <kevino at theolliviers.com> wrote:
>
>> [...]  The tricky part AFAICT would be XCode, though, because
>> even if there is a scripted solution for this, it would probably need
>> to be run on a Mac where we have access to AppleScript or some other
>> scripting tool that can read and make changes to XCode projects...
>> [...]
>
> Xcode project files are plain text as well.  It's possible to update  
> them via
> script (see WebKitTools/Scripts/sort-Xcode-project-file), but it  
> requires a
> little more insight than just staring at the source.

Right, in fact, I actually wrote a fair chunk of the XCode backend for  
Bakefile, so I do remember the basics of the format, although my  
memory is a bit hazy. :-) But the issue I saw with that approach is  
that adding a file doesn't just mean inserting a file entry, XCode  
uses UUIDs to refer to files and creates hierarchies of UUIDs to  
manage folder hierarchies and the like. So to add a file to a certain  
project folder, you'd have to retrieve the UUID of the parent folder  
the file is to be inserted into, along with any parent folders for  
that folder to know which PBXGroup in the project file you should  
insert the new file's UUID into, and I don't know how we can get that  
info without parsing the file and folder listing out of the XCode  
project file. It seems there would be similar issues with adding/ 
removing a folder from the project file.

In short, I'm not sure we could get away with making those changes  
reliably without parsing at least some chunks of the project file, if  
not most of it. (WebCore.xcodeproj/project.pbxproj, for example,  
largely consists of file references and folder organization.) However,  
I have to admit I haven't seriously thought about the matter before  
today, so it's possible I'm missing or overlooking something  
important. Any ideas of how we could do this more simply?

Thanks,

Kevin

>
> Dave
>
>



More information about the webkit-dev mailing list