Posts Tagged ‘qmake’

qmake / xcode bug

Tuesday, January 6th, 2009

super annoying…Qt advertises that you can make an xcode project file using qmake to enable native development on mac…i had never been able to get the golden cheetah project working in this way, even after following what little documentation i could find. each time i’d run “qmake -spec macx-xcode” would result in a non-parseable xcodeproj file. to date i’ve just been coding and compiling with a simple text editor.

justin had done some initial troubleshooting, eventually filing a bug report with trolltech. he determined that the QMAKE_CXXFLAGS = -DGC_BUILD_DATE=”`date +’\”%a_%b_%d,_%Y\”‘`” was causing the issue. commenting out the offending line to get a valid xcode project and having to create another define in a source file.

a dev from trolltech got back to justin confirming the bug and offering a workaround by manually adding the directive in the xcode target’s build settings. they also mentioned that a fix would be coming in a future version of qmake, but gave nothing specific. i spent most of the afternoon trying to follow this workaround to no avail. it was very frustrating. i looked at the project file that qmake created and something looked odd with how special characters in the qmake_cxxflags key were escaped with slashes. too many it seemed.

finally, i came across a forum post where someone was trying to set a define macro to have a string value – jsut what we are trying to do. the solution is somewhat a hack, a bandaid for a shortcoming of qmake… triple-escape the outside quotation marks. looks like: -DGC_BUILD_DATE=\\\”`date +’\”%a_%b_%d,_%Y\”‘`\\\”

it compiles fine on the linux (ubuntu) test box, manually on mac os x (using qmake/make) and also creates a valid (parseable) xcode project file, but it won’t compile in xcode. i still have to disable these lines in src.pro and add them in by manually later. for the time being, i’m planning to develop in xcode, and build test versions without the build date/version number and then compile beta/release versions by hand, which works fine.

for reference, here are the lines i’m referring to in src.pro:

QMAKE_CXXFLAGS += -DGC_BUILD_DATE=\\\"`date +'\"%a_%b_%d,_%Y\"'`\\\"
QMAKE_CXXFLAGS += -DGC_SVN_VERSION=\\\"`svnversion . | cut -f '2' -d ':'`\\\"
QMAKE_CXXFLAGS += -DGC_MAJOR_VER=1
QMAKE_CXXFLAGS += -DGC_MINOR_VER=0

the top two lines are string values; the bottom two values are integers. also note, this has been reported to not work in win32, but i haven’t tested it myself. after we get the mac/linux builds going i’ll get back to the win build.

oh, hello there.

Sunday, January 4th, 2009

oops. school’s out and i’ve completely ignored documentation. looking to correct that, please accept the following communiqué:

the winter show went very well – it seemed that cloud reader was well received. most of the favorable comments were split among two categories…those which really liked the performative aspect of the project and could envision it large on a wall….and those who reacted strongly to the intimate aspect of seeing it running on the iPhone screen.

since the project was originally designed for the small screen in ITP’s 2×2 class, the comments were enough to encourage me to finally get around to iPhone application development. i’ve looked over various objective-c, cocoa and iphone docs over the past year, but never really made a commitment to actually learn or apply it. now i’m driven, and have come to love square braces :)

separately and coincidentally, sean from golden cheetah decided to extend justin and i write access to the svn codebase and the website. he’s been quite busy and gc development has stalled for it. although i’ve been busy with school, between the three of us we should be able keep abreast of patches and implement new features.

i’m trying to be cautious with the project…i don’t want to do something that will expose me as a (programming) fraud! justin and i were able to get it working happily in xcode…although the QMAKE_CXXFLAGS += -DGC_BUILD_DATE=”`date +’\”%a_%b_%d,_%Y\”‘`” compiler directive in src.pro was causing qmake to create non-parseable xcodeproj files…i think it may have to do with escaping special characters. justin sent a bug report to Qt…hopefully we’ll hear something at some point…for the time-being i’ve commented out the line in the .pro file and added a conditional define in MainWindow.cpp.

so, tinkering with the golden cheetah code has be getting me comfortable with code that isn’t java and i think i’ll be well on my way to get to with with cloud reader for iphone…come on apple and approve my developer application!