diff options
Diffstat (limited to 'mkspecs')
21 files changed, 79 insertions, 70 deletions
diff --git a/mkspecs/android-g++/qmake.conf b/mkspecs/android-g++/qmake.conf index c9497edfad..78b484fdb5 100644 --- a/mkspecs/android-g++/qmake.conf +++ b/mkspecs/android-g++/qmake.conf @@ -26,6 +26,7 @@ contains(QMAKE_HOST.os,Windows) { } else { MINGW_IN_SHELL = 1 QMAKE_DIR_SEP = / + QMAKE_DIRLIST_SEP = : # Because install's ability to set permissions is not relevant on Windows, # and git's msys does not provide it to start with. QMAKE_INSTALL_FILE = cp -f diff --git a/mkspecs/common/qcc-base-qnx.conf b/mkspecs/common/qcc-base-qnx.conf index 0954cfd1ee..a0a88b9605 100644 --- a/mkspecs/common/qcc-base-qnx.conf +++ b/mkspecs/common/qcc-base-qnx.conf @@ -57,4 +57,5 @@ QMAKE_STRIPFLAGS_LIB += --strip-unneeded equals(QMAKE_HOST.os, Windows) { isEmpty(QMAKE_SH): error("This mkspec requires an MSYS environment.") QMAKE_DIR_SEP = / + QMAKE_DIRLIST_SEP = : } diff --git a/mkspecs/common/winrt_winphone/manifests/8.0/WMAppManifest.xml.in b/mkspecs/common/winrt_winphone/manifests/8.0/WMAppManifest.xml.in index 5efb9c7b06..18d37cf7fc 100644 --- a/mkspecs/common/winrt_winphone/manifests/8.0/WMAppManifest.xml.in +++ b/mkspecs/common/winrt_winphone/manifests/8.0/WMAppManifest.xml.in @@ -1,6 +1,6 @@ <?xml version=\"1.0\" encoding=\"utf-8\"?> <Deployment xmlns=\"http://schemas.microsoft.com/windowsphone/2012/deployment\" AppPlatformVersion=\"8.0\"> - <DefaultLanguage xmlns=\"\" code=\"en-US\" /> + <DefaultLanguage xmlns=\"\" code=\"$${WINRT_MANIFEST.default_language}\" />$${WINRT_MANIFEST.languages} <App xmlns=\"\" ProductID=\"$${WINRT_MANIFEST.identity}\" Title=\"$${WINRT_MANIFEST.name}\" diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf index 938670b2a8..6fb140b252 100644 --- a/mkspecs/features/default_post.prf +++ b/mkspecs/features/default_post.prf @@ -83,8 +83,8 @@ silent { breakpad { load(resolve_target) - DEBUGFILENAME = $$shell_quote($$shell_path($$QMAKE_RESOLVED_TARGET)) - PROJECTPATH = $$shell_quote($$shell_path($$OUT_PWD)) + DEBUGFILENAME = $$shell_quote($$system_path($$QMAKE_RESOLVED_TARGET)) + PROJECTPATH = $$shell_quote($$system_path($$OUT_PWD)) !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$QMAKE_POST_LINK$$escape_expand(\\n\\t) QMAKE_POST_LINK = $$QMAKE_POST_LINK$$quote($${QT_BREAKPAD_ROOT_PATH}$${QMAKE_DIR_SEP}qtbreakpadsymbols $$DEBUGFILENAME $$PROJECTPATH) diff --git a/mkspecs/features/incredibuild_xge.prf b/mkspecs/features/incredibuild_xge.prf index b43ecf2809..75c7a9a75b 100644 --- a/mkspecs/features/incredibuild_xge.prf +++ b/mkspecs/features/incredibuild_xge.prf @@ -3,6 +3,6 @@ contains(TEMPLATE, "vc.*") { EOC = $$escape_expand(\\r\\h) for(xge, INCREDIBUILD_XGE) { - $${xge}.commands = Rem IncrediBuild_AllowRemote $$EOC Rem IncrediBuild_OutputFile $$shell_path($${xge}.output) $$EOC $$eval($${xge}.commands) + $${xge}.commands = Rem IncrediBuild_AllowRemote $$EOC Rem IncrediBuild_OutputFile $$system_path($${xge}.output) $$EOC $$eval($${xge}.commands) } } diff --git a/mkspecs/features/java.prf b/mkspecs/features/java.prf index eeaafcc883..790724cec9 100644 --- a/mkspecs/features/java.prf +++ b/mkspecs/features/java.prf @@ -44,7 +44,7 @@ CONFIG += plugin no_plugin_name_prefix javac.input = JAVASOURCES javac.output = $$CLASS_DIR javac.CONFIG += combine -javac.commands = javac -source 6 -target 6 -Xlint:unchecked -bootclasspath $$ANDROID_JAR_FILE -cp $$shell_quote($$shell_path($$join(JAVACLASSPATH, $$QMAKE_DIRLIST_SEP))) -d $$shell_quote($$CLASS_DIR) ${QMAKE_FILE_IN} +javac.commands = javac -source 6 -target 6 -Xlint:unchecked -bootclasspath $$ANDROID_JAR_FILE -cp $$shell_quote($$system_path($$join(JAVACLASSPATH, $$DIRLIST_SEP))) -d $$shell_quote($$CLASS_DIR) ${QMAKE_FILE_IN} # Force rebuild every time, because we don't know the paths of the destination files # as they depend on the code. javac.depends = FORCE diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf index f3739572c7..f161a71ef9 100644 --- a/mkspecs/features/qml_plugin.prf +++ b/mkspecs/features/qml_plugin.prf @@ -100,12 +100,3 @@ load(qt_common) } load(qml_module) - -unix|mingw { - !isEmpty(_QMAKE_SUPER_CACHE_): \ - lib_replace.match = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*/lib - else: \ - lib_replace.match = $$MODULE_BASE_OUTDIR - lib_replace.replace = $$[QT_INSTALL_LIBS/raw] - QMAKE_PRL_INSTALL_REPLACE += lib_replace -} diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf index 6cd848b405..4dcabe9237 100644 --- a/mkspecs/features/qt_common.prf +++ b/mkspecs/features/qt_common.prf @@ -19,6 +19,24 @@ contains(TEMPLATE, .*lib) { unix:contains(QT_CONFIG, reduce_relocations): CONFIG += bsymbolic_functions contains(QT_CONFIG, largefile): CONFIG += largefile contains(QT_CONFIG, separate_debug_info): CONFIG += separate_debug_info + + !isEmpty(_QMAKE_SUPER_CACHE_): \ + rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]* + else: \ + rplbase = $$MODULE_BASE_OUTDIR + host_build: \ + qt_libdir = $$[QT_HOST_LIBS] + else: \ + qt_libdir = $$[QT_INSTALL_LIBS/raw] + contains(QMAKE_DEFAULT_LIBDIRS, $$qt_libdir) { + lib_replace.match = "[^ ']*$$rplbase/lib" + lib_replace.replace = + } else { + lib_replace.match = $$rplbase/lib + lib_replace.replace = $$qt_libdir + } + lib_replace.CONFIG = path + QMAKE_PRL_INSTALL_REPLACE += lib_replace } warnings_are_errors:warning_clean { diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index 1dacfedd02..64b9fee361 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -210,7 +210,7 @@ defineTest(qtPrepareTool) { $$1$$3 = $$system_path($$eval($$1)) qtAddTargetEnv($$1$$3, QT_TOOL.$${2}.depends, system) } - $$1 = $$shell_path($$eval($$1)) + $$1 = $$system_path($$eval($$1)) qtAddTargetEnv($$1, QT_TOOL.$${2}.depends, ) } diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index 2134077ed3..5dac0250ea 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -127,6 +127,8 @@ win32 { # keeps the code clean and helps in writing code that is # safe across all platforms. DEFINES *= _CRT_SECURE_NO_WARNINGS + + DEFINES += _USE_MATH_DEFINES } aix-g++* { @@ -166,43 +168,29 @@ android: CONFIG += qt_android_deps #install directives load(qt_installs) -!isEmpty(_QMAKE_SUPER_CACHE_): \ - rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]* -else: \ - rplbase = $$MODULE_BASE_OUTDIR -include_replace.match = $$rplbase/include -include_replace.replace = $$[QT_INSTALL_HEADERS/raw] -include_replace.CONFIG = path -lib_replace.match = $$rplbase/lib -host_build: \ - lib_replace.replace = $$[QT_HOST_LIBS] -else: \ - lib_replace.replace = $$[QT_INSTALL_LIBS/raw] -lib_replace.CONFIG = path -QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace - -unix|mingw { - CONFIG += create_pc - QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace - QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace - QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME - QMAKE_PKGCONFIG_DESTDIR = pkgconfig - QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace -} - -unix { - CONFIG += create_libtool explicitlib - QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace - QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace -} +load(qt_targets) +load(qt_common) +# this builds on top of qt_common unix|mingw { + CONFIG += create_pc + QMAKE_PKGCONFIG_DESTDIR = pkgconfig + QMAKE_PKGCONFIG_LIBDIR = $$qt_libdir + QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw] + QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME QMAKE_PKGCONFIG_NAME = $$replace(TARGET, ^Qt, "Qt$$section(VERSION, ., 0, 0) ") QMAKE_PKGCONFIG_FILE = $$replace(TARGET, ^Qt, Qt$$section(VERSION, ., 0, 0)) for(i, MODULE_DEPENDS): \ QMAKE_PKGCONFIG_REQUIRES += $$replace(QT.$${i}.name, ^Qt, Qt$$eval(QT.$${i}.MAJOR_VERSION)) isEmpty(QMAKE_PKGCONFIG_DESCRIPTION): \ QMAKE_PKGCONFIG_DESCRIPTION = $$replace(TARGET, ^Qt, "Qt ") module + QMAKE_PKGCONFIG_INSTALL_REPLACE += lib_replace + + unix { + CONFIG += create_libtool explicitlib + QMAKE_LIBTOOL_LIBDIR = $$qt_libdir + QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace + } } contains(QT_PRODUCT, OpenSource.*):DEFINES *= QT_OPENSOURCE @@ -221,9 +209,3 @@ win32 { } TARGET = $$qtLibraryTarget($$TARGET$$QT_LIBINFIX) #do this towards the end - -load(qt_targets) -load(qt_common) - -win32:DEFINES+=_USE_MATH_DEFINES - diff --git a/mkspecs/features/qt_module_pris.prf b/mkspecs/features/qt_module_pris.prf index f31bc38c75..aba720238f 100644 --- a/mkspecs/features/qt_module_pris.prf +++ b/mkspecs/features/qt_module_pris.prf @@ -177,9 +177,8 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri include($$mod_work_pfx/qt_lib_$${pri}.pri) for(mod, mods_to_load) { for(var, $$list(VERSION MAJOR_VERSION MINOR_VERSION PATCH_VERSION \ - name depends module_config CONFIG DEFINES sources \ + name depends run_depends plugin_types module_config CONFIG DEFINES \ includes bins libs libexecs plugins imports qml \ - rpath_link \ )):defined(QT.$${mod}.$$var, var):cache(QT.$${mod}.$$var, transient) } cache(QT_MODULES, transient) diff --git a/mkspecs/features/qt_plugin.prf b/mkspecs/features/qt_plugin.prf index c020bd2767..b012278bde 100644 --- a/mkspecs/features/qt_plugin.prf +++ b/mkspecs/features/qt_plugin.prf @@ -38,7 +38,7 @@ CONFIG(static, static|shared) { !build_pass { MODULE_PRI_CONT = \ "QT_PLUGIN.$${MODULE}.TYPE = $$PLUGIN_TYPE" \ - "QT_PLUGIN.$${MODULE}.EXTENDS = $$PLUGIN_EXTENDS" \ + "QT_PLUGIN.$${MODULE}.EXTENDS =$$join(PLUGIN_EXTENDS, " ", " ")" \ "QT_PLUGIN.$${MODULE}.CLASS_NAME = $$PLUGIN_CLASS_NAME" \ "QT_PLUGINS += $$MODULE" write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.") @@ -83,12 +83,3 @@ load(qt_common) wince*:LIBS += $$QMAKE_LIBS_GUI QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF - -!isEmpty(_QMAKE_SUPER_CACHE_): \ - rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]* -else: \ - rplbase = $$MODULE_BASE_OUTDIR -lib_replace.match = $$rplbase/lib -lib_replace.replace = $$[QT_INSTALL_LIBS/raw] -lib_replace.CONFIG = path -QMAKE_PRL_INSTALL_REPLACE += lib_replace diff --git a/mkspecs/features/testcase.prf b/mkspecs/features/testcase.prf index 40ec7cff30..6656d1b898 100644 --- a/mkspecs/features/testcase.prf +++ b/mkspecs/features/testcase.prf @@ -22,7 +22,7 @@ debug_and_release:debug_and_release_target { } !isEmpty(TESTRUN_CWD):!contains(TESTRUN_CWD,^\\./?): \ - check.commands = cd $$system_path($$TESTRUN_CWD) && + check.commands = cd $$shell_path($$TESTRUN_CWD) && # Allow for a custom test runner script check.commands += $(TESTRUNNER) diff --git a/mkspecs/features/win32/windeployqt.prf b/mkspecs/features/win32/windeployqt.prf index f49df47ffe..22253f6299 100644 --- a/mkspecs/features/win32/windeployqt.prf +++ b/mkspecs/features/win32/windeployqt.prf @@ -3,9 +3,9 @@ qtPrepareTool(QMAKE_WINDEPLOYQT, windeployqt) build_pass { load(resolve_target) - isEmpty(WINDEPLOYQT_OPTIONS): WINDEPLOYQT_OPTIONS = -qmldir $$shell_quote($$shell_path($$_PRO_FILE_PWD_)) - WINDEPLOYQT_TARGET = $$shell_quote($$shell_path($$QMAKE_RESOLVED_TARGET)) - WINDEPLOYQT_OUTPUT = $$shell_quote($$shell_path($$dirname(QMAKE_RESOLVED_TARGET)/$$basename(TARGET).windeployqt)) + isEmpty(WINDEPLOYQT_OPTIONS): WINDEPLOYQT_OPTIONS = -qmldir $$shell_quote($$system_path($$_PRO_FILE_PWD_)) + WINDEPLOYQT_TARGET = $$shell_quote($$system_path($$QMAKE_RESOLVED_TARGET)) + WINDEPLOYQT_OUTPUT = $$shell_quote($$system_path($$dirname(QMAKE_RESOLVED_TARGET)/$$basename(TARGET).windeployqt)) windeployqt.target = windeployqt windeployqt.commands = $$QMAKE_WINDEPLOYQT $$WINDEPLOYQT_OPTIONS -list target $$WINDEPLOYQT_TARGET > $$WINDEPLOYQT_OUTPUT diff --git a/mkspecs/features/win32/windows.prf b/mkspecs/features/win32/windows.prf index 6d8289d949..f19a42b7e2 100644 --- a/mkspecs/features/win32/windows.prf +++ b/mkspecs/features/win32/windows.prf @@ -7,6 +7,8 @@ contains(TEMPLATE, ".*app"){ qt:for(entryLib, $$list($$unique(QMAKE_LIBS_QT_ENTRY))) { isEqual(entryLib, -lqtmain): { + !contains(QMAKE_DEFAULT_LIBDIRS, $$QT.core.libs): \ + QMAKE_LIBS += -L$$QT.core.libs CONFIG(debug, debug|release): QMAKE_LIBS += $${entryLib}$${QT_LIBINFIX}d else: QMAKE_LIBS += $${entryLib}$${QT_LIBINFIX} } else { diff --git a/mkspecs/features/winrt/font_deployment.prf b/mkspecs/features/winrt/font_deployment.prf index 36db5b7cac..c767d5bc1a 100644 --- a/mkspecs/features/winrt/font_deployment.prf +++ b/mkspecs/features/winrt/font_deployment.prf @@ -43,7 +43,7 @@ if(!build_pass:equals(TEMPLATE, "vcapp")) { !isEmpty(FONTS):equals(TEMPLATE, "app") { fonts.files = $$BUILD_DIR/fonts/* - isEmpty($$target.path) { + isEmpty(target.path) { fonts.path = $$OUT_PWD/fonts } else { fonts.path = $$target.path/fonts @@ -54,7 +54,9 @@ if(!build_pass:equals(TEMPLATE, "vcapp")) { } !isEmpty(FONTS):winphone:equals(TEMPLATE, "vcapp"):build_pass { - fonts.files = $$OUT_PWD/fonts/* + for (FONT, FONTS) { + fonts.files += $$OUT_PWD/fonts/$$basename(FONT) + } fonts.path = fonts DEPLOYMENT += fonts } diff --git a/mkspecs/features/winrt/package_manifest.prf b/mkspecs/features/winrt/package_manifest.prf index fda4fb5e8f..444b8b873e 100644 --- a/mkspecs/features/winrt/package_manifest.prf +++ b/mkspecs/features/winrt/package_manifest.prf @@ -27,6 +27,8 @@ # WINRT_MANIFEST.splash_screen: Splash screen image file. Default provided by the mkspec. # WINRT_MANIFEST.iconic_tile_icon: Image file for the "iconic" tile template icon. Default provided by the mkspec. # WINRT_MANIFEST.iconic_tile_small: Image file for the small "iconic" tile template logo. Default provided by the mkspec. +# WINRT_MANIFEST.default_language: Specifies the default language of the application +# WINRT_MANIFEST.languages: Specifies the languages the application supports # WINRT_MANIFEST.capabilities: Specifies capabilities to add to the capability list. # WINRT_MANIFEST.capabilities_device: Specifies device capabilities to add to the capability list. (location, webcam...) # WINRT_MANIFEST.dependencies: Specifies dependencies required by the package. @@ -90,10 +92,23 @@ isEmpty(WINRT_MANIFEST.genre): WINRT_MANIFEST.genre = apps.normal isEmpty(WINRT_MANIFEST.background): WINRT_MANIFEST.background = green isEmpty(WINRT_MANIFEST.foreground): WINRT_MANIFEST.foreground = light + isEmpty(WINRT_MANIFEST.default_language): WINRT_MANIFEST.default_language = en winphone: INDENT = "$$escape_expand(\\r\\n) " else: INDENT = "$$escape_expand(\\r\\n) " + # Languages are given as a string list + WINRT_MANIFEST.languages = $$unique(WINRT_MANIFEST.languages) + winphone:equals(WINSDK_VER, 8.0):!isEmpty(WINRT_MANIFEST.languages) { + for(LANGUAGE, WINRT_MANIFEST.languages): \ + MANIFEST_LANGUAGES += "<Language code=\"$$LANGUAGE\" />" + + WINRT_MANIFEST.languages = \ + $$join(MANIFEST_LANGUAGES, $$INDENT, \ + "$$escape_expand(\\r\\n) <Languages xmlns=\"\">$$INDENT", \ + "$$escape_expand(\\r\\n) </Languages>") + } + # Capabilities are given as a string list and may change with the configuration (network, sensors, etc.) WINRT_MANIFEST.capabilities = $$unique(WINRT_MANIFEST.capabilities) WINRT_MANIFEST.capabilities_device = $$unique(WINRT_MANIFEST.capabilities_device) diff --git a/mkspecs/macx-ios-clang/features/default_post.prf b/mkspecs/macx-ios-clang/features/default_post.prf index 496553f8c0..79024c588c 100644 --- a/mkspecs/macx-ios-clang/features/default_post.prf +++ b/mkspecs/macx-ios-clang/features/default_post.prf @@ -77,6 +77,9 @@ equals(TEMPLATE, app) { args += $$system_quote($$arg) system("cd $$system_quote($$OUT_PWD) && $$QMAKE_QMAKE $$args $$system_quote($$_PRO_FILE_) -spec macx-xcode") + check.commands = "$(MAKE) -f $(MAKEFILE).ReleaseSimulator xcode_build_check" + QMAKE_EXTRA_TARGETS += check + } else { load(resolve_config) @@ -113,6 +116,9 @@ equals(TEMPLATE, app) { QMAKE_EXTRA_TARGETS += xcode_build_dir_distclean distclean.depends = xcode_build_dir_distclean QMAKE_EXTRA_TARGETS += distclean + + xcode_build_check.commands = "$(TESTRUNNER) $$title($$cfg)-$${sdk}/$(TARGET).app $(TESTARGS)" + QMAKE_EXTRA_TARGETS += xcode_build_check } CONFIG = diff --git a/mkspecs/qnx-armle-v7-qcc/qplatformdefs.h b/mkspecs/qnx-armle-v7-qcc/qplatformdefs.h index 2f95f0d392..27e4a3aa41 100644 --- a/mkspecs/qnx-armle-v7-qcc/qplatformdefs.h +++ b/mkspecs/qnx-armle-v7-qcc/qplatformdefs.h @@ -83,7 +83,7 @@ #include <arpa/inet.h> #define QT_USE_XOPEN_LFS_EXTENSIONS -#if !defined(__EXT_QNX__READDIR64_R) +#if defined(__EXT_QNX__READDIR_R) && !defined(__EXT_QNX__READDIR64_R) #define QT_NO_READDIR64 #endif #include "../common/posix/qplatformdefs.h" diff --git a/mkspecs/qnx-x86-qcc/qplatformdefs.h b/mkspecs/qnx-x86-qcc/qplatformdefs.h index b47aecde0d..246f82e27f 100644 --- a/mkspecs/qnx-x86-qcc/qplatformdefs.h +++ b/mkspecs/qnx-x86-qcc/qplatformdefs.h @@ -83,7 +83,7 @@ #include <arpa/inet.h> #define QT_USE_XOPEN_LFS_EXTENSIONS -#if !defined(__EXT_QNX__READDIR64_R) +#if defined(__EXT_QNX__READDIR_R) && !defined(__EXT_QNX__READDIR64_R) #define QT_NO_READDIR64 #endif #include "../common/posix/qplatformdefs.h" diff --git a/mkspecs/win32-g++/qmake.conf b/mkspecs/win32-g++/qmake.conf index 1ac35611f5..830dde97e9 100644 --- a/mkspecs/win32-g++/qmake.conf +++ b/mkspecs/win32-g++/qmake.conf @@ -93,6 +93,7 @@ QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqtmain !isEmpty(QMAKE_SH) { MINGW_IN_SHELL = 1 QMAKE_DIR_SEP = / + QMAKE_DIRLIST_SEP = : include(../common/shell-unix.conf) # Because install's ability to set permissions is not relevant on Windows, # and git's msys does not provide it to start with. |