[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!
-Eric
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