[Interest] Bug (?) in qtbase/configure for Mac

Eric Feigenson eric at feigenson.net
Tue May 13 04:23:41 CEST 2014

No, I'm not suggesting hardcoding ANYTHING, that's just plain wrong.

I gave an example of -sdk macosx10.8

The line 

QMAKE_MAC_SDK = macosx10.8

is generated by the configure script, and is written to qdevice.pri, as previously described.

So, I would expect that -sdk macosx10.7 would generate a qdevice.pri with:

QMAKE_MAC_SDK = macosx10.7

However, the way things are without my proposed change is that -sdk macosx10.7 would generate:

!host_build:QMAKE_MAC_SDK = macosx10.7

which seems (like I said, it's all circumstantial evidence) to cause isysroot to contain macosx10.9 (the default) instead of macosx10.7 (as specified on the -sdk option).

Do you know what the syntax "!host_build:QMAKE_MAC_SDK" is?  Is that shell script syntax?  Makefile syntax?  I'm not familiar with it.  I haven't found where qdevice.pri is included, but I would assume it's another .pri or .pro file.  Is it qmake syntax?

Looking back at the configure script, I think it is, as its used in other code for a generated .pri file (qmodule.pri).  The configure script is a weird amalgam of bash shell, awk, and some other things, so I haven't been able to work it all out yet.  BUT the help gives me a hint:

    -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. The argument should be
                         one of the available SDKs as listed by 'xcodebuild -showsdks'.
                         Note that the argument applies only to Qt libraries and applications built
                         using the target mkspec - not host tools such as qmake, moc, rcc, etc.

So -sdk is not supposed to apply to qmake, which is where I'm seeing the issue.  This is odd, because prior to my building 5.3.0RC1 (which was some 5.2 version), I was having no problems.  But since I'm not running Mac OS 10.8, I can't compile/build with 10.9, because the build fails.

So, from this I might conclude:

(1) -sdk may actually be working as advertised, since the syntax looks like it would make sense in a qmake file BUT
(2) Something has changed in 5.3.0RC1 such that I can't build qmake (and probably other host tools) under Mac OS 10.8 without my hack (no longer "fix")

I'm glad I asked in the first place...!

So, now my question is... has anyone ELSE seen this trying to build 5.3RC1 on a Mac under Mac OS 10.8?  Or has everyone upgraded to Mac OS 10.9, and so wouldn't notice?

Thanks for everyone's patience!


On May 12, 2014, at 9:28 PM, Thiago Macieira <thiago.macieira at intel.com> wrote:

> Em seg 12 maio 2014, às 18:26:53, Eric Feigenson escreveu:
>> If the line is:
>> QMAKE_MAC_SDK = macosx10.8
>> Then this happens:
>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolcha
>> in/usr/bin/clang++ -c -o qlibraryinfo.o -pipe -isysroot
>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Develo
>> per/SDKs/MacOSX10.8.sdk ...
>> Which is what I'd expect.
> There's no way that hardcoding the SDK for everything is correct.
> Maybe the conditional is inverted. Maybe the ! should be dropped.
> -- 
> Thiago Macieira - thiago.macieira (AT) intel.com
>  Software Architect - Intel Open Source Technology Center
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest

More information about the Interest mailing list