summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-08-15 16:30:10 +0200
committerLiang Qi <liang.qi@qt.io>2017-08-15 16:31:48 +0200
commit106d3b9bf93325ea93c678270290b2c3dda9b764 (patch)
tree26c56932d60964c83e81d9c33d6f37ebc36d6c56 /mkspecs
parent79f679da9483c12979500dd48bc096d33af9ca6f (diff)
parent8bebded9ab02b8eec67c44bfddf802d6bf9cda3c (diff)
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts: src/plugins/platforms/cocoa/qcocoamenu.h src/plugins/platforms/cocoa/qcocoamenu.mm src/plugins/platforms/cocoa/qcocoawindow.mm src/widgets/styles/qstylehelper_p.h Change-Id: I54247c98dd79d2b3826fc062b8b11048c9c7d9bb
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/common/ghs-base.conf2
-rw-r--r--mkspecs/features/qt_configure.prf9
-rw-r--r--mkspecs/features/qt_example_installs.prf186
-rw-r--r--mkspecs/features/toolchain.prf22
-rw-r--r--mkspecs/win32-g++/qmake.conf6
5 files changed, 119 insertions, 106 deletions
diff --git a/mkspecs/common/ghs-base.conf b/mkspecs/common/ghs-base.conf
index bd1f3eb5ab..addc05241c 100644
--- a/mkspecs/common/ghs-base.conf
+++ b/mkspecs/common/ghs-base.conf
@@ -39,4 +39,4 @@ QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_LFLAGS_RELEASE -g
QMAKE_LFLAGS_CXX11 += --c++11 --thread_local_storage
QMAKE_LFLAGS_EXCEPTIONS_ON += --exceptions
-QMAKE_LIBS_CORE = -lposix -livfs -lsocket -lnet -ldl
+QMAKE_LIBS_CORE = -lposix -livfs -lsocket -lnet -lshm_client
diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf
index c3ea334dd8..afeb4f3d1d 100644
--- a/mkspecs/features/qt_configure.prf
+++ b/mkspecs/features/qt_configure.prf
@@ -492,8 +492,8 @@ defineTest(qtConfSetupLibraries) {
# overrides from the command line are accepted.
defineTest(qtConfLibrary_inline) {
lib = $$eval($${1}.library)
- !defined($${1}.libs, var): \
- error("'inline' source in library '$$lib' does not specify 'libs'.")
+ !defined($${1}.libs, var):isEmpty($${1}.builds._KEYS_): \
+ error("'inline' source in library '$$lib' specifies neither 'libs' nor 'builds'.")
# if multiple libraries provide the same export, it makes sense
# to make them recognize the same input variables.
@@ -2028,10 +2028,7 @@ for (currentConfig, allConfigs) {
}
qtConfCheckErrors()
-!isEmpty(_QMAKE_SUPER_CACHE_): \
- QMAKE_CONFIG_CACHE = $$dirname(_QMAKE_SUPER_CACHE_)/config.cache
-else: \
- QMAKE_CONFIG_CACHE = $$dirname(_QMAKE_CACHE_)/config.cache
+QMAKE_CONFIG_CACHE = $$OUT_PWD/config.cache
QMAKE_CONFIG_CACHE_USE = $$eval(config.input.cache_use)
isEmpty(QMAKE_CONFIG_CACHE_USE): \
QMAKE_CONFIG_CACHE_USE = all
diff --git a/mkspecs/features/qt_example_installs.prf b/mkspecs/features/qt_example_installs.prf
index 0a008374e5..668669e4cd 100644
--- a/mkspecs/features/qt_example_installs.prf
+++ b/mkspecs/features/qt_example_installs.prf
@@ -9,11 +9,6 @@
# We mean it.
#
-contains(TEMPLATE, .*app): \
- qtSetQmlPath()
-
-contains(TEMPLATE, "vc.*"): return()
-
defineTest(addInstallFiles) {
for(sf, 2) {
sf = $$relative_path($$sf, $$_PRO_FILE_PWD_)
@@ -31,99 +26,112 @@ defineTest(addInstallFiles) {
}
probase = $$relative_path($$_PRO_FILE_PWD_, $$dirname(_QMAKE_CONF_)/examples)
-!isEmpty(probase):!contains(probase, ^\\..*):!isEmpty(_QMAKE_CACHE_) {
- for(ex, EXAMPLE_FILES): \
- sourcefiles += $$files($$absolute_path($$ex, $$_PRO_FILE_PWD_))
- for(res, RESOURCES) {
- rfile = $$cat($$absolute_path($$res, $$_PRO_FILE_PWD_), lines)
- for(rline, rfile) {
- resrc = $$replace(rline, ^[ \\t]*<file[^>]*>([^<]+)</file>[ \\t]*$, \\1)
- !equals(resrc, $$rline): \
- sourcefiles += $$resrc
- }
+isEmpty(probase)|contains(probase, ^\\..*): \
+ return()
+
+isEmpty(_QMAKE_CACHE_) {
+ !equals(OUT_PWD, $$_PRO_FILE_PWD_): \
+ return()
+ error("You cannot build examples inside the Qt source tree, except as part of a proper Qt build.")
+}
+
+contains(TEMPLATE, "vc.*"): \
+ return()
+
+contains(TEMPLATE, .*app): \
+ qtSetQmlPath()
+
+for(ex, EXAMPLE_FILES): \
+ sourcefiles += $$files($$absolute_path($$ex, $$_PRO_FILE_PWD_))
+for(res, RESOURCES) {
+ rfile = $$cat($$absolute_path($$res, $$_PRO_FILE_PWD_), lines)
+ for(rline, rfile) {
+ resrc = $$replace(rline, ^[ \\t]*<file[^>]*>([^<]+)</file>[ \\t]*$, \\1)
+ !equals(resrc, $$rline): \
+ sourcefiles += $$resrc
}
- for(res, RC_FILE) {
- rfile = $$cat($$absolute_path($$res, $$_PRO_FILE_PWD_), lines)
- for(rline, rfile) {
- resrc = $$replace(rline, "^\\d+\\s+ICON\\s+[^\"]*\"([^\"]+)\"\$", \\1)
- !equals(resrc, $$rline): \
- sourcefiles += $$resrc
- }
+}
+for(res, RC_FILE) {
+ rfile = $$cat($$absolute_path($$res, $$_PRO_FILE_PWD_), lines)
+ for(rline, rfile) {
+ resrc = $$replace(rline, "^\\d+\\s+ICON\\s+[^\"]*\"([^\"]+)\"\$", \\1)
+ !equals(resrc, $$rline): \
+ sourcefiles += $$resrc
}
- sourcefiles += \
- $$ANDROID_PACKAGE_SOURCE_DIR \
- $$QMAKE_INFO_PLIST \
- $$DISTFILES
- extras = \
- $$_PRO_FILE_PWD_/README \
- $$_PRO_FILE_PWD_/README.TXT \
- $$files($$_PRO_FILE_PWD_/*.pri) \
- $$replace(_PRO_FILE_, \\.pro$, .qmlproject) \
- $$replace(_PRO_FILE_, \\.pro$, .json) \
- $$replace(_PRO_FILE_, \\.pro$, .inf)
- for(extra, extras): \
- exists($$extra): \
- sourcefiles += $$extra
+}
+sourcefiles += \
+ $$ANDROID_PACKAGE_SOURCE_DIR \
+ $$QMAKE_INFO_PLIST \
+ $$DISTFILES
+extras = \
+ $$_PRO_FILE_PWD_/README \
+ $$_PRO_FILE_PWD_/README.TXT \
+ $$files($$_PRO_FILE_PWD_/*.pri) \
+ $$replace(_PRO_FILE_, \\.pro$, .qmlproject) \
+ $$replace(_PRO_FILE_, \\.pro$, .json) \
+ $$replace(_PRO_FILE_, \\.pro$, .inf)
+for(extra, extras): \
+ exists($$extra): \
+ sourcefiles += $$extra
- # Just for Qt Creator
- OTHER_FILES += $$sourcefiles
+# Just for Qt Creator
+OTHER_FILES += $$sourcefiles
- sourcefiles += \
- $$_PRO_FILE_ $$RC_FILE $$DEF_FILE \
- $$SOURCES $$HEADERS $$FORMS $$RESOURCES $$TRANSLATIONS \
- $$DBUS_ADAPTORS $$DBUS_INTERFACES
- addInstallFiles(sources.files, $$sourcefiles)
- sources.path = $$[QT_INSTALL_EXAMPLES]/$$probase
- INSTALLS += sources
+sourcefiles += \
+ $$_PRO_FILE_ $$RC_FILE $$DEF_FILE \
+ $$SOURCES $$HEADERS $$FORMS $$RESOURCES $$TRANSLATIONS \
+ $$DBUS_ADAPTORS $$DBUS_INTERFACES
+addInstallFiles(sources.files, $$sourcefiles)
+sources.path = $$[QT_INSTALL_EXAMPLES]/$$probase
+INSTALLS += sources
- check_examples {
- srcfiles = $$sources.files
- for(inst, INSTALLS): \
- !equals(inst, target):!contains($${inst}.CONFIG, no_check_exist): \
- for(file, $${inst}.files): \
- instfiles += $$files($$absolute_path($$file, $$_PRO_FILE_PWD_))
- addInstallFiles(srcfiles, $$instfiles)
+check_examples {
+ srcfiles = $$sources.files
+ for(inst, INSTALLS): \
+ !equals(inst, target):!contains($${inst}.CONFIG, no_check_exist): \
+ for(file, $${inst}.files): \
+ instfiles += $$files($$absolute_path($$file, $$_PRO_FILE_PWD_))
+ addInstallFiles(srcfiles, $$instfiles)
- thefiles = $$files($$_PRO_FILE_PWD_/*)
- for(i, thefiles): \
- allfiles += $$relative_path($$i, $$_PRO_FILE_PWD_)
- for(i, srcfiles): \
- allfiles -= $$relative_path($$i, $$_PRO_FILE_PWD_)
- for(i, SUBDIRS) {
- sd = $$eval($${i}.file)
- !isEmpty(sd) {
- sd ~= s,/.*,,
- } else {
- sd = $$eval($${i}.subdir)
- isEmpty(sd): sd = $$i
- }
- allfiles -= $$sd
+ thefiles = $$files($$_PRO_FILE_PWD_/*)
+ for(i, thefiles): \
+ allfiles += $$relative_path($$i, $$_PRO_FILE_PWD_)
+ for(i, srcfiles): \
+ allfiles -= $$relative_path($$i, $$_PRO_FILE_PWD_)
+ for(i, SUBDIRS) {
+ sd = $$eval($${i}.file)
+ !isEmpty(sd) {
+ sd ~= s,/.*,,
+ } else {
+ sd = $$eval($${i}.subdir)
+ isEmpty(sd): sd = $$i
}
- allfiles -= doc
- !isEmpty(allfiles): warning("remaining files in $$_PRO_FILE_PWD_: $$allfiles")
+ allfiles -= $$sd
}
+ allfiles -= doc
+ !isEmpty(allfiles): warning("remaining files in $$_PRO_FILE_PWD_: $$allfiles")
+}
- equals(TEMPLATE, app)|equals(TEMPLATE, lib) {
- !contains(INSTALLS, target) {
- !install_ok: \
- error("$$_PRO_FILE_ is lacking an install target.")
- else: check_examples: \
- warning("$$_PRO_FILE_ is lacking an install target.")
- } else: !equals(target.path, $$sources.path) {
- !install_ok: \
- error("$$_PRO_FILE_ installs target to unexpected location.")
- else: check_examples: \
- warning("$$_PRO_FILE_ installs target to unexpected location.")
- }
+equals(TEMPLATE, app)|equals(TEMPLATE, lib) {
+ !contains(INSTALLS, target) {
+ !install_ok: \
+ error("$$_PRO_FILE_ is lacking an install target.")
+ else: check_examples: \
+ warning("$$_PRO_FILE_ is lacking an install target.")
+ } else: !equals(target.path, $$sources.path) {
+ !install_ok: \
+ error("$$_PRO_FILE_ installs target to unexpected location.")
+ else: check_examples: \
+ warning("$$_PRO_FILE_ installs target to unexpected location.")
}
+}
- !equals(TEMPLATE, subdirs):!compile_examples {
- TEMPLATE = aux
- CONFIG -= have_target qt staticlib dll
- SOURCES =
- OBJECTIVE_SOURCES =
- INSTALLS -= target
- } else {
- CONFIG += relative_qt_rpath # Examples built as part of Qt should be relocatable
- }
+!equals(TEMPLATE, subdirs):!compile_examples {
+ TEMPLATE = aux
+ CONFIG -= have_target qt staticlib dll
+ SOURCES =
+ OBJECTIVE_SOURCES =
+ INSTALLS -= target
+} else {
+ CONFIG += relative_qt_rpath # Examples built as part of Qt should be relocatable
}
diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf
index 813dbffbd4..21c18c7f7b 100644
--- a/mkspecs/features/toolchain.prf
+++ b/mkspecs/features/toolchain.prf
@@ -12,6 +12,16 @@ defineReplace(qtMakeExpand) {
}
}
+defineTest(qtCompilerErrror) {
+ !cross_compile: \
+ what =
+ else: host_build: \
+ what = " host"
+ else: \
+ what = " target"
+ error("Cannot run$$what compiler '$$1'. Maybe you forgot to setup the environment?")
+}
+
cross_compile:host_build: \
target_prefix = QMAKE_HOST_CXX
else: \
@@ -58,8 +68,7 @@ isEmpty($${target_prefix}.INCDIRS) {
cxx_flags += -E -v
output = $$system("$$cmd_prefix $$QMAKE_CXX $$qtMakeExpand($$cxx_flags) -xc++ - 2>&1 $$cmd_suffix", lines, ec)
- !equals(ec, 0): \
- error("Cannot run compiler '$$QMAKE_CXX'. Maybe you forgot to setup the environment?")
+ !equals(ec, 0): qtCompilerErrror($$QMAKE_CXX)
rim_qcc {
for (line, output) {
@@ -119,8 +128,7 @@ isEmpty($${target_prefix}.INCDIRS) {
# What's more, -print-search-dirs can't be used on clang on Apple because it
# won't print all the library paths (only the clang-internal ones).
output = $$system("$$cmd_prefix $$QMAKE_CXX -print-search-dirs", lines, ec)
- !equals(ec, 0): \
- error("Cannot run compiler '$$QMAKE_CXX'. Maybe you forgot to setup the environment?")
+ !equals(ec, 0): qtCompilerErrror($$QMAKE_CXX)
for (line, output) {
contains(line, "^libraries: .*") {
@@ -162,8 +170,7 @@ isEmpty($${target_prefix}.INCDIRS) {
defineReplace(qtVariablesFromMSVC) {
ret = $$system("$$1 -nologo -E $$2 $$system_quote($$PWD/data/macros.cpp) <NUL 2>NUL", lines, ec)
- !equals(ec, 0): \
- error("Cannot run compiler '$$1'. Maybe you forgot to setup the environment?")
+ !equals(ec, 0): qtCompilerErrror($$1)
return($$ret)
}
@@ -171,8 +178,7 @@ defineReplace(qtVariablesFromGCC) {
null_device = /dev/null
equals(QMAKE_HOST.os, Windows): null_device = NUL
ret = $$system("$$1 -E $$system_quote($$PWD/data/macros.cpp) <$$null_device 2>$$null_device", lines, ec)
- !equals(ec, 0): \
- error("Cannot run compiler '$$1'. Maybe you forgot to setup the environment?")
+ !equals(ec, 0): qtCompilerErrror($$1)
return($$ret)
}
diff --git a/mkspecs/win32-g++/qmake.conf b/mkspecs/win32-g++/qmake.conf
index 105391f6f4..6529d4118f 100644
--- a/mkspecs/win32-g++/qmake.conf
+++ b/mkspecs/win32-g++/qmake.conf
@@ -52,8 +52,10 @@ QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console
QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows
QMAKE_LFLAGS_DLL = -shared
QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections
-QMAKE_LINK_OBJECT_MAX = 10
-QMAKE_LINK_OBJECT_SCRIPT = object_script
+equals(QMAKE_HOST.os, Windows) {
+ QMAKE_LINK_OBJECT_MAX = 10
+ QMAKE_LINK_OBJECT_SCRIPT = object_script
+}
QMAKE_PREFIX_SHLIB =
QMAKE_EXTENSION_SHLIB = dll
QMAKE_PREFIX_STATICLIB = lib