summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2016-08-19 15:07:57 +0200
committerThiago Macieira <thiago.macieira@intel.com>2016-09-15 20:01:33 +0000
commit2c9d15d73c5136dd2b8a28d7ff8fef2b81d4c5dc (patch)
tree43dad3e592c5cb51168af29a45c0013d6717e065
parent43d935aa2d0fd5749fea717d4aa576cf52a05c5a (diff)
fix QMAKE_DEFAULT_*DIRS resolution with apple SDK
the code got factored out to an own toolchain.prf file, which is load()ed from default_pre.prf, so no change at first. however, on mac, we shadow toolchain.prf, and make it load() sdk.prf first. a side effect of this is that project files may not override QMAKE_MAC_SDK any more, which seems to be no big loss. it is still possible to override the sdk on the configure command line (but note that this only ever worked for the target sdk). it has also become harder to disable the use of an sdk altogether: putting CONFIG-=sdk into a project file or the qmake command line has no effect now. instead, it's possible to put it into .qmake.{conf,cache}. to make it simpler again, it's conceivable to finally add qmake -pre, which would allow setting variables before default_pre.prf is executed. Change-Id: I149e0540c00745fe8119fffd146283bb214f22ec Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-rw-r--r--mkspecs/common/mac.conf2
-rw-r--r--mkspecs/features/default_pre.prf42
-rw-r--r--mkspecs/features/mac/default_post.prf4
-rw-r--r--mkspecs/features/mac/default_pre.prf2
-rw-r--r--mkspecs/features/mac/toolchain.prf5
-rw-r--r--mkspecs/features/toolchain.prf42
6 files changed, 51 insertions, 46 deletions
diff --git a/mkspecs/common/mac.conf b/mkspecs/common/mac.conf
index d267d1f10d..b19b0853cb 100644
--- a/mkspecs/common/mac.conf
+++ b/mkspecs/common/mac.conf
@@ -8,6 +8,8 @@ QMAKE_PLATFORM += mac darwin
include(unix.conf)
+CONFIG += sdk
+
QMAKE_RESOURCE = /Developer/Tools/Rez
QMAKE_EXTENSION_SHLIB = dylib
QMAKE_LIBDIR =
diff --git a/mkspecs/features/default_pre.prf b/mkspecs/features/default_pre.prf
index 62cd90912e..cd4ea58d87 100644
--- a/mkspecs/features/default_pre.prf
+++ b/mkspecs/features/default_pre.prf
@@ -25,44 +25,4 @@ contains(QT_CONFIG, c++11):lessThan(QT_COMPILER_STDCXX, 201103): CONFIG += c++11
unset(today)
}
-isEmpty(QMAKE_DEFAULT_INCDIRS):!host_build {
- #
- # Get default include and library paths from compiler
- #
- gcc {
- !equals(QMAKE_HOST.os, Windows) {
- cmd_prefix = "LC_ALL=C"
- cmd_suffix = "</dev/null >/dev/null"
- } else {
- cmd_prefix = "set LC_ALL=C&"
- cmd_suffix = "<NUL >NUL"
- }
- output = $$system("$$cmd_prefix $$QMAKE_CXX $$QMAKE_CXXFLAGS -xc++ -E -v - 2>&1 $$cmd_suffix", lines)
- add_includes = false
- for (line, output) {
- line ~= s/^ *// # remove leading spaces
- contains(line, "LIBRARY_PATH=.*") {
- line ~= s/^LIBRARY_PATH=// # remove leading LIBRARY_PATH=
- paths = $$split(line, $$QMAKE_DIRLIST_SEP)
- for (path, paths): \
- QMAKE_DEFAULT_LIBDIRS += $$clean_path($$path)
- } else: contains(line, "$${LITERAL_HASH}include <.*") { # #include <...> search starts here:
- add_includes = true
- } else: contains(line, "End of search.*") {
- add_includes = false
- } else: $$add_includes {
- !contains(line, ".* \\(framework directory\\)"): \
- QMAKE_DEFAULT_INCDIRS += $$clean_path($$line)
- }
- }
- QMAKE_DEFAULT_LIBDIRS = $$unique(QMAKE_DEFAULT_LIBDIRS)
- }
-
- unix {
- isEmpty(QMAKE_DEFAULT_INCDIRS): QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include
- isEmpty(QMAKE_DEFAULT_LIBDIRS): QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib
- }
-
- !isEmpty(QMAKE_DEFAULT_INCDIRS): cache(QMAKE_DEFAULT_INCDIRS, set stash)
- !isEmpty(QMAKE_DEFAULT_LIBDIRS): cache(QMAKE_DEFAULT_LIBDIRS, set stash)
-}
+load(toolchain)
diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf
index 30960e66dd..6e920cd7d3 100644
--- a/mkspecs/features/mac/default_post.prf
+++ b/mkspecs/features/mac/default_post.prf
@@ -35,7 +35,3 @@ cache(QMAKE_XCODE_DEVELOPER_PATH, stash)
cache(QMAKE_XCODE_VERSION, stash)
QMAKE_XCODE_LIBRARY_SUFFIX = $$qtPlatformTargetSuffix()
-
-# Ensure that we process sdk.prf first, as it will update QMAKE_CXX
-# and friends that other features/extra compilers may depend on.
-sdk: load(sdk)
diff --git a/mkspecs/features/mac/default_pre.prf b/mkspecs/features/mac/default_pre.prf
index 5df99d1acd..1190efed5d 100644
--- a/mkspecs/features/mac/default_pre.prf
+++ b/mkspecs/features/mac/default_pre.prf
@@ -1,4 +1,4 @@
-CONFIG = sdk rez $$CONFIG
+CONFIG = rez $$CONFIG
load(default_pre)
isEmpty(QMAKE_XCODE_DEVELOPER_PATH) {
diff --git a/mkspecs/features/mac/toolchain.prf b/mkspecs/features/mac/toolchain.prf
new file mode 100644
index 0000000000..df191eb13c
--- /dev/null
+++ b/mkspecs/features/mac/toolchain.prf
@@ -0,0 +1,5 @@
+# Ensure that we process sdk.prf first, as it will update QMAKE_CXX,
+# which the default path determination uses.
+sdk: load(sdk)
+
+load(toolchain)
diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf
new file mode 100644
index 0000000000..7691b7db34
--- /dev/null
+++ b/mkspecs/features/toolchain.prf
@@ -0,0 +1,42 @@
+
+isEmpty(QMAKE_DEFAULT_INCDIRS):!host_build {
+ #
+ # Get default include and library paths from compiler
+ #
+ gcc {
+ !equals(QMAKE_HOST.os, Windows) {
+ cmd_prefix = "LC_ALL=C"
+ cmd_suffix = "</dev/null >/dev/null"
+ } else {
+ cmd_prefix = "set LC_ALL=C&"
+ cmd_suffix = "<NUL >NUL"
+ }
+ output = $$system("$$cmd_prefix $$QMAKE_CXX $$QMAKE_CXXFLAGS -xc++ -E -v - 2>&1 $$cmd_suffix", lines)
+ add_includes = false
+ for (line, output) {
+ line ~= s/^ *// # remove leading spaces
+ contains(line, "LIBRARY_PATH=.*") {
+ line ~= s/^LIBRARY_PATH=// # remove leading LIBRARY_PATH=
+ paths = $$split(line, $$QMAKE_DIRLIST_SEP)
+ for (path, paths): \
+ QMAKE_DEFAULT_LIBDIRS += $$clean_path($$path)
+ } else: contains(line, "$${LITERAL_HASH}include <.*") { # #include <...> search starts here:
+ add_includes = true
+ } else: contains(line, "End of search.*") {
+ add_includes = false
+ } else: $$add_includes {
+ !contains(line, ".* \\(framework directory\\)"): \
+ QMAKE_DEFAULT_INCDIRS += $$clean_path($$line)
+ }
+ }
+ QMAKE_DEFAULT_LIBDIRS = $$unique(QMAKE_DEFAULT_LIBDIRS)
+ }
+
+ unix {
+ isEmpty(QMAKE_DEFAULT_INCDIRS): QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include
+ isEmpty(QMAKE_DEFAULT_LIBDIRS): QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib
+ }
+
+ !isEmpty(QMAKE_DEFAULT_INCDIRS): cache(QMAKE_DEFAULT_INCDIRS, set stash)
+ !isEmpty(QMAKE_DEFAULT_LIBDIRS): cache(QMAKE_DEFAULT_LIBDIRS, set stash)
+}