summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mkspecs/features/mac/default_post.prf6
-rw-r--r--mkspecs/features/mac/sdk.mk12
2 files changed, 18 insertions, 0 deletions
diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf
index c6eb7c5a2c..adc796f395 100644
--- a/mkspecs/features/mac/default_post.prf
+++ b/mkspecs/features/mac/default_post.prf
@@ -1,5 +1,11 @@
load(default_post)
+# Detect changes to the platform SDK. Apps only for now
+contains(TEMPLATE, .*app):!macx-xcode {
+ QMAKE_EXTRA_VARIABLES += QMAKE_MAC_SDK QMAKE_MAC_SDK_VERSION
+ QMAKE_EXTRA_INCLUDES += $$shell_quote($$PWD/sdk.mk)
+}
+
!no_objective_c:CONFIG += objective_c
qt {
diff --git a/mkspecs/features/mac/sdk.mk b/mkspecs/features/mac/sdk.mk
new file mode 100644
index 0000000000..a7c8268da5
--- /dev/null
+++ b/mkspecs/features/mac/sdk.mk
@@ -0,0 +1,12 @@
+CURRENT_MAC_SDK_VERSION := $(shell /usr/bin/xcrun --sdk $(EXPORT_QMAKE_MAC_SDK) -show-sdk-version)
+
+ifneq ($(CURRENT_MAC_SDK_VERSION),$(EXPORT_QMAKE_MAC_SDK_VERSION))
+ $(info The platform SDK has been changed from version $(EXPORT_QMAKE_MAC_SDK_VERSION) to version $(CURRENT_MAC_SDK_VERSION).)
+ $(info This requires a fresh build. Please wipe the build directory completely,)
+ $(info including any .qmake.stash and .qmake.cache files generated by qmake.)
+ # FIXME: Ideally this should be advertised as just running make distclean, or we
+ # should even do it automatically by having proper makefile dependencies between
+ # .qmake.stash and the SDK version, but as qmake doesn't seem to be consistent in
+ # how it deals with .qmake.stash as a dependency we need to defer that until later.
+ $(error ^)
+endif