Target multiples MacOS X version with one computer
I’m developing an application which must be deployed on 10.4, 10.5 and 10.6. I have only one computer on 10.5.
This application makes a lot of computations so we must provide an optimized version for each platforms(different flags for compilations which are not available on some platforms OpenMP …).
We have decided to provide a 32 bit version on 10.4 with the Carbon version of Qt and for 10.5 and above to provide a 64 bit version with the Cocoa version.
So I have to install two versions of Qt (a Carbon version and a Cocoa version) by compiling the two versions and installing them in different folders.
My first question is how I can manage easily the builds of my application with IDEs like XCode or QtCreator. Is it possible to switch easily between each config((10.4-Carbon) and (10.5-Cocoa))?
Can I make a single Xcode project correctly configured from .pro file ? I don’t want to customize the Xcode project on my own for each platforms. I can adjust the .pro file to deal with the different platforms and I hope to have a correct Xcode project with multiple targets (qmake -spec macx-xcode). But I assume it is not possible, I’m not an expert of XCode. If it is not possible with Xcode we can use QtCreator instead.
So the second question is what variables I have to set correctly for each platforms ? QtCreator must use and link the correct version.
The last questions are about the deployment of the application. We want to use macqtdeploy command but we assume it has to find also the correct version for each plaftform. With this mecanism we will provide two applications one for each platforms.
But on MacOS X it is possible to aggregate different architectures in a single file (the lipo command allows this). For example, in a library you can find the i386 and the x86_64 version. So it is possible to make only one application (a bundle) that can contain the i386 and the x86_64 version in a single file. Has anyone made a thing like this by using the lipo command on Qt libraries ?