[Development] Co-installation & executable naming rules

Ziller Eike Eike.Ziller at digia.com
Mon Sep 24 15:21:47 CEST 2012


On 24 Sep 2012, at 11:30, Thiago Macieira <thiago.macieira at intel.com> wrote:

> On segunda-feira, 24 de setembro de 2012 09.14.27, Ziller Eike wrote:
>>> Let me ask you a question, though: suppose someone installs Qt 5 globally
>>> as frameworks (/System/Frameworks/QtCore.framework), then updates Qt 4.8.
>>> Which is the default symlink target?
>> 
>> There is no "default symlink target".
> 
> IIRC, inside the framework dir there's a Headers subdir, and then a version 
> number, with a "Default" symlink or so.

Yes, "Current". Would probably point to Qt5.

> There's something that tells the 
> compiler where to search for headers when you include
> 
> 	<QtCore/QString>

I don't think that there is any way to do that.

>> For development, you wouldn't use the globally installed framework directly,
>> but through the different prefixes, that way always specifying a specific
>> version. The files in one or more prefixes might be symbolic links to
>> actual system wide installations, or not. So, if you have a setup where the
>> user can separately update the system wide framework it probably would be
>> unwise to use symbolic links, and just have duplicate development versions
>> instead.
>> 
>> Btw, usually Qt 5 and Qt 4 would co-exist in the same framwork, i.e.
>> /Frameworks/QtCore.framework/Versions/5/...
>> /Frameworks/QtCore.framework/Versions/4/...
>> 
>>> And how does one select, at compile time, whether to compile & link to Qt
>>> 4 or to Qt 5?
>> 
>> Since the versions that you *develop* with are installed in different
>> prefixes, you adapt your -I -F and -L parameters for the different include
>> & link paths (e.g. qmake does that for you).
>> 
>> When compiling for different Mac OS SDKs you'd set a different sysroot.
> 
> Ah, I see! That explains a lot.
> 
> Final question: do our Mac binaries set up like the above? Unlike the SDK 
> builds for Mac, the libraries-only .dmg installs to system-wide locations and, 
> therefore, must follow your recommendation.
> 
> Does it do that already?

The Qt4 library (+tools) installers (of course) do not follow that, you can't install two of them in parallel.
For Qt5 we don't have a "libraries-only" installer that is fixed to a system wide location, we only have the installer with completely customisable install location.
In the light of that, and the fact that the amount of applications that actually install Qt system wide and use that is marginal (I haven't seen one yet), I'd just ignore that issue with the Qt4 installers.

-- 
Eike Ziller
Senior Software Engineer
 
Digia Germany GmbH
Rudower Chaussee 13, 12489 D-Berlin
Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B,  
Geschäftsführer: Mika Pälsi, Juha Varelius, Anja Wasenius
Tel: +49 30 63 92 32 55
 
Digia Germany is a group company of Digia Plc,
Valimotie 21, FI-00380 Helsinki Finland
Visit us at: www.digia.com
------------------------------------------------------------------
PRIVACY AND CONFIDENTIALITY NOTICE
This message and any attachments are intended only for use by the named addressee and may contain privileged and/or confidential information. If you are not the named addressee you should not disseminate, copy or take any action in reliance on it. If you have received this message in error, please contact the sender immediately and delete the message and any attachments accompanying it. Digia Germany GmbH and Digia Plc do not accept liability for any corruption, interception, amendment, tampering or viruses occurring to this message.




More information about the Development mailing list