diff options
Diffstat (limited to 'mkspecs/features')
-rw-r--r-- | mkspecs/features/default_post.prf | 1 | ||||
-rw-r--r-- | mkspecs/features/default_pre.prf | 15 | ||||
-rw-r--r-- | mkspecs/features/plugin_bundle.prf | 2 | ||||
-rw-r--r-- | mkspecs/features/qt.prf | 6 | ||||
-rw-r--r-- | mkspecs/features/qt_build_config.prf | 6 | ||||
-rw-r--r-- | mkspecs/features/qt_common.prf | 3 | ||||
-rw-r--r-- | mkspecs/features/qt_functions.prf | 4 | ||||
-rw-r--r-- | mkspecs/features/qt_module.prf | 7 | ||||
-rw-r--r-- | mkspecs/features/qt_module_pris.prf | 11 | ||||
-rw-r--r-- | mkspecs/features/resources.prf | 60 | ||||
-rw-r--r-- | mkspecs/features/spec_post.prf | 5 | ||||
-rw-r--r-- | mkspecs/features/testlib_defines.prf | 3 |
12 files changed, 104 insertions, 19 deletions
diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf index e967399258..8e68b95dd5 100644 --- a/mkspecs/features/default_post.prf +++ b/mkspecs/features/default_post.prf @@ -63,6 +63,7 @@ debug { } use_gold_linker: QMAKE_LFLAGS += $$QMAKE_LFLAGS_USE_GOLD +enable_new_dtags: QMAKE_LFLAGS += $$QMAKE_LFLAGS_NEW_DTAGS dll:win32: QMAKE_LFLAGS += $$QMAKE_LFLAGS_DLL static:mac: QMAKE_LFLAGS += $$QMAKE_LFLAGS_STATIC_LIB diff --git a/mkspecs/features/default_pre.prf b/mkspecs/features/default_pre.prf index b06b9d6cfc..eb3281ea1d 100644 --- a/mkspecs/features/default_pre.prf +++ b/mkspecs/features/default_pre.prf @@ -7,3 +7,18 @@ CONFIG = \ lex yacc debug exceptions depend_includepath \ testcase_targets import_plugins import_qpa_plugin \ $$CONFIG + +!build_pass:defined(QT_EDITION, var):!equals(QT_EDITION, "OpenSource"):!equals(QT_EDITION, "Preview") { + # + # call license checker (but cache result for one day) + # + today = $$section(_DATE_, " ", 0, 2) + !isEqual(QMAKE_LICHECK_TIMESTAMP, $$today) { + !system("$$system_quote($$system_path($$[QT_HOST_BINS/src]/$$QT_LICHECK)) check" \ + "$$QT_RELEASE_DATE $$[QMAKE_SPEC] $$[QMAKE_XSPEC]"): \ + error("License check failed! Giving up ...") + + cache(QMAKE_LICHECK_TIMESTAMP, set stash, today) + } + unset(today) +} diff --git a/mkspecs/features/plugin_bundle.prf b/mkspecs/features/plugin_bundle.prf new file mode 100644 index 0000000000..f3e7294c90 --- /dev/null +++ b/mkspecs/features/plugin_bundle.prf @@ -0,0 +1,2 @@ +# Override mkspec default which creates a shared library +mac: QMAKE_LFLAGS_PLUGIN = -bundle diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index 264641b5b3..8e7b8bca0a 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -257,10 +257,10 @@ for(QT_CURRENT_VERIFY, $$list($$QT_PLUGIN_VERIFY)) { debug: QT_ITEM = $${QTPLUG}d4.dll else: QT_ITEM = $${QTPLUG}4.dll - eval(qt_additional_plugin_$${QTPLUG}.files = $$[QT_INSTALL_PLUGINS/get]/$${QT_PLUGINPATH}/$${QT_ITEM}) - eval(qt_additional_plugin_$${QTPLUG}.path = $${QT_PLUGINPATH}) + qt_additional_plugin_$${QTPLUG}.files = $$[QT_INSTALL_PLUGINS/get]/$${QT_PLUGINPATH}/$${QT_ITEM} + qt_additional_plugin_$${QTPLUG}.path = $${QT_PLUGINPATH} - DEPLOYMENT *= qt_additional_plugin_$${QTPLUG} + INSTALLS *= qt_additional_plugin_$${QTPLUG} } } } diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf index 42046c238a..7197f84c9a 100644 --- a/mkspecs/features/qt_build_config.prf +++ b/mkspecs/features/qt_build_config.prf @@ -52,12 +52,6 @@ QMAKE_DIR_REPLACE_SANE = PRECOMPILED_DIR OBJECTS_DIR MOC_DIR RCC_DIR UI_DIR unset(modpath) } -mac { - !isEmpty(QMAKE_RPATHDIR){ - CONFIG += absolute_library_soname - } -} - cross_compile: \ CONFIG += force_bootstrap diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf index 6a66b76305..5861941848 100644 --- a/mkspecs/features/qt_common.prf +++ b/mkspecs/features/qt_common.prf @@ -79,6 +79,9 @@ warnings_are_errors:warning_clean { # Work-around for bug https://code.google.com/p/android/issues/detail?id=58135 android: QMAKE_CXXFLAGS_WARN_ON += -Wno-error=literal-suffix } + } else:msvc { + # enable for MSVC 2012, MSVC 2013 + equals(MSVC_VER, "11.0")|equals(MSVC_VER, "12.0"): QMAKE_CXXFLAGS_WARN_ON += -WX } unset(ver) } diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index 78be2e8473..a1c499610b 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -185,7 +185,7 @@ defineTest(qtAddRpathLink) { # paths OTOH need to be put there. pubqt = $$replace(1, -private$, _private) pubdep = $$resolve_depends(pubqt, "QT.") - privdep = $$resolve_depends(pubqt, "QT.", ".depends" ".private_depends" ".run_depends") + privdep = $$resolve_depends(pubqt, "QT.", ".depends" ".run_depends") privdep -= $$pubdep rpaths = for(dep, privdep): \ @@ -259,7 +259,7 @@ defineTest(qtAddToolEnv) { # target variable, dependency var name, [non-empty: prepare for system(), not make] defineTest(qtAddTargetEnv) { deps = $$replace($$2, -private$, _private) - deps = $$resolve_depends(deps, "QT.", ".depends" ".private_depends" ".run_depends") + deps = $$resolve_depends(deps, "QT.", ".depends" ".run_depends") !isEmpty(deps) { ptypes = for(dep, deps) { diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index 66a7598597..5412f3778a 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -60,7 +60,7 @@ MODULE_DEFINES = $$MODULE_DEFINE $$MODULE_DEFINES load(qt_build_paths) -qt_no_install_library { +header_module { TEMPLATE = aux CONFIG += force_qt # Needed for the headers_clean tests. } else { @@ -104,7 +104,7 @@ mac:CONFIG(shared, static|shared):contains(QT_CONFIG, qt_framework) { QMAKE_TARGET_BUNDLE_PREFIX = org.qt-project #QMAKE_FRAMEWORK_VERSION = 4.0 CONFIG += sliced_bundle qt_framework - qt_no_install_library { + header_module { CONFIG += bundle QMAKE_BUNDLE_EXTENSION = .framework QMAKE_INFO_PLIST = $$QMAKESPEC/Info.plist.lib @@ -132,6 +132,9 @@ mac { QMAKE_CFLAGS += -fconstant-cfstrings QMAKE_CXXFLAGS += -fconstant-cfstrings } + + contains(QT_CONFIG, rpath): \ + QMAKE_SONAME_PREFIX = @rpath } DEFINES += QT_BUILDING_QT diff --git a/mkspecs/features/qt_module_pris.prf b/mkspecs/features/qt_module_pris.prf index 4ce03f4327..1d727847e2 100644 --- a/mkspecs/features/qt_module_pris.prf +++ b/mkspecs/features/qt_module_pris.prf @@ -91,15 +91,22 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri MODULE_PRIVATE_INCLUDES = \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION \ \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME } - split_incpath: \ + split_incpath { MODULE_SHADOW_INCLUDES = $$replace(MODULE_INCLUDES, ^\\\$\\\$QT_MODULE_INCLUDE_BASE, \ $$MODULE_BASE_OUTDIR/include) + generated_privates: \ + MODULE_SHADOW_PRIVATE_INCLUDES = $$replace(MODULE_PRIVATE_INCLUDES, ^\\\$\\\$QT_MODULE_INCLUDE_BASE, \ + $$MODULE_BASE_OUTDIR/include) + } MODULE_INCLUDES += $$MODULE_AUX_INCLUDES MODULE_PRIVATE_INCLUDES += $$MODULE_PRIVATE_AUX_INCLUDES internal_module: \ MODULE_INCLUDES += $$MODULE_PRIVATE_INCLUDES - split_incpath: \ + split_incpath { MODULE_FWD_PRI_CONT_SUFFIX += "QT.$${MODULE_ID}.includes += $$val_escape(MODULE_SHADOW_INCLUDES)" + generated_privates: \ + MODULE_FWD_PRI_CONT_SUFFIX += "QT.$${MODULE}_private.includes += $$val_escape(MODULE_SHADOW_PRIVATE_INCLUDES)" + } MODULE_PRI_CONT = \ "QT.$${MODULE_ID}.VERSION = $${VERSION}" \ "QT.$${MODULE_ID}.MAJOR_VERSION = $$section(VERSION, ., 0, 0)" \ diff --git a/mkspecs/features/resources.prf b/mkspecs/features/resources.prf index 8564731a22..7a38ff8f38 100644 --- a/mkspecs/features/resources.prf +++ b/mkspecs/features/resources.prf @@ -6,6 +6,66 @@ isEmpty(QMAKE_MOD_RCC):QMAKE_MOD_RCC = qrc !contains(QMAKE_RESOURCE_FLAGS, -root):!isEmpty(QMAKE_RESOURCE_ROOT):QMAKE_RESOURCE_FLAGS += -root $$QMAKE_RESOURCE_ROOT !contains(QMAKE_RESOURCE_FLAGS, -name): QMAKE_RESOURCE_FLAGS += -name ${QMAKE_FILE_BASE} +# http://www.w3.org/TR/xml/#syntax +defineReplace(xml_escape) { + 1 ~= s,&,&, + 1 ~= s,\',', + 1 ~= s,\",", + 1 ~= s,<,<, + 1 ~= s,>,>, + return($$1) +} + +RESOURCES += qmake_immediate +for(resource, RESOURCES) { + # Regular case of user qrc file + contains(resource, ".*\.qrc$"): \ + next() + + # Fallback for stand-alone files/directories + !defined($${resource}.files, var) { + !equals(resource, qmake_immediate) { + !exists($$absolute_path($$resource, $$_PRO_FILE_PWD_)): \ + warning("Failure to find: $$resource") + qmake_immediate.files += $$resource + } + RESOURCES -= $$resource + next() + } + + resource_file = $$RCC_DIR/qmake_$${resource}.qrc + + !debug_and_release|build_pass { + # Collection of files, generate qrc file + prefix = $$eval($${resource}.prefix) + isEmpty(prefix): \ + prefix = "/" + + resource_file_content = \ + "<!DOCTYPE RCC><RCC version=\"1.0\">" \ + "<qresource prefix=\"$$xml_escape($$prefix)\">" + + abs_base = $$absolute_path($$eval($${resource}.base), $$_PRO_FILE_PWD_) + + for(file, $${resource}.files) { + abs_path = $$absolute_path($$file, $$_PRO_FILE_PWD_) + alias = $$relative_path($$abs_path, $$abs_base) + resource_file_content += \ + "<file alias=\"$$xml_escape($$alias)\">$$xml_escape($$abs_path)</file>" + } + + resource_file_content += \ + "</qresource>" \ + "</RCC>" + + !write_file($$OUT_PWD/$$resource_file, resource_file_content): \ + error("Aborting.") + } + + RESOURCES -= $$resource + RESOURCES += $$resource_file +} + rcc.input = RESOURCES rcc.name = RCC ${QMAKE_FILE_IN} rcc.depend_command = $$QMAKE_RCC_DEP -list $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN} diff --git a/mkspecs/features/spec_post.prf b/mkspecs/features/spec_post.prf index c9578773fe..4d398059b2 100644 --- a/mkspecs/features/spec_post.prf +++ b/mkspecs/features/spec_post.prf @@ -109,9 +109,8 @@ equals(MAKEFILE_GENERATOR, MSBUILD) \ } QMAKE_INSTALL_DIR = $$QMAKE_COPY_DIR equals(QMAKE_HOST.os, Windows) { - # Ugly (and broken for relative paths) hack to support cross-building for Unix. - QMAKE_SYMBOLIC_LINK = $$QMAKE_COPY - QMAKE_LN_SHLIB = $$QMAKE_SYMBOLIC_LINK + QMAKE_SYMBOLIC_LINK = $(QMAKE) -install ln -f -s + QMAKE_LN_SHLIB = $(QMAKE) -install ln -s } else { QMAKE_SYMBOLIC_LINK = ln -f -s QMAKE_LN_SHLIB = ln -s diff --git a/mkspecs/features/testlib_defines.prf b/mkspecs/features/testlib_defines.prf index 9176beb9dd..901e03a91d 100644 --- a/mkspecs/features/testlib_defines.prf +++ b/mkspecs/features/testlib_defines.prf @@ -1 +1,2 @@ -DEFINES += QT_TESTCASE_BUILDDIR=$$shell_quote(\"$$OUT_PWD\") +contains(TEMPLATE, vc.*): DEFINES += QT_TESTCASE_BUILDDIR=\"$$OUT_PWD\" +else: DEFINES += QT_TESTCASE_BUILDDIR=$$shell_quote(\"$$OUT_PWD\") |