From 6d5489f5df1220ac82d76bbee1f3caa93b34100d Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Wed, 25 Jan 2017 18:52:22 -0800 Subject: Apple: fix QMAKE_DEFAULT_INCDIRS so compiler invocations use the sysroot The compiler command line used to populate QMAKE_DEFAULT_INCDIRS must include the sysroot in order to generate the correct paths list. This fixes a regression introduced in afd8263 which in turn attempted to fix an earlier regression making it impossible to override the deployment target in user project files. Task-number: QTBUG-58325 Change-Id: I93e6b7ef90b2744dd2f03c77da31c692cb194976 Reviewed-by: Gabriel de Dietrich Reviewed-by: Oswald Buddenhagen --- mkspecs/features/toolchain.prf | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'mkspecs/features/toolchain.prf') diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf index 15b0829235..6d96eaf689 100644 --- a/mkspecs/features/toolchain.prf +++ b/mkspecs/features/toolchain.prf @@ -29,7 +29,18 @@ isEmpty($${target_prefix}.INCDIRS) { cmd_prefix = "set LC_ALL=C&" cmd_suffix = "NUL" } - output = $$system("$$cmd_prefix $$QMAKE_CXX $$qtMakeExpand($$QMAKE_CXXFLAGS) -xc++ -E -v - 2>&1 $$cmd_suffix", lines) + + cxx_flags = $$QMAKE_CXXFLAGS + + # Manually inject the sysroot for Apple Platforms because its resolution + # normally does not happen until default_post.prf. This is especially + # important for moc to gain the correct default include directory list. + # While technically incorrect but without any likely practical effect, + # UIKit simulator platforms will see the device SDK's sysroot in + # QMAKE_DEFAULT_*DIRS, because they're handled in a single build pass. + darwin: cxx_flags += -isysroot $$QMAKE_MAC_SDK_PATH + + output = $$system("$$cmd_prefix $$QMAKE_CXX $$qtMakeExpand($$cxx_flags) -xc++ -E -v - 2>&1 $$cmd_suffix", lines) add_includes = false for (line, output) { line ~= s/^ *// # remove leading spaces -- cgit v1.2.3