So, due to the constant headache of reconfiguring Xcode everytime you want to set-up a project with a different target, and all the trouble that creating a framework is (especially when the code is in flux); I started doing some reading on makefiles, scripting, and bakefiles.

Reading the tutorial on bakefiles, I found that it was possible to create a MSVC++ project file straight from the source with one easy command line entry. That blew me away. So much easier, so much better. Doing a "man bakefile" shows me that it is also possible to do this for Xcode2. I am currently using xcode 3, but I thought I would give it a go.

First attempt failed miserably.
Code: Select all
$ bakefile -f xcode2 mmex.bkl
/Users/wesleyrellis/Desktop/mmex/build/bakefiles/presets/wx.bkl:64: error: This format is not (yet) supported by wx preset.
    included from /Users/wesleyrellis/Desktop/mmex/build/bakefiles/common.bkl:16
    included from /Users/wesleyrellis/Desktop/mmex/build/bakefiles/mmex.bkl:21


Turns out that wx doesn't support this. So back to google and an hour later I learn that gnucash is available for mac in an app package, and also find this: http://thread.gmane.org/gmane.comp.sysutils.bakefile.devel/1026

So, looks like someone was thinking about it. I tried out their patch, which really just tells bakefile to use the msw settings, and lo and behold I have an xcode project. A lot of the settings are not quite right, but I think this is the best direction for me to be working in. Plus it will allow a lot more people to easily get set up on their mac. For instance the user who wanted a build for PPC Tiger that I just couldn't seem to build on Snow Leopard.

By the way, output of the second build:
Code: Select all
$ bakefile -f xcode2 mmex.bkl
/usr/local/share/bakefile/rules/xcode2.bkl:103: warning: dependencies not implemented for this type of targets in Xcode format
    when in <warning> at /usr/local/share/bakefile/rules/xcode2.bkl:103
    when in <depends> at /usr/local/share/bakefile/rules/xcode2.bkl:98
    when in <modify-target> at /usr/local/share/bakefile/rules/xcode2.bkl:97
    when in <modify-target> at /usr/local/share/bakefile/rules/xcode2.bkl:97
    when in <dependency-of> at /Users/wesleyrellis/Desktop/mmex/build/bakefiles/mmex.bkl:39
    when in <subproject> at /Users/wesleyrellis/Desktop/mmex/build/bakefiles/mmex.bkl:38
    when processing target 'i18n' at /Users/wesleyrellis/Desktop/mmex/build/bakefiles/mmex.bkl:38
mmex.xcodeproj
--- GENERATING  PROJECT ---
sqlite3
Creating new group=000000000000000000000048 for path=sqlite
mmex
Creating new group=000000000000000000000075 for path=src
writing mmex.xcodeproj/project.pbxproj
Attachments
Screen shot 2009-10-27 at 2.26.42 AM.png
(47.28 KiB) Downloaded 661 times