[Development] OS X SDK set via configure is not used during build (dev branch)

Tor Arne Vestbø tor.arne.vestbo at theqtcompany.com
Wed Jan 20 15:03:04 CET 2016

Host tools will build with the latest SDK you have, regardless of what 
you pass to -sdk, which may explain what you're seeing.

You don't need to pass an explicit -sdk macosx10.11 though, just skip 
the -sdk argument entirely and make sure your .qmake.* files are wiped.

We should really just remove the -sdk argument and always build with the 
latest SDK. Is there any reason not to?

tor arne

On 13/01/16 02:14, Mikkel Krautz wrote:
> On Wed, Jan 13, 2016 at 12:55 AM, Thiago Macieira
> <thiago.macieira at intel.com> wrote:
>> On Wednesday 13 January 2016 00:36:14 Mikkel Krautz wrote:
>>> Hi,
>>> I'm currently on 10.10, Yosemite, using Xcode 7.1.1 (as of this writing).
>>> This version of Xcode only ships with the 10.11 SDK. But I am on 10.10.
>>> When I built Qt (dev branch), by passing -sdk macosx10.11 -- the only
>>> SDK I have -- to configure, I get build failures.
>>> Inspecting the compiler flags, I see that the OS X 10.10 SDK is being
>>> used (-isysroot, etc.).
>> Remove all .qmake.{cache,super} files you may have. The build stores the
>> version of the SDK it found when you first ran qmake and won't check again.
>> This wasn't a problem in the past because Apple used to provide the same SDK
>> for more than one version of Xcode, so you were unlikely to upgrade and lose
>> the SDK you last had.
> I am pretty sure I had the files cleaned before trying this, so I tried again:
> $ cd qt5
> $ git submodule foreach --recursive git clean -dfx -f
> $ find . | grep qmake.cache
> ./qtbase/qmake/cachekeys.h
> ./qtbase/tests/auto/tools/qmake/testdata/export_across_file_boundaries/.qmake.cache
> $ find . | grep qmake.super
> $
> Building:
> $ cd qtbase
> $ OPENSSL_LIBS="-L${MUMBLE_PREFIX}/lib -lssl -lcrypto" ./configure
> -developer-build -opensource -nomake examples -sdk macosx10.11 -I
> ${MUMBLE_PREFIX}/include -openssl-linked
> $ make
> Full output at https://gist.github.com/mkrautz/2041003a8aeb63a792b8
> Initially, I had MAKEFLAGS set to -j8.
> When I did that, I observed that *some* clang++ invocations correctly
> used the 10.11 SDK.
> Here's me running "make -j8", right after I ran "make":
> https://gist.github.com/mkrautz/d96d5329807addf8abc2
> So, some things are using the correct sysroot.

More information about the Development mailing list