summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.qmake.conf2
-rw-r--r--config.tests/common/c++default/c++default.cpp1
-rw-r--r--config.tests/common/c++default/c++default.pro14
-rw-r--r--config.tests/qpa/xcb-syslibs/xcb.cpp3
-rw-r--r--config.tests/qpa/xcb-xkb/xcb-xkb.cpp3
-rw-r--r--config.tests/qpa/xcb/xcb.cpp4
-rw-r--r--config.tests/unix/openvg/openvg.cpp55
-rw-r--r--config.tests/unix/openvg/openvg.pro19
-rw-r--r--config.tests/unix/shivavg/shivavg.pro11
-rw-r--r--config_help.txt430
-rwxr-xr-xconfigure1645
-rw-r--r--examples/corelib/ipc/ipc.pro2
-rw-r--r--examples/network/bearermonitor/bearermonitor.pro3
-rw-r--r--examples/widgets/draganddrop/draganddrop.pro2
-rw-r--r--examples/widgets/draganddrop/puzzle/puzzle.pro6
-rw-r--r--examples/widgets/graphicsview/boxes/boxes.pro4
-rw-r--r--examples/widgets/graphicsview/embeddeddialogs/main.cpp4
-rw-r--r--examples/widgets/itemviews/puzzle/puzzle.pro5
-rw-r--r--examples/widgets/painting/affine/affine.pro4
-rw-r--r--examples/widgets/painting/composition/composition.pro4
-rw-r--r--examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.pro7
-rw-r--r--examples/widgets/widgets/icons/icons.pro11
-rw-r--r--examples/widgets/widgets/imageviewer/imageviewer.pro5
-rw-r--r--examples/widgets/widgets/movie/movie.pro7
-rw-r--r--mkspecs/common/ios.conf6
-rw-r--r--mkspecs/common/mac.conf4
-rw-r--r--mkspecs/common/tvos.conf21
-rw-r--r--mkspecs/common/uikit.conf11
-rw-r--r--mkspecs/common/uikit/GLES2/gl2.h (renamed from mkspecs/common/ios/GLES2/gl2.h)0
-rw-r--r--mkspecs/common/wince/qmake.conf84
-rw-r--r--mkspecs/common/wince/qplatformdefs.h129
-rw-r--r--mkspecs/devices/linux-arm-amlogic-8726M-g++/qeglfshooks_8726m.cpp2
-rw-r--r--mkspecs/devices/linux-arm-hisilicon-hix5hd2-g++/qmake.conf4
-rw-r--r--mkspecs/features/create_cmake.prf2
-rw-r--r--mkspecs/features/default_pre.prf2
-rw-r--r--mkspecs/features/mac/sdk.prf5
-rw-r--r--mkspecs/features/no_debug_info.prf3
-rw-r--r--mkspecs/features/qt.prf2
-rw-r--r--mkspecs/features/qt_build_config.prf2
-rw-r--r--mkspecs/features/qt_common.prf4
-rw-r--r--mkspecs/features/qt_functions.prf2
-rw-r--r--mkspecs/features/qt_module.prf7
-rw-r--r--mkspecs/features/qt_parts.prf2
-rw-r--r--mkspecs/features/qt_plugin.prf1
-rw-r--r--mkspecs/features/uikit/bitcode.prf13
-rw-r--r--mkspecs/features/uikit/default_post.prf109
-rw-r--r--mkspecs/features/uikit/default_pre.prf (renamed from mkspecs/macx-ios-clang/features/default_pre.prf)10
-rwxr-xr-xmkspecs/features/uikit/device_destinations.sh (renamed from mkspecs/macx-ios-clang/ios_destinations.sh)14
-rw-r--r--mkspecs/features/uikit/exclusive_builds_post.prf (renamed from mkspecs/macx-ios-clang/features/exclusive_builds_post.prf)0
-rw-r--r--mkspecs/features/uikit/qt.prf (renamed from mkspecs/macx-ios-clang/features/qt.prf)20
-rw-r--r--mkspecs/features/uikit/qt_config.prf (renamed from mkspecs/macx-ios-clang/features/qt_config.prf)8
-rw-r--r--mkspecs/features/uikit/qt_parts.prf (renamed from mkspecs/macx-ios-clang/features/qt_parts.prf)0
-rw-r--r--mkspecs/features/uikit/resolve_config.prf (renamed from mkspecs/macx-ios-clang/features/resolve_config.prf)0
-rw-r--r--mkspecs/features/uikit/sdk.prf (renamed from mkspecs/macx-ios-clang/features/sdk.prf)2
-rw-r--r--mkspecs/features/uikit/testcase.prf (renamed from mkspecs/macx-ios-clang/features/testcase.prf)0
-rw-r--r--mkspecs/features/uikit/testcase_targets.prf (renamed from mkspecs/macx-ios-clang/features/testcase_targets.prf)0
-rw-r--r--mkspecs/features/uikit/xcodebuild.mk (renamed from mkspecs/macx-ios-clang/xcodebuild.mk)29
-rw-r--r--mkspecs/features/uikit/xcodebuild.prf (renamed from mkspecs/macx-ios-clang/features/xcodebuild.prf)14
-rw-r--r--mkspecs/features/win32/console.prf1
-rw-r--r--mkspecs/features/win32/opengl.prf43
-rw-r--r--mkspecs/macx-clang-32/qmake.conf6
-rw-r--r--mkspecs/macx-clang/qmake.conf6
-rw-r--r--mkspecs/macx-g++-32/qmake.conf2
-rw-r--r--mkspecs/macx-g++/qmake.conf2
-rw-r--r--mkspecs/macx-g++40/qmake.conf2
-rw-r--r--mkspecs/macx-g++42/qmake.conf2
-rw-r--r--mkspecs/macx-ios-clang/Info.plist.lib2
-rw-r--r--mkspecs/macx-ios-clang/features/default_post.prf97
-rw-r--r--mkspecs/macx-ios-clang/qmake.conf10
-rw-r--r--mkspecs/macx-llvm/qmake.conf2
-rw-r--r--mkspecs/macx-tvos-clang/Info.plist.app41
-rw-r--r--mkspecs/macx-tvos-clang/Info.plist.lib22
-rw-r--r--mkspecs/macx-tvos-clang/qmake.conf21
-rw-r--r--mkspecs/macx-tvos-clang/qplatformdefs.h34
-rw-r--r--mkspecs/wince60standard-armv4i-msvc2005/qmake.conf27
-rw-r--r--mkspecs/wince60standard-armv4i-msvc2005/qplatformdefs.h41
-rw-r--r--mkspecs/wince60standard-x86-msvc2005/qmake.conf27
-rw-r--r--mkspecs/wince60standard-x86-msvc2005/qplatformdefs.h41
-rw-r--r--mkspecs/wince70embedded-armv4i-msvc2008/qmake.conf29
-rw-r--r--mkspecs/wince70embedded-armv4i-msvc2008/qplatformdefs.h41
-rw-r--r--mkspecs/wince70embedded-x86-msvc2008/qmake.conf27
-rw-r--r--mkspecs/wince70embedded-x86-msvc2008/qplatformdefs.h41
-rw-r--r--mkspecs/wince80colibri-armv7-msvc2012/qmake.conf45
-rw-r--r--mkspecs/wince80colibri-armv7-msvc2012/qplatformdefs.h41
-rw-r--r--qmake/Makefile.unix8
-rw-r--r--qmake/Makefile.win323
-rw-r--r--qmake/doc/src/qmake-manual.qdoc157
-rw-r--r--qmake/generators/mac/pbuilder_pbx.cpp16
-rw-r--r--qmake/generators/makefile.cpp11
-rw-r--r--qmake/generators/unix/unixmake2.cpp5
-rw-r--r--qmake/generators/win32/cesdkhandler.cpp368
-rw-r--r--qmake/generators/win32/cesdkhandler.h89
-rw-r--r--qmake/generators/win32/msvc_nmake.cpp40
-rw-r--r--qmake/generators/win32/msvc_vcproj.cpp76
-rw-r--r--qmake/library/proitems.cpp13
-rw-r--r--qmake/library/proitems.h3
-rw-r--r--qmake/library/qmakebuiltins.cpp250
-rw-r--r--qmake/library/qmakeevaluator.cpp16
-rw-r--r--qmake/library/qmakeevaluator.h9
-rw-r--r--qmake/library/qmakeglobals.cpp11
-rw-r--r--qmake/library/qmakeglobals.h2
-rw-r--r--qmake/library/qmakeparser.cpp36
-rw-r--r--qmake/library/qmakeparser.h6
-rw-r--r--qmake/project.cpp3
-rw-r--r--qmake/project.h5
-rw-r--r--qmake/qmake.pri6
-rw-r--r--qtbase.pro4
-rw-r--r--src/3rdparty/double-conversion/include/double-conversion/utils.h2
-rw-r--r--src/3rdparty/freetype_dependency.pri8
-rw-r--r--src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro4
-rw-r--r--src/3rdparty/harfbuzz_dependency.pri6
-rw-r--r--src/3rdparty/pcre/pcre.pro2
-rw-r--r--src/corelib/arch/arch.pri2
-rw-r--r--src/corelib/arch/qatomic_msvc.h42
-rw-r--r--src/corelib/codecs/codecs.pri23
-rw-r--r--src/corelib/codecs/qicucodec.cpp10
-rw-r--r--src/corelib/codecs/qtextcodec.cpp6
-rw-r--r--src/corelib/codecs/qutfcodec.cpp87
-rw-r--r--src/corelib/codecs/qwindowscodec.cpp2
-rw-r--r--src/corelib/corelib.pro16
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_global_qglobal.cpp36
-rw-r--r--src/corelib/global/qcompilerdetection.h30
-rw-r--r--src/corelib/global/qconfig-dist.h48
-rw-r--r--src/corelib/global/qconfig-large.h140
-rw-r--r--src/corelib/global/qconfig-medium.h241
-rw-r--r--src/corelib/global/qconfig-minimal.h463
-rw-r--r--src/corelib/global/qconfig-nacl.h233
-rw-r--r--src/corelib/global/qconfig-small.h281
-rw-r--r--src/corelib/global/qflags.h9
-rw-r--r--src/corelib/global/qglobal.cpp359
-rw-r--r--src/corelib/global/qglobal.h19
-rw-r--r--src/corelib/global/qhooks.cpp2
-rw-r--r--src/corelib/global/qlibraryinfo.cpp33
-rw-r--r--src/corelib/global/qlibraryinfo.h11
-rw-r--r--src/corelib/global/qlogging.cpp4
-rw-r--r--src/corelib/global/qnamespace.h8
-rw-r--r--src/corelib/global/qnamespace.qdoc35
-rw-r--r--src/corelib/global/qnumeric_p.h2
-rw-r--r--src/corelib/global/qprocessordetection.h2
-rw-r--r--src/corelib/global/qsysinfo.h18
-rw-r--r--src/corelib/global/qsystemdetection.h22
-rw-r--r--src/corelib/global/qt_windows.h17
-rw-r--r--src/corelib/io/io.pri37
-rw-r--r--src/corelib/io/qdatastream.h5
-rw-r--r--src/corelib/io/qdir.cpp2
-rw-r--r--src/corelib/io/qfileselector.cpp13
-rw-r--r--src/corelib/io/qfileselector_p.h2
-rw-r--r--src/corelib/io/qfilesystemengine_unix.cpp2
-rw-r--r--src/corelib/io/qfilesystemengine_win.cpp250
-rw-r--r--src/corelib/io/qfilesystemiterator_win.cpp2
-rw-r--r--src/corelib/io/qfilesystemmetadata_p.h3
-rw-r--r--src/corelib/io/qfilesystemwatcher.cpp4
-rw-r--r--src/corelib/io/qfilesystemwatcher_fsevents.mm8
-rw-r--r--src/corelib/io/qfilesystemwatcher_win.cpp10
-rw-r--r--src/corelib/io/qfsfileengine.cpp8
-rw-r--r--src/corelib/io/qfsfileengine_p.h9
-rw-r--r--src/corelib/io/qfsfileengine_win.cpp141
-rw-r--r--src/corelib/io/qiodevice.cpp33
-rw-r--r--src/corelib/io/qlockfile_unix.cpp4
-rw-r--r--src/corelib/io/qlockfile_win.cpp4
-rw-r--r--src/corelib/io/qprocess.cpp14
-rw-r--r--src/corelib/io/qprocess_unix.cpp2
-rw-r--r--src/corelib/io/qprocess_wince.cpp308
-rw-r--r--src/corelib/io/qsettings.cpp12
-rw-r--r--src/corelib/io/qsettings_mac.cpp26
-rw-r--r--src/corelib/io/qsettings_win.cpp8
-rw-r--r--src/corelib/io/qstandardpaths_mac.mm4
-rw-r--r--src/corelib/io/qstandardpaths_win.cpp42
-rw-r--r--src/corelib/io/qstorageinfo_p.h2
-rw-r--r--src/corelib/io/qtemporaryfile.cpp27
-rw-r--r--src/corelib/io/qtemporaryfile_p.h5
-rw-r--r--src/corelib/io/qtextstream.cpp2
-rw-r--r--src/corelib/io/qurl.cpp30
-rw-r--r--src/corelib/io/qurl.h16
-rw-r--r--src/corelib/io/qwindowspipereader.cpp17
-rw-r--r--src/corelib/io/qwindowspipewriter.cpp5
-rw-r--r--src/corelib/json/qjson_p.h4
-rw-r--r--src/corelib/kernel/kernel.pri17
-rw-r--r--src/corelib/kernel/qcore_foundation.mm462
-rw-r--r--src/corelib/kernel/qcore_mac_objc.mm4
-rw-r--r--src/corelib/kernel/qcore_unix_p.h4
-rw-r--r--src/corelib/kernel/qcoreapplication.cpp41
-rw-r--r--src/corelib/kernel/qcoreapplication_win.cpp36
-rw-r--r--src/corelib/kernel/qcorecmdlineargs_p.h88
-rw-r--r--src/corelib/kernel/qeventdispatcher_cf.mm12
-rw-r--r--src/corelib/kernel/qeventdispatcher_cf_p.h2
-rw-r--r--src/corelib/kernel/qeventdispatcher_win.cpp259
-rw-r--r--src/corelib/kernel/qeventdispatcher_win_p.h2
-rw-r--r--src/corelib/kernel/qfunctions_p.h4
-rw-r--r--src/corelib/kernel/qfunctions_wince.cpp407
-rw-r--r--src/corelib/kernel/qfunctions_wince.h473
-rw-r--r--src/corelib/kernel/qmath.h22
-rw-r--r--src/corelib/kernel/qmetaobject.h10
-rw-r--r--src/corelib/kernel/qmetaobject_p.h10
-rw-r--r--src/corelib/kernel/qmetatype.cpp6
-rw-r--r--src/corelib/kernel/qmetatype.h13
-rw-r--r--src/corelib/kernel/qobject.h4
-rw-r--r--src/corelib/kernel/qobject_impl.h16
-rw-r--r--src/corelib/kernel/qppsobject.cpp24
-rw-r--r--src/corelib/kernel/qsharedmemory_win.cpp8
-rw-r--r--src/corelib/kernel/qsystemerror.cpp22
-rw-r--r--src/corelib/kernel/qsystemsemaphore_p.h4
-rw-r--r--src/corelib/kernel/qsystemsemaphore_posix.cpp4
-rw-r--r--src/corelib/kernel/qsystemsemaphore_systemv.cpp3
-rw-r--r--src/corelib/kernel/qsystemsemaphore_win.cpp4
-rw-r--r--src/corelib/kernel/qtimer.h6
-rw-r--r--src/corelib/plugin/plugin.pri4
-rw-r--r--src/corelib/plugin/qfactoryloader.cpp12
-rw-r--r--src/corelib/plugin/qlibrary_unix.cpp16
-rw-r--r--src/corelib/plugin/qlibrary_win.cpp21
-rw-r--r--src/corelib/plugin/qmachparser.cpp3
-rw-r--r--src/corelib/plugin/qpluginloader.cpp5
-rw-r--r--src/corelib/plugin/qsystemlibrary.cpp16
-rw-r--r--src/corelib/plugin/qsystemlibrary_p.h4
-rw-r--r--src/corelib/plugin/quuid.cpp33
-rw-r--r--src/corelib/plugin/quuid.h6
-rw-r--r--src/corelib/plugin/quuid_darwin.mm75
-rw-r--r--src/corelib/statemachine/qsignaltransition.h1
-rw-r--r--src/corelib/statemachine/qstate.h1
-rw-r--r--src/corelib/thread/qmutex_win.cpp4
-rw-r--r--src/corelib/thread/qthread_win.cpp44
-rw-r--r--src/corelib/thread/qwaitcondition_win.cpp5
-rw-r--r--src/corelib/tools/qalgorithms.h204
-rw-r--r--src/corelib/tools/qbytearray.cpp85
-rw-r--r--src/corelib/tools/qbytearray.h8
-rw-r--r--src/corelib/tools/qbytearray_mac.mm99
-rw-r--r--src/corelib/tools/qbytearraylist.h2
-rw-r--r--src/corelib/tools/qchar.h12
-rw-r--r--src/corelib/tools/qcommandlineoption.cpp58
-rw-r--r--src/corelib/tools/qcommandlineoption.h16
-rw-r--r--src/corelib/tools/qcommandlineparser.cpp28
-rw-r--r--src/corelib/tools/qcryptographichash.h3
-rw-r--r--src/corelib/tools/qdatetime.cpp889
-rw-r--r--src/corelib/tools/qdatetime.h69
-rw-r--r--src/corelib/tools/qdatetime_mac.mm74
-rw-r--r--src/corelib/tools/qdatetime_p.h70
-rw-r--r--src/corelib/tools/qelapsedtimer_win.cpp49
-rw-r--r--src/corelib/tools/qline.cpp23
-rw-r--r--src/corelib/tools/qline.h14
-rw-r--r--src/corelib/tools/qlist.h5
-rw-r--r--src/corelib/tools/qlocale.cpp1
-rw-r--r--src/corelib/tools/qlocale_mac.mm3
-rw-r--r--src/corelib/tools/qlocale_win.cpp78
-rw-r--r--src/corelib/tools/qrect.h13
-rw-r--r--src/corelib/tools/qscopedpointer.cpp42
-rw-r--r--src/corelib/tools/qscopedpointer.h45
-rw-r--r--src/corelib/tools/qsharedpointer.cpp112
-rw-r--r--src/corelib/tools/qsharedpointer.h14
-rw-r--r--src/corelib/tools/qsharedpointer_impl.h116
-rw-r--r--src/corelib/tools/qsimd.cpp29
-rw-r--r--src/corelib/tools/qsimd_p.h61
-rw-r--r--src/corelib/tools/qstring.cpp151
-rw-r--r--src/corelib/tools/qstring.h189
-rw-r--r--src/corelib/tools/qstringlist.h2
-rw-r--r--src/corelib/tools/qtimezoneprivate_win.cpp6
-rw-r--r--src/corelib/tools/tools.pri17
-rw-r--r--src/dbus/dbus.pro10
-rw-r--r--src/dbus/qdbusconnection.cpp35
-rw-r--r--src/dbus/qdbusservicewatcher.h1
-rw-r--r--src/gui/image/image.pri10
-rw-r--r--src/gui/image/qgifhandler.pri3
-rw-r--r--src/gui/image/qiconloader.cpp22
-rw-r--r--src/gui/image/qimage.cpp9
-rw-r--r--src/gui/image/qimage_conversions.cpp31
-rw-r--r--src/gui/image/qimage_sse4.cpp2
-rw-r--r--src/gui/image/qimagereader.cpp50
-rw-r--r--src/gui/image/qimagewriter.cpp25
-rw-r--r--src/gui/image/qjpeghandler.pri11
-rw-r--r--src/gui/image/qpixmap.cpp12
-rw-r--r--src/gui/image/qpixmap_blitter.cpp8
-rw-r--r--src/gui/image/qpixmap_raster.cpp4
-rw-r--r--src/gui/image/qpixmap_win.cpp170
-rw-r--r--src/gui/image/qpnghandler.cpp28
-rw-r--r--src/gui/image/qpnghandler.pri4
-rw-r--r--src/gui/image/qxpmhandler.cpp2
-rw-r--r--src/gui/itemmodels/qstandarditemmodel.cpp17
-rw-r--r--src/gui/kernel/qclipboard.cpp4
-rw-r--r--src/gui/kernel/qevent.cpp125
-rw-r--r--src/gui/kernel/qevent.h26
-rw-r--r--src/gui/kernel/qevent_p.h5
-rw-r--r--src/gui/kernel/qguiapplication.cpp52
-rw-r--r--src/gui/kernel/qguiapplication.h3
-rw-r--r--src/gui/kernel/qhighdpiscaling.cpp9
-rw-r--r--src/gui/kernel/qhighdpiscaling_p.h8
-rw-r--r--src/gui/kernel/qopenglcontext.cpp15
-rw-r--r--src/gui/kernel/qplatformdialoghelper.cpp95
-rw-r--r--src/gui/kernel/qplatformdialoghelper.h69
-rw-r--r--src/gui/kernel/qwindowsysteminterface.cpp14
-rw-r--r--src/gui/kernel/qwindowsysteminterface.h5
-rw-r--r--src/gui/opengl/qopengl.h19
-rw-r--r--src/gui/opengl/qopenglengineshadermanager.cpp4
-rw-r--r--src/gui/opengl/qopenglframebufferobject.cpp9
-rw-r--r--src/gui/opengl/qopenglfunctions_1_0.cpp10
-rw-r--r--src/gui/opengl/qopenglfunctions_1_1.cpp20
-rw-r--r--src/gui/opengl/qopenglfunctions_1_2.cpp30
-rw-r--r--src/gui/opengl/qopenglfunctions_1_3.cpp40
-rw-r--r--src/gui/opengl/qopenglfunctions_1_4.cpp50
-rw-r--r--src/gui/opengl/qopenglfunctions_1_5.cpp55
-rw-r--r--src/gui/opengl/qopenglfunctions_2_0.cpp60
-rw-r--r--src/gui/opengl/qopenglfunctions_2_1.cpp65
-rw-r--r--src/gui/opengl/qopenglfunctions_3_0.cpp70
-rw-r--r--src/gui/opengl/qopenglfunctions_3_1.cpp50
-rw-r--r--src/gui/opengl/qopenglfunctions_3_2_compatibility.cpp80
-rw-r--r--src/gui/opengl/qopenglfunctions_3_2_core.cpp55
-rw-r--r--src/gui/opengl/qopenglfunctions_3_3_compatibility.cpp90
-rw-r--r--src/gui/opengl/qopenglfunctions_3_3_core.cpp60
-rw-r--r--src/gui/opengl/qopenglfunctions_4_0_compatibility.cpp95
-rw-r--r--src/gui/opengl/qopenglfunctions_4_0_core.cpp65
-rw-r--r--src/gui/opengl/qopenglfunctions_4_1_compatibility.cpp100
-rw-r--r--src/gui/opengl/qopenglfunctions_4_1_core.cpp70
-rw-r--r--src/gui/opengl/qopenglfunctions_4_2_compatibility.cpp105
-rw-r--r--src/gui/opengl/qopenglfunctions_4_2_core.cpp75
-rw-r--r--src/gui/opengl/qopenglfunctions_4_3_compatibility.cpp110
-rw-r--r--src/gui/opengl/qopenglfunctions_4_3_core.cpp80
-rw-r--r--src/gui/opengl/qopenglfunctions_4_4_compatibility.cpp115
-rw-r--r--src/gui/opengl/qopenglfunctions_4_4_core.cpp85
-rw-r--r--src/gui/opengl/qopenglfunctions_4_5_compatibility.cpp125
-rw-r--r--src/gui/opengl/qopenglfunctions_4_5_core.cpp90
-rw-r--r--src/gui/opengl/qopenglpaintdevice.cpp2
-rw-r--r--src/gui/opengl/qopenglpaintengine.cpp6
-rw-r--r--src/gui/opengl/qopenglshaderprogram.cpp17
-rw-r--r--src/gui/opengl/qopengltexture.cpp2
-rw-r--r--src/gui/painting/painting.pri4
-rw-r--r--src/gui/painting/qbrush.cpp48
-rw-r--r--src/gui/painting/qcolor.cpp2
-rw-r--r--src/gui/painting/qcompositionfunctions.cpp100
-rw-r--r--src/gui/painting/qdrawhelper.cpp324
-rw-r--r--src/gui/painting/qdrawhelper_avx2.cpp4
-rw-r--r--src/gui/painting/qdrawhelper_p.h10
-rw-r--r--src/gui/painting/qdrawhelper_sse4.cpp16
-rw-r--r--src/gui/painting/qpaintengine_blitter.cpp18
-rw-r--r--src/gui/painting/qpainter.cpp10
-rw-r--r--src/gui/painting/qpainterpath.cpp7
-rw-r--r--src/gui/painting/qpdf.cpp5
-rw-r--r--src/gui/painting/qplatformbackingstore.cpp9
-rw-r--r--src/gui/painting/qplatformbackingstore.h2
-rw-r--r--src/gui/painting/qregion.cpp160
-rw-r--r--src/gui/painting/qregion.h16
-rw-r--r--src/gui/painting/qrgba64_p.h100
-rw-r--r--src/gui/painting/qtextureglyphcache.cpp2
-rw-r--r--src/gui/painting/qtextureglyphcache_p.h2
-rw-r--r--src/gui/text/qabstracttextdocumentlayout.cpp28
-rw-r--r--src/gui/text/qabstracttextdocumentlayout.h3
-rw-r--r--src/gui/text/qcssparser.cpp2
-rw-r--r--src/gui/text/qdistancefield.cpp85
-rw-r--r--src/gui/text/qdistancefield_p.h27
-rw-r--r--src/gui/text/qfontengine.cpp12
-rw-r--r--src/gui/text/qtextdocument.cpp2
-rw-r--r--src/gui/text/qtextdocument_p.cpp5
-rw-r--r--src/gui/text/qtextdocument_p.h2
-rw-r--r--src/gui/text/qtextdocumentlayout.cpp6
-rw-r--r--src/gui/text/qtextdocumentwriter.cpp5
-rw-r--r--src/gui/text/qtextengine.cpp10
-rw-r--r--src/gui/text/qtextlayout.cpp6
-rw-r--r--src/gui/text/qtextodfwriter.cpp4
-rw-r--r--src/gui/util/qvalidator.cpp15
-rw-r--r--src/network/access/access.pri6
-rw-r--r--src/network/access/qhttpnetworkreply.cpp5
-rw-r--r--src/network/access/qnetworkaccessmanager.cpp40
-rw-r--r--src/network/access/qnetworkaccessmanager.h1
-rw-r--r--src/network/access/qnetworkaccessmanager_p.h7
-rw-r--r--src/network/access/qnetworkdiskcache.cpp2
-rw-r--r--src/network/access/qnetworkfile.cpp (renamed from src/corelib/tools/qstring_mac.mm)65
-rw-r--r--src/network/access/qnetworkfile_p.h (renamed from src/corelib/io/qurl_mac.mm)59
-rw-r--r--src/network/access/qnetworkreplyfileimpl.cpp150
-rw-r--r--src/network/access/qnetworkreplyfileimpl_p.h12
-rw-r--r--src/network/access/qnetworkreplyhttpimpl.cpp15
-rw-r--r--src/network/access/qspdyprotocolhandler.cpp8
-rw-r--r--src/network/kernel/kernel.pri4
-rw-r--r--src/network/kernel/qauthenticator.cpp6
-rw-r--r--src/network/kernel/qhostaddress.cpp120
-rw-r--r--src/network/kernel/qhostaddress.h12
-rw-r--r--src/network/kernel/qhostinfo_win.cpp11
-rw-r--r--src/network/kernel/qnetworkfunctions_wince.h96
-rw-r--r--src/network/kernel/qnetworkinterface_win.cpp8
-rw-r--r--src/network/kernel/qnetworkproxy_mac.cpp97
-rw-r--r--src/network/kernel/qnetworkproxy_win.cpp19
-rw-r--r--src/network/socket/qabstractsocket.cpp79
-rw-r--r--src/network/socket/qabstractsocket_p.h4
-rw-r--r--src/network/socket/qnativesocketengine_p.h14
-rw-r--r--src/network/socket/qnativesocketengine_win.cpp46
-rw-r--r--src/network/socket/qsocks5socketengine.cpp4
-rw-r--r--src/network/socket/qtcpserver.cpp5
-rw-r--r--src/network/socket/qudpsocket.cpp3
-rw-r--r--src/network/socket/socket.pri11
-rw-r--r--src/network/ssl/qsslconfiguration.cpp77
-rw-r--r--src/network/ssl/qsslconfiguration.h7
-rw-r--r--src/network/ssl/qsslconfiguration_p.h7
-rw-r--r--src/network/ssl/qsslcontext_openssl.cpp61
-rw-r--r--src/network/ssl/qssldiffiehellmanparameters.cpp307
-rw-r--r--src/network/ssl/qssldiffiehellmanparameters.h117
-rw-r--r--src/network/ssl/qssldiffiehellmanparameters_dummy.cpp (renamed from config.tests/unix/shivavg/shivavg.cpp)30
-rw-r--r--src/network/ssl/qssldiffiehellmanparameters_openssl.cpp164
-rw-r--r--src/network/ssl/qssldiffiehellmanparameters_p.h (renamed from src/widgets/kernel/qwidgetsfunctions_wince.h)54
-rw-r--r--src/network/ssl/qsslsocket.cpp28
-rw-r--r--src/network/ssl/qsslsocket.h2
-rw-r--r--src/network/ssl/qsslsocket_mac.cpp187
-rw-r--r--src/network/ssl/qsslsocket_openssl.cpp73
-rw-r--r--src/network/ssl/qsslsocket_openssl_android.cpp1
-rw-r--r--src/network/ssl/qsslsocket_openssl_p.h1
-rw-r--r--src/network/ssl/qsslsocket_openssl_symbols.cpp30
-rw-r--r--src/network/ssl/qsslsocket_openssl_symbols_p.h37
-rw-r--r--src/network/ssl/qsslsocket_p.h5
-rw-r--r--src/network/ssl/qsslsocket_winrt.cpp4
-rw-r--r--src/network/ssl/ssl.pri62
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp6
-rw-r--r--src/opengl/qgl.cpp3
-rw-r--r--src/platformsupport/cglconvenience/cglconvenience.mm23
-rw-r--r--src/platformsupport/clipboard/qmacmime.mm7
-rw-r--r--src/platformsupport/eventdispatchers/eventdispatchers.pri4
-rw-r--r--src/platformsupport/eventdispatchers/qwindowsguieventdispatcher.cpp4
-rw-r--r--src/platformsupport/fbconvenience/qfbbackingstore.cpp7
-rw-r--r--src/platformsupport/fbconvenience/qfbbackingstore_p.h1
-rw-r--r--src/platformsupport/fbconvenience/qfbscreen.cpp10
-rw-r--r--src/platformsupport/fontdatabases/basic/basic.pri2
-rw-r--r--src/platformsupport/fontdatabases/mac/coretext.pri5
-rw-r--r--src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm259
-rw-r--r--src/platformsupport/fontdatabases/mac/qcoretextfontdatabase_p.h9
-rw-r--r--src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm19
-rw-r--r--src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h9
-rw-r--r--src/platformsupport/graphics/qrasterbackingstore.cpp4
-rw-r--r--src/platformsupport/platformcompositor/qopenglcompositorbackingstore.cpp8
-rw-r--r--src/platformsupport/platformsupport.pro2
-rw-r--r--src/plugins/bearer/bearer.pro2
-rw-r--r--src/plugins/bearer/generic/qgenericengine.cpp38
-rw-r--r--src/plugins/bearer/nla/nla.pro6
-rw-r--r--src/plugins/generic/tuiotouch/qtuiohandler.cpp257
-rw-r--r--src/plugins/generic/tuiotouch/qtuiohandler_p.h8
-rw-r--r--src/plugins/generic/tuiotouch/qtuiotoken_p.h144
-rw-r--r--src/plugins/generic/tuiotouch/tuiotouch.pro3
-rw-r--r--src/plugins/imageformats/gif/gif.pro7
-rw-r--r--src/plugins/imageformats/gif/qgifhandler.cpp (renamed from src/gui/image/qgifhandler.cpp)0
-rw-r--r--src/plugins/imageformats/gif/qgifhandler_p.h (renamed from src/gui/image/qgifhandler_p.h)0
-rw-r--r--src/plugins/imageformats/ico/ico.pro7
-rw-r--r--src/plugins/imageformats/imageformats.pro4
-rw-r--r--src/plugins/imageformats/jpeg/jpeg.pro16
-rw-r--r--src/plugins/imageformats/jpeg/qjpeghandler.cpp (renamed from src/gui/image/qjpeghandler.cpp)0
-rw-r--r--src/plugins/imageformats/jpeg/qjpeghandler_p.h (renamed from src/gui/image/qjpeghandler_p.h)0
-rw-r--r--src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp2
-rw-r--r--src/plugins/platforms/android/qandroidinputcontext.cpp14
-rw-r--r--src/plugins/platforms/android/qandroidplatformintegration.cpp18
-rw-r--r--src/plugins/platforms/android/qandroidplatformintegration.h2
-rw-r--r--src/plugins/platforms/android/qandroidplatformscreen.cpp3
-rw-r--r--src/plugins/platforms/bsdfb/bsdfb.json3
-rw-r--r--src/plugins/platforms/bsdfb/bsdfb.pro15
-rw-r--r--src/plugins/platforms/bsdfb/main.cpp60
-rw-r--r--src/plugins/platforms/bsdfb/qbsdfbintegration.cpp142
-rw-r--r--src/plugins/platforms/bsdfb/qbsdfbintegration.h81
-rw-r--r--src/plugins/platforms/bsdfb/qbsdfbscreen.cpp276
-rw-r--r--src/plugins/platforms/bsdfb/qbsdfbscreen.h74
-rw-r--r--src/plugins/platforms/cocoa/qcocoaapplication.mm8
-rw-r--r--src/plugins/platforms/cocoa/qcocoabackingstore.h5
-rw-r--r--src/plugins/platforms/cocoa/qcocoabackingstore.mm10
-rw-r--r--src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm10
-rw-r--r--src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm7
-rw-r--r--src/plugins/platforms/cocoa/qcocoahelpers.h2
-rw-r--r--src/plugins/platforms/cocoa/qcocoahelpers.mm54
-rw-r--r--src/plugins/platforms/cocoa/qcocoakeymapper.h2
-rw-r--r--src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm90
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm2
-rw-r--r--src/plugins/platforms/cocoa/qnsview.h1
-rw-r--r--src/plugins/platforms/cocoa/qnsview.mm65
-rw-r--r--src/plugins/platforms/cocoa/qpaintengine_mac.mm5
-rw-r--r--src/plugins/platforms/direct2d/direct2d.pro2
-rw-r--r--src/plugins/platforms/direct2d/qwindowsdirect2dbackingstore.cpp10
-rw-r--r--src/plugins/platforms/direct2d/qwindowsdirect2dbackingstore.h2
-rw-r--r--src/plugins/platforms/direct2d/qwindowsdirect2dwindow.cpp2
-rw-r--r--src/plugins/platforms/directfb/qdirectfbbackingstore.cpp16
-rw-r--r--src/plugins/platforms/directfb/qdirectfbbackingstore.h2
-rw-r--r--src/plugins/platforms/eglfs/api/api.pri15
-rw-r--r--src/plugins/platforms/eglfs/api/qeglfscursor.cpp (renamed from src/plugins/platforms/eglfs/qeglfscursor.cpp)4
-rw-r--r--src/plugins/platforms/eglfs/api/qeglfscursor_p.h (renamed from src/plugins/platforms/eglfs/qeglfscursor.h)0
-rw-r--r--src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp (renamed from src/plugins/platforms/eglfs/qeglfsdeviceintegration.cpp)118
-rw-r--r--src/plugins/platforms/eglfs/api/qeglfsdeviceintegration_p.h (renamed from src/plugins/platforms/eglfs/qeglfsdeviceintegration.h)18
-rw-r--r--src/plugins/platforms/eglfs/api/qeglfsglobal.h (renamed from src/plugins/platforms/eglfs/qeglfsglobal.h)9
-rw-r--r--src/plugins/platforms/eglfs/api/qeglfshooks.cpp (renamed from src/plugins/platforms/eglfs/qeglfshooks.cpp)16
-rw-r--r--src/plugins/platforms/eglfs/api/qeglfshooks_p.h (renamed from src/plugins/platforms/eglfs/qeglfshooks.h)17
-rw-r--r--src/plugins/platforms/eglfs/api/qeglfsscreen.cpp (renamed from src/plugins/platforms/eglfs/qeglfsscreen.cpp)6
-rw-r--r--src/plugins/platforms/eglfs/api/qeglfsscreen_p.h (renamed from src/plugins/platforms/eglfs/qeglfsscreen.h)13
-rw-r--r--src/plugins/platforms/eglfs/api/qeglfswindow.cpp (renamed from src/plugins/platforms/eglfs/qeglfswindow.cpp)9
-rw-r--r--src/plugins/platforms/eglfs/api/qeglfswindow_p.h (renamed from src/plugins/platforms/eglfs/qeglfswindow.h)13
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_brcm/eglfs_brcm.pro2
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_brcm/qeglfsbrcmintegration.h4
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_brcm/qeglfsbrcmmain.cpp8
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms.pro2
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp2
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmmain.cpp8
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/eglfs_kms_egldevice.pro2
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp4
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevicemain.cpp6
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/eglfs_kms_support.pro2
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.cpp4
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.h4
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.h2
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/eglfs_mali.pro2
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/qeglfsmaliintegration.cpp2
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/qeglfsmaliintegration.h4
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/qeglfsmalimain.cpp8
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_viv/eglfs_viv.pro2
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_viv/qeglfsvivintegration.cpp2
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_viv/qeglfsvivintegration.h4
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_viv/qeglfsvivmain.cpp8
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_viv_wl/eglfs_viv_wl.pro2
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_viv_wl/qeglfsvivwlintegration.cpp2
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_viv_wl/qeglfsvivwlintegration.h4
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_viv_wl/qeglfsvivwlmain.cpp8
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/eglfs_x11.pro2
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/qeglfsx11integration.h4
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/qeglfsx11main.cpp8
-rw-r--r--src/plugins/platforms/eglfs/eglfs-plugin.pro2
-rw-r--r--src/plugins/platforms/eglfs/eglfs.pro2
-rw-r--r--src/plugins/platforms/eglfs/eglfsdeviceintegration.pro (renamed from src/plugins/platforms/eglfs/eglfs_device_lib.pro)17
-rw-r--r--src/plugins/platforms/eglfs/qeglfscontext.cpp6
-rw-r--r--src/plugins/platforms/eglfs/qeglfsintegration.cpp26
-rw-r--r--src/plugins/platforms/eglfs/qeglfsintegration.h2
-rw-r--r--src/plugins/platforms/eglfs/qeglfsoffscreenwindow.cpp2
-rw-r--r--src/plugins/platforms/ios/ios.pro36
-rw-r--r--src/plugins/platforms/ios/plugin.mm4
-rw-r--r--src/plugins/platforms/ios/qioseventdispatcher.mm2
-rw-r--r--src/plugins/platforms/ios/qiosfileenginefactory.h4
-rw-r--r--src/plugins/platforms/ios/qiosglobal.h4
-rw-r--r--src/plugins/platforms/ios/qiosglobal.mm12
-rw-r--r--src/plugins/platforms/ios/qiosinputcontext.mm14
-rw-r--r--src/plugins/platforms/ios/qiosintegration.h7
-rw-r--r--src/plugins/platforms/ios/qiosintegration.mm10
-rw-r--r--src/plugins/platforms/ios/qiosmenu.mm2
-rw-r--r--src/plugins/platforms/ios/qiosscreen.mm22
-rw-r--r--src/plugins/platforms/ios/qiostextinputoverlay.mm8
-rw-r--r--src/plugins/platforms/ios/qiostextresponder.mm12
-rw-r--r--src/plugins/platforms/ios/qiostheme.mm12
-rw-r--r--src/plugins/platforms/ios/qiosviewcontroller.h4
-rw-r--r--src/plugins/platforms/ios/qiosviewcontroller.mm66
-rw-r--r--src/plugins/platforms/ios/qioswindow.mm2
-rw-r--r--src/plugins/platforms/ios/quiview.mm21
-rw-r--r--src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp6
-rw-r--r--src/plugins/platforms/mirclient/qmirclientbackingstore.cpp4
-rw-r--r--src/plugins/platforms/offscreen/qoffscreencommon.cpp5
-rw-r--r--src/plugins/platforms/platforms.pro10
-rw-r--r--src/plugins/platforms/qnx/qqnxbuttoneventnotifier.cpp4
-rw-r--r--src/plugins/platforms/qnx/qqnxinputcontext_imf.cpp12
-rw-r--r--src/plugins/platforms/qnx/qqnxintegration.cpp4
-rw-r--r--src/plugins/platforms/qnx/qqnxnavigatoreventhandler.cpp4
-rw-r--r--src/plugins/platforms/qnx/qqnxnavigatoreventnotifier.cpp3
-rw-r--r--src/plugins/platforms/qnx/qqnxnavigatorpps.cpp2
-rw-r--r--src/plugins/platforms/qnx/qqnxrasterbackingstore.cpp2
-rw-r--r--src/plugins/platforms/qnx/qqnxrasterwindow.cpp5
-rw-r--r--src/plugins/platforms/qnx/qqnxscreen.cpp13
-rw-r--r--src/plugins/platforms/qnx/qqnxscreeneventhandler.cpp2
-rw-r--r--src/plugins/platforms/qnx/qqnxvirtualkeyboardpps.cpp4
-rw-r--r--src/plugins/platforms/windows/accessible/accessible.pri14
-rw-r--r--src/plugins/platforms/windows/accessible/comutils.cpp24
-rw-r--r--src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp36
-rw-r--r--src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp2
-rw-r--r--src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h2
-rw-r--r--src/plugins/platforms/windows/qplatformfunctions_wince.h371
-rw-r--r--src/plugins/platforms/windows/qtwindows_additional.h179
-rw-r--r--src/plugins/platforms/windows/qtwindowsglobal.h23
-rw-r--r--src/plugins/platforms/windows/qwindowsbackingstore.cpp39
-rw-r--r--src/plugins/platforms/windows/qwindowsbackingstore.h4
-rw-r--r--src/plugins/platforms/windows/qwindowsclipboard.cpp3
-rw-r--r--src/plugins/platforms/windows/qwindowscontext.cpp208
-rw-r--r--src/plugins/platforms/windows/qwindowscontext.h46
-rw-r--r--src/plugins/platforms/windows/qwindowscursor.cpp70
-rw-r--r--src/plugins/platforms/windows/qwindowscursor.h2
-rw-r--r--src/plugins/platforms/windows/qwindowsdialoghelpers.cpp340
-rw-r--r--src/plugins/platforms/windows/qwindowsdialoghelpers.h2
-rw-r--r--src/plugins/platforms/windows/qwindowsdrag.cpp2
-rw-r--r--src/plugins/platforms/windows/qwindowseglcontext.cpp12
-rw-r--r--src/plugins/platforms/windows/qwindowsfontdatabase.cpp26
-rw-r--r--src/plugins/platforms/windows/qwindowsfontdatabase.h2
-rw-r--r--src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp333
-rw-r--r--src/plugins/platforms/windows/qwindowsfontdatabase_ft.h2
-rw-r--r--src/plugins/platforms/windows/qwindowsfontengine.cpp124
-rw-r--r--src/plugins/platforms/windows/qwindowsfontengine.h2
-rw-r--r--src/plugins/platforms/windows/qwindowsglcontext.cpp10
-rw-r--r--src/plugins/platforms/windows/qwindowsglcontext.h4
-rw-r--r--src/plugins/platforms/windows/qwindowsinputcontext.cpp4
-rw-r--r--src/plugins/platforms/windows/qwindowsinputcontext.h2
-rw-r--r--src/plugins/platforms/windows/qwindowsintegration.cpp49
-rw-r--r--src/plugins/platforms/windows/qwindowsintegration.h2
-rw-r--r--src/plugins/platforms/windows/qwindowsinternalmimedata.cpp1
-rw-r--r--src/plugins/platforms/windows/qwindowsinternalmimedata.h2
-rw-r--r--src/plugins/platforms/windows/qwindowskeymapper.cpp34
-rw-r--r--src/plugins/platforms/windows/qwindowskeymapper.h2
-rw-r--r--src/plugins/platforms/windows/qwindowsmime.cpp2
-rw-r--r--src/plugins/platforms/windows/qwindowsmime.h2
-rw-r--r--src/plugins/platforms/windows/qwindowsmousehandler.cpp128
-rw-r--r--src/plugins/platforms/windows/qwindowsmousehandler.h6
-rw-r--r--src/plugins/platforms/windows/qwindowsnativeimage.cpp2
-rw-r--r--src/plugins/platforms/windows/qwindowsnativeimage.h2
-rw-r--r--src/plugins/platforms/windows/qwindowsole.h2
-rw-r--r--src/plugins/platforms/windows/qwindowsopengltester.cpp36
-rw-r--r--src/plugins/platforms/windows/qwindowsscreen.cpp25
-rw-r--r--src/plugins/platforms/windows/qwindowsscreen.h3
-rw-r--r--src/plugins/platforms/windows/qwindowsservices.cpp15
-rw-r--r--src/plugins/platforms/windows/qwindowstabletsupport.h4
-rw-r--r--src/plugins/platforms/windows/qwindowstheme.cpp82
-rw-r--r--src/plugins/platforms/windows/qwindowswindow.cpp176
-rw-r--r--src/plugins/platforms/windows/qwindowswindow.h22
-rw-r--r--src/plugins/platforms/windows/windows.pri40
-rw-r--r--src/plugins/platforms/windows/windows.pro2
-rw-r--r--src/plugins/platforms/xcb/qxcbbackingstore.cpp19
-rw-r--r--src/plugins/platforms/xcb/qxcbbackingstore.h2
-rw-r--r--src/plugins/platforms/xcb/qxcbconnection.cpp18
-rw-r--r--src/plugins/platforms/xcb/qxcbconnection.h1
-rw-r--r--src/plugins/platforms/xcb/qxcbwindow.cpp5
-rw-r--r--src/plugins/platforms/xcb/xcb_qpa_lib.pro10
-rw-r--r--src/plugins/platformthemes/gtk3/gtk3.pro4
-rw-r--r--src/plugins/sqldrivers/db2/db2.pro11
-rw-r--r--src/plugins/sqldrivers/db2/main.cpp2
-rw-r--r--src/plugins/sqldrivers/db2/qsql_db2.cpp (renamed from src/sql/drivers/db2/qsql_db2.cpp)0
-rw-r--r--src/plugins/sqldrivers/db2/qsql_db2_p.h (renamed from src/sql/drivers/db2/qsql_db2_p.h)0
-rw-r--r--src/plugins/sqldrivers/ibase/ibase.pro13
-rw-r--r--src/plugins/sqldrivers/ibase/main.cpp2
-rw-r--r--src/plugins/sqldrivers/ibase/qsql_ibase.cpp (renamed from src/sql/drivers/ibase/qsql_ibase.cpp)0
-rw-r--r--src/plugins/sqldrivers/ibase/qsql_ibase_p.h (renamed from src/sql/drivers/ibase/qsql_ibase_p.h)0
-rw-r--r--src/plugins/sqldrivers/mysql/main.cpp2
-rw-r--r--src/plugins/sqldrivers/mysql/mysql.pro19
-rw-r--r--src/plugins/sqldrivers/mysql/qsql_mysql.cpp (renamed from src/sql/drivers/mysql/qsql_mysql.cpp)0
-rw-r--r--src/plugins/sqldrivers/mysql/qsql_mysql_p.h (renamed from src/sql/drivers/mysql/qsql_mysql_p.h)0
-rw-r--r--src/plugins/sqldrivers/oci/main.cpp2
-rw-r--r--src/plugins/sqldrivers/oci/oci.pro12
-rw-r--r--src/plugins/sqldrivers/oci/qsql_oci.cpp (renamed from src/sql/drivers/oci/qsql_oci.cpp)0
-rw-r--r--src/plugins/sqldrivers/oci/qsql_oci_p.h (renamed from src/sql/drivers/oci/qsql_oci_p.h)0
-rw-r--r--src/plugins/sqldrivers/odbc/main.cpp2
-rw-r--r--src/plugins/sqldrivers/odbc/odbc.pro15
-rw-r--r--src/plugins/sqldrivers/odbc/qsql_odbc.cpp (renamed from src/sql/drivers/odbc/qsql_odbc.cpp)0
-rw-r--r--src/plugins/sqldrivers/odbc/qsql_odbc_p.h (renamed from src/sql/drivers/odbc/qsql_odbc_p.h)0
-rw-r--r--src/plugins/sqldrivers/psql/main.cpp2
-rw-r--r--src/plugins/sqldrivers/psql/psql.pro13
-rw-r--r--src/plugins/sqldrivers/psql/qsql_psql.cpp (renamed from src/sql/drivers/psql/qsql_psql.cpp)0
-rw-r--r--src/plugins/sqldrivers/psql/qsql_psql_p.h (renamed from src/sql/drivers/psql/qsql_psql_p.h)0
-rw-r--r--src/plugins/sqldrivers/sqldrivers.pro18
-rw-r--r--src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp (renamed from src/sql/drivers/sqlite/qsql_sqlite.cpp)81
-rw-r--r--src/plugins/sqldrivers/sqlite/qsql_sqlite_p.h (renamed from src/sql/drivers/sqlite/qsql_sqlite_p.h)6
-rw-r--r--src/plugins/sqldrivers/sqlite/smain.cpp2
-rw-r--r--src/plugins/sqldrivers/sqlite/sqlite.pro12
-rw-r--r--src/plugins/sqldrivers/sqlite2/qsql_sqlite2.cpp (renamed from src/sql/drivers/sqlite2/qsql_sqlite2.cpp)0
-rw-r--r--src/plugins/sqldrivers/sqlite2/qsql_sqlite2_p.h (renamed from src/sql/drivers/sqlite2/qsql_sqlite2_p.h)0
-rw-r--r--src/plugins/sqldrivers/sqlite2/smain.cpp2
-rw-r--r--src/plugins/sqldrivers/sqlite2/sqlite2.pro7
-rw-r--r--src/plugins/sqldrivers/tds/main.cpp2
-rw-r--r--src/plugins/sqldrivers/tds/qsql_tds.cpp (renamed from src/sql/drivers/tds/qsql_tds.cpp)0
-rw-r--r--src/plugins/sqldrivers/tds/qsql_tds_p.h (renamed from src/sql/drivers/tds/qsql_tds_p.h)0
-rw-r--r--src/plugins/sqldrivers/tds/tds.pro13
-rw-r--r--src/printsupport/kernel/qprint_p.h4
-rw-r--r--src/printsupport/kernel/qprintengine_win.cpp4
-rw-r--r--src/sql/drivers/db2/qsql_db2.pri8
-rw-r--r--src/sql/drivers/drivers.pri11
-rw-r--r--src/sql/drivers/ibase/qsql_ibase.pri10
-rw-r--r--src/sql/drivers/mysql/qsql_mysql.pri16
-rw-r--r--src/sql/drivers/oci/qsql_oci.pri9
-rw-r--r--src/sql/drivers/odbc/qsql_odbc.pri12
-rw-r--r--src/sql/drivers/psql/qsql_psql.pri10
-rw-r--r--src/sql/drivers/sqlite/qsql_sqlite.pri9
-rw-r--r--src/sql/drivers/sqlite2/qsql_sqlite2.pri4
-rw-r--r--src/sql/drivers/tds/qsql_tds.pri10
-rw-r--r--src/sql/kernel/qsqldatabase.cpp117
-rw-r--r--src/sql/sql.pro1
-rw-r--r--src/src.pro8
-rw-r--r--src/testlib/qabstracttestlogger.cpp2
-rw-r--r--src/testlib/qbenchmarkmetric.cpp5
-rw-r--r--src/testlib/qbenchmarkmetric.h3
-rw-r--r--src/testlib/qbenchmarkperfevents.cpp9
-rw-r--r--src/testlib/qplaintestlogger.cpp15
-rw-r--r--src/testlib/qtest.h5
-rw-r--r--src/testlib/qtestblacklist.cpp6
-rw-r--r--src/testlib/qtestcase.cpp87
-rw-r--r--src/testlib/qtestcase.h31
-rw-r--r--src/testlib/qtestcase.qdoc8
-rw-r--r--src/testlib/qtesttouch.h1
-rw-r--r--src/testlib/qxctestlogger.mm2
-rw-r--r--src/testlib/qxunittestlogger.cpp2
-rw-r--r--src/testlib/testlib.pro7
-rw-r--r--src/tools/bootstrap/bootstrap.pro6
-rw-r--r--src/tools/moc/main.cpp10
-rw-r--r--src/tools/uic/cpp/cppwriteinitialization.cpp40
-rw-r--r--src/widgets/accessible/complexwidgets.cpp24
-rw-r--r--src/widgets/accessible/itemviews.cpp4
-rw-r--r--src/widgets/dialogs/qcolordialog.cpp16
-rw-r--r--src/widgets/dialogs/qdialog.cpp25
-rw-r--r--src/widgets/dialogs/qdialog.h7
-rw-r--r--src/widgets/dialogs/qdialog_p.h4
-rw-r--r--src/widgets/dialogs/qerrormessage.cpp28
-rw-r--r--src/widgets/dialogs/qfiledialog.cpp14
-rw-r--r--src/widgets/dialogs/qfiledialog_p.h4
-rw-r--r--src/widgets/dialogs/qfileinfogatherer.cpp2
-rw-r--r--src/widgets/dialogs/qfilesystemmodel.cpp13
-rw-r--r--src/widgets/dialogs/qfilesystemmodel_p.h2
-rw-r--r--src/widgets/dialogs/qfontdialog.cpp10
-rw-r--r--src/widgets/dialogs/qmessagebox.cpp74
-rw-r--r--src/widgets/dialogs/qmessagebox.h4
-rw-r--r--src/widgets/dialogs/qprogressdialog.cpp19
-rw-r--r--src/widgets/dialogs/qwizard.cpp8
-rw-r--r--src/widgets/dialogs/qwizard_win.cpp252
-rw-r--r--src/widgets/dialogs/qwizard_win_p.h2
-rw-r--r--src/widgets/doc/snippets/code/src_gui_kernel_qapplication.cpp1
-rw-r--r--src/widgets/graphicsview/qgraphicsitem.cpp13
-rw-r--r--src/widgets/graphicsview/qgraphicsscene.cpp7
-rw-r--r--src/widgets/graphicsview/qgraphicsview.cpp15
-rw-r--r--src/widgets/itemviews/qabstractitemview.cpp4
-rw-r--r--src/widgets/itemviews/qdirmodel.cpp20
-rw-r--r--src/widgets/itemviews/qfileiconprovider.cpp2
-rw-r--r--src/widgets/itemviews/qtableview.cpp3
-rw-r--r--src/widgets/itemviews/qtreeview.cpp9
-rw-r--r--src/widgets/kernel/qaction.cpp17
-rw-r--r--src/widgets/kernel/qapplication.cpp56
-rw-r--r--src/widgets/kernel/qapplication.h13
-rw-r--r--src/widgets/kernel/qapplication_p.h9
-rw-r--r--src/widgets/kernel/qformlayout.cpp323
-rw-r--r--src/widgets/kernel/qformlayout.h15
-rw-r--r--src/widgets/kernel/qgesturemanager.cpp2
-rw-r--r--src/widgets/kernel/qgridlayout.cpp10
-rw-r--r--src/widgets/kernel/qlayout.cpp5
-rw-r--r--src/widgets/kernel/qshortcut.cpp3
-rw-r--r--src/widgets/kernel/qwidget.cpp27
-rw-r--r--src/widgets/kernel/qwidgetbackingstore.cpp29
-rw-r--r--src/widgets/kernel/qwidgetbackingstore_p.h3
-rw-r--r--src/widgets/kernel/qwidgetsfunctions_wince.cpp120
-rw-r--r--src/widgets/kernel/win.pri6
-rw-r--r--src/widgets/styles/qcommonstyle.cpp27
-rw-r--r--src/widgets/styles/qfusionstyle.cpp18
-rw-r--r--src/widgets/styles/qmacstyle_mac.mm27
-rw-r--r--src/widgets/styles/qproxystyle.cpp11
-rw-r--r--src/widgets/styles/qstyle.cpp5
-rw-r--r--src/widgets/styles/qstyle.h3
-rw-r--r--src/widgets/styles/qstyle_wince.qrc97
-rw-r--r--src/widgets/styles/qstylefactory.cpp24
-rw-r--r--src/widgets/styles/qwindowscestyle.cpp2429
-rw-r--r--src/widgets/styles/qwindowscestyle_p.h108
-rw-r--r--src/widgets/styles/qwindowscestyle_p_p.h116
-rw-r--r--src/widgets/styles/qwindowsmobilestyle.cpp7272
-rw-r--r--src/widgets/styles/qwindowsmobilestyle_p.h121
-rw-r--r--src/widgets/styles/qwindowsmobilestyle_p_p.h133
-rw-r--r--src/widgets/styles/qwindowsstyle.cpp50
-rw-r--r--src/widgets/styles/qwindowsvistastyle.cpp62
-rw-r--r--src/widgets/styles/qwindowsxpstyle.cpp298
-rw-r--r--src/widgets/styles/qwindowsxpstyle_p_p.h163
-rw-r--r--src/widgets/styles/styles.pri22
-rw-r--r--src/widgets/util/qcompleter.cpp12
-rw-r--r--src/widgets/util/qsystemtrayicon.cpp24
-rw-r--r--src/widgets/util/qsystemtrayicon_win.cpp10
-rw-r--r--src/widgets/util/qsystemtrayicon_wince.cpp301
-rw-r--r--src/widgets/util/qundostack.cpp4
-rw-r--r--src/widgets/util/util.pri2
-rw-r--r--src/widgets/widgets.pro1
-rw-r--r--src/widgets/widgets/qabstractscrollarea.cpp8
-rw-r--r--src/widgets/widgets/qcheckbox.cpp4
-rw-r--r--src/widgets/widgets/qcommandlinkbutton.cpp9
-rw-r--r--src/widgets/widgets/qdialogbuttonbox.cpp10
-rw-r--r--src/widgets/widgets/qdockwidget.cpp6
-rw-r--r--src/widgets/widgets/qeffects.cpp12
-rw-r--r--src/widgets/widgets/qgroupbox.cpp4
-rw-r--r--src/widgets/widgets/qkeysequenceedit.cpp12
-rw-r--r--src/widgets/widgets/qlabel.cpp4
-rw-r--r--src/widgets/widgets/qlcdnumber.cpp5
-rw-r--r--src/widgets/widgets/qlineedit.cpp14
-rw-r--r--src/widgets/widgets/qmaccocoaviewcontainer_mac.mm5
-rw-r--r--src/widgets/widgets/qmacnativewidget_mac.mm5
-rw-r--r--src/widgets/widgets/qmdiarea.cpp5
-rw-r--r--src/widgets/widgets/qmdisubwindow.cpp12
-rw-r--r--src/widgets/widgets/qmenu.cpp14
-rw-r--r--src/widgets/widgets/qmenu.h16
-rw-r--r--src/widgets/widgets/qmenu_mac.mm5
-rw-r--r--src/widgets/widgets/qmenu_p.h42
-rw-r--r--src/widgets/widgets/qmenu_wince.cpp666
-rw-r--r--src/widgets/widgets/qmenu_wince.rc231
-rw-r--r--src/widgets/widgets/qmenu_wince_resource_p.h89
-rw-r--r--src/widgets/widgets/qmenubar.cpp85
-rw-r--r--src/widgets/widgets/qmenubar.h11
-rw-r--r--src/widgets/widgets/qmenubar_p.h53
-rw-r--r--src/widgets/widgets/qpushbutton.cpp8
-rw-r--r--src/widgets/widgets/qradiobutton.cpp4
-rw-r--r--src/widgets/widgets/qscrollbar.cpp10
-rw-r--r--src/widgets/widgets/qslider.cpp4
-rw-r--r--src/widgets/widgets/qsplitter.cpp5
-rw-r--r--src/widgets/widgets/qstatusbar.cpp3
-rw-r--r--src/widgets/widgets/qtabbar.cpp28
-rw-r--r--src/widgets/widgets/qtabbar.h5
-rw-r--r--src/widgets/widgets/qtabbar_p.h3
-rw-r--r--src/widgets/widgets/qtoolbar.cpp15
-rw-r--r--src/widgets/widgets/qtoolbar.h6
-rw-r--r--src/widgets/widgets/qwidgetlinecontrol.cpp2
-rw-r--r--src/widgets/widgets/widgets.pri16
-rw-r--r--src/winmain/qtmain_win.cpp59
-rw-r--r--src/winmain/winmain.pro4
-rw-r--r--sync.profile2
-rw-r--r--tests/auto/auto.pro2
-rw-r--r--tests/auto/corelib/animation/qparallelanimationgroup/tst_qparallelanimationgroup.cpp4
-rw-r--r--tests/auto/corelib/codecs/qtextcodec/qtextcodec.pro4
-rw-r--r--tests/auto/corelib/corelib.pro2
-rw-r--r--tests/auto/corelib/global/qtendian/qtendian.pro4
-rw-r--r--tests/auto/corelib/io/io.pro2
-rw-r--r--tests/auto/corelib/io/largefile/largefile.pro2
-rw-r--r--tests/auto/corelib/io/largefile/tst_largefile.cpp16
-rw-r--r--tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp45
-rw-r--r--tests/auto/corelib/io/qdir/tst_qdir.cpp61
-rw-r--r--tests/auto/corelib/io/qdiriterator/qdiriterator.pro2
-rw-r--r--tests/auto/corelib/io/qdiriterator/tst_qdiriterator.cpp27
-rw-r--r--tests/auto/corelib/io/qfile/qfile.pro7
-rw-r--r--tests/auto/corelib/io/qfile/test/test.pro1
-rw-r--r--tests/auto/corelib/io/qfile/tst_qfile.cpp93
-rw-r--r--tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp95
-rw-r--r--tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp11
-rw-r--r--tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp6
-rw-r--r--tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp8
-rw-r--r--tests/auto/corelib/io/qlockfile/tst_qlockfile.pro2
-rw-r--r--tests/auto/corelib/io/qprocess/qprocess.pri3
-rw-r--r--tests/auto/corelib/io/qprocess/qprocess.pro2
-rw-r--r--tests/auto/corelib/io/qprocess/testProcessEcho/main.cpp4
-rw-r--r--tests/auto/corelib/io/qprocess/testProcessEnvironment/main.cpp5
-rw-r--r--tests/auto/corelib/io/qprocess/testProcessOutput/main.cpp4
-rw-r--r--tests/auto/corelib/io/qprocess/testProcessSpacesArgs/main.cpp11
-rw-r--r--tests/auto/corelib/io/qprocess/testSoftExit/testSoftExit.pro2
-rw-r--r--tests/auto/corelib/io/qprocess/tst_qprocess.cpp151
-rw-r--r--tests/auto/corelib/io/qprocessenvironment/tst_qprocessenvironment.cpp14
-rw-r--r--tests/auto/corelib/io/qsettings/tst_qsettings.cpp26
-rw-r--r--tests/auto/corelib/io/qstorageinfo/BLACKLIST2
-rw-r--r--tests/auto/corelib/io/qtemporarydir/tst_qtemporarydir.cpp4
-rw-r--r--tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp11
-rw-r--r--tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp22
-rw-r--r--tests/auto/corelib/itemmodels/qitemmodel/modelstotest.cpp24
-rw-r--r--tests/auto/corelib/kernel/kernel.pro2
-rw-r--r--tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp2
-rw-r--r--tests/auto/corelib/kernel/qeventloop/qeventloop.pro2
-rw-r--r--tests/auto/corelib/kernel/qmetatype/qmetatype.pro4
-rw-r--r--tests/auto/corelib/kernel/qobject/signalbug/signalbug.pro3
-rw-r--r--tests/auto/corelib/kernel/qobject/tst_qobject.cpp4
-rw-r--r--tests/auto/corelib/kernel/qsharedmemory/test/tst_qsharedmemory.cpp7
-rw-r--r--tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp3
-rw-r--r--tests/auto/corelib/kernel/qvariant/stream/qt5.0/qdatetime.binbin40 -> 40 bytes
-rw-r--r--tests/auto/corelib/plugin/qlibrary/lib/lib.pro1
-rw-r--r--tests/auto/corelib/plugin/qlibrary/lib2/lib2.pro1
-rw-r--r--tests/auto/corelib/plugin/qlibrary/tst_qlibrary.cpp17
-rw-r--r--tests/auto/corelib/plugin/qpluginloader/tst_qpluginloader.cpp5
-rw-r--r--tests/auto/corelib/thread/qsemaphore/tst_qsemaphore.cpp6
-rw-r--r--tests/auto/corelib/thread/qthread/tst_qthread.cpp20
-rw-r--r--tests/auto/corelib/thread/qthreadonce/tst_qthreadonce.cpp2
-rw-r--r--tests/auto/corelib/thread/qthreadstorage/tst_qthreadstorage.cpp10
-rw-r--r--tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp14
-rw-r--r--tests/auto/corelib/tools/qchar/tst_qchar.cpp3
-rw-r--r--tests/auto/corelib/tools/qcommandlineparser/testhelper/qcommandlineparser_test_helper.cpp6
-rw-r--r--tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp17
-rw-r--r--tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp32
-rw-r--r--tests/auto/corelib/tools/qhash/tst_qhash.cpp4
-rw-r--r--tests/auto/corelib/tools/qlatin1string/tst_qlatin1string.cpp30
-rw-r--r--tests/auto/corelib/tools/qline/tst_qline.cpp77
-rw-r--r--tests/auto/corelib/tools/qlocale/tst_qlocale.cpp18
-rw-r--r--tests/auto/corelib/tools/qregexp/tst_qregexp.cpp20
-rw-r--r--tests/auto/corelib/tools/qscopedpointer/tst_qscopedpointer.cpp4
-rw-r--r--tests/auto/corelib/tools/qsharedpointer/externaltests.cpp4
-rw-r--r--tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp143
-rw-r--r--tests/auto/corelib/tools/qstring/tst_qstring.cpp57
-rw-r--r--tests/auto/corelib/tools/qstringapisymmetry/.gitignore1
-rw-r--r--tests/auto/corelib/tools/qstringapisymmetry/qstringapisymmetry.pro5
-rw-r--r--tests/auto/corelib/tools/qstringapisymmetry/tst_qstringapisymmetry.cpp262
-rw-r--r--tests/auto/corelib/tools/qstringlist/tst_qstringlist.cpp13
-rw-r--r--tests/auto/corelib/tools/qtimeline/tst_qtimeline.cpp4
-rw-r--r--tests/auto/corelib/tools/qversionnumber/tst_qversionnumber.cpp13
-rw-r--r--tests/auto/corelib/tools/tools.pro1
-rw-r--r--tests/auto/dbus/qdbusconnection/BLACKLIST2
-rw-r--r--tests/auto/dbus/qdbusmarshall/qdbusmarshall/qdbusmarshall.pro4
-rw-r--r--tests/auto/dbus/qdbustype/qdbustype.pro4
-rw-r--r--tests/auto/gui/gui.pro2
-rw-r--r--tests/auto/gui/image/qicoimageformat/qicoimageformat.pro9
-rw-r--r--tests/auto/gui/image/qicon/tst_qicon.cpp8
-rw-r--r--tests/auto/gui/image/qimage/tst_qimage.cpp84
-rw-r--r--tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp6
-rw-r--r--tests/auto/gui/image/qmovie/qmovie.pro4
-rw-r--r--tests/auto/gui/image/qpixmap/qpixmap.pro4
-rw-r--r--tests/auto/gui/image/qpixmap/tst_qpixmap.cpp33
-rw-r--r--tests/auto/gui/kernel/kernel.pro2
-rw-r--r--tests/auto/gui/kernel/noqteventloop/noqteventloop.pro2
-rw-r--r--tests/auto/gui/kernel/qclipboard/copier/main.cpp2
-rw-r--r--tests/auto/gui/kernel/qclipboard/paster/main.cpp4
-rw-r--r--tests/auto/gui/kernel/qclipboard/test/test.pro4
-rw-r--r--tests/auto/gui/kernel/qclipboard/tst_qclipboard.cpp4
-rw-r--r--tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp18
-rw-r--r--tests/auto/gui/kernel/qguimetatype/tst_qguimetatype.cpp12
-rw-r--r--tests/auto/gui/kernel/qguivariant/test/tst_qguivariant.cpp16
-rw-r--r--tests/auto/gui/kernel/qkeysequence/tst_qkeysequence.cpp4
-rw-r--r--tests/auto/gui/kernel/qtouchevent/tst_qtouchevent.cpp56
-rw-r--r--tests/auto/gui/kernel/qwindow/BLACKLIST3
-rw-r--r--tests/auto/gui/kernel/qwindow/qwindow.pro2
-rw-r--r--tests/auto/gui/kernel/qwindow/tst_qwindow.cpp9
-rw-r--r--tests/auto/gui/painting/qpainter/tst_qpainter.cpp2
-rw-r--r--tests/auto/gui/painting/qregion/tst_qregion.cpp40
-rw-r--r--tests/auto/gui/painting/qwmatrix/tst_qwmatrix.cpp2
-rw-r--r--tests/auto/gui/text/qabstracttextdocumentlayout/BLACKLIST6
-rw-r--r--tests/auto/gui/text/qabstracttextdocumentlayout/tst_qabstracttextdocumentlayout.cpp60
-rw-r--r--tests/auto/gui/text/qcssparser/qcssparser.pro8
-rw-r--r--tests/auto/gui/text/qcssparser/tst_qcssparser.cpp34
-rw-r--r--tests/auto/gui/text/qfont/BLACKLIST2
-rw-r--r--tests/auto/gui/text/qfont/tst_qfont.cpp10
-rw-r--r--tests/auto/gui/text/qfontdatabase/qfontdatabase.pro6
-rw-r--r--tests/auto/gui/text/qglyphrun/qglyphrun.pro11
-rw-r--r--tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp21
-rw-r--r--tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp2
-rw-r--r--tests/auto/gui/text/qzip/qzip.pro6
-rw-r--r--tests/auto/gui/util/qdesktopservices/tst_qdesktopservices.cpp2
-rw-r--r--tests/auto/network/access/qftp/qftp.pro7
-rw-r--r--tests/auto/network/access/qftp/tst_qftp.cpp9
-rw-r--r--tests/auto/network/access/qnetworkreply/qnetworkreply.pro2
-rw-r--r--tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp33
-rw-r--r--tests/auto/network/kernel/qhostaddress/qhostaddress.pro8
-rw-r--r--tests/auto/network/kernel/qhostaddress/tst_qhostaddress.cpp50
-rw-r--r--tests/auto/network/kernel/qhostinfo/qhostinfo.pro6
-rw-r--r--tests/auto/network/kernel/qhostinfo/tst_qhostinfo.cpp8
-rw-r--r--tests/auto/network/socket/platformsocketengine/platformsocketengine.pri8
-rw-r--r--tests/auto/network/socket/platformsocketengine/tst_platformsocketengine.cpp5
-rw-r--r--tests/auto/network/socket/qhttpsocketengine/tst_qhttpsocketengine.cpp4
-rw-r--r--tests/auto/network/socket/qlocalsocket/test/test.pro8
-rw-r--r--tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp2
-rw-r--r--tests/auto/network/socket/qsocks5socketengine/tst_qsocks5socketengine.cpp4
-rw-r--r--tests/auto/network/socket/qtcpserver/crashingServer/main.cpp8
-rw-r--r--tests/auto/network/socket/qtcpserver/test/test.pro11
-rw-r--r--tests/auto/network/socket/qtcpserver/tst_qtcpserver.cpp39
-rw-r--r--tests/auto/network/socket/qtcpsocket/qtcpsocket.pro2
-rw-r--r--tests/auto/network/socket/qtcpsocket/test/test.pro8
-rw-r--r--tests/auto/network/socket/qudpsocket/test/test.pro6
-rw-r--r--tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp15
-rw-r--r--tests/auto/network/ssl/qsslcertificate/qsslcertificate.pro2
-rw-r--r--tests/auto/network/ssl/qsslcipher/qsslcipher.pro2
-rw-r--r--tests/auto/network/ssl/qssldiffiehellmanparameters/qssldiffiehellmanparameters.pro8
-rw-r--r--tests/auto/network/ssl/qssldiffiehellmanparameters/tst_qssldiffiehellmanparameters.cpp163
-rw-r--r--tests/auto/network/ssl/qsslellipticcurve/qsslellipticcurve.pro2
-rw-r--r--tests/auto/network/ssl/qsslerror/qsslerror.pro2
-rw-r--r--tests/auto/network/ssl/qsslkey/qsslkey.pro2
-rw-r--r--tests/auto/network/ssl/qsslsocket/qsslsocket.pro12
-rw-r--r--tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp285
-rw-r--r--tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/qsslsocket_onDemandCertificates_member.pro8
-rw-r--r--tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/qsslsocket_onDemandCertificates_static.pro8
-rw-r--r--tests/auto/network/ssl/ssl.pro3
-rw-r--r--tests/auto/other/gestures/gestures.pro2
-rw-r--r--tests/auto/other/gestures/tst_gestures.cpp5
-rw-r--r--tests/auto/other/languagechange/tst_languagechange.cpp12
-rw-r--r--tests/auto/other/other.pro5
-rw-r--r--tests/auto/other/qaccessibility/qaccessibility.pro6
-rw-r--r--tests/auto/other/qaccessibility/tst_qaccessibility.cpp41
-rw-r--r--tests/auto/other/qtokenautomaton/tokenizers/basic/basic.cpp30
-rw-r--r--tests/auto/other/qtokenautomaton/tokenizers/basicNamespace/basicNamespace.cpp26
-rw-r--r--tests/auto/other/qtokenautomaton/tokenizers/boilerplate/boilerplate.cpp26
-rw-r--r--tests/auto/other/qtokenautomaton/tokenizers/noNamespace/noNamespace.cpp30
-rw-r--r--tests/auto/other/qtokenautomaton/tokenizers/noToString/noToString.cpp26
-rw-r--r--tests/auto/other/qtokenautomaton/tokenizers/withNamespace/withNamespace.cpp30
-rw-r--r--tests/auto/other/toolsupport/tst_toolsupport.cpp21
-rw-r--r--tests/auto/other/windowsmobile/test/ddhelper.cpp148
-rw-r--r--tests/auto/other/windowsmobile/test/ddhelper.h49
-rw-r--r--tests/auto/other/windowsmobile/test/test.pro23
-rw-r--r--tests/auto/other/windowsmobile/test/testQMenuBar_current.pngbin22964 -> 0 bytes
-rw-r--r--tests/auto/other/windowsmobile/test/testSimpleWidget_current.pngbin23841 -> 0 bytes
-rw-r--r--tests/auto/other/windowsmobile/test/tst_windowsmobile.cpp195
-rw-r--r--tests/auto/other/windowsmobile/test/windowsmobile.qrc6
-rw-r--r--tests/auto/other/windowsmobile/testQMenuBar/main.cpp98
-rw-r--r--tests/auto/other/windowsmobile/testQMenuBar/testQMenuBar.pro5
-rw-r--r--tests/auto/other/windowsmobile/windowsmobile.pro9
-rw-r--r--tests/auto/qtest-config.h40
-rw-r--r--tests/auto/sql/kernel/qsql/qsql.pro6
-rw-r--r--tests/auto/sql/kernel/qsqldatabase/qsqldatabase.pro14
-rw-r--r--tests/auto/sql/kernel/qsqldatabase/tst_databases.h28
-rw-r--r--tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp31
-rw-r--r--tests/auto/sql/kernel/qsqldriver/qsqldriver.pro13
-rw-r--r--tests/auto/sql/kernel/qsqlquery/qsqlquery.pro9
-rw-r--r--tests/auto/sql/kernel/qsqlthread/qsqlthread.pro11
-rw-r--r--tests/auto/sql/models/qsqlquerymodel/qsqlquerymodel.pro8
-rw-r--r--tests/auto/sql/models/qsqlrelationaltablemodel/qsqlrelationaltablemodel.pro13
-rw-r--r--tests/auto/sql/models/qsqltablemodel/qsqltablemodel.pro10
-rw-r--r--tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp36
-rw-r--r--tests/auto/testlib/selftests/crashes/tst_crashes.cpp2
-rw-r--r--tests/auto/testlib/selftests/expected_cmptest.lightxml64
-rw-r--r--tests/auto/testlib/selftests/expected_cmptest.teamcity60
-rw-r--r--tests/auto/testlib/selftests/expected_cmptest.txt60
-rw-r--r--tests/auto/testlib/selftests/expected_cmptest.xml64
-rw-r--r--tests/auto/testlib/selftests/expected_cmptest.xunitxml4
-rw-r--r--tests/auto/tools/moc/tst_moc.cpp7
-rw-r--r--tests/auto/tools/qdbuscpp2xml/qdbuscpp2xml.pro2
-rw-r--r--tests/auto/tools/qdbusxml2cpp/qdbusxml2cpp.pro2
-rw-r--r--tests/auto/tools/qmakelib/evaltest.cpp161
-rw-r--r--tests/auto/tools/qmakelib/parsertest.cpp2
-rw-r--r--tests/auto/widgets/dialogs/qdialog/tst_qdialog.cpp8
-rw-r--r--tests/auto/widgets/dialogs/qfiledialog/qfiledialog.pro14
-rw-r--r--tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp3
-rw-r--r--tests/auto/widgets/dialogs/qfiledialog2/qfiledialog2.pro15
-rw-r--r--tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp52
-rw-r--r--tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp42
-rw-r--r--tests/auto/widgets/dialogs/qfontdialog/BLACKLIST1
-rw-r--r--tests/auto/widgets/dialogs/qmessagebox/tst_qmessagebox.cpp5
-rw-r--r--tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp20
-rw-r--r--tests/auto/widgets/effects/qpixmapfilter/qpixmapfilter.pro7
-rw-r--r--tests/auto/widgets/gestures/qgesturerecognizer/tst_qgesturerecognizer.cpp6
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp11
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsitem/qgraphicsitem.pro2
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp34
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp27
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsscene/qgraphicsscene.pro13
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp48
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp55
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicswidget/tst_qgraphicswidget.cpp12
-rw-r--r--tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp11
-rw-r--r--tests/auto/widgets/itemviews/qcolumnview/tst_qcolumnview.cpp3
-rw-r--r--tests/auto/widgets/itemviews/qdirmodel/qdirmodel.pro2
-rw-r--r--tests/auto/widgets/itemviews/qdirmodel/tst_qdirmodel.cpp2
-rw-r--r--tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp23
-rw-r--r--tests/auto/widgets/itemviews/qitemdelegate/qitemdelegate.pro2
-rw-r--r--tests/auto/widgets/itemviews/qitemdelegate/tst_qitemdelegate.cpp2
-rw-r--r--tests/auto/widgets/itemviews/qitemview/tst_qitemview.cpp45
-rw-r--r--tests/auto/widgets/itemviews/qlistview/qlistview.pro2
-rw-r--r--tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp48
-rw-r--r--tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp13
-rw-r--r--tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp9
-rw-r--r--tests/auto/widgets/kernel/qaction/tst_qaction.cpp133
-rw-r--r--tests/auto/widgets/kernel/qapplication/test/test.pro2
-rw-r--r--tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp50
-rw-r--r--tests/auto/widgets/kernel/qformlayout/tst_qformlayout.cpp237
-rw-r--r--tests/auto/widgets/kernel/qgridlayout/tst_qgridlayout.cpp43
-rw-r--r--tests/auto/widgets/kernel/qlayout/qlayout.pro8
-rw-r--r--tests/auto/widgets/kernel/qwidget/BLACKLIST1
-rw-r--r--tests/auto/widgets/kernel/qwidget/qwidget.pro2
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp476
-rw-r--r--tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp5
-rw-r--r--tests/auto/widgets/styles/qstyle/qstyle.pro6
-rw-r--r--tests/auto/widgets/styles/qstyle/tst_qstyle.cpp54
-rw-r--r--tests/auto/widgets/styles/qstylesheetstyle/BLACKLIST2
-rw-r--r--tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp6
-rw-r--r--tests/auto/widgets/styles/styles.pro2
-rw-r--r--tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp10
-rw-r--r--tests/auto/widgets/util/qscroller/tst_qscroller.cpp21
-rw-r--r--tests/auto/widgets/util/qsystemtrayicon/tst_qsystemtrayicon.cpp4
-rw-r--r--tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp12
-rw-r--r--tests/auto/widgets/widgets/qdatetimeedit/qdatetimeedit.pro2
-rw-r--r--tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp28
-rw-r--r--tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp6
-rw-r--r--tests/auto/widgets/widgets/qmainwindow/tst_qmainwindow.cpp9
-rw-r--r--tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp40
-rw-r--r--tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp38
-rw-r--r--tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp15
-rw-r--r--tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp32
-rw-r--r--tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp22
-rw-r--r--tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp6
-rw-r--r--tests/auto/widgets/widgets/qtabwidget/qtabwidget.pro2
-rw-r--r--tests/auto/widgets/widgets/qtabwidget/tst_qtabwidget.cpp6
-rw-r--r--tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp17
-rw-r--r--tests/auto/xml/dom/qdom/qdom.pro5
-rw-r--r--tests/baselineserver/shared/baselineprotocol.cpp3
-rw-r--r--tests/benchmarks/corelib/io/qdiriterator/main.cpp5
-rw-r--r--tests/benchmarks/corelib/io/qdiriterator/qdiriterator.pro7
-rw-r--r--tests/benchmarks/corelib/io/qfile/main.cpp7
-rw-r--r--tests/benchmarks/corelib/io/qfileinfo/main.cpp4
-rw-r--r--tests/benchmarks/corelib/io/qprocess/tst_bench_qprocess.cpp7
-rw-r--r--tests/benchmarks/corelib/tools/containers-sequential/main.cpp7
-rw-r--r--tests/benchmarks/corelib/tools/qcryptographichash/main.cpp9
-rw-r--r--tests/benchmarks/dbus/qdbustype/qdbustype.pro4
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/tst_qgraphicsview.cpp3
-rw-r--r--tests/benchmarks/gui/image/qimageconversion/qimageconversion.pro4
-rw-r--r--tests/benchmarks/gui/image/qimagereader/qimagereader.pro20
-rw-r--r--tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp18
-rw-r--r--tests/benchmarks/network/socket/qtcpserver/tst_qtcpserver.cpp3
-rw-r--r--tests/manual/diaglib/debugproxystyle.cpp42
-rw-r--r--tests/manual/diaglib/debugproxystyle.h1
-rw-r--r--tests/manual/diaglib/qwindowdump.cpp2
-rw-r--r--tests/manual/manual.pro6
-rw-r--r--tests/manual/qsysinfo/main.cpp13
-rw-r--r--tests/shared/filesystem.h2
-rw-r--r--tests/tests.pro2
-rw-r--r--tools/configure/configureapp.cpp350
1065 files changed, 13664 insertions, 31477 deletions
diff --git a/.qmake.conf b/.qmake.conf
index 44af7abb45..8c302d7039 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -4,4 +4,4 @@ CONFIG += warning_clean
QT_SOURCE_TREE = $$PWD
QT_BUILD_TREE = $$shadowed($$PWD)
-MODULE_VERSION = 5.7.0
+MODULE_VERSION = 5.8.0
diff --git a/config.tests/common/c++default/c++default.cpp b/config.tests/common/c++default/c++default.cpp
deleted file mode 100644
index 018963beb3..0000000000
--- a/config.tests/common/c++default/c++default.cpp
+++ /dev/null
@@ -1 +0,0 @@
-__cplusplus
diff --git a/config.tests/common/c++default/c++default.pro b/config.tests/common/c++default/c++default.pro
deleted file mode 100644
index 7e6bcefe69..0000000000
--- a/config.tests/common/c++default/c++default.pro
+++ /dev/null
@@ -1,14 +0,0 @@
-TEMPLATE = aux
-CONFIG -= qt c++11
-PREPROCESSOR_SOURCES += c++default.cpp
-
-preprocessor.commands = $(CXX) $(CXXFLAGS) $(INCPATH) -o $@ -E $<
-msvc:preprocessor.commands = $(CXX) $(CXXFLAGS) $(INCPATH) -E ${QMAKE_FILE_IN} > ${QMAKE_FILE_OUT}
-preprocessor.output = ${QMAKE_FILE_BASE}.ii
-preprocessor.input = PREPROCESSOR_SOURCES
-preprocessor.variable_out = GENERATED_FILES
-QMAKE_EXTRA_COMPILERS += preprocessor
-
-all.target = all
-all.depends += c++default.ii
-QMAKE_EXTRA_TARGETS += all
diff --git a/config.tests/qpa/xcb-syslibs/xcb.cpp b/config.tests/qpa/xcb-syslibs/xcb.cpp
index 0e1bd76e6c..00d0da1b6c 100644
--- a/config.tests/qpa/xcb-syslibs/xcb.cpp
+++ b/config.tests/qpa/xcb-syslibs/xcb.cpp
@@ -57,8 +57,5 @@ int main(int, char **)
xcb_connection_t *connection = xcb_connect("", &primaryScreen);
- // This won't compile unless libxcb >= 1.5 which defines XCB_ATOM_PRIMARY.
- int xcbAtomPrimary = XCB_ATOM_PRIMARY;
-
return 0;
}
diff --git a/config.tests/qpa/xcb-xkb/xcb-xkb.cpp b/config.tests/qpa/xcb-xkb/xcb-xkb.cpp
index 6a88944aee..9685649633 100644
--- a/config.tests/qpa/xcb-xkb/xcb-xkb.cpp
+++ b/config.tests/qpa/xcb-xkb/xcb-xkb.cpp
@@ -51,6 +51,9 @@ int main(int, char **)
xcb_connection_t *connection = xcb_connect("", &primaryScreen);
+ // This takes more arguments in xcb-xkb < 1.10.
+ xcb_xkb_get_kbd_by_name_unchecked(NULL, 0, 0, 0, 0);
+
// This won't compile unless libxcb >= 1.5 which defines XCB_ATOM_PRIMARY.
int xcbAtomPrimary = XCB_ATOM_PRIMARY;
diff --git a/config.tests/qpa/xcb/xcb.cpp b/config.tests/qpa/xcb/xcb.cpp
index a5b419e695..efb4f0ca2e 100644
--- a/config.tests/qpa/xcb/xcb.cpp
+++ b/config.tests/qpa/xcb/xcb.cpp
@@ -43,5 +43,9 @@ int main(int, char **)
{
int primaryScreen = 0;
xcb_connection_t *t = xcb_connect("", &primaryScreen);
+
+ // This won't compile unless libxcb >= 1.5 which defines XCB_ATOM_PRIMARY.
+ int xcbAtomPrimary = XCB_ATOM_PRIMARY;
+
return 0;
}
diff --git a/config.tests/unix/openvg/openvg.cpp b/config.tests/unix/openvg/openvg.cpp
deleted file mode 100644
index a322db4824..0000000000
--- a/config.tests/unix/openvg/openvg.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// There is some variation in OpenVG engines as to what case
-// the VG includes use. The Khronos reference implementation
-// for OpenVG 1.1 uses upper case, so we treat that as canonical.
-#if defined(QT_LOWER_CASE_VG_INCLUDES)
-#include <vg/openvg.h>
-#else
-#include <VG/openvg.h>
-#endif
-
-int main(int, char **)
-{
- VGint i;
- i = 2;
- vgFlush();
- return 0;
-}
diff --git a/config.tests/unix/openvg/openvg.pro b/config.tests/unix/openvg/openvg.pro
deleted file mode 100644
index 4bbde99230..0000000000
--- a/config.tests/unix/openvg/openvg.pro
+++ /dev/null
@@ -1,19 +0,0 @@
-SOURCES += openvg.cpp
-
-!isEmpty(QMAKE_INCDIR_OPENVG): INCLUDEPATH += $$QMAKE_INCDIR_OPENVG
-!isEmpty(QMAKE_LIBDIR_OPENVG): LIBS += -L$$QMAKE_LIBDIR_OPENVG
-!isEmpty(QMAKE_LIBS_OPENVG): LIBS += $$QMAKE_LIBS_OPENVG
-
-# Some OpenVG engines (e.g. ShivaVG) are implemented on top of OpenGL.
-# Add the extra includes and libraries for that case.
-openvg_on_opengl {
- !isEmpty(QMAKE_INCDIR_OPENGL): INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
- !isEmpty(QMAKE_LIBDIR_OPENGL): LIBS += -L$$QMAKE_LIBDIR_OPENGL
- !isEmpty(QMAKE_LIBS_OPENGL): LIBS += $$QMAKE_LIBS_OPENGL
-}
-
-lower_case_includes {
- DEFINES += QT_LOWER_CASE_VG_INCLUDES
-}
-
-CONFIG -= qt
diff --git a/config.tests/unix/shivavg/shivavg.pro b/config.tests/unix/shivavg/shivavg.pro
deleted file mode 100644
index 39d7bcc78a..0000000000
--- a/config.tests/unix/shivavg/shivavg.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-SOURCES += shivavg.cpp
-
-!isEmpty(QMAKE_INCDIR_OPENVG): INCLUDEPATH += $$QMAKE_INCDIR_OPENVG
-!isEmpty(QMAKE_LIBDIR_OPENVG): LIBS += -L$$QMAKE_LIBDIR_OPENVG
-!isEmpty(QMAKE_LIBS_OPENVG): LIBS += $$QMAKE_LIBS_OPENVG
-
-!isEmpty(QMAKE_INCDIR_OPENGL): INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
-!isEmpty(QMAKE_LIBDIR_OPENGL): LIBS += -L$$QMAKE_LIBDIR_OPENGL
-!isEmpty(QMAKE_LIBS_OPENGL): LIBS += $$QMAKE_LIBS_OPENGL
-
-CONFIG -= qt
diff --git a/config_help.txt b/config_help.txt
new file mode 100644
index 0000000000..d9cec53a46
--- /dev/null
+++ b/config_help.txt
@@ -0,0 +1,430 @@
+Usage: configure [options]
+
+Installation options:
+
+ These are optional, but you may specify install directories.
+
+ -prefix <dir> ...... The deployment directory, as seen on the target device.
+ (default /usr/local/Qt-$QT_VERSION, $PWD if -developer-build is active)
+
+ -extprefix <dir> ... The installation directory, as seen on the host machine.
+ (default SYSROOT/PREFIX)
+
+ -hostprefix [dir] .. The installation directory for build tools running on the
+ host machine. If [dir] is not given, the current build
+ directory will be used. (default EXTPREFIX)
+
+ You may use these to change the layout of the install. Note that all directories
+ except -sysconfdir should be located under -prefix/-hostprefix:
+
+ -bindir <dir> ......... User executables will be installed to <dir>
+ (default PREFIX/bin)
+ -headerdir <dir> ...... Headers will be installed to <dir>
+ (default PREFIX/include)
+ -libdir <dir> ......... Libraries will be installed to <dir>
+ (default PREFIX/lib)
+ -archdatadir <dir> .... Arch-dependent data used by Qt will be installed to <dir>
+ (default PREFIX)
+ -plugindir <dir> ...... Plugins will be installed to <dir>
+ (default ARCHDATADIR/plugins)
+ -libexecdir <dir> ..... Program executables will be installed to <dir>
+ (default ARCHDATADIR/libexec, ARCHDATADIR/bin for MinGW)
+ -importdir <dir> ...... Imports for QML1 will be installed to <dir>
+ (default ARCHDATADIR/imports)
+ -qmldir <dir> ......... Imports for QML2 will be installed to <dir>
+ (default ARCHDATADIR/qml)
+ -datadir <dir> ........ Arch-independent data used by Qt will be installed to <dir>
+ (default PREFIX)
+ -docdir <dir> ......... Documentation will be installed to <dir>
+ (default DATADIR/doc)
+ -translationdir <dir> . Translations of Qt programs will be installed to <dir>
+ (default DATADIR/translations)
+ -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
+ (default PREFIX/etc/xdg)
+ -examplesdir <dir> .... Examples will be installed to <dir>
+ (default PREFIX/examples)
+ -testsdir <dir> ....... Tests will be installed to <dir>
+ (default PREFIX/tests)
+
+ -hostbindir <dir> ..... Host executables will be installed to <dir>
+ (default HOSTPREFIX/bin)
+ -hostlibdir <dir> ..... Host libraries will be installed to <dir>
+ (default HOSTPREFIX/lib)
+ -hostdatadir <dir> .... Data used by qmake will be installed to <dir>
+ (default HOSTPREFIX)
+
+Configure options:
+
+ The defaults (*) are usually acceptable. A plus (+) denotes a default value
+ that needs to be evaluated. If the evaluation succeeds, the feature is
+ included. Here is a short explanation of each option:
+
+ * -release ............. Compile and link Qt with debugging turned off.
+ -debug ............... Compile and link Qt with debugging turned on.
+ -debug-and-release ... Compile and link two versions of Qt, with and without
+ debugging turned on (Apple platforms only).
+
+ -force-debug-info .... Create symbol files for release builds.
+
+ -developer-build ..... Compile and link Qt with Qt developer options (including auto-tests exporting)
+
+ * -no-optimized-tools .. Do not build optimized host tools even in debug build.
+ -optimized-tools ..... Build optimized host tools even in debug build.
+
+ -opensource .......... Compile and link the Open-Source Edition of Qt.
+ -commercial .......... Compile and link the Commercial Edition of Qt.
+
+ -confirm-license ..... Automatically acknowledge the license (use with
+ either -opensource or -commercial)
+
+ -c++std <edition> .... Compile Qt with C++ standard edition (c++11, c++14, c++1z)
+ Default: highest supported
+
+ * -shared .............. Create and use shared Qt libraries.
+ -static .............. Create and use static Qt libraries.
+
+ -no-accessibility .... Do not compile Accessibility support.
+ Disabling accessibility is not recommended, as it will break QStyle
+ and may break other internal parts of Qt.
+ With this switch you create a source incompatible version of Qt,
+ which is unsupported.
+ + -accessibility ....... Compile Accessibility support.
+
+ -no-sql-<driver> ..... Disable SQL <driver>.
+ -sql-<driver> Enable SQL <driver> plugin.
+
+ Possible values for <driver>:
+ [db2, ibase, mysql, oci, odbc, psql, sqlite, sqlite2, tds]
+
+ -system-sqlite ....... Use sqlite from the operating system.
+
+ -no-qml-debug ........ Do not build the in-process QML debugging support.
+ + -qml-debug ........... Build the QML debugging support.
+
+ -platform target ..... The operating system and compiler you are building
+ on (default detected from host system).
+
+ See the README file for a list of supported
+ operating systems and compilers.
+
+ -no-sse2 ............. Do not compile with use of SSE2 instructions.
+ -no-sse3 ............. Do not compile with use of SSE3 instructions.
+ -no-ssse3 ............ Do not compile with use of SSSE3 instructions.
+ -no-sse4.1 ........... Do not compile with use of SSE4.1 instructions.
+ -no-sse4.2 ........... Do not compile with use of SSE4.2 instructions.
+ -no-avx .............. Do not compile with use of AVX instructions.
+ -no-avx2 ............. Do not compile with use of AVX2 instructions.
+ -no-avx512 ........... Do not compile with use of AVX512 instructions.
+ -no-mips_dsp ......... Do not compile with use of MIPS DSP instructions.
+ -no-mips_dspr2 ....... Do not compile with use of MIPS DSP rev2 instructions.
+
+ -qtnamespace <name> .. Wraps all Qt library code in 'namespace <name> {...}'.
+ -qtlibinfix <infix> .. Renames all libQt*.so to libQt*<infix>.so.
+
+ -testcocoon .......... Instrument Qt with the TestCocoon code coverage tool.
+ -gcov ................ Instrument Qt with the GCov code coverage tool.
+
+ -D <string> .......... Add an explicit define to the preprocessor.
+ -I <string> .......... Add an explicit include path.
+ -L <string> .......... Add an explicit library path.
+
+ + -pkg-config .......... Use pkg-config to detect include and library paths. By default,
+ configure determines whether to use pkg-config or not with
+ some heuristics such as checking the environment variables.
+ -no-pkg-config ....... Disable use of pkg-config.
+ -force-pkg-config .... Force usage of pkg-config (skips pkg-config usability
+ detection heuristic).
+
+ -help, -h ............ Display this information.
+
+Third Party Libraries:
+
+ -qt-zlib ............. Use the zlib bundled with Qt.
+ + -system-zlib ......... Use zlib from the operating system.
+ See http://www.gzip.org/zlib
+
+ -no-mtdev ............ Do not compile mtdev support.
+ + -mtdev ............... Enable mtdev support.
+
+ + -no-journald ......... Do not send logging output to journald.
+ -journald ............ Send logging output to journald.
+
+ + -no-syslog ........... Do not send logging output to syslog.
+ -syslog .............. Send logging output to syslog.
+
+ -no-gif .............. Do not compile GIF reading support.
+
+ -no-libpng ........... Do not compile PNG support.
+ -qt-libpng ........... Use the libpng bundled with Qt.
+ + -system-libpng ....... Use libpng from the operating system.
+ See http://www.libpng.org/pub/png
+
+ -no-libjpeg .......... Do not compile JPEG support.
+ -qt-libjpeg .......... Use the libjpeg bundled with Qt.
+ + -system-libjpeg ...... Use libjpeg from the operating system.
+ See http://www.ijg.org
+
+ -no-doubleconversion ..... Use sscanf_l and snprintf_l for (imprecise) double conversion.
+ -qt-doubleconversion ..... Use the libdouble-conversion bundled with Qt.
+ + -system-doubleconversion . Use the libdouble-conversion provided by the system.
+ See https://github.com/google/double-conversion
+
+ -no-freetype ......... Do not compile in Freetype2 support.
+ -qt-freetype ......... Use the libfreetype bundled with Qt.
+ + -system-freetype...... Use the libfreetype provided by the system (enabled if -fontconfig is active).
+ See http://www.freetype.org
+
+ -no-harfbuzz ......... Do not compile HarfBuzz-NG support.
+ -qt-harfbuzz ......... Use HarfBuzz-NG bundled with Qt to do text shaping.
+ It can still be disabled by setting
+ the QT_HARFBUZZ environment variable to "old".
+ + -system-harfbuzz ..... Use HarfBuzz-NG from the operating system
+ to do text shaping. It can still be disabled
+ by setting the QT_HARFBUZZ environment variable to "old".
+ See http://www.harfbuzz.org
+
+ -no-openssl .......... Do not compile support for OpenSSL.
+ + -openssl ............. Enable run-time OpenSSL support.
+ -openssl-linked ...... Enabled linked OpenSSL support.
+
+ * -no-libproxy ......... Do not compile support for libproxy
+ -libproxy ............ Use libproxy from the operating system.
+
+ -qt-pcre ............. Use the PCRE library bundled with Qt.
+ + -system-pcre ......... Use the PCRE library from the operating system.
+
+ -qt-xcb .............. Use xcb- libraries bundled with Qt.
+ (libxcb.so will still be used from operating system).
+ + -system-xcb .......... Use xcb- libraries from the operating system.
+
+ -xkb-config-root ..... Set default XKB config root. This option is used only together with -qt-xkbcommon-x11.
+ -qt-xkbcommon-x11 .... Use the xkbcommon library bundled with Qt in combination with xcb.
+ + -system-xkbcommon-x11 Use the xkbcommon library from the operating system in combination with xcb.
+
+ -no-xkbcommon-evdev .. Do not use X-less xkbcommon when compiling libinput support.
+ * -xkbcommon-evdev ..... Use X-less xkbcommon when compiling libinput support.
+
+ -no-xinput2 .......... Do not compile XInput2 support.
+ * -xinput2 ............. Compile XInput2 support.
+
+ -no-xcb-xlib.......... Do not compile Xcb-Xlib support.
+ * -xcb-xlib............. Compile Xcb-Xlib support.
+
+ -no-glib ............. Do not compile Glib support.
+ + -glib ................ Compile Glib support.
+
+ -no-pulseaudio ....... Do not compile PulseAudio support.
+ + -pulseaudio .......... Compile PulseAudio support.
+
+ -no-alsa ............. Do not compile ALSA support.
+ + -alsa ................ Compile ALSA support.
+
+ -no-gtk .............. Do not compile GTK platform theme support.
+ + -gtk ................. Compile GTK platform theme support.
+
+Additional options:
+
+ -make <part> ......... Add part to the list of parts to be built at make time.
+ (defaults to: libs tools examples)
+ -nomake <part> ....... Exclude part from the list of parts to be built.
+
+ -skip <module> ....... Exclude an entire module from the build.
+
+ -no-compile-examples . Install only the sources of examples.
+
+ -no-gui .............. Don't build the Qt GUI module and dependencies.
+ + -gui ................. Build the Qt GUI module and dependencies.
+
+ -no-widgets .......... Don't build the Qt Widgets module and dependencies.
+ + -widgets ............. Build the Qt Widgets module and dependencies.
+
+ -R <string> .......... Add an explicit runtime library path to the Qt
+ libraries.
+ -l <string> .......... Add an explicit library.
+
+ -no-rpath ............ Do not use the library install path as a runtime
+ library path. On Apple platforms, this implies using
+ absolute install names (based in -libdir) for dynamic
+ libraries and frameworks.
+ + -rpath ............... Link Qt libraries and executables using the library
+ install path as a runtime library path. Equivalent
+ to -R install_libpath
+
+ -continue ............ Continue as far as possible if an error occurs.
+
+ -verbose, -v ......... Print verbose information about each step of the
+ configure process.
+
+ -silent .............. Reduce the build output so that warnings and errors
+ can be seen more easily.
+
+ -no-cups ............. Do not compile CUPS support.
+ * -cups ................ Compile CUPS support.
+ Requires cups/cups.h and libcups.so.2.
+
+ -no-iconv ............ Do not compile support for iconv(3).
+ * -iconv ............... Compile support for iconv(3).
+
+ -no-evdev ............ Do not compile support for evdev.
+ * -evdev ............... Compile support for evdev.
+
+ -no-tslib ............ Do not compile support for tslib.
+ * -tslib ............... Compile support for tslib.
+
+ -no-icu .............. Do not compile support for ICU libraries.
+ + -icu ................. Compile support for ICU libraries.
+
+ -no-fontconfig ....... Do not compile FontConfig support.
+ + -fontconfig .......... Compile FontConfig support.
+
+ -no-strip ............ Do not strip binaries and libraries of unneeded symbols.
+ * -strip ............... Strip binaries and libraries of unneeded symbols when installing.
+
+ * -no-pch .............. Do not use precompiled header support.
+ -pch ................. Use precompiled header support.
+
+ * -no-ltcg Do not use Link Time Code Generation
+ -ltcg Use Link Time Code Generation.
+
+ -no-dbus ............. Do not compile the Qt D-Bus module.
+ + -dbus-linked ......... Compile the Qt D-Bus module and link to libdbus-1.
+ -dbus-runtime ........ Compile the Qt D-Bus module and dynamically load libdbus-1.
+
+ -reduce-relocations .. Reduce relocations in the libraries through extra
+ linker optimizations (Qt/X11 and Qt for Embedded Linux only;
+ experimental; needs GNU ld >= 2.18).
+
+ -no-use-gold-linker .. Do not link using the GNU gold linker.
+ + -use-gold-linker ..... Link using the GNU gold linker if available.
+
+ -force-asserts ....... Force Q_ASSERT to be enabled even in release builds.
+
+ -sanitize [address|thread|memory|undefined] Enables the specified compiler sanitizer.
+
+ -device <name> ............... Cross-compile for device <name> (experimental)
+ -device-option <key=value> ... Add device specific options for the device mkspec
+ (experimental)
+
+ -host-option <key=value> ..... Add host specific options for the host mkspec
+
+ * -no-separate-debug-info ...... Do not store debug information in a separate file.
+ -separate-debug-info ......... Strip debug information into a separate file.
+
+ -no-xcb .............. Do not compile Xcb (X protocol C-language Binding) support.
+ * -xcb ................. Compile Xcb support.
+
+ -no-eglfs ............ Do not compile EGLFS (EGL Full Screen/Single Surface) support.
+ * -eglfs ............... Compile EGLFS support.
+
+ -no-kms .............. Do not compile backends for KMS.
+ * -kms ................. Compile backends for KMS.
+
+ -no-gbm .............. Do not compile backends for GBM.
+ * -gbm ................. Compile backends for GBM.
+
+ * -no-directfb ......... Do not compile DirectFB support.
+ -directfb ............ Compile DirectFB support.
+
+ -no-linuxfb .......... Do not compile Linux Framebuffer support.
+ * -linuxfb ............. Compile Linux Framebuffer support.
+
+ * -no-mirclient......... Do not compile Mir client support.
+ -mirclient............ Compile Mir client support.
+
+ -qpa <name> .......... Sets the default QPA platform (e.g xcb, cocoa, windows).
+
+ -xplatform target .... The target platform when cross-compiling.
+
+ -sysroot <dir> ....... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
+ -no-gcc-sysroot ...... When using -sysroot, it disables the passing of --sysroot to the compiler
+
+ -external-hostbindir <path> .. Path to Qt tools built for this machine. Use this when -platform
+ does not match the current system, i.e., to make a Canadian Cross Build.
+
+ -no-feature-<feature> Do not compile in <feature>.
+ -feature-<feature> ... Compile in <feature>. The available features
+ are described in src/corelib/global/qfeatures.txt
+
+ -qreal [double|float] typedef qreal to the specified type. The default is double.
+ Note that changing this flag affects binary compatibility.
+
+ -no-opengl ........... Do not support OpenGL.
+ -opengl <api> ........ Enable OpenGL support
+ With no parameter, this will attempt to auto-detect
+ OpenGL ES 2.0 and higher, or regular desktop OpenGL.
+ Use es2 for <api> to override auto-detection.
+
+ -no-libinput ......... Do not support libinput.
+ * -libinput ............ Enable libinput support.
+
+ -no-gstreamer ........ Do not support GStreamer.
+ + -gstreamer <version> . Enable GStreamer support
+ With no parameter, this will attempt to auto-detect GStreamer 0.10 and
+ 1.0. GStreamer 1.0 is used by default when available.
+ Use 0.10 or 1.0 for <version> to override auto-detection.
+
+ -no-system-proxies ... Do not use system network proxies by default.
+ * -system-proxies ...... Use system network proxies by default.
+
+ -no-warnings-are-errors Make warnings be treated normally
+ -warnings-are-errors Make warnings be treated as errors
+ (enabled if -developer-build is active)
+
+QNX options:
+
+ -no-slog2 ........... Do not compile with slog2 support.
+ -slog2 .............. Compile with slog2 support.
+
+ -no-pps ............. Do not compile with pps support.
+ -pps ................ Compile with pps support.
+
+ -no-imf ............. Do not compile with imf support.
+ -imf ................ Compile with imf support.
+
+ -no-lgmon ........... Do not compile with lgmon support.
+ -lgmon .............. Compile with lgmon support.
+
+Apple platform options:
+
+ -Fstring ............ Add an explicit framework path.
+ -fw string .......... Add an explicit framework.
+
+ * -framework .......... Build Qt as a series of frameworks and
+ link tools against those frameworks.
+ -no-framework ....... Do not build Qt as a series of frameworks.
+
+ * -securetransport .... Use SecureTransport instead of OpenSSL
+
+ -no-securetransport . Do not use SecureTransport, either use OpenSSL or do not use any SSL backend
+ at all (if combined with -no-openssl).
+
+ -sdk <sdk> .......... Build Qt using Apple provided SDK <sdk>. The argument should be
+ one of the available SDKs as listed by 'xcodebuild -showsdks'.
+ Note that the argument applies only to Qt libraries and applications built
+ using the target mkspec - not host tools such as qmake, moc, rcc, etc.
+
+Android options:
+
+ -android-sdk path .............. The Android SDK root path.
+ (default $ANDROID_SDK_ROOT)
+
+ -android-ndk path .............. The Android NDK root path.
+ (default $ANDROID_NDK_ROOT)
+
+ -android-ndk-platform .......... Sets the android platform
+
+ -android-ndk-host .............. Sets the android NDK host (linux-x86, linux-x86_64, etc.)
+ (default $ANDROID_NDK_HOST)
+
+ -android-arch .................. Sets the android architecture (armeabi, armeabi-v7a, x86, mips,
+ arm64-v8a, x86_64, mips64)
+
+ -android-toolchain-version ..... Sets the android toolchain version
+
+ -no-android-style-assets ....... Do not compile in the code which automatically extracts
+ style assets from the run-time device. Setting this will
+ make the Android style behave incorrectly, but will enable
+ compatibility with the LGPL2.1 license.
+ * -android-style-assets .......... Compile the code which automatically extracts style assets
+ from the run-time device. This option will make the
+ Android platform plugin incompatible with the LGPL2.1.
diff --git a/configure b/configure
index 6ba6c58f30..b17f02e113 100755
--- a/configure
+++ b/configure
@@ -92,12 +92,9 @@ done
# initialize global variables
CONFIG_SEPARATORS=`printf ' \t'`
-QMAKE_SWITCHES=
-QMAKE_VARS=
QMAKE_CONFIG=
QTCONFIG_CONFIG=
QT_CONFIG=
-SUPPORTED=
QMAKE_VARS_FILE=.qmake.vars
DEVICE_VARS_FILE=.device.vars
HOST_VARS_FILE=.host.vars
@@ -302,6 +299,12 @@ macSDKify()
iphonesimulator*)
version_min_flag="-mios-simulator-version-min=$(getSingleQMakeVariable QMAKE_IOS_DEPLOYMENT_TARGET "$1")"
;;
+ appletvos*)
+ version_min_flag="-mappletvos-version-min=$(getSingleQMakeVariable QMAKE_TVOS_DEPLOYMENT_TARGET "$1")"
+ ;;
+ appletvsimulator*)
+ version_min_flag="-mtvos-simulator-version-min=$(getSingleQMakeVariable QMAKE_TVOS_DEPLOYMENT_TARGET "$1")"
+ ;;
*)
;;
esac
@@ -626,7 +629,6 @@ CFG_PROFILE=no
CFG_STRIP=yes
CFG_GUI=auto # (yes|no|auto)
CFG_WIDGETS=yes
-CFG_QCONFIG=full
CFG_DEBUG=auto
CFG_MYSQL_CONFIG=
CFG_PSQL_CONFIG=
@@ -635,28 +637,18 @@ CFG_FORCEDEBUGINFO=no
CFG_RELEASE_TOOLS=no
CFG_SHARED=yes
CFG_SM=auto
-CFG_XSHAPE=auto
-CFG_XSYNC=auto
-CFG_XFIXES=runtime
-CFG_ZLIB=auto
+CFG_SYSTEM_ZLIB=auto
CFG_MTDEV=auto
CFG_JOURNALD=no
CFG_SYSLOG=no
CFG_SQLITE=qt
-CFG_GIF=auto
+CFG_GIF=yes
CFG_PNG=yes
CFG_LIBPNG=auto
-CFG_JPEG=auto
+CFG_JPEG=yes
CFG_LIBJPEG=auto
-CFG_XCURSOR=runtime
-CFG_XRANDR=runtime
CFG_XRENDER=auto
-CFG_MITSHM=auto
CFG_OPENGL=auto
-CFG_OPENVG=auto
-CFG_OPENVG_LC_INCLUDES=no
-CFG_OPENVG_SHIVA=auto
-CFG_OPENVG_ON_OPENGL=auto
CFG_EGL=auto
CFG_EGL_X=auto
CFG_DOUBLECONVERSION=auto
@@ -670,7 +662,6 @@ CFG_BUILD_PARTS=""
CFG_NOBUILD_PARTS=""
CFG_SKIP_MODULES=""
CFG_COMPILE_EXAMPLES=yes
-CFG_AUDIO_BACKEND=auto
CFG_QML_DEBUG=yes
CFG_PKGCONFIG=auto
CFG_STACK_PROTECTOR_STRONG=auto
@@ -678,11 +669,11 @@ CFG_SLOG2=auto
CFG_PPS=auto
CFG_QNX_IMF=auto
CFG_LGMON=auto
-CFG_SYSTEM_PROXIES=no
+CFG_SYSTEM_PROXIES=yes
CFG_ANDROID_STYLE_ASSETS=yes
CFG_GSTREAMER=auto
CFG_GSTREAMER_VERSION=""
-CFG_ATOMIC64=auto
+CFG_STD_ATOMIC64=auto
# Target architecture
CFG_ARCH=
@@ -690,8 +681,6 @@ CFG_CPUFEATURES=
# Host architecture, same as CFG_ARCH when not cross-compiling
CFG_HOST_ARCH=
CFG_HOST_CPUFEATURES=
-# Set when the -arch or -host-arch arguments are used
-OPT_OBSOLETE_HOST_ARG=no
CFG_USE_GNUMAKE=no
CFG_XINPUT2=auto
@@ -716,7 +705,6 @@ CFG_KMS=auto
CFG_MIRCLIENT=auto
CFG_LIBUDEV=auto
CFG_LIBINPUT=auto
-CFG_OBSOLETE_WAYLAND=no
CFG_EVDEV=auto
CFG_TSLIB=auto
CFG_CUPS=auto
@@ -724,9 +712,9 @@ CFG_ICONV=auto
CFG_DBUS=auto
CFG_GLIB=auto
CFG_GTK=auto
-CFG_LARGEFILE=auto
+CFG_LARGEFILE=yes
CFG_OPENSSL=auto
-CFG_LIBPROXY=auto
+CFG_LIBPROXY=no
CFG_SECURETRANSPORT=auto
CFG_PRECOMPILE=auto
CFG_LTCG=no
@@ -770,8 +758,9 @@ RPATH_FLAGS=
W_FLAGS=
QCONFIG_FLAGS=
XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
-XPLATFORM_MAC=no # Whether target platform is OS X or iOS
+XPLATFORM_MAC=no # Whether target platform is OS X, iOS or tvOS
XPLATFORM_IOS=no # Whether target platform is iOS
+XPLATFORM_TVOS=no # Whether target platform is tvOS
XPLATFORM_ANDROID=no
XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
XPLATFORM_QNX=no
@@ -795,7 +784,6 @@ CFG_SANITIZE_THREAD=no
CFG_SANITIZE_MEMORY=no
CFG_SANITIZE_UNDEFINED=no
CFG_PCRE=auto
-QPA_PLATFORM_GUARD=yes
CFG_STDCXX=auto
CFG_DIRECTWRITE=no
CFG_DIRECTWRITE2=auto
@@ -804,7 +792,6 @@ CFG_HEADERSCLEAN=auto
CFG_QREAL=double
OPT_MAC_SDK=
COMMERCIAL_USER=ask
-LICENSE_FILE=
CFG_DEV=no
# initalize variables used for installation
@@ -832,23 +819,23 @@ QT_HOST_DATA=
QT_EXT_PREFIX=
#flags for SQL drivers
-QT_CFLAGS_PSQL=
-QT_LFLAGS_PSQL=
-QT_CFLAGS_MYSQL=
-QT_LFLAGS_MYSQL=
-QT_LFLAGS_MYSQL_R=
-QT_CFLAGS_SQLITE=
-QT_LFLAGS_SQLITE=
-QT_LFLAGS_ODBC="-lodbc"
-QT_LFLAGS_TDS=
+QMAKE_CFLAGS_PSQL=
+QMAKE_LIBS_PSQL=
+QMAKE_CFLAGS_MYSQL=
+QMAKE_LIBS_MYSQL=
+QMAKE_LIBS_MYSQL_R=
+QMAKE_CFLAGS_SQLITE=
+QMAKE_LIBS_SQLITE=
+QMAKE_LIBS_ODBC="-lodbc"
+QMAKE_LIBS_TDS=
# flags for libdbus-1
-QT_CFLAGS_DBUS=
-QT_LIBS_DBUS=
+QMAKE_CFLAGS_DBUS=
+QMAKE_LIBS_DBUS=
# flags for Glib (X11 only)
-QT_CFLAGS_GLIB=
-QT_LIBS_GLIB=
+QMAKE_CFLAGS_GLIB=
+QMAKE_LIBS_GLIB=
# default qpa platform
QT_QPA_DEFAULT_PLATFORM=
@@ -865,11 +852,6 @@ CFG_DEFAULT_ANDROID_NDK_HOST=$ANDROID_NDK_HOST
# check SQL drivers available in this package
#-------------------------------------------------------------------------------
-# opensource version removes some drivers, so force them to be off
-CFG_SQL_tds=no
-CFG_SQL_oci=no
-CFG_SQL_db2=no
-
CFG_SQL_AVAILABLE=
if [ -d "$relpath/src/plugins/sqldrivers" ]; then
for a in "$relpath/src/plugins/sqldrivers/"*; do
@@ -881,16 +863,6 @@ if [ -d "$relpath/src/plugins/sqldrivers" ]; then
done
fi
-CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
-if [ -d "$relpath/src/plugins/imageformats" ]; then
- for a in "$relpath/src/plugins/imageformats/"*; do
- if [ -d "$a" ]; then
- base_a=`basename "$a"`
- CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
- fi
- done
-fi
-
#-------------------------------------------------------------------------------
# parse command line arguments
#-------------------------------------------------------------------------------
@@ -953,7 +925,6 @@ while [ "$#" -gt 0 ]; do
-extprefix| \
-sysroot| \
-external-hostbindir| \
- -depths| \
-make| \
-nomake| \
-skip| \
@@ -963,13 +934,10 @@ while [ "$#" -gt 0 ]; do
-device-option| \
-host-option| \
-sdk| \
- -arch| \
- -host-arch| \
-c++std | \
-mysql_config| \
-psql_config| \
-qpa| \
- -qconfig| \
-qreal| \
-sanitize| \
-xkb-config-root| \
@@ -1016,16 +984,6 @@ while [ "$#" -gt 0 ]; do
VAL=$1
fi
;;
- -openvg)
- VAR=openvg
- # this option may or may not be followed by an argument
- if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
- VAL=yes
- else
- shift;
- VAL=$1
- fi
- ;;
-gstreamer)
VAR=gstreamer
# this option may or may not be followed by an argument
@@ -1065,16 +1023,6 @@ while [ "$#" -gt 0 ]; do
VAL=`echo $1 | sed 's,-D,,'`
fi
;;
- -fpu)
- VAR="fpu"
- # this option may or may not be followed by an argument
- if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
- VAL=no
- else
- shift
- VAL=$1
- fi
- ;;
-I?*|-I)
VAR="add_ipath"
if [ "$1" = "-I" ]; then
@@ -1151,9 +1099,6 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
- license)
- LICENSE_FILE="$VAL"
- ;;
gnumake)
CFG_USE_GNUMAKE="$VAL"
;;
@@ -1233,9 +1178,6 @@ while [ "$#" -gt 0 ]; do
testsdir)
QT_INSTALL_TESTS="$VAL"
;;
- qconfig)
- CFG_QCONFIG="$VAL"
- ;;
qreal)
CFG_QREAL="$VAL"
if [ "$CFG_QREAL" = "float" ]; then
@@ -1300,13 +1242,6 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
- openvg)
- if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
- CFG_OPENVG="$VAL"
- else
- UNKNOWN_OPT=yes
- fi
- ;;
nomake)
if [ -n "${QT_ALL_BUILD_PARTS%%* $VAL *}" ]; then
echo "Unknown part $VAL passed to -nomake." >&2
@@ -1348,9 +1283,6 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
- arch|host-arch)
- OPT_OBSOLETE_HOST_ARG=yes
- ;;
harfbuzz)
[ "$VAL" = "yes" ] && VAL=qt
if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
@@ -1373,7 +1305,6 @@ while [ "$#" -gt 0 ]; do
QMakeVar add QMAKE_CFLAGS -pg
QMakeVar add QMAKE_CXXFLAGS -pg
QMakeVar add QMAKE_LFLAGS -pg
- QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
else
UNKNOWN_OPT=yes
fi
@@ -1397,48 +1328,6 @@ while [ "$#" -gt 0 ]; do
;;
platform)
PLATFORM="$VAL"
- # keep compatibility with old platform names
- case $PLATFORM in
- aix-64)
- PLATFORM=aix-xlc-64
- ;;
- hpux-o64)
- PLATFORM=hpux-acc-o64
- ;;
- hpux-n64)
- PLATFORM=hpux-acc-64
- ;;
- hpux-acc-n64)
- PLATFORM=hpux-acc-64
- ;;
- irix-n32)
- PLATFORM=irix-cc
- ;;
- irix-64)
- PLATFORM=irix-cc-64
- ;;
- irix-cc-n64)
- PLATFORM=irix-cc-64
- ;;
- reliant-64)
- PLATFORM=reliant-cds-64
- ;;
- solaris-64)
- PLATFORM=solaris-cc-64
- ;;
- openunix-cc)
- PLATFORM=unixware-cc
- ;;
- openunix-g++)
- PLATFORM=unixware-g++
- ;;
- unixware7-cc)
- PLATFORM=unixware-cc
- ;;
- unixware7-g++)
- PLATFORM=unixware-g++
- ;;
- esac
;;
xplatform)
XPLATFORM="$VAL"
@@ -1558,20 +1447,6 @@ while [ "$#" -gt 0 ]; do
fi
;;
- xshape)
- if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
- CFG_XSHAPE="$VAL"
- else
- UNKNOWN_OPT=yes
- fi
- ;;
- xsync)
- if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
- CFG_XSYNC="$VAL"
- else
- UNKNOWN_OPT=yes
- fi
- ;;
xinput2)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
CFG_XINPUT2="$VAL"
@@ -1700,14 +1575,13 @@ while [ "$#" -gt 0 ]; do
fi
;;
zlib)
- [ "$VAL" = "qt" ] && VAL=yes
- if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
- CFG_ZLIB="$VAL"
+ if [ "$VAL" = "system" ]; then
+ CFG_SYSTEM_ZLIB="yes"
+ elif [ "$VAL" = "qt" ]; then
+ CFG_SYSTEM_ZLIB="no"
else
UNKNOWN_OPT=yes
fi
- # No longer supported:
- #[ "$VAL" = "no" ] && CFG_LIBPNG=no
;;
mtdev)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
@@ -1753,27 +1627,6 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
- xcursor)
- if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
- CFG_XCURSOR="$VAL"
- else
- UNKNOWN_OPT=yes
- fi
- ;;
- xfixes)
- if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
- CFG_XFIXES="$VAL"
- else
- UNKNOWN_OPT=yes
- fi
- ;;
- xrandr)
- if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
- CFG_XRANDR="$VAL"
- else
- UNKNOWN_OPT=yes
- fi
- ;;
xrender)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
CFG_XRENDER="$VAL"
@@ -1781,13 +1634,6 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
- mitshm)
- if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
- CFG_MITSHM="$VAL"
- else
- UNKNOWN_OPT=yes
- fi
- ;;
doubleconversion)
if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
CFG_DOUBLECONVERSION="$VAL"
@@ -1848,9 +1694,6 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
- wayland)
- CFG_OBSOLETE_WAYLAND=yes
- ;;
eglfs)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
CFG_EGLFS="$VAL"
@@ -2022,7 +1865,7 @@ while [ "$#" -gt 0 ]; do
;;
qpa-platform-guard)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
- QPA_PLATFORM_GUARD="$VAL"
+ echo "WARNING: The [-no]-qpa-platform-guard argument is deprecated and has no effect."
else
UNKNOWN_OPT=yes
fi
@@ -2051,13 +1894,6 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
- largefile)
- if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
- CFG_LARGEFILE="$VAL"
- else
- UNKNOWN_OPT=yes
- fi
- ;;
openssl)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
CFG_OPENSSL="$VAL"
@@ -2111,12 +1947,11 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
- sql-*|imageformat-*)
- # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
- # if autoconf style options were used, $VAL can be "yes" or "no"
- [ "$VAL" = "yes" ] && VAL=qt
- # now $VAL should be "no", "qt", or "plugin"... double-check
- if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
+ sql-*)
+ # if Qt style options were used, $VAL can be "no", "yes", or "plugin", plugin for backwards compatibility
+ [ "$VAL" = "plugin" ] && VAL=yes
+ # now $VAL should be "yes" or "no"... double-check
+ if [ "$VAL" != "no" ] && [ "$VAL" != "yes" ]; then
UNKNOWN_OPT=yes
fi
# now $VAL is "no", "qt", or "plugin"
@@ -2124,27 +1959,9 @@ while [ "$#" -gt 0 ]; do
VAL=`echo $VAR | sed 's,^[^-]*-\([^-]*\).*,\1,'`
VAR=`echo $VAR | sed 's,^\([^-]*\).*,\1,'`
- # Grab the available values
- case "$VAR" in
- sql)
- avail="$CFG_SQL_AVAILABLE"
- ;;
- imageformat)
- avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
- if [ "$OPT" != "plugin" ]; then
- # png is always built in
- avail="$avail png"
- fi
- ;;
- *)
- avail=""
- echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
- ;;
- esac
-
# Check that that user's value is available.
found=no
- for d in $avail; do
+ for d in $CFG_SQL_AVAILABLE; do
if [ "$VAL" = "$d" ]; then
found=yes
break
@@ -2156,42 +1973,14 @@ while [ "$#" -gt 0 ]; do
continue
fi
- if [ "$VAR" = "sql" ]; then
- # set the CFG_SQL_driver
- eval "CFG_SQL_$VAL=\$OPT"
- continue
- elif [ "$VAR" = "imageformat" ]; then
- [ "$OPT" = "qt" ] && OPT=yes
- VAL="`echo $VAL |tr a-z A-Z`"
- eval "CFG_$VAL=$OPT"
- continue
- fi
-
- if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
- if [ "$OPT" = "plugin" ]; then
- VAR="${VAR}-${OPT}"
- fi
- QMakeVar add "${VAR}s" "${VAL}"
- elif [ "$OPT" = "no" ]; then
- PLUG_VAR="${VAR}-plugin"
- IN_VAR="${VAR}"
- QMakeVar del "${IN_VAR}s" "$VAL"
- QMakeVar del "${PLUG_VAR}s" "$VAL"
- fi
+ # set the CFG_SQL_driver
+ eval "CFG_SQL_$VAL=\$OPT"
;;
v|verbose)
if [ "$VAL" = "yes" ]; then
- if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
- QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
- else
- OPT_VERBOSE=yes
- fi
+ OPT_VERBOSE=yes
elif [ "$VAL" = "no" ]; then
- if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
- QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed 's, -d,,'`
- else
- OPT_VERBOSE=no
- fi
+ OPT_VERBOSE=no
else
UNKNOWN_OPT=yes
fi
@@ -2241,13 +2030,6 @@ while [ "$#" -gt 0 ]; do
silent)
CFG_SILENT="$VAL"
;;
- audio-backend)
- if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
- CFG_AUDIO_BACKEND="$VAL"
- else
- UNKNOWN_OPT=yes
- fi
- ;;
icu)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
CFG_ICU="$VAL"
@@ -2380,453 +2162,9 @@ done
#-------------------------------------------------------------------------------
if [ "$OPT_HELP" = "yes" ]; then
- cat <<EOF
-Usage: $relconf [options]
-
-Installation options:
-
- These are optional, but you may specify install directories.
-
- -prefix <dir> ...... The deployment directory, as seen on the target device.
- (default /usr/local/Qt-${QT_VERSION}, \$PWD if -developer-build is active)
-
- -extprefix <dir> ... The installation directory, as seen on the host machine.
- (default SYSROOT/PREFIX)
-
- -hostprefix [dir] .. The installation directory for build tools running on the
- host machine. If [dir] is not given, the current build
- directory will be used. (default EXTPREFIX)
-
- You may use these to change the layout of the install. Note that all directories
- except -sysconfdir should be located under -prefix/-hostprefix:
-
- -bindir <dir> ......... User executables will be installed to <dir>
- (default PREFIX/bin)
- -headerdir <dir> ...... Headers will be installed to <dir>
- (default PREFIX/include)
- -libdir <dir> ......... Libraries will be installed to <dir>
- (default PREFIX/lib)
- -archdatadir <dir> .... Arch-dependent data used by Qt will be installed to <dir>
- (default PREFIX)
- -plugindir <dir> ...... Plugins will be installed to <dir>
- (default ARCHDATADIR/plugins)
- -libexecdir <dir> ..... Program executables will be installed to <dir>
- (default ARCHDATADIR/libexec, ARCHDATADIR/bin for MinGW)
- -importdir <dir> ...... Imports for QML1 will be installed to <dir>
- (default ARCHDATADIR/imports)
- -qmldir <dir> ......... Imports for QML2 will be installed to <dir>
- (default ARCHDATADIR/qml)
- -datadir <dir> ........ Arch-independent data used by Qt will be installed to <dir>
- (default PREFIX)
- -docdir <dir> ......... Documentation will be installed to <dir>
- (default DATADIR/doc)
- -translationdir <dir> . Translations of Qt programs will be installed to <dir>
- (default DATADIR/translations)
- -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
- (default PREFIX/etc/xdg)
- -examplesdir <dir> .... Examples will be installed to <dir>
- (default PREFIX/examples)
- -testsdir <dir> ....... Tests will be installed to <dir>
- (default PREFIX/tests)
-
- -hostbindir <dir> .. Host executables will be installed to <dir>
- (default HOSTPREFIX/bin)
- -hostlibdir <dir> .. Host libraries will be installed to <dir>
- (default HOSTPREFIX/lib)
- -hostdatadir <dir> . Data used by qmake will be installed to <dir>
- (default HOSTPREFIX)
-
-Configure options:
-
- The defaults (*) are usually acceptable. A plus (+) denotes a default value
- that needs to be evaluated. If the evaluation succeeds, the feature is
- included. Here is a short explanation of each option:
-
- * -release ........... Compile and link Qt with debugging turned off.
- -debug ............. Compile and link Qt with debugging turned on.
- -debug-and-release . Compile and link two versions of Qt, with and without
- debugging turned on (Mac only).
-
- -force-debug-info .. Create symbol files for release builds.
-
- -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
-
- * -no-optimized-tools ... Do not build optimized host tools even in debug build.
- -optimized-tools ...... Build optimized host tools even in debug build.
-
- -opensource ........ Compile and link the Open-Source Edition of Qt.
- -commercial ........ Compile and link the Commercial Edition of Qt.
-
- -confirm-license ... Automatically acknowledge the license (use with
- either -opensource or -commercial)
-
- -c++std <edition> .. Compile Qt with C++ standard edition (c++11, c++14, c++1z)
- Default: highest supported
-
- * -shared ............ Create and use shared Qt libraries.
- -static ............ Create and use static Qt libraries.
-
- -no-largefile ...... Disables large file support.
- + -largefile ......... Enables Qt to access files larger than 4 GB.
-
- -no-accessibility .. Do not compile Accessibility support.
- Disabling accessibility is not recommended, as it will break QStyle
- and may break other internal parts of Qt.
- With this switch you create a source incompatible version of Qt,
- which is unsupported.
- + -accessibility ..... Compile Accessibility support.
-
- -no-sql-<driver> ... Disable SQL <driver> entirely.
- -qt-sql-<driver> ... Enable a SQL <driver> in the Qt SQL module, by default
- none are turned on.
- -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
- at run time.
-
- Possible values for <driver>:
- [$CFG_SQL_AVAILABLE ]
-
- -system-sqlite ..... Use sqlite from the operating system.
-
- -no-qml-debug ...... Do not build the in-process QML debugging support.
- + -qml-debug ......... Build the QML debugging support.
-
- -platform target ... The operating system and compiler you are building
- on (default detected from host system).
-
- See the README file for a list of supported
- operating systems and compilers.
-
- -no-sse2 ........... Do not compile with use of SSE2 instructions.
- -no-sse3 ........... Do not compile with use of SSE3 instructions.
- -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
- -no-sse4.1 ......... Do not compile with use of SSE4.1 instructions.
- -no-sse4.2 ......... Do not compile with use of SSE4.2 instructions.
- -no-avx ............ Do not compile with use of AVX instructions.
- -no-avx2 ........... Do not compile with use of AVX2 instructions.
- -no-avx512 ......... Do not compile with use of AVX512 instructions.
- -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
- -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
-
- -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
- -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
-
- -testcocoon ........ Instrument Qt with the TestCocoon code coverage tool.
- -gcov .............. Instrument Qt with the GCov code coverage tool.
-
- -D <string> ........ Add an explicit define to the preprocessor.
- -I <string> ........ Add an explicit include path.
- -L <string> ........ Add an explicit library path.
-
- + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
- configure determines whether to use pkg-config or not with
- some heuristics such as checking the environment variables.
- -no-pkg-config ..... Disable use of pkg-config.
- -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
- detection heuristic).
-
- -help, -h .......... Display this information.
-
-Third Party Libraries:
-
- -qt-zlib ............ Use the zlib bundled with Qt.
- + -system-zlib ........ Use zlib from the operating system.
- See http://www.gzip.org/zlib
-
- -no-mtdev ........... Do not compile mtdev support.
- + -mtdev .............. Enable mtdev support.
-
- + -no-journald ........ Do not send logging output to journald.
- -journald ........... Send logging output to journald.
-
- + -no-syslog .......... Do not send logging output to syslog.
- -syslog ............. Send logging output to syslog.
-
- -no-gif ............. Do not compile GIF reading support.
-
- -no-libpng .......... Do not compile PNG support.
- -qt-libpng .......... Use the libpng bundled with Qt.
- + -system-libpng ...... Use libpng from the operating system.
- See http://www.libpng.org/pub/png
-
- -no-libjpeg ......... Do not compile JPEG support.
- -qt-libjpeg ......... Use the libjpeg bundled with Qt.
- + -system-libjpeg ..... Use libjpeg from the operating system.
- See http://www.ijg.org
-
- -no-doubleconversion ..... Use sscanf_l and snprintf_l for (imprecise) double conversion.
- -qt-doubleconversion ..... Use the libdouble-conversion bundled with Qt.
- + -system-doubleconversion . Use the libdouble-conversion provided by the system.
- See https://github.com/google/double-conversion
-
- -no-freetype ........ Do not compile in Freetype2 support.
- -qt-freetype ........ Use the libfreetype bundled with Qt.
- + -system-freetype..... Use the libfreetype provided by the system (enabled if -fontconfig is active).
- See http://www.freetype.org
-
- -no-harfbuzz ........ Do not compile HarfBuzz-NG support.
- -qt-harfbuzz ........ Use HarfBuzz-NG bundled with Qt to do text shaping.
- It can still be disabled by setting
- the QT_HARFBUZZ environment variable to "old".
- + -system-harfbuzz .... Use HarfBuzz-NG from the operating system
- to do text shaping. It can still be disabled
- by setting the QT_HARFBUZZ environment variable to "old".
- See http://www.harfbuzz.org
-
- -no-openssl ......... Do not compile support for OpenSSL.
- + -openssl ............ Enable run-time OpenSSL support.
- -openssl-linked ..... Enabled linked OpenSSL support.
-
- -no-libproxy ....... Do not compile support for libproxy
- + -libproxy .......... Use libproxy from the operating system.
-
- -qt-pcre ............ Use the PCRE library bundled with Qt.
- + -system-pcre ........ Use the PCRE library from the operating system.
-
- -qt-xcb ............. Use xcb- libraries bundled with Qt.
- (libxcb.so will still be used from operating system).
- + -system-xcb ......... Use xcb- libraries from the operating system.
-
- -xkb-config-root .... Set default XKB config root. This option is used only together with -qt-xkbcommon-x11.
- -qt-xkbcommon-x11 ... Use the xkbcommon library bundled with Qt in combination with xcb.
- + -system-xkbcommon-x11 Use the xkbcommon library from the operating system in combination with xcb.
-
- -no-xkbcommon-evdev . Do not use X-less xkbcommon when compiling libinput support.
- * -xkbcommon-evdev .... Use X-less xkbcommon when compiling libinput support.
-
- -no-xinput2 ......... Do not compile XInput2 support.
- * -xinput2 ............ Compile XInput2 support.
-
- -no-xcb-xlib......... Do not compile Xcb-Xlib support.
- * -xcb-xlib............ Compile Xcb-Xlib support.
-
- -no-glib ............ Do not compile Glib support.
- + -glib ............... Compile Glib support.
-
- -no-pulseaudio ...... Do not compile PulseAudio support.
- + -pulseaudio ......... Compile PulseAudio support.
-
- -no-alsa ............ Do not compile ALSA support.
- + -alsa ............... Compile ALSA support.
-
- -no-gtk ............. Do not compile GTK platform theme support.
- + -gtk ................ Compile GTK platform theme support.
-
-Additional options:
-
- -make <part> ....... Add part to the list of parts to be built at make time.
- (defaults to: $QT_DEFAULT_BUILD_PARTS)
- -nomake <part> ..... Exclude part from the list of parts to be built.
-
- -skip <module> ..... Exclude an entire module from the build.
-
- -no-compile-examples ... Install only the sources of examples.
-
- -no-gui ............ Don't build the Qt GUI module and dependencies.
- + -gui ............... Build the Qt GUI module and dependencies.
-
- -no-widgets ........ Don't build the Qt Widgets module and dependencies.
- + -widgets ........... Build the Qt Widgets module and dependencies.
-
- -R <string> ........ Add an explicit runtime library path to the Qt
- libraries.
- -l <string> ........ Add an explicit library.
-
- -no-rpath .......... Do not use the library install path as a runtime
- library path. On Apple platforms, this implies using
- absolute install names (based in -libdir) for dynamic
- libraries and frameworks.
- + -rpath ............. Link Qt libraries and executables using the library
- install path as a runtime library path. Equivalent
- to -R install_libpath
-
- -continue .......... Continue as far as possible if an error occurs.
-
- -verbose, -v ....... Print verbose information about each step of the
- configure process.
-
- -silent ............ Reduce the build output so that warnings and errors
- can be seen more easily.
-
- -no-cups ........... Do not compile CUPS support.
- * -cups .............. Compile CUPS support.
- Requires cups/cups.h and libcups.so.2.
-
- -no-iconv .......... Do not compile support for iconv(3).
- * -iconv ............. Compile support for iconv(3).
-
- -no-evdev .......... Do not compile support for evdev.
- * -evdev ............. Compile support for evdev.
-
- -no-tslib .......... Do not compile support for tslib.
- * -tslib ............. Compile support for tslib.
-
- -no-icu ............ Do not compile support for ICU libraries.
- + -icu ............... Compile support for ICU libraries.
-
- -no-fontconfig ..... Do not compile FontConfig support.
- + -fontconfig ........ Compile FontConfig support.
-
- -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
- * -strip ............. Strip binaries and libraries of unneeded symbols when installing.
-
- * -no-pch ............ Do not use precompiled header support.
- -pch ............... Use precompiled header support.
-
- * -no-ltcg Do not use Link Time Code Generation
- -ltcg Use Link Time Code Generation.
-
- -no-dbus ........... Do not compile the Qt D-Bus module.
- + -dbus-linked ....... Compile the Qt D-Bus module and link to libdbus-1.
- -dbus-runtime ...... Compile the Qt D-Bus module and dynamically load libdbus-1.
-
- -reduce-relocations ..... Reduce relocations in the libraries through extra
- linker optimizations (Qt/X11 and Qt for Embedded Linux only;
- experimental; needs GNU ld >= 2.18).
-
- -no-use-gold-linker ..... Do not link using the GNU gold linker.
- + -use-gold-linker ........ Link using the GNU gold linker if available.
-
- -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
-
- -sanitize [address|thread|memory|undefined] Enables the specified compiler sanitizer.
-
- -device <name> ............... Cross-compile for device <name> (experimental)
- -device-option <key=value> ... Add device specific options for the device mkspec
- (experimental)
-
- -host-option <key=value> ..... Add host specific options for the host mkspec
-
- * -no-separate-debug-info . Do not store debug information in a separate file.
- -separate-debug-info .... Strip debug information into a separate file.
-
- -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
- * -xcb ............... Compile Xcb support.
-
- -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
- * -eglfs ............. Compile EGLFS support.
-
- -no-kms ............ Do not compile backends for KMS.
- * -kms ............... Compile backends for KMS.
-
- -no-gbm ............ Do not compile backends for GBM.
- * -gbm ............... Compile backends for GBM.
-
- * -no-directfb ....... Do not compile DirectFB support.
- -directfb .......... Compile DirectFB support.
-
- -no-linuxfb ........ Do not compile Linux Framebuffer support.
- * -linuxfb ........... Compile Linux Framebuffer support.
-
- * -no-mirclient....... Do not compile Mir client support.
- -mirclient.......... Compile Mir client support.
-
- -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
-
- -xplatform target ... The target platform when cross-compiling.
-
- -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
- -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
-
- -external-hostbindir <path> .. Path to Qt tools built for this machine. Use this when -platform
- does not match the current system, i.e., to make a Canadian Cross Build.
-
- -no-feature-<feature> Do not compile in <feature>.
- -feature-<feature> .. Compile in <feature>. The available features
- are described in src/corelib/global/qfeatures.txt
-
- -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
- default ($CFG_QCONFIG).
-
- -qreal [double|float] typedef qreal to the specified type. The default is double.
- Note that changing this flag affects binary compatibility.
-
- -no-opengl .......... Do not support OpenGL.
- -opengl <api> ....... Enable OpenGL support
- With no parameter, this will attempt to auto-detect
- OpenGL ES 2.0 and higher, or regular desktop OpenGL.
- Use es2 for <api> to override auto-detection.
-
- -no-libinput ........ Do not support libinput.
- * -libinput ........... Enable libinput support.
-
- -no-gstreamer ....... Do not support GStreamer.
- + -gstreamer <version> Enable GStreamer support
- With no parameter, this will attempt to auto-detect GStreamer 0.10 and
- 1.0. GStreamer 1.0 is used by default when available.
- Use 0.10 or 1.0 for <version> to override auto-detection.
-
- * -no-system-proxies .. Do not use system network proxies by default.
- -system-proxies ..... Use system network proxies by default.
-
- -no-warnings-are-errors Make warnings be treated normally
- -warnings-are-errors Make warnings be treated as errors
- (enabled if -developer-build is active)
-
-QNX options:
-
- -no-slog2 .......... Do not compile with slog2 support.
- -slog2 ............. Compile with slog2 support.
-
- -no-pps ............ Do not compile with pps support.
- -pps ............... Compile with pps support.
-
- -no-imf ............ Do not compile with imf support.
- -imf ............... Compile with imf support.
-
- -no-lgmon .......... Do not compile with lgmon support.
- -lgmon ............. Compile with lgmon support.
-
-MacOS/iOS options:
-
- -Fstring ........... Add an explicit framework path.
- -fw string ......... Add an explicit framework.
-
- * -framework ......... Build Qt as a series of frameworks and
- link tools against those frameworks.
- -no-framework ...... Do not build Qt as a series of frameworks.
-
- * -securetransport ... Use SecureTransport instead of OpenSSL
-
- -no-securetransport Do not use SecureTransport, either use OpenSSL or do not use any SSL backend
- at all (if combined with -no-openssl).
-
- -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. The argument should be
- one of the available SDKs as listed by 'xcodebuild -showsdks'.
- Note that the argument applies only to Qt libraries and applications built
- using the target mkspec - not host tools such as qmake, moc, rcc, etc.
-
-Android options:
-
- -android-sdk path .............. The Android SDK root path.
- (default \$ANDROID_SDK_ROOT)
-
- -android-ndk path .............. The Android NDK root path.
- (default \$ANDROID_NDK_ROOT)
-
- -android-ndk-platform .......... Sets the android platform
- (default $CFG_DEFAULT_ANDROID_PLATFORM)
-
- -android-ndk-host .............. Sets the android NDK host (linux-x86, linux-x86_64, etc.)
- (default \$ANDROID_NDK_HOST)
-
- -android-arch .................. Sets the android architecture (armeabi, armeabi-v7a, x86, mips,
- arm64-v8a, x86_64, mips64)
- (default $CFG_DEFAULT_ANDROID_TARGET_ARCH)
-
- -android-toolchain-version ..... Sets the android toolchain version
- (default $CFG_DEFAULT_ANDROID_NDK_TOOLCHAIN_VERSION)
-
- -no-android-style-assets ....... Do not compile in the code which automatically extracts
- style assets from the run-time device. Setting this will
- make the Android style behave incorrectly, but will enable
- compatibility with the LGPL2.1 license.
- * -android-style-assets .......... Compile the code which automatically extracts style assets
- from the run-time device. This option will make the
- Android platform plugin incompatible with the LGPL2.1.
-EOF
-
- exit 0
-fi # Help
+ cat $relpath/config_help.txt
+ exit 0
+fi
#-------------------------------------------------------------------------------
# platform detection
@@ -2836,27 +2174,7 @@ if [ -z "$PLATFORM" ]; then
PLATFORM_NOTES=
case "$UNAME_SYSTEM:$UNAME_RELEASE" in
Darwin:*)
- # Select compiler. Use g++ unless we find a usable Clang version. Note that
- # we are checking the "Apple" clang/LLVM version number, not the actual
- # clang/LLVM version number that the Apple version was based on. We look
- # for Apple clang version 3.0 or higher, which was branched off LLVM 3.0
- # from SVN, and first included in Xcode 4.2. Also note that we do not care
- # about the OS version, since we're not using the clang version that comes
- # with the system. We use 'xcrun' to check the clang version that's part of
- # the Xcode installation.
- XCRUN=`/usr/bin/xcrun -sdk macosx clang -v 2>&1`
- CLANGVERSION=`echo "$XCRUN" | sed -n 's/.*version \([0-9]\).*/\1/p'`
- expr "$CLANGVERSION" : '[0-9]' > /dev/null || { echo "Unable to determine CLANG version from output of xcrun: $XCRUN" ; exit 2 ; }
- if [ "$CLANGVERSION" -ge 3 ]; then
- PLATFORM=macx-clang
-
- # Advertise g++ as an alternative on Lion and below
- if [ "$(uname -r | cut -d. -f1)" -le 11 ]; then
- PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
- fi
- else
- PLATFORM=macx-g++
- fi
+ PLATFORM=macx-clang
;;
AIX:*)
#PLATFORM=aix-g++
@@ -2944,13 +2262,9 @@ if [ -z "$PLATFORM" ]; then
"
;;
SunOS:5*)
- if [ "$XPLATFORM_MINGW" = "yes" ]; then
- PLATFORM="solaris-g++"
- else
- #PLATFORM=solaris-g++
- PLATFORM=solaris-cc
- #PLATFORM=solaris-cc64
- fi
+ #PLATFORM=solaris-g++
+ PLATFORM=solaris-cc
+ #PLATFORM=solaris-cc64
PLATFORM_NOTES="
- Also available for Solaris: solaris-g++ solaris-cc-64
"
@@ -3022,6 +2336,10 @@ case "$XPLATFORM" in
XPLATFORM_MAC=yes
XPLATFORM_IOS=yes
;;
+ *tvos*)
+ XPLATFORM_MAC=yes
+ XPLATFORM_TVOS=yes
+ ;;
*macx*)
XPLATFORM_MAC=yes
;;
@@ -3198,31 +2516,6 @@ fi
# command line and environment validation
#-------------------------------------------------------------------------------
-# update QT_CONFIG to show our current predefined configuration
-CFG_QCONFIG_PATH=$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h
-case "$CFG_QCONFIG" in
-minimal|small|medium|large|full)
- # these are a sequence of increasing functionality
- for c in minimal small medium large full; do
- QT_CONFIG="$QT_CONFIG $c-config"
- [ "$CFG_QCONFIG" = $c ] && break
- done
- [ "$CFG_QCONFIG" = full ] && CFG_QCONFIG_PATH=
- ;;
-*)
- # not known to be sufficient for anything
- if [ ! -f "$CFG_QCONFIG_PATH" ]; then
- CFG_QCONFIG_PATH=`makeabs "${CFG_QCONFIG}"`
- if [ ! -f "$CFG_QCONFIG_PATH" ]; then
- echo >&2 "Error: configuration file not found:"
- echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
- echo >&2 " or"
- echo >&2 " $CFG_QCONFIG_PATH"
- exit 1
- fi
- fi
-esac
-
if [ "$XPLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
echo
echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
@@ -3422,12 +2715,16 @@ if [ "$XPLATFORM_MAC" = "yes" ]; then
[ "$CFG_PKGCONFIG" = "auto" ] && CFG_PKGCONFIG="no"
fi
-if [ "$XPLATFORM_IOS" = "yes" ]; then
+if [ "$XPLATFORM_IOS" = "yes" ] || [ "$XPLATFORM_TVOS" = "yes" ]; then
CFG_RPATH="no"
CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS examples"
CFG_SHARED="no" # iOS builds should be static to be able to submit to the App Store
CFG_SKIP_MODULES="$CFG_SKIP_MODULES qtdoc qtmacextras qtserialport qtwebkit qtwebkit-examples"
CFG_PRECOMPILE="no" # Precompiled headers not supported with multiple -arch arguments
+ if [ "$XPLATFORM_TVOS" = "yes" ]; then
+ CFG_SKIP_MODULES="$CFG_SKIP_MODULES qtscript"
+ CFG_WIDGETS="no"
+ fi
# If the user passes -sdk on the command line we build a SDK-specific Qt build.
# Otherwise we build a joined simulator and device build, which is the default.
@@ -3814,10 +3111,6 @@ addConfStr "$shortspec"
[ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
-/* License Info */
-static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
-static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
-
/* Installation date */
static const char qt_configure_installation [12+11] = "qt_instdate=2012-12-20";
@@ -3845,10 +3138,6 @@ $QT_CONFIGURE_STRS#endif
# define QT_CONFIGURE_SYSROOTIFY_PREFIX $QMAKE_SYSROOTIFY
#endif
-/* strlen( "qt_lcnsxxxx" ) == 12 */
-#define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12
-#define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12
-
#define QT_CONFIGURE_PREFIX_PATH qt_configure_prefix_path_str + 12
#ifdef QT_BUILD_QMAKE
# define QT_CONFIGURE_EXT_PREFIX_PATH qt_configure_ext_prefix_path_str + 12
@@ -4461,28 +3750,13 @@ if $stdcxx_error && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
exit 101
fi
-# Detect which edition of the C++ standard the compiler defaults to
-CFG_STDCXX_DEFAULT=199711
-if compileTest common/c++default "default C++ standard edition"; then
- if [ -e "$outpath/config.tests/common/c++default/c++default.ii" ]; then
- CFG_STDCXX_DEFAULT=`sed -n '/^[0-9]/s/L//p' "$outpath/config.tests/common/c++default/c++default.ii"`
- else
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo "Failed to run the preprocessor, something is wrong with your compiler"
- fi
- if [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
- exit 101
- fi
- fi
-fi
-
# Detect whether 64-bit std::atomic works -- some 32-bit platforms require extra library support
if compileTest common/atomic64 "64-bit std::atomic"; then
- CFG_ATOMIC64=yes
+ CFG_STD_ATOMIC64=yes
elif compileTest common/atomic64 "64-bit std::atomic in -latomic" -latomic; then
- CFG_ATOMIC64=libatomic
+ CFG_STD_ATOMIC64=libatomic
else
- CFG_ATOMIC64=no
+ CFG_STD_ATOMIC64=no
fi
# Detect whether std::atomic works for function pointers -- some implementations are buggy
@@ -4680,21 +3954,6 @@ if ! compileTest unix/ipc_sysv "ipc_sysv" ; then
fi
fi
-# detect zlib
-if [ "$CFG_ZLIB" = "no" ]; then
- # Note: Qt no longer support builds without zlib
- # So we force a "no" to be "auto" here.
- # If you REALLY really need no zlib support, you can still disable
- # it by doing the following:
- # add "no-zlib" to mkspecs/qconfig.pri
- # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
- #
- # There's no guarantee that Qt will build under those conditions
-
- CFG_ZLIB=auto
- ZLIB_FORCED=yes
-fi
-
if [ "$XPLATFORM_QNX" = "yes" ]; then
if [ "$CFG_SLOG2" != "no" ]; then
if compileTest unix/slog2 "slog2"; then
@@ -4737,11 +3996,12 @@ if [ "$XPLATFORM_INTEGRITY" = "yes" ]; then
CFG_LARGEFILE=no
fi
-if [ "$CFG_ZLIB" = "auto" ]; then
+# detect zlib
+if [ "$CFG_SYSTEM_ZLIB" = "auto" ]; then
if compileTest unix/zlib "zlib"; then
- CFG_ZLIB=system
+ CFG_SYSTEM_ZLIB=yes
else
- CFG_ZLIB=yes
+ CFG_SYSTEM_ZLIB=no
fi
fi
@@ -4790,23 +4050,6 @@ if [ "$CFG_SYSLOG" != "no" ]; then
fi
fi
-if [ "$CFG_LARGEFILE" = "auto" ]; then
- #Large files should be enabled for all Linux systems
- CFG_LARGEFILE=yes
-fi
-
-if [ "$CFG_GUI" = "no" ]; then
- QPA_PLATFORM_GUARD=no
-fi
-
-# detect how jpeg should be built
-if [ "$CFG_JPEG" = "auto" ]; then
- if [ "$CFG_SHARED" = "yes" ]; then
- CFG_JPEG=plugin
- else
- CFG_JPEG=yes
- fi
-fi
# detect jpeg
if [ "$CFG_LIBJPEG" = "auto" ]; then
if compileTest unix/libjpeg "libjpeg"; then
@@ -4816,15 +4059,6 @@ if [ "$CFG_LIBJPEG" = "auto" ]; then
fi
fi
-# detect how gif should be built
-if [ "$CFG_GIF" = "auto" ]; then
- if [ "$CFG_SHARED" = "yes" ]; then
- CFG_GIF=plugin
- else
- CFG_GIF=yes
- fi
-fi
-
# detect png
if [ "$CFG_LIBPNG" = "auto" ]; then
if compileTest unix/libpng "libpng"; then
@@ -4859,10 +4093,10 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
if [ "$CFG_SQL_mysql" != "no" ]; then
[ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
if [ -x "$CFG_MYSQL_CONFIG" ]; then
- QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
+ QMAKE_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
# -rdynamic should not be returned by mysql_config, but is on RHEL 6.6
- QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions | sed "s/-rdynamic//"`
- QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions | sed "s/-rdynamic//"`
+ QMAKE_LIBS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions | sed "s/-rdynamic//"`
+ QMAKE_LIBS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions | sed "s/-rdynamic//"`
QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
fi
@@ -4875,21 +4109,17 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
exit 101
else
CFG_SQL_mysql="no"
- QT_LFLAGS_MYSQL=""
- QT_LFLAGS_MYSQL_R=""
- QT_CFLAGS_MYSQL=""
+ QMAKE_LIBS_MYSQL=""
+ QMAKE_LIBS_MYSQL_R=""
+ QMAKE_CFLAGS_MYSQL=""
fi
else
- if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
+ if compileTest unix/mysql_r "MySQL (thread-safe)" $QMAKE_LIBS_MYSQL_R $QMAKE_CFLAGS_MYSQL; then
QMakeVar add CONFIG use_libmysqlclient_r
- if [ "$CFG_SQL_mysql" = "auto" ]; then
- CFG_SQL_mysql=plugin
- fi
- QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
- elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
- if [ "$CFG_SQL_mysql" = "auto" ]; then
- CFG_SQL_mysql=plugin
- fi
+ CFG_SQL_mysql=yes
+ QMAKE_LIBS_MYSQL="$QMAKE_LIBS_MYSQL_R"
+ elif compileTest unix/mysql "MySQL (thread-unsafe)" $QMAKE_LIBS_MYSQL $QMAKE_CFLAGS_MYSQL; then
+ CFG_SQL_mysql=yes
else
if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
echo "MySQL support cannot be enabled due to functionality tests!"
@@ -4899,9 +4129,9 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
exit 101
else
CFG_SQL_mysql=no
- QT_LFLAGS_MYSQL=""
- QT_LFLAGS_MYSQL_R=""
- QT_CFLAGS_MYSQL=""
+ QMAKE_LIBS_MYSQL=""
+ QMAKE_LIBS_MYSQL_R=""
+ QMAKE_CFLAGS_MYSQL=""
fi
fi
fi
@@ -4912,17 +4142,15 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
[ -z "$CFG_PSQL_CONFIG" ] && CFG_PSQL_CONFIG=`"$WHICH" pg_config`
# Be careful not to use native pg_config when cross building.
if [ "$XPLATFORM_MINGW" != "yes" ] && [ -x "$CFG_PSQL_CONFIG" ]; then
- QT_CFLAGS_PSQL=`$CFG_PSQL_CONFIG --includedir 2>/dev/null | filterIncludePath`
- QT_LFLAGS_PSQL=`$CFG_PSQL_CONFIG --libdir 2>/dev/null | filterLibraryPath`
+ QMAKE_CFLAGS_PSQL=`$CFG_PSQL_CONFIG --includedir 2>/dev/null | filterIncludePath`
+ QMAKE_LIBS_PSQL=`$CFG_PSQL_CONFIG --libdir 2>/dev/null | filterLibraryPath`
fi
- [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
- [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
+ [ -z "$QMAKE_CFLAGS_PSQL" ] || QMAKE_CFLAGS_PSQL="-I$QMAKE_CFLAGS_PSQL"
+ [ -z "$QMAKE_LIBS_PSQL" ] || QMAKE_LIBS_PSQL="-L$QMAKE_LIBS_PSQL"
# But, respect PSQL_LIBS if set
- [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
- if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
- if [ "$CFG_SQL_psql" = "auto" ]; then
- CFG_SQL_psql=plugin
- fi
+ [ -z "$PSQL_LIBS" ] || QMAKE_LIBS_PSQL="$PSQL_LIBS"
+ if compileTest unix/psql "PostgreSQL" $QMAKE_LIBS_PSQL $QMAKE_CFLAGS_PSQL; then
+ CFG_SQL_psql=yes
else
if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
echo "PostgreSQL support cannot be enabled due to functionality tests!"
@@ -4932,8 +4160,8 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
exit 101
else
CFG_SQL_psql=no
- QT_CFLAGS_PSQL=""
- QT_LFLAGS_PSQL=""
+ QMAKE_CFLAGS_PSQL=""
+ QMAKE_LIBS_PSQL=""
fi
fi
fi
@@ -4941,15 +4169,11 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
odbc)
if [ "$CFG_SQL_odbc" != "no" ]; then
if [ "$XPLATFORM_MAC" != "yes" ] && compileTest unix/odbc "ODBC"; then
- if [ "$CFG_SQL_odbc" = "auto" ]; then
- CFG_SQL_odbc=plugin
- fi
+ CFG_SQL_odbc=yes
else
if compileTest unix/iodbc "iODBC"; then
- QT_LFLAGS_ODBC="-liodbc"
- if [ "$CFG_SQL_odbc" = "auto" ]; then
- CFG_SQL_odbc=plugin
- fi
+ QMAKE_LIBS_ODBC="-liodbc"
+ CFG_SQL_odbc=yes
else
if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
echo "ODBC support cannot be enabled due to functionality tests!"
@@ -4967,9 +4191,7 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
oci)
if [ "$CFG_SQL_oci" != "no" ]; then
if compileTest unix/oci "OCI"; then
- if [ "$CFG_SQL_oci" = "auto" ]; then
- CFG_SQL_oci=plugin
- fi
+ CFG_SQL_oci=yes
else
if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
@@ -4985,12 +4207,10 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
;;
tds)
if [ "$CFG_SQL_tds" != "no" ]; then
- [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
- [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
- if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
- if [ "$CFG_SQL_tds" = "auto" ]; then
- CFG_SQL_tds=plugin
- fi
+ [ -z "$SYBASE" ] || QMAKE_LIBS_TDS="-L$SYBASE/lib"
+ [ -z "$SYBASE_LIBS" ] || QMAKE_LIBS_TDS="$QMAKE_LIBS_TDS $SYBASE_LIBS"
+ if compileTest unix/tds "TDS" $QMAKE_LIBS_TDS; then
+ CFG_SQL_tds=yes
else
if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
echo "TDS support cannot be enabled due to functionality tests!"
@@ -5007,9 +4227,7 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
db2)
if [ "$CFG_SQL_db2" != "no" ]; then
if compileTest unix/db2 "DB2"; then
- if [ "$CFG_SQL_db2" = "auto" ]; then
- CFG_SQL_db2=plugin
- fi
+ CFG_SQL_db2=yes
else
if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
echo "ODBC support cannot be enabled due to functionality tests!"
@@ -5026,9 +4244,7 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
ibase)
if [ "$CFG_SQL_ibase" != "no" ]; then
if compileTest unix/ibase "InterBase"; then
- if [ "$CFG_SQL_ibase" = "auto" ]; then
- CFG_SQL_ibase=plugin
- fi
+ CFG_SQL_ibase=yes
else
if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
echo "InterBase support cannot be enabled due to functionality tests!"
@@ -5045,9 +4261,7 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
sqlite2)
if [ "$CFG_SQL_sqlite2" != "no" ]; then
if compileTest unix/sqlite2 "SQLite2"; then
- if [ "$CFG_SQL_sqlite2" = "auto" ]; then
- CFG_SQL_sqlite2=plugin
- fi
+ CFG_SQL_sqlite2=yes
else
if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
echo "SQLite2 support cannot be enabled due to functionality tests!"
@@ -5066,25 +4280,21 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
SQLITE_AUTODETECT_FAILED="no"
if [ "$CFG_SQLITE" = "system" ]; then
if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists sqlite3 2>/dev/null; then
- QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
- QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
+ QMAKE_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
+ QMAKE_LIBS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
else
- QT_CFLAGS_SQLITE=
- QT_LFLAGS_SQLITE="-lsqlite3 -lz"
+ QMAKE_CFLAGS_SQLITE=
+ QMAKE_LIBS_SQLITE="-lsqlite3 -lz"
fi
- if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
- if [ "$CFG_SQL_sqlite" = "auto" ]; then
- CFG_SQL_sqlite=plugin
- fi
+ if compileTest unix/sqlite "SQLite" $QMAKE_LIBS_SQLITE $QMAKE_CFLAGS_SQLITE; then
+ CFG_SQL_sqlite=yes
QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
else
SQLITE_AUTODETECT_FAILED="yes"
CFG_SQL_sqlite=no
fi
elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
- if [ "$CFG_SQL_sqlite" = "auto" ]; then
- CFG_SQL_sqlite=plugin
- fi
+ CFG_SQL_sqlite=yes
else
SQLITE_AUTODETECT_FAILED="yes"
CFG_SQL_sqlite=no
@@ -5153,20 +4363,20 @@ fi
# runtime: no detection (cannot fail), load libdbus-1 at runtime
if [ "$CFG_DBUS" = "auto" ] || [ "$CFG_DBUS" = "linked" ]; then
if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
- QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
- QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
+ QMAKE_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
+ QMAKE_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
else
- QT_LIBS_DBUS="-ldbus-1"
+ QMAKE_LIBS_DBUS="-ldbus-1"
fi
- if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
- QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
- QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
+ if compileTest unix/dbus "D-Bus" $QMAKE_CFLAGS_DBUS $QMAKE_LIBS_DBUS; then
+ QMakeVar set QMAKE_LIBS_DBUS "$QMAKE_LIBS_DBUS"
+ QMakeVar set QMAKE_CFLAGS_DBUS "$QMAKE_CFLAGS_DBUS"
# Try find correct host configuration for dbus tools when cross-compiling
if [ "$QT_CROSS_COMPILE" = "yes" ] && env -i PATH="$PATH" \
pkg-config --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
- QT_CFLAGS_DBUS=`env -i PATH="$PATH" pkg-config --cflags dbus-1 2>/dev/null`
+ QMAKE_CFLAGS_DBUS=`env -i PATH="$PATH" pkg-config --cflags dbus-1 2>/dev/null`
fi
- QMakeVar set QT_HOST_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
+ QMakeVar set QT_HOST_CFLAGS_DBUS "$QMAKE_CFLAGS_DBUS"
CFG_DBUS=linked
else
# Failed to compile the test, so it's an error if CFG_DBUS is "linked"
@@ -5205,13 +4415,13 @@ fi
# auto-detect Glib support
if [ "$CFG_GLIB" != "no" ]; then
if [ -n "$PKG_CONFIG" ]; then
- QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
- QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
+ QMAKE_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
+ QMAKE_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
fi
- if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
+ if compileTest unix/glib "Glib" $QMAKE_CFLAGS_GLIB $QMAKE_LIBS_GLIB; then
CFG_GLIB=yes
- QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
- QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
+ QMakeVar set QMAKE_CFLAGS_GLIB "$QMAKE_CFLAGS_GLIB"
+ QMakeVar set QMAKE_LIBS_GLIB "$QMAKE_LIBS_GLIB"
else
if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
echo "Glib support cannot be enabled due to functionality tests!"
@@ -5229,15 +4439,14 @@ fi
# auto-detect GTK style support
if [ "$CFG_GLIB" = "yes" -a "$CFG_GTK" != "no" ]; then
if [ -n "$PKG_CONFIG" ]; then
- QT_CFLAGS_QGTK3=`$PKG_CONFIG --cflags gtk+-3.0 2>/dev/null`
- QT_LIBS_QGTK3=`$PKG_CONFIG --libs gtk+-3.0 2>/dev/null`
- QT_LIBS_QGOBJECT=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
+ QMAKE_CFLAGS_GTK3=`$PKG_CONFIG --cflags gtk+-3.0 2>/dev/null`
+ QMAKE_LIBS_GTK3=`$PKG_CONFIG --libs gtk+-3.0 2>/dev/null`
fi
- if [ -n "$QT_CFLAGS_QGTK3" ] ; then
+ if [ -n "$QMAKE_CFLAGS_GTK3" ] ; then
CFG_GTK=yes
QT_CONFIG="$QT_CONFIG gtk3"
- QMakeVar set QT_CFLAGS_QGTK3 "$QT_CFLAGS_QGTK3"
- QMakeVar set QT_LIBS_QGTK3 "$QT_LIBS_QGTK3"
+ QMakeVar set QMAKE_CFLAGS_GTK3 "$QMAKE_CFLAGS_GTK3"
+ QMakeVar set QMAKE_LIBS_GTK3 "$QMAKE_LIBS_GTK3"
else
if [ "$CFG_GTK" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
echo "GTK theme support cannot be enabled due to functionality tests!"
@@ -5276,13 +4485,13 @@ fi
# Auto-detect PulseAudio support
if [ "$CFG_PULSEAUDIO" != "no" ]; then
if [ -n "$PKG_CONFIG" ]; then
- QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
- QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
+ QMAKE_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
+ QMAKE_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
fi
- if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
+ if compileTest unix/pulseaudio "PulseAudio" $QMAKE_CFLAGS_PULSEAUDIO $QMAKE_LIBS_PULSEAUDIO; then
CFG_PULSEAUDIO=yes
- QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
- QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
+ QMakeVar set QMAKE_CFLAGS_PULSEAUDIO "$QMAKE_CFLAGS_PULSEAUDIO"
+ QMakeVar set QMAKE_LIBS_PULSEAUDIO "$QMAKE_LIBS_PULSEAUDIO"
else
if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
echo "PulseAudio support cannot be enabled due to functionality tests!"
@@ -5325,19 +4534,6 @@ if [ "$XPLATFORM_MINGW" = "yes" ]; then
fi
CFG_OPENGL=no
fi
- case "$PLATFORM" in
- hpux*)
- # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
- if [ "$CFG_OPENGL" = "desktop" ]; then
- compileTest x11/glxfbconfig "OpenGL"
- if [ $? != "0" ]; then
- QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
- fi
- fi
- ;;
- *)
- ;;
- esac
elif [ "$CFG_OPENGL" = "es2" ]; then
#OpenGL ES 2.0
compileTest unix/opengles2 "OpenGL ES 2.0"
@@ -5358,17 +4554,6 @@ if [ "$XPLATFORM_MINGW" = "yes" ]; then
echo " ${XQMAKESPEC}."
exit 1
fi
- case "$PLATFORM" in
- hpux*)
- # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
- compileTest x11/glxfbconfig "OpenGL"
- if [ $? != "0" ]; then
- QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
- fi
- ;;
- *)
- ;;
- esac
fi
fi # X11/MINGW OpenGL
@@ -5441,16 +4626,16 @@ fi
ORIG_CFG_FREETYPE="$CFG_FREETYPE"
if [ "$CFG_FONTCONFIG" != "no" ]; then
if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
- QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
- QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
+ QMAKE_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
+ QMAKE_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
else
- QT_CFLAGS_FONTCONFIG=
- QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
+ QMAKE_CFLAGS_FONTCONFIG=
+ QMAKE_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
fi
- if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
+ if compileTest unix/fontconfig "FontConfig" $QMAKE_CFLAGS_FONTCONFIG $QMAKE_LIBS_FONTCONFIG; then
QT_CONFIG="$QT_CONFIG fontconfig"
- QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
- QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
+ QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QMAKE_CFLAGS_FONTCONFIG"
+ QMakeVar set QMAKE_LIBS_FONTCONFIG "$QMAKE_LIBS_FONTCONFIG"
CFG_FONTCONFIG=yes
CFG_FREETYPE=system
else
@@ -5459,13 +4644,6 @@ if [ "$CFG_FONTCONFIG" != "no" ]; then
fi
-# Save these for a check later
-ORIG_CFG_XCB="$CFG_XCB"
-ORIG_CFG_EGLFS="$CFG_EGLFS"
-ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
-ORIG_CFG_LINUXFB="$CFG_LINUXFB"
-ORIG_CFG_MIRCLIENT="$CFG_MIRCLIENT"
-
if [ "$CFG_LIBUDEV" != "no" ]; then
if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
@@ -5593,12 +4771,12 @@ fi
if [ "$CFG_XINPUT2" != "no" ]; then
if compileTest x11/xinput2 "XInput2"; then
if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xi 2>/dev/null; then
- QMAKE_LIBXI_VERSION_MAJOR=`$PKG_CONFIG --modversion xi 2>/dev/null | cut -d . -f 1`
- QMAKE_LIBXI_VERSION_MINOR=`$PKG_CONFIG --modversion xi 2>/dev/null | cut -d . -f 2`
- QMAKE_LIBXI_VERSION_PATCH=`$PKG_CONFIG --modversion xi 2>/dev/null | cut -d . -f 3`
- QMakeVar set QMAKE_LIBXI_VERSION_MAJOR "$QMAKE_LIBXI_VERSION_MAJOR"
- QMakeVar set QMAKE_LIBXI_VERSION_MINOR "$QMAKE_LIBXI_VERSION_MINOR"
- QMakeVar set QMAKE_LIBXI_VERSION_PATCH "$QMAKE_LIBXI_VERSION_PATCH"
+ QMAKE_XINPUT2_VERSION_MAJOR=`$PKG_CONFIG --modversion xi 2>/dev/null | cut -d . -f 1`
+ QMAKE_XINPUT2_VERSION_MINOR=`$PKG_CONFIG --modversion xi 2>/dev/null | cut -d . -f 2`
+ QMAKE_XINPUT2_VERSION_PATCH=`$PKG_CONFIG --modversion xi 2>/dev/null | cut -d . -f 3`
+ QMakeVar set QMAKE_XINPUT2_VERSION_MAJOR "$QMAKE_XINPUT2_VERSION_MAJOR"
+ QMakeVar set QMAKE_XINPUT2_VERSION_MINOR "$QMAKE_XINPUT2_VERSION_MINOR"
+ QMakeVar set QMAKE_XINPUT2_VERSION_PATCH "$QMAKE_XINPUT2_VERSION_PATCH"
fi
CFG_XINPUT2=yes
else
@@ -5615,10 +4793,7 @@ if [ "$CFG_XINPUT2" != "no" ]; then
fi
if [ "$CFG_XCB" != "no" ]; then
- if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
- QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
- QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
- fi
+ # find X11 prefix
if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "x11" 2> /dev/null; then
QMAKE_X11_PREFIX="`$PKG_CONFIG --variable=prefix x11`"
else
@@ -5627,54 +4802,82 @@ if [ "$CFG_XCB" != "no" ]; then
fi
QMakeVar set QMAKE_X11_PREFIX "$QMAKE_X11_PREFIX"
- if [ "$CFG_XKBCOMMON" != no ] && compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
- QT_CONFIG="$QT_CONFIG xcb-plugin"
+ # both -qt-xcb and -system-xcb depends on libxcb from the system
+ XCB_DEP="xcb >= 1.5"
+ if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "$XCB_DEP" 2>/dev/null; then
+ QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
+ QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
+ fi
+ if ! compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
+ if [ "$CFG_XCB" != "auto" ]; then
+ echo "Missing dependency lib$XCB_DEP."
+ [ -z "$PKG_CONFIG" ] && echo "Use of pkg-config is not enabled, maybe you want to pass -pkg-config?"
+ exit 1
+ fi
+ CFG_XCB=no
+ fi
+
+ # xcb plugin depends on libxkbcommon
+ if [ "$CFG_XCB" != "no" ] && [ "$CFG_XKBCOMMON" = no ]; then
+ if [ "$CFG_XCB" != "auto" ]; then
+ echo "XCB plugin requires libxkbcommon. See -qt-xkbcommon-x11 and -system-xkbcommon-x11."
+ exit 1
+ fi
+ CFG_XCB=no
+ fi
+ if [ "$CFG_XCB" != "no" ]; then
if [ "$CFG_XCB" = "qt" ]; then
QT_CONFIG="$QT_CONFIG xcb-qt"
-
- if compileTest qpa/xcb-glx "xcb-glx" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
- CFG_XCB_GLX=yes
- QT_CONFIG="$QT_CONFIG xcb-glx"
- fi
else
- CFG_XCB="system"
- if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
- XCB_PACKAGES="xcb xcb-shm xcb-sync xcb-xfixes xcb-randr xcb-image xcb-keysyms xcb-icccm xcb-shape"
- QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags $XCB_PACKAGES 2>/dev/null`"
- QMAKE_LIBS_XCB="`$PKG_CONFIG --libs $XCB_PACKAGES 2>/dev/null`"
- fi
-
# libxcb version 1.10 was the first version that enables xcb-xkb by default,
# therefore the minimal xcb-xkb version we support is 1.10
CFG_XKB=no
- if $PKG_CONFIG --exists "xcb-xkb >= 1.10" 2>/dev/null; then
+ XKB_DEP="xcb-xkb >= 1.10"
+ if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "$XKB_DEP" 2>/dev/null; then
QMAKE_CFLAGS_XKB="`$PKG_CONFIG --cflags xcb xcb-xkb 2>/dev/null`"
QMAKE_LIBS_XKB="`$PKG_CONFIG --libs xcb xcb-xkb 2>/dev/null`"
- if compileTest qpa/xcb-xkb "xcb-xkb" $QMAKE_CFLAGS_XKB $QMAKE_LIBS_XKB; then
- CFG_XKB=yes
- fi
fi
- if [ "$CFG_XKB" = "no" ]; then
+ if compileTest qpa/xcb-xkb "xcb-xkb" $QMAKE_CFLAGS_XKB $QMAKE_LIBS_XKB; then
+ CFG_XKB=yes
+ else
QMakeVar add DEFINES QT_NO_XKB
fi
+ XCB_PACKAGES="xcb xcb-shm xcb-sync xcb-xfixes xcb-randr xcb-image xcb-keysyms xcb-icccm xcb-shape"
+ if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "$XCB_PACKAGES" 2>/dev/null; then
+ QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags $XCB_PACKAGES 2>/dev/null`"
+ QMAKE_LIBS_XCB="`$PKG_CONFIG --libs $XCB_PACKAGES 2>/dev/null`"
+ fi
if compileTest qpa/xcb-syslibs "xcb-syslibs" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
+ CFG_XCB="system"
if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
QT_CONFIG="$QT_CONFIG xcb-render"
fi
-
- if compileTest qpa/xcb-glx "xcb-glx" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
- CFG_XCB_GLX=yes
- QT_CONFIG="$QT_CONFIG xcb-glx"
- fi
else
- echo "The test for linking against libxcb and support libraries failed!"
- echo " You might need to install dependency packages, or pass -qt-xcb."
- echo " See src/plugins/platforms/xcb/README."
- exit 1
+ if [ "$CFG_XCB" != "auto" ]; then
+ echo "The test for linking against libxcb and support libraries failed"
+ echo "(need $XCB_PACKAGES)."
+ echo "You might need to install dependency packages, or pass -qt-xcb."
+ echo "See src/plugins/platforms/xcb/README."
+ [ -z "$PKG_CONFIG" ] && echo "Use of pkg-config is not enabled, maybe you want to pass -pkg-config?"
+ exit 1
+ fi
+ CFG_XCB="no"
fi
fi
+ fi
+
+ if [ "$CFG_XCB" != "no" ]; then
+ QT_CONFIG="$QT_CONFIG xcb-plugin"
+
+ # Other deps that are not bundled with -qt-xcb and therefore need to be
+ # checked for both -qt-xcb and -system-xcb
+
+ if compileTest qpa/xcb-glx "xcb-glx" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
+ CFG_XCB_GLX=yes
+ QT_CONFIG="$QT_CONFIG xcb-glx"
+ fi
if [ "$CFG_XCB_XLIB" != "no" ]; then
if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
@@ -5690,15 +4893,6 @@ if [ "$CFG_XCB" != "no" ]; then
QT_CONFIG="$QT_CONFIG xcb-sm"
fi
fi
- else
- if [ "$CFG_XCB" != "auto" ]; then
- echo "The test for linking against libxcb failed!"
- [ -z "$PKG_CONFIG" ] && echo " Use of pkg-config is not enabled, maybe you want to pass -pkg-config?"
- echo " You might need to install dependency packages for libxcb."
- echo " See src/plugins/platforms/xcb/README."
- exit 1
- fi
- CFG_XCB=no
fi
fi
@@ -5964,21 +5158,6 @@ if [ "$CFG_MIRCLIENT" = "yes" ]; then
QT_CONFIG="$QT_CONFIG mirclient"
fi
-if [ "$XPLATFORM_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ] && [ "$XPLATFORM_ANDROID" = "no" ] && [ "$XPLATFORM_HAIKU" = "no" ] && [ "$XPLATFORM_INTEGRITY" = "no" ]; then
- if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_MIRCLIENT" = "no" ]; then
- if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
- ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_MIRCLIENT" = "auto" ] ); then
- echo "No QPA platform plugin enabled!"
- echo " If you really want to build without a QPA platform plugin you must pass"
- echo " -no-qpa-platform-guard to configure. Doing this will"
- echo " produce a Qt that can not run GUI applications."
- echo " The dependencies needed for xcb to build are listed in"
- echo " src/plugins/platforms/xcb/README"
- exit 1
- fi
-fi
- fi
-
# double-conversion support
if [ "$CFG_DOUBLECONVERSION" = "no" ]; then
if ! compileTest common/xlocalescanprint "XLocaleScanPrint"; then
@@ -6220,44 +5399,6 @@ if [ "$CFG_PCRE" != "qt" ]; then
fi
fi
-# detect OpenVG support
-if [ "$CFG_OPENVG" != "no" ]; then
- if compileTest unix/openvg "OpenVG"; then
- if [ "$CFG_OPENVG" = "auto" ]; then
- CFG_OPENVG=yes
- fi
- elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
- if [ "$CFG_OPENVG" = "auto" ]; then
- CFG_OPENVG=yes
- fi
- CFG_OPENVG_ON_OPENGL=yes
- elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
- if [ "$CFG_OPENVG" = "auto" ]; then
- CFG_OPENVG=yes
- fi
- CFG_OPENVG_LC_INCLUDES=yes
- elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
- if [ "$CFG_OPENVG" = "auto" ]; then
- CFG_OPENVG=yes
- fi
- CFG_OPENVG_LC_INCLUDES=yes
- CFG_OPENVG_ON_OPENGL=yes
- else
- if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
- echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
- echo " Turn on verbose messaging (-v) to $0 to see the final report."
- echo " If you believe this message is in error you may use the continue"
- echo " switch (-continue) to $0 to continue."
- exit 101
- else
- CFG_OPENVG=no
- fi
- fi
- if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
- CFG_OPENVG_SHIVA=yes
- fi
-fi
-
if [ "$CFG_ALSA" = "auto" ]; then
if compileTest unix/alsa "alsa"; then
CFG_ALSA=yes
@@ -6266,10 +5407,6 @@ if [ "$CFG_ALSA" = "auto" ]; then
fi
fi
-if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
- CFG_AUDIO_BACKEND=yes
-fi
-
# detect GStreamer support
if [ "$CFG_GSTREAMER" = "auto" ] || [ "$CFG_GSTREAMER" = "yes" ]; then
if compileTest unix/gstreamer "GStreamer 1.0" -config gst-1.0; then
@@ -6306,11 +5443,6 @@ elif [ "$CFG_GSTREAMER" = "1.0" ]; then
fi
fi
-if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
- echo "Warning: largefile support cannot be disabled for win32."
- CFG_LARGEFILE="yes"
-fi
-
# Detect DirectWrite 2 support on Windows
if [ "$CFG_DIRECTWRITE" = "no" ]; then
CFG_DIRECTWRITE2=no
@@ -6336,7 +5468,7 @@ if [ "$CFG_STDCXX" != "c++11" ]; then
fi
fi
-if [ "$CFG_ATOMIC64" = "libatomic" ]; then
+if [ "$CFG_STD_ATOMIC64" = "libatomic" ]; then
QMAKE_CONFIG="$QMAKE_CONFIG atomic64-libatomic"
fi
@@ -6394,23 +5526,6 @@ if [ "$CFG_EGLFS_VIV" = "yes" ]; then
fi
fi
-# enable openvg
-if [ "$CFG_OPENVG" = "no" ]; then
- QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
-else
- QT_CONFIG="$QT_CONFIG openvg"
- if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
- QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
- fi
- if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
- QT_CONFIG="$QT_CONFIG openvg_on_opengl"
- fi
- if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
- QT_CONFIG="$QT_CONFIG shivavg"
- QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
- fi
-fi
-
# enable opengl
if [ "$CFG_OPENGL" = "no" ]; then
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
@@ -6510,9 +5625,7 @@ if [ "$CFG_LIBJPEG" = "no" ]; then
elif [ "$CFG_LIBJPEG" = "system" ]; then
QT_CONFIG="$QT_CONFIG system-jpeg"
fi
-if [ "$CFG_JPEG" = "no" ]; then
- QT_CONFIG="$QT_CONFIG no-jpeg"
-elif [ "$CFG_JPEG" = "yes" ]; then
+if [ "$CFG_JPEG" = "yes" ]; then
QT_CONFIG="$QT_CONFIG jpeg"
fi
if [ "$CFG_LIBPNG" = "no" ]; then
@@ -6521,36 +5634,28 @@ fi
if [ "$CFG_LIBPNG" = "system" ]; then
QT_CONFIG="$QT_CONFIG system-png"
fi
-if [ "$CFG_PNG" = "no" ]; then
- QT_CONFIG="$QT_CONFIG no-png"
-elif [ "$CFG_PNG" = "yes" ]; then
+if [ "$CFG_PNG" = "yes" ]; then
QT_CONFIG="$QT_CONFIG png"
fi
-if [ "$CFG_GIF" = "no" ]; then
- QT_CONFIG="$QT_CONFIG no-gif"
-elif [ "$CFG_GIF" = "yes" ]; then
+if [ "$CFG_GIF" = "yes" ]; then
QT_CONFIG="$QT_CONFIG gif"
fi
-if [ "$CFG_DOUBLECONVERSION" = "no" ]; then
- QT_CONFIG="$QT_CONFIG no-doubleconversion"
-elif [ "$CFG_DOUBLECONVERSION" = "system" ]; then
- QT_CONFIG="$QT_CONFIG system-doubleconversion"
-else
+if [ "$CFG_DOUBLECONVERSION" = "system" ]; then
+ QT_CONFIG="$QT_CONFIG doubleconversion system-doubleconversion"
+elif [ "$CFG_DOUBLECONVERSION" = "qt" ]; then
QT_CONFIG="$QT_CONFIG doubleconversion"
fi
if [ "$CFG_FREETYPE" = "no" ]; then
- QT_CONFIG="$QT_CONFIG no-freetype"
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
elif [ "$CFG_FREETYPE" = "system" ]; then
- QT_CONFIG="$QT_CONFIG system-freetype"
+ QT_CONFIG="$QT_CONFIG freetype system-freetype"
else
QT_CONFIG="$QT_CONFIG freetype"
fi
if [ "$CFG_HARFBUZZ" = "no" ]; then
- QT_CONFIG="$QT_CONFIG no-harfbuzz"
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_HARFBUZZ"
elif [ "$CFG_HARFBUZZ" = "system" ]; then
- QT_CONFIG="$QT_CONFIG system-harfbuzz"
+ QT_CONFIG="$QT_CONFIG harfbuzz system-harfbuzz"
else
QT_CONFIG="$QT_CONFIG harfbuzz"
fi
@@ -6569,24 +5674,22 @@ fi
if [ "$XPLATFORM_MAC" = "yes" ]; then
#On Mac we implicitly link against libz, so we
#never use the 3rdparty stuff.
- [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
+ CFG_SYSTEM_ZLIB=yes
fi
-if [ "$CFG_ZLIB" = "yes" ]; then
- QT_CONFIG="$QT_CONFIG zlib"
-elif [ "$CFG_ZLIB" = "system" ]; then
+if [ "$CFG_SYSTEM_ZLIB" = "yes" ]; then
QT_CONFIG="$QT_CONFIG system-zlib"
fi
[ "$CFG_MTDEV" = "yes" ] && QT_CONFIG="$QT_CONFIG mtdev"
[ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
-[ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
+[ "$CFG_ICONV" != "no" ] && QT_CONFIG="$QT_CONFIG iconv"
[ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
[ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
[ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
[ "$CFG_DBUS" != "no" ] && QT_CONFIG="$QT_CONFIG dbus"
[ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus-linked"
-[ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
-[ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
+[ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG ssl openssl"
+[ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG ssl openssl-linked"
[ "$CFG_SECURETRANSPORT" = "yes" ] && QT_CONFIG="$QT_CONFIG ssl securetransport"
[ "$CFG_LIBPROXY" = "yes" ] && QT_CONFIG="$QT_CONFIG libproxy"
[ "$CFG_XCB" != "no" ] && QT_CONFIG="$QT_CONFIG xcb"
@@ -6684,147 +5787,8 @@ if [ "$CFG_PCRE" = "qt" ]; then
QMAKE_CONFIG="$QMAKE_CONFIG pcre"
fi
-#
-# Some Qt modules are too advanced in C++ for some old compilers
-# Detect here the platforms where they are known to work.
-#
-# See Qt documentation for more information on which features are
-# supported and on which compilers.
-#
-canBuildQtConcurrent="yes"
-
-case "$XPLATFORM" in
- hpux-g++*)
- # PA-RISC's assembly is too limited
- # gcc 3.4 on that platform can't build QtXmlPatterns
- # the assembly it generates cannot be compiled
-
- # Check gcc's version
- case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
- 4*)
- ;;
- 3.4*)
- canBuildQtXmlPatterns="no"
- ;;
- *)
- canBuildWebKit="no"
- canBuildQtXmlPatterns="no"
- ;;
- esac
- ;;
- unsupported/vxworks-*-g++*)
- canBuildWebKit="no"
- ;;
- unsupported/vxworks-*-dcc*)
- canBuildWebKit="no"
- canBuildQtXmlPatterns="no"
- ;;
- *-g++*)
- # Check gcc's version
- case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
- 4*|3.4*)
- ;;
- 3.3*)
- canBuildWebKit="no"
- ;;
- *)
- canBuildWebKit="no"
- canBuildQtXmlPatterns="no"
- ;;
- esac
- ;;
- solaris-cc*)
- # Check the compiler version
- case `${QMAKE_CONF_COMPILER} -V 2>&1 | $AWK '{print $4}'` in
- 5.[012345678])
- canBuildWebKit="no"
- canBuildQtXmlPatterns="no"
- canBuildQtConcurrent="no"
- ;;
- 5.*)
- canBuildWebKit="no"
- canBuildQtConcurrent="no"
- ;;
- esac
- ;;
- hpux-acc*)
- canBuildWebKit="no"
- canBuildQtXmlPatterns="no"
- canBuildQtConcurrent="no"
- ;;
- hpuxi-acc*)
- canBuildWebKit="no"
- ;;
- aix-xlc*)
- # Get the xlC version
- cat > xlcver.c <<EOF
-#include <stdio.h>
-int main()
-{
- printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
- return 0;
-}
-EOF
- xlcver=
- if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
- xlcver=`./xlcver 2>/dev/null`
- rm -f ./xlcver
- fi
- if [ "$OPT_VERBOSE" = "yes" ]; then
- if [ -n "$xlcver" ]; then
- echo Found IBM xlC version: $xlcver.
- else
- echo Could not determine IBM xlC version, assuming oldest supported.
- fi
- fi
-
- case "$xlcver" in
- [123456].*)
- canBuildWebKit="no"
- canBuildQtXmlPatterns="no"
- canBuildQtConcurrent="no"
- ;;
- *)
- canBuildWebKit="no"
- canBuildQtConcurrent="no"
- ;;
- esac
- ;;
- irix-cc*)
- canBuildWebKit="no"
- canBuildQtConcurrent="no"
- ;;
-esac
-
-if [ "$CFG_GUI" = "no" ]; then
- # WebKit requires Qt GUI
- canBuildWebKit="no"
-fi
-
-if [ "$CFG_SHARED" = "no" ]; then
- echo
- echo "WARNING: Using static linking will disable the WebKit module."
- echo
- canBuildWebKit="no"
-fi
-
CFG_CONCURRENT="yes"
-if [ "$canBuildQtConcurrent" = "no" ]; then
- QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
- CFG_CONCURRENT="no"
-else
- QT_CONFIG="$QT_CONFIG concurrent"
-fi
-
-# ### Vestige
-if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
- QT_CONFIG="$QT_CONFIG audio-backend"
-fi
-
-# ### Vestige
-if [ "$CFG_WEBKIT" = "debug" ]; then
- QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
-fi
+QT_CONFIG="$QT_CONFIG concurrent"
# ### Vestige
if [ "$CFG_QML_DEBUG" = "no" ]; then
@@ -6893,19 +5857,7 @@ cat <<EOF
EOF
-case "$CFG_QCONFIG" in
-full)
- echo "/* Everything */"
- ;;
-*)
- echo "#ifndef QT_BOOTSTRAPPED"
- cat "$CFG_QCONFIG_PATH"
- echo "#endif"
- ;;
-esac
-
echo '/* Compile time features */'
-[ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\""
if [ "$CFG_SHARED" = "no" ]; then
cat <<EOF
@@ -6930,7 +5882,7 @@ if [ "$CFG_FRAMEWORK" = "yes" ]; then
echo "#define QT_MAC_FRAMEWORK_BUILD"
fi
-if [ "$CFG_ATOMIC64" = "no" ]; then
+if [ "$CFG_STD_ATOMIC64" = "no" ]; then
echo "#define QT_NO_STD_ATOMIC64"
fi
@@ -6968,26 +5920,17 @@ QCONFIG_FLAGS="$QCONFIG_FLAGS"
# Add turned on SQL drivers
for DRIVER in $CFG_SQL_AVAILABLE; do
eval "VAL=\$CFG_SQL_$DRIVER"
- case "$VAL" in
- qt)
- ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
+ if [ "$VAL" = "yes" ]; then
SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
- ;;
- plugin)
- SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
- ;;
- esac
+ fi
done
QMakeVar set sql-drivers "$SQL_DRIVERS"
-QMakeVar set sql-plugins "$SQL_PLUGINS"
# Add other configuration options to the qconfig.h file
-[ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
+[ "$CFG_GIF" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_GIF"
[ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
[ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
-[ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
[ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
[ "$CFG_LIBPROXY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_LIBPROXY"
@@ -7012,19 +5955,10 @@ QMakeVar set sql-plugins "$SQL_PLUGINS"
[ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
[ "$CFG_TSLIB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_TSLIB"
-[ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
-[ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
[ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
[ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
-[ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
[ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
-[ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
-[ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
-[ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
-[ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
-[ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
-[ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
[ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
[ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
[ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
@@ -7199,7 +6133,6 @@ if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
echo "}"
echo
fi
-echo "QT_COMPILER_STDCXX = $CFG_STDCXX_DEFAULT"
if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION"
echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION"
@@ -7257,7 +6190,6 @@ done
if [ -n "$DISABLED_FEATURES" ]; then
echo "QT_NO_DEFINES = $DISABLED_FEATURES"
fi
-echo "QT_QCONFIG_PATH = ${CFG_QCONFIG_PATH#$relpath/src/corelib/global/}"
cat <<EOF
host_build {
@@ -7268,29 +6200,29 @@ host_build {
EOF
echo "QT_COORD_TYPE = $CFG_QREAL"
-if [ -n "$QT_CFLAGS_PSQL" ]; then
- echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL"
+if [ -n "$QMAKE_CFLAGS_PSQL" ]; then
+ echo "QMAKE_CFLAGS_PSQL = $QMAKE_CFLAGS_PSQL"
fi
-if [ -n "$QT_LFLAGS_PSQL" ]; then
- echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL"
+if [ -n "$QMAKE_LIBS_PSQL" ]; then
+ echo "QMAKE_LIBS_PSQL = $QMAKE_LIBS_PSQL"
fi
-if [ -n "$QT_CFLAGS_MYSQL" ]; then
- echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL"
+if [ -n "$QMAKE_CFLAGS_MYSQL" ]; then
+ echo "QMAKE_CFLAGS_MYSQL = $QMAKE_CFLAGS_MYSQL"
fi
-if [ -n "$QT_LFLAGS_MYSQL" ]; then
- echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL"
+if [ -n "$QMAKE_LIBS_MYSQL" ]; then
+ echo "QMAKE_LIBS_MYSQL = $QMAKE_LIBS_MYSQL"
fi
-if [ -n "$QT_CFLAGS_SQLITE" ]; then
- echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE"
+if [ -n "$QMAKE_CFLAGS_SQLITE" ]; then
+ echo "QMAKE_CFLAGS_SQLITE = $QMAKE_CFLAGS_SQLITE"
fi
-if [ -n "$QT_LFLAGS_SQLITE" ]; then
- echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE"
+if [ -n "$QMAKE_LIBS_SQLITE" ]; then
+ echo "QMAKE_LIBS_SQLITE = $QMAKE_LIBS_SQLITE"
fi
-if [ -n "$QT_LFLAGS_ODBC" ]; then
- echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC"
+if [ -n "$QMAKE_LIBS_ODBC" ]; then
+ echo "QMAKE_LIBS_ODBC = $QMAKE_LIBS_ODBC"
fi
-if [ -n "$QT_LFLAGS_TDS" ]; then
- echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS"
+if [ -n "$QMAKE_LIBS_TDS" ]; then
+ echo "QMAKE_LIBS_TDS = $QMAKE_LIBS_TDS"
fi
#dump in the OPENSSL_LIBS info
@@ -7383,7 +6315,6 @@ fi
if [ "$OPT_VERBOSE" = "yes" ]; then
echo $ECHO_N "qmake vars .......... $ECHO_C"
cat "$QMAKE_VARS_FILE" | tr '\n' ' '
- echo "qmake switches ......... $QMAKE_SWITCHES"
echo
fi
@@ -7415,7 +6346,7 @@ if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
echo " SSE .................. ${CFG_SSE_LIST:-<none>}"
echo " AVX .................. ${CFG_AVX_LIST:-<none>}"
echo " AVX512 ............... ${CFG_AVX512_UPPER:-<none>}"
-elif [ "$CFG_ARCH" = "arm" ]; then
+elif [ "$CFG_ARCH" = "arm" -o "$CFG_ARCH" = "arm64" ]; then
echo " Neon ................. ${CFG_NEON}"
elif [ "$CFG_ARCH" = "mips" ]; then
echo " DSP/DSPr2 ............ ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
@@ -7428,7 +6359,6 @@ report_support " Qt D-Bus ..............." "$CFG_DBUS" runtime "loading dbus-1
report_support " Qt Concurrent .........." "$CFG_CONCURRENT"
report_support " Qt GUI ................." "$CFG_GUI"
report_support " Qt Widgets ............." "$CFG_WIDGETS"
-report_support " Large File ............." "$CFG_LARGEFILE"
report_support " QML debugging .........." "$CFG_QML_DEBUG"
report_support " Use system proxies ....." "$CFG_SYSTEM_PROXIES"
@@ -7474,7 +6404,6 @@ report_support " OpenSSL .............." "$CFG_OPENSSL" yes "loading librarie
report_support " OpenGL / OpenVG:"
report_support " EGL .................." "$CFG_EGL"
report_support " OpenGL ..............." "$CFG_OPENGL" yes "Desktop OpenGL" es2 "OpenGL ES 2.0+"
-report_support " OpenVG ..............." "$CFG_OPENVG-$CFG_OPENVG_SHIVA" yes-yes "ShivaVG" yes-no "native"
report_support " PCRE ..................." "$CFG_PCRE" yes "system library" qt "bundled copy"
if [ -n "$PKG_CONFIG" ]; then
report_support " pkg-config ............. yes"
@@ -7501,16 +6430,10 @@ report_support " XCB .................." "$CFG_XCB" system "system library" q
if [ "$CFG_XCB" != "no" ]; then
report_support " EGL on X ..........." "$CFG_EGL_X"
report_support " GLX ................" "$CFG_XCB_GLX"
- report_support " MIT-SHM ............" "$CFG_MITSHM"
report_support " Xcb-Xlib ..........." "$CFG_XCB_XLIB"
- report_support " Xcursor ............" "$CFG_XCURSOR" runtime "loaded at runtime"
- report_support " Xfixes ............." "$CFG_XFIXES" runtime "loaded at runtime"
report_support " Xi2 ................" "$CFG_XINPUT2" runtime "loaded at runtime"
- report_support " Xrandr ............." "$CFG_XRANDR" runtime "loaded at runtime"
report_support " Xrender ............" "$CFG_XRENDER"
report_support " XKB ................" "$CFG_XKB"
- report_support " XShape ............." "$CFG_XSHAPE"
- report_support " XSync .............." "$CFG_XSYNC"
fi
report_support " Session management ....." "$CFG_SM"
if [ "$XPLATFORM_QNX" = "yes" ]; then
@@ -7520,20 +6443,20 @@ if [ "$XPLATFORM_QNX" = "yes" ]; then
report_support " LGMON .................." "$CFG_LGMON"
fi
report_support " SQL drivers:"
-report_support " DB2 .................." "$CFG_SQL_db2" plugin "plugin" yes "built into QtSql"
-report_support " InterBase ............" "$CFG_SQL_ibase" plugin "plugin" yes "built into QtSql"
-report_support " MySQL ................" "$CFG_SQL_mysql" plugin "plugin" yes "built into QtSql"
-report_support " OCI .................." "$CFG_SQL_oci" plugin "plugin" yes "built into QtSql"
-report_support " ODBC ................." "$CFG_SQL_odbc" plugin "plugin" yes "built into QtSql"
-report_support " PostgreSQL ..........." "$CFG_SQL_psql" plugin "plugin" yes "built into QtSql"
-report_support " SQLite 2 ............." "$CFG_SQL_sqlite2" plugin "plugin" yes "built into QtSql"
+report_support " DB2 .................." "$CFG_SQL_db2"
+report_support " InterBase ............" "$CFG_SQL_ibase"
+report_support " MySQL ................" "$CFG_SQL_mysql"
+report_support " OCI .................." "$CFG_SQL_oci"
+report_support " ODBC ................." "$CFG_SQL_odbc"
+report_support " PostgreSQL ..........." "$CFG_SQL_psql"
+report_support " SQLite 2 ............." "$CFG_SQL_sqlite2"
report_support_plugin " SQLite ..............." "$CFG_SQL_sqlite" "$CFG_SQLITE" QtSql
-report_support " TDS .................." "$CFG_SQL_tds" plugin "plugin" yes "built into QtSql"
+report_support " TDS .................." "$CFG_SQL_tds"
report_support " tslib .................." "$CFG_TSLIB"
report_support " udev ..................." "$CFG_LIBUDEV"
report_support " xkbcommon-x11..........." "$CFG_XKBCOMMON" system "system library" qt "bundled copy, XKB config root: $CFG_XKB_CONFIG_ROOT"
report_support " xkbcommon-evdev........." "$CFG_XKBCOMMON_EVDEV"
-report_support " zlib ..................." "$CFG_ZLIB" system "system library" yes "bundled copy"
+report_support " zlib ..................." "$CFG_SYSTEM_ZLIB" yes "system library" no "bundled copy"
echo
@@ -7582,6 +6505,14 @@ if [ "$CFG_RELEASE_TOOLS" = "yes" -a \( "$CFG_DEBUG" = "no" -o "$CFG_DEBUG_RELEA
echo "NOTE: -optimized-tools is not useful in -release mode."
echo
fi
+if [ "$CFG_GUI" = "yes" ] && [ "$XPLATFORM_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ] && [ "$XPLATFORM_ANDROID" = "no" ] && [ "$XPLATFORM_HAIKU" = "no" ] && [ "$XPLATFORM_INTEGRITY" = "no" ]; then
+ if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_MIRCLIENT" = "no" ]; then
+ echo
+ echo "No QPA platform plugin enabled! This will"
+ echo "produce a Qt that cannot run GUI applications."
+ echo
+ fi
+fi
exec 1>&3 3>&- # restore stdout
cat $outpath/config.summary # display config feedback to user
@@ -7617,76 +6548,6 @@ rm -f "$QMAKE_VARS_FILE" 2>/dev/null
) || exit
#-------------------------------------------------------------------------------
-# check for platforms that we don't yet know about
-#-------------------------------------------------------------------------------
-if [ "$CFG_ARCH" = "unknown" ]; then
-cat <<EOF
-
- NOTICE: configure was unable to determine the architecture
- for the $XQMAKESPEC target.
-
- Qt will not use a specialized implementation for any atomic
- operations. Instead a generic implemention based on either GCC
- intrinsics or C++11 std::atomic<T> will be used (when
- available). The generic implementations are generally as fast
- as and always as safe as a specialized implementation.
-
- If no generic implementation is available, Qt will use a
- fallback UNIX implementation which uses a single
- pthread_mutex_t to protect all atomic operations. This
- implementation is the slow (but safe) fallback implementation
- for architectures Qt does not yet support.
-EOF
-fi
-
-#-------------------------------------------------------------------------------
-# check if the user passed the -no-zlib option, which is no longer supported
-#-------------------------------------------------------------------------------
-if [ -n "$ZLIB_FORCED" ]; then
- which_zlib="supplied"
- if [ "$CFG_ZLIB" = "system" ]; then
- which_zlib="system"
- fi
-
-cat <<EOF
-
- NOTICE: The -no-zlib option was supplied but is no longer
- supported.
-
- Qt now requires zlib support in all builds, so the -no-zlib
- option was ignored. Qt will be built using the $which_zlib
- zlib.
-EOF
-fi
-
-#-------------------------------------------------------------------------------
-# check if the user passed the obsoleted -wayland or -no-wayland flag
-#-------------------------------------------------------------------------------
-if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
-cat <<EOF
-
- NOTICE: The -wayland and -no-wayland flags are now obsolete
-
- All configuring of QtWayland plugin and QtCompositor happens in the module
-EOF
-fi
-
-#-------------------------------------------------------------------------------
-# check if the user passed the obsoleted -arch or -host-arch options
-#-------------------------------------------------------------------------------
-if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
-cat <<EOF
-
- NOTICE: The -arch and -host-arch options are obsolete.
-
- Qt now detects the target and host architectures based on compiler
- output. Qt will be built using $CFG_ARCH for the target architecture
- and $CFG_HOST_ARCH for the host architecture (note that these two
- will be the same unless you are cross-compiling).
-EOF
-fi
-
-#-------------------------------------------------------------------------------
# finally save the executed command to another script
#-------------------------------------------------------------------------------
if [ `basename $0` != "config.status" ]; then
diff --git a/examples/corelib/ipc/ipc.pro b/examples/corelib/ipc/ipc.pro
index 65ee98a2cf..4cc5f3be56 100644
--- a/examples/corelib/ipc/ipc.pro
+++ b/examples/corelib/ipc/ipc.pro
@@ -3,4 +3,4 @@ requires(qtHaveModule(widgets))
TEMPLATE = subdirs
# no QSharedMemory
!vxworks:!integrity: SUBDIRS = sharedmemory
-!wince:qtHaveModule(network): SUBDIRS += localfortuneserver localfortuneclient
+qtHaveModule(network): SUBDIRS += localfortuneserver localfortuneclient
diff --git a/examples/network/bearermonitor/bearermonitor.pro b/examples/network/bearermonitor/bearermonitor.pro
index f364fabf2d..d75e021834 100644
--- a/examples/network/bearermonitor/bearermonitor.pro
+++ b/examples/network/bearermonitor/bearermonitor.pro
@@ -12,8 +12,7 @@ FORMS = bearermonitor_240_320.ui \
bearermonitor_640_480.ui \
sessionwidget.ui
-win32:!wince: LIBS += -lws2_32
-wince: LIBS += -lws2
+win32:LIBS += -lws2_32
CONFIG += console
diff --git a/examples/widgets/draganddrop/draganddrop.pro b/examples/widgets/draganddrop/draganddrop.pro
index eb678eecd8..1ecafd33a1 100644
--- a/examples/widgets/draganddrop/draganddrop.pro
+++ b/examples/widgets/draganddrop/draganddrop.pro
@@ -4,5 +4,3 @@ SUBDIRS = draggableicons \
dropsite \
fridgemagnets \
puzzle
-
-wince: SUBDIRS -= dropsite
diff --git a/examples/widgets/draganddrop/puzzle/puzzle.pro b/examples/widgets/draganddrop/puzzle/puzzle.pro
index 404b75187d..97e7206682 100644
--- a/examples/widgets/draganddrop/puzzle/puzzle.pro
+++ b/examples/widgets/draganddrop/puzzle/puzzle.pro
@@ -14,9 +14,3 @@ QMAKE_PROJECT_NAME = dndpuzzle
# install
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/draganddrop/puzzle
INSTALLS += target
-
-wince {
- addFile.files = example.jpg
- addFile.path = .
- INSTALLS += addFile
-}
diff --git a/examples/widgets/graphicsview/boxes/boxes.pro b/examples/widgets/graphicsview/boxes/boxes.pro
index 38aae1c2c4..14d22537e8 100644
--- a/examples/widgets/graphicsview/boxes/boxes.pro
+++ b/examples/widgets/graphicsview/boxes/boxes.pro
@@ -24,7 +24,3 @@ RESOURCES += boxes.qrc
# install
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/graphicsview/boxes
INSTALLS += target
-
-wince {
- DEPLOYMENT_PLUGIN += qjpeg
-}
diff --git a/examples/widgets/graphicsview/embeddeddialogs/main.cpp b/examples/widgets/graphicsview/embeddeddialogs/main.cpp
index dcab0ee3a8..cbd5dd5890 100644
--- a/examples/widgets/graphicsview/embeddeddialogs/main.cpp
+++ b/examples/widgets/graphicsview/embeddeddialogs/main.cpp
@@ -62,11 +62,7 @@ int main(int argc, char *argv[])
QGraphicsScene scene;
scene.setStickyFocus(true);
-#ifndef Q_OS_WINCE
const int gridSize = 10;
-#else
- const int gridSize = 5;
-#endif
for (int y = 0; y < gridSize; ++y) {
for (int x = 0; x < gridSize; ++x) {
diff --git a/examples/widgets/itemviews/puzzle/puzzle.pro b/examples/widgets/itemviews/puzzle/puzzle.pro
index a5379293ff..55f1d7e709 100644
--- a/examples/widgets/itemviews/puzzle/puzzle.pro
+++ b/examples/widgets/itemviews/puzzle/puzzle.pro
@@ -12,8 +12,3 @@ SOURCES = main.cpp \
# install
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/itemviews/puzzle
INSTALLS += target
-
-
-wince* {
- DEPLOYMENT_PLUGIN += qjpeg qgif
-}
diff --git a/examples/widgets/painting/affine/affine.pro b/examples/widgets/painting/affine/affine.pro
index be6a83960d..0ad869183c 100644
--- a/examples/widgets/painting/affine/affine.pro
+++ b/examples/widgets/painting/affine/affine.pro
@@ -16,7 +16,3 @@ RESOURCES += affine.qrc
# install
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/painting/affine
INSTALLS += target
-
-wince {
- DEPLOYMENT_PLUGIN += qjpeg
-}
diff --git a/examples/widgets/painting/composition/composition.pro b/examples/widgets/painting/composition/composition.pro
index 3b64714ba2..7d174ca2bc 100644
--- a/examples/widgets/painting/composition/composition.pro
+++ b/examples/widgets/painting/composition/composition.pro
@@ -15,7 +15,3 @@ QT += widgets
# install
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/painting/composition
INSTALLS += target
-
-wince* {
- DEPLOYMENT_PLUGIN += qjpeg
-}
diff --git a/examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.pro b/examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.pro
index 93cd950b0b..ae51662341 100644
--- a/examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.pro
+++ b/examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.pro
@@ -9,10 +9,3 @@ SOURCES = highlighter.cpp \
# install
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/richtext/syntaxhighlighter
INSTALLS += target
-
-
-wince {
- addFiles.files = main.cpp mainwindow.cpp
- addFiles.path = .
- INSTALLS += addFiles
-}
diff --git a/examples/widgets/widgets/icons/icons.pro b/examples/widgets/widgets/icons/icons.pro
index 4ee95592c8..450bdf9f8a 100644
--- a/examples/widgets/widgets/icons/icons.pro
+++ b/examples/widgets/widgets/icons/icons.pro
@@ -17,14 +17,3 @@ EXAMPLE_FILES = images/*
# install
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/widgets/icons
INSTALLS += target
-
-
-wince {
- imageFiles.files = images/*
- wincewm*: {
- imageFiles.path = "/My Documents/My Pictures"
- } else {
- imageFiles.path = images
- }
- INSTALLS += imageFiles
-}
diff --git a/examples/widgets/widgets/imageviewer/imageviewer.pro b/examples/widgets/widgets/imageviewer/imageviewer.pro
index 2853f1699f..4903a68537 100644
--- a/examples/widgets/widgets/imageviewer/imageviewer.pro
+++ b/examples/widgets/widgets/imageviewer/imageviewer.pro
@@ -8,8 +8,3 @@ SOURCES = imageviewer.cpp \
# install
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/widgets/imageviewer
INSTALLS += target
-
-
-wince {
- DEPLOYMENT_PLUGIN += qjpeg qgif
-}
diff --git a/examples/widgets/widgets/movie/movie.pro b/examples/widgets/widgets/movie/movie.pro
index 94d86454d8..e3b9b5129c 100644
--- a/examples/widgets/widgets/movie/movie.pro
+++ b/examples/widgets/widgets/movie/movie.pro
@@ -9,10 +9,3 @@ EXAMPLE_FILES = animation.gif
# install
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/widgets/movie
INSTALLS += target
-
-
-wince {
- addFiles.files += *.gif
- addFiles.path = .
- INSTALLS += addFiles
-}
diff --git a/mkspecs/common/ios.conf b/mkspecs/common/ios.conf
index f8f810d4f0..dd9b29f9e2 100644
--- a/mkspecs/common/ios.conf
+++ b/mkspecs/common/ios.conf
@@ -6,15 +6,15 @@ QMAKE_PLATFORM += ios
QMAKE_MAC_SDK = iphoneos
simulator.sdk = iphonesimulator
-simulator.target = $${simulator.sdk}
+simulator.target = simulator
simulator.dir_affix = $${simulator.sdk}
simulator.CONFIG = $${simulator.sdk}
simulator.deployment_identifier = ios-simulator
device.sdk = iphoneos
-device.target = $${device.sdk}
+device.target = device
device.dir_affix = $${device.sdk}
device.CONFIG = $${device.sdk}
device.deployment_identifier = $${device.sdk}
-include(mac.conf)
+include(uikit.conf)
diff --git a/mkspecs/common/mac.conf b/mkspecs/common/mac.conf
index aac9d1b3d7..3adf868ea4 100644
--- a/mkspecs/common/mac.conf
+++ b/mkspecs/common/mac.conf
@@ -6,6 +6,10 @@
QMAKE_PLATFORM += mac darwin
+MAKEFILE_GENERATOR = UNIX
+CONFIG += app_bundle incremental global_init_link_order lib_version_first plugin_no_soname sdk
+QMAKE_INCREMENTAL_STYLE = sublib
+
include(unix.conf)
QMAKE_RESOURCE = /Developer/Tools/Rez
diff --git a/mkspecs/common/tvos.conf b/mkspecs/common/tvos.conf
new file mode 100644
index 0000000000..2db616f51e
--- /dev/null
+++ b/mkspecs/common/tvos.conf
@@ -0,0 +1,21 @@
+#
+# qmake common configuration for tvOS
+#
+
+QMAKE_PLATFORM += tvos
+QMAKE_MAC_SDK = appletvos
+CONFIG += bitcode
+
+simulator.sdk = appletvsimulator
+simulator.target = simulator
+simulator.dir_affix = $${simulator.sdk}
+simulator.CONFIG = $${simulator.sdk}
+simulator.deployment_identifier = tvos-simulator
+
+device.sdk = appletvos
+device.target = device
+device.dir_affix = $${device.sdk}
+device.CONFIG = $${device.sdk}
+device.deployment_identifier = $${device.sdk}
+
+include(uikit.conf)
diff --git a/mkspecs/common/uikit.conf b/mkspecs/common/uikit.conf
new file mode 100644
index 0000000000..d975ed98af
--- /dev/null
+++ b/mkspecs/common/uikit.conf
@@ -0,0 +1,11 @@
+#
+# qmake configuration for shared by UIKIT platforms
+#
+
+QMAKE_PLATFORM += uikit
+CONFIG += reduce_exports
+
+INCLUDEPATH += $$PWD/uikit
+DEFINES += DARWIN_NO_CARBON QT_NO_PRINTER QT_NO_PRINTDIALOG
+
+include(mac.conf)
diff --git a/mkspecs/common/ios/GLES2/gl2.h b/mkspecs/common/uikit/GLES2/gl2.h
index 0974509a35..0974509a35 100644
--- a/mkspecs/common/ios/GLES2/gl2.h
+++ b/mkspecs/common/uikit/GLES2/gl2.h
diff --git a/mkspecs/common/wince/qmake.conf b/mkspecs/common/wince/qmake.conf
deleted file mode 100644
index fa1a72a1b9..0000000000
--- a/mkspecs/common/wince/qmake.conf
+++ /dev/null
@@ -1,84 +0,0 @@
-#
-# qmake configuration for common Windows CE
-#
-
-include(../angle.conf)
-
-MAKEFILE_GENERATOR = MSVC.NET
-QMAKE_PLATFORM += wince win32
-CONFIG += incremental flat precompile_header autogen_precompile_source debug_and_release debug_and_release_target
-
-DEFINES += UNDER_CE WINCE _WINDOWS _UNICODE UNICODE _WIN32 QT_NO_PRINTER QT_NO_PRINTDIALOG
-
-QMAKE_COMPILER_DEFINES += _MSC_VER=1400
-
-QMAKE_COMPILER = msvc
-
-QMAKE_CC = cl
-QMAKE_LEX = flex
-QMAKE_LEXFLAGS =
-QMAKE_YACC = bison -y
-QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-
-QMAKE_CFLAGS_WARN_ON = -W3
-QMAKE_CFLAGS_WARN_OFF = -W0
-QMAKE_CFLAGS_RELEASE = -O2 -MD
-QMAKE_CFLAGS_LTCG = -GL
-QMAKE_CFLAGS_DEBUG = -DDEBUG -D_DEBUG -Zi -MDd
-QMAKE_CFLAGS_YACC =
-
-# Uncomment the following lines to reduce library sizes
-# with potential cost of performance
-# QMAKE_CFLAGS += -Os
-# QMAKE_CFLAGS_RELEASE += -Os
-
-QMAKE_CXX = $$QMAKE_CC
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -w34100 -w34189
-QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
-QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_STL_ON = -EHsc
-QMAKE_CXXFLAGS_STL_OFF =
-QMAKE_CXXFLAGS_RTTI_ON = -GR
-QMAKE_CXXFLAGS_RTTI_OFF =
-QMAKE_CXXFLAGS_EXCEPTIONS_ON = -EHsc
-QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -EHs-c-
-
-QMAKE_INCDIR =
-
-QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
-QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
-QMAKE_RUN_CC_IMP_BATCH = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
-QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
-QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
-QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
-
-QMAKE_LINK = link
-QMAKE_LFLAGS = /NOLOGO /NODEFAULTLIB:OLDNAMES.LIB
-QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO
-QMAKE_LFLAGS_DEBUG = /DEBUG
-QMAKE_LFLAGS_LTCG = /LTCG
-QMAKE_LIBS_NETWORK = ws2.lib
-QMAKE_LIBS_OPENGL =
-QMAKE_LIBS_COMPAT =
-QMAKE_PREFIX_SHLIB =
-QMAKE_EXTENSION_SHLIB = dll
-QMAKE_PREFIX_STATICLIB =
-QMAKE_EXTENSION_STATICLIB = lib
-
-QMAKE_LIBS_EGL = $${LIBEGL_NAME}.lib
-QMAKE_LIBS_OPENGL_ES2 = $${LIBGLESV2_NAME}.lib
-
-QMAKE_LIBS_QT_ENTRY = -lqtmain
-
-QMAKE_IDL = midl
-QMAKE_LIB = lib
-QMAKE_RC = rc
-
-VCPROJ_EXTENSION = .vcproj
-VCSOLUTION_EXTENSION = .sln
-VCPROJ_KEYWORD = Qt4VSv1.0
-load(qt_config)
diff --git a/mkspecs/common/wince/qplatformdefs.h b/mkspecs/common/wince/qplatformdefs.h
deleted file mode 100644
index 92f5013231..0000000000
--- a/mkspecs/common/wince/qplatformdefs.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QPLATFORMDEFS_H
-#define QPLATFORMDEFS_H
-
-#ifdef UNICODE
-#ifndef _UNICODE
-#define _UNICODE
-#endif
-#endif
-
-// Get Qt defines/settings
-
-#include "qglobal.h"
-#include "qfunctions_wince.h"
-
-#define _POSIX_
-#include <limits.h>
-#undef _POSIX_
-
-#include <tchar.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#ifdef QT_LARGEFILE_SUPPORT
-#define QT_STATBUF struct _stati64 // non-ANSI defs
-#define QT_STATBUF4TSTAT struct _stati64 // non-ANSI defs
-#define QT_STAT ::_stati64
-#define QT_FSTAT ::_fstati64
-#else
-#define QT_STATBUF struct stat // non-ANSI defs
-#define QT_STATBUF4TSTAT struct stat // non-ANSI defs
-#define QT_STAT ::qt_wince_stat
-#define QT_FSTAT ::qt_wince__fstat
-#endif
-#define QT_STAT_REG _S_IFREG
-#define QT_STAT_DIR _S_IFDIR
-#define QT_STAT_MASK _S_IFMT
-#if defined(_S_IFLNK)
-# define QT_STAT_LNK _S_IFLNK
-#endif
-#define QT_FILENO ::qt_wince___fileno
-#define QT_OPEN ::qt_wince_open
-#define QT_CLOSE ::qt_wince__close
-#ifdef QT_LARGEFILE_SUPPORT
-#define QT_LSEEK ::_lseeki64
-#define QT_TSTAT ::_tstati64
-#else
-#define QT_LSEEK ::qt_wince__lseek
-#define QT_TSTAT ::_tstat
-#endif
-#define QT_READ ::qt_wince__read
-#define QT_WRITE ::qt_wince__write
-#define QT_ACCESS ::qt_wince__access
-#define QT_GETCWD ::_getcwd
-#define QT_CHDIR ::_chdir
-#define QT_MKDIR ::qt_wince__mkdir
-#define QT_RMDIR ::qt_wince__rmdir
-#define QT_OPEN_LARGEFILE 0
-#define QT_OPEN_RDONLY _O_RDONLY
-#define QT_OPEN_WRONLY _O_WRONLY
-#define QT_OPEN_RDWR _O_RDWR
-#define QT_OPEN_CREAT _O_CREAT
-#define QT_OPEN_TRUNC _O_TRUNC
-#define QT_OPEN_APPEND _O_APPEND
-# define QT_OPEN_TEXT _O_TEXT
-# define QT_OPEN_BINARY _O_BINARY
-
-#define QT_FOPEN ::fopen
-#define QT_FSEEK ::fseek
-#define QT_FTELL ::ftell
-#define QT_FGETPOS ::fgetpos
-#define QT_FSETPOS ::fsetpos
-#define QT_MMAP ::mmap
-#define QT_FPOS_T fpos_t
-#define QT_OFF_T long
-
-#define QT_SIGNAL_ARGS int
-
-#define QT_VSNPRINTF(buffer, count, format, arg) \
- _vsnprintf(buffer, count, format, arg)
-
-#define QT_SNPRINTF ::_snprintf
-
-# define F_OK 0
-# define X_OK 1
-# define W_OK 2
-# define R_OK 4
-
-typedef int mode_t;
-
-#endif // QPLATFORMDEFS_H
diff --git a/mkspecs/devices/linux-arm-amlogic-8726M-g++/qeglfshooks_8726m.cpp b/mkspecs/devices/linux-arm-amlogic-8726M-g++/qeglfshooks_8726m.cpp
index 4dac018810..184a47b683 100644
--- a/mkspecs/devices/linux-arm-amlogic-8726M-g++/qeglfshooks_8726m.cpp
+++ b/mkspecs/devices/linux-arm-amlogic-8726M-g++/qeglfshooks_8726m.cpp
@@ -37,7 +37,7 @@
**
****************************************************************************/
-#include "qeglfshooks.h"
+#include "private/qeglfshooks_p.h"
#include <EGL/fbdev_window.h>
#include <stdio.h>
#include <sys/ioctl.h>
diff --git a/mkspecs/devices/linux-arm-hisilicon-hix5hd2-g++/qmake.conf b/mkspecs/devices/linux-arm-hisilicon-hix5hd2-g++/qmake.conf
index 71ff90c9f8..99b8f22f97 100644
--- a/mkspecs/devices/linux-arm-hisilicon-hix5hd2-g++/qmake.conf
+++ b/mkspecs/devices/linux-arm-hisilicon-hix5hd2-g++/qmake.conf
@@ -4,14 +4,14 @@
# A typical configure line looks like this:
# <path-to-qt-src>/configure -opensource -confirm-license -release -make libs -make examples -optimized-qmake
# -platform linux-g++-64 -device linux-arm-hisilicon-hix5hd2-g++ -device-option CROSS_COMPILE=arm-linux-gnueabihf-
-# -opengl es2 -no-qml-debug -no-directfb -no-kms -no-xcb -no-alsa -no-audio-backend -qt-zlib -qt-libjpeg -qt-libpng
+# -opengl es2 -no-qml-debug -no-directfb -no-kms -no-xcb -no-alsa -qt-zlib -qt-libjpeg -qt-libpng
# -no-icu -no-nis -sysroot <path-to-rootfs> -extprefix <path-to-targetinstall> -hostprefix <path-to-hostinstall>
# -prefix <path-to-prefix>
#
# such as
# ./configure -opensource -confirm-license -release -make libs -make examples -optimized-qmake
# -platform linux-g++-64 -device linux-arm-hisilicon-hix5hd2-g++ -device-option CROSS_COMPILE=arm-linux-gnueabihf-
-# -opengl es2 -no-qml-debug -no-directfb -no-kms -no-xcb -no-alsa -no-audio-backend -qt-zlib -qt-libjpeg -qt-libpng
+# -opengl es2 -no-qml-debug -no-directfb -no-kms -no-xcb -no-alsa -qt-zlib -qt-libjpeg -qt-libpng
# -no-icu -no-nis -sysroot /home/abc/project/sysbase
# -extprefix /home/abc/project/sysbase/qt_install
# -hostprefix /home/abc/project/qtdir/qtbase_hostinstall
diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf
index 11fb52a0b1..78356b4437 100644
--- a/mkspecs/features/create_cmake.prf
+++ b/mkspecs/features/create_cmake.prf
@@ -78,7 +78,7 @@ contains(CMAKE_PLUGIN_DIR, "^\\.\\./.*") {
CMAKE_PLUGIN_DIR_IS_ABSOLUTE = True
}
-win32:!wince:!static:!staticlib {
+win32:!static:!staticlib {
CMAKE_DLL_DIR = $$cmakeRelativePath($$[QT_INSTALL_BINS], $$[QT_INSTALL_PREFIX])
contains(CMAKE_DLL_DIR, "^\\.\\./.*") {
CMAKE_DLL_DIR = $$[QT_INSTALL_BINS]/
diff --git a/mkspecs/features/default_pre.prf b/mkspecs/features/default_pre.prf
index a247b46a72..cb348a1036 100644
--- a/mkspecs/features/default_pre.prf
+++ b/mkspecs/features/default_pre.prf
@@ -8,7 +8,7 @@ CONFIG = \
testcase_targets import_plugins import_qpa_plugin \
$$CONFIG
-contains(QT_CONFIG, c++11):lessThan(QT_COMPILER_STDCXX, 201103): CONFIG += c++11
+CONFIG += c++11
!build_pass:defined(QT_EDITION, var):!equals(QT_EDITION, "OpenSource"):!equals(QT_EDITION, "Preview") {
#
diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf
index ab37b1740f..c4d4c90f09 100644
--- a/mkspecs/features/mac/sdk.prf
+++ b/mkspecs/features/mac/sdk.prf
@@ -55,12 +55,13 @@ for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_
}
!equals(MAKEFILE_GENERATOR, XCODE) {
- ios:!host_buildĀ {
+ uikit:!host_buildĀ {
simulator: \
version_identifier = $$simulator.deployment_identifier
else: \
version_identifier = $$device.deployment_identifier
- deployment_target = $$QMAKE_IOS_DEPLOYMENT_TARGET
+ ios: deployment_target = $$QMAKE_IOS_DEPLOYMENT_TARGET
+ tvos: deployment_target = $$QMAKE_TVOS_DEPLOYMENT_TARGET
} else: osx {
version_identifier = macosx
deployment_target = $$QMAKE_MACOSX_DEPLOYMENT_TARGET
diff --git a/mkspecs/features/no_debug_info.prf b/mkspecs/features/no_debug_info.prf
index 1307679a39..da14b7bb27 100644
--- a/mkspecs/features/no_debug_info.prf
+++ b/mkspecs/features/no_debug_info.prf
@@ -1,5 +1,4 @@
-
-win32-msvc2*|wince*msvc* {
+msvc {
QMAKE_CFLAGS -= -Zi
QMAKE_CFLAGS_DEBUG -= -Zi
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO -= -Zi
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
index 03ec36ae3f..10b20be0b0 100644
--- a/mkspecs/features/qt.prf
+++ b/mkspecs/features/qt.prf
@@ -365,7 +365,7 @@ for(QT_CURRENT_VERIFY, $$list($$QT_PLUGIN_VERIFY)) {
# The following block is currently broken, because qt_plugin_XXX.prf files
# are not generated for dynamic builds.
- false:isEqual(QT_CURRENT_VERIFY, DEPLOYMENT_PLUGIN):shared:if(wince*|winrt) {
+ false:isEqual(QT_CURRENT_VERIFY, DEPLOYMENT_PLUGIN):shared:winrt {
QT_ITEM =
debug: QT_ITEM = $${QTPLUG}d4.dll
else: QT_ITEM = $${QTPLUG}4.dll
diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf
index 1e2d5c2423..f12cbb88fc 100644
--- a/mkspecs/features/qt_build_config.prf
+++ b/mkspecs/features/qt_build_config.prf
@@ -64,7 +64,7 @@ CONFIG = qt_build_extra $$CONFIG
cross_compile: \
CONFIG += force_bootstrap
-android|ios|winrt: \
+android|uikit|winrt: \
CONFIG += builtin_testdata
CONFIG += \
diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf
index b060ff604e..00a6aef51f 100644
--- a/mkspecs/features/qt_common.prf
+++ b/mkspecs/features/qt_common.prf
@@ -61,13 +61,15 @@ clang {
QMAKE_CXXFLAGS_WARN_ON += -Wvla
# GCC 5 introduced -Wdate-time
greaterThan(QT_GCC_MAJOR_VERSION, 4): QMAKE_CXXFLAGS_WARN_ON += -Wdate-time
+ # GCC 6 introduced these
+ greaterThan(QT_GCC_MAJOR_VERSION, 5): QMAKE_CXXFLAGS_WARN_ON += -Wshift-overflow=2 -Wduplicated-cond
}
warnings_are_errors:warning_clean {
# If the module declares that it has does its clean-up of warnings, enable -Werror.
# This setting is compiler-dependent anyway because it depends on the version of the
# compiler.
- clang:!ios {
+ clang:!uikit {
# Apple clang 4.0-4.2,5.0-5.1,6.0-6.4
# Regular clang 3.3-3.8
apple_ver = $${QT_APPLE_CLANG_MAJOR_VERSION}.$${QT_APPLE_CLANG_MINOR_VERSION}
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
index cfac583ba8..2ed1cd51de 100644
--- a/mkspecs/features/qt_functions.prf
+++ b/mkspecs/features/qt_functions.prf
@@ -1,6 +1,6 @@
defineReplace(qtPlatformTargetSuffix) {
- ios:CONFIG(simulator, simulator|device): \
+ uikit:CONFIG(simulator, simulator|device): \
suffix = _$${simulator.sdk}
else: \
suffix =
diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
index 22e2dd5ea2..436eb7ce0c 100644
--- a/mkspecs/features/qt_module.prf
+++ b/mkspecs/features/qt_module.prf
@@ -74,7 +74,7 @@ header_module {
TEMPLATE = lib
}
DESTDIR = $$MODULE_BASE_OUTDIR/lib
-win32:!wince:!prefix_build: DLLDESTDIR = $$MODULE_BASE_OUTDIR/bin
+win32:!prefix_build: DLLDESTDIR = $$MODULE_BASE_OUTDIR/bin
CONFIG += qmake_cache target_qt
@@ -114,10 +114,13 @@ lib_bundle {
CONFIG += sliced_bundle
header_module {
CONFIG += bundle
+ QMAKE_BUNDLE_NAME = $$TARGET
QMAKE_BUNDLE_EXTENSION = .framework
QMAKE_INFO_PLIST = $$QMAKESPEC/Info.plist.lib
}
- !debug_and_release|!build_all|CONFIG(release, debug|release) {
+ !build_all| \
+ if(if(!debug_and_release|CONFIG(release, debug|release)): \
+ if(!simulator_and_device|CONFIG(device, simulator|device))) {
FRAMEWORK_HEADERS.version = Versions
FRAMEWORK_HEADERS.files = $$SYNCQT.HEADER_FILES $$SYNCQT.HEADER_CLASSES
FRAMEWORK_HEADERS.path = Headers
diff --git a/mkspecs/features/qt_parts.prf b/mkspecs/features/qt_parts.prf
index 877bd60321..fa62f40e35 100644
--- a/mkspecs/features/qt_parts.prf
+++ b/mkspecs/features/qt_parts.prf
@@ -60,7 +60,7 @@ exists($$_PRO_FILE_PWD_/tests/tests.pro) {
sub_tests.CONFIG = no_default_install
!contains(QT_BUILD_PARTS, tests) {
sub_tests.CONFIG += no_default_target
- } else: !ios {
+ } else: !uikit {
# Make sure these are there in case we need them
sub_tools.CONFIG -= no_default_target
sub_examples.CONFIG -= no_default_target
diff --git a/mkspecs/features/qt_plugin.prf b/mkspecs/features/qt_plugin.prf
index 3cf6c7349c..31463309f7 100644
--- a/mkspecs/features/qt_plugin.prf
+++ b/mkspecs/features/qt_plugin.prf
@@ -92,5 +92,4 @@ CONFIG += create_cmake
load(qt_targets)
load(qt_common)
-wince: LIBS += $$QMAKE_LIBS_GUI
QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
diff --git a/mkspecs/features/uikit/bitcode.prf b/mkspecs/features/uikit/bitcode.prf
new file mode 100644
index 0000000000..ecc6542b3c
--- /dev/null
+++ b/mkspecs/features/uikit/bitcode.prf
@@ -0,0 +1,13 @@
+lessThan(QMAKE_XCODE_VERSION, "7.0") {
+ warning("You need to update Xcode to version 7 or newer to support bitcode")
+} else {
+ release:device {
+ QMAKE_CFLAGS += -fembed-bitcode
+ QMAKE_CXXFLAGS += -fembed-bitcode
+ QMAKE_OBJECTIVE_CFLAGS += -fembed-bitcode
+ } else {
+ QMAKE_CFLAGS += -fembed-bitcode-marker
+ QMAKE_CXXFLAGS += -fembed-bitcode-marker
+ QMAKE_OBJECTIVE_CFLAGS += -fembed-bitcode-marker
+ }
+}
diff --git a/mkspecs/features/uikit/default_post.prf b/mkspecs/features/uikit/default_post.prf
new file mode 100644
index 0000000000..7c92a24556
--- /dev/null
+++ b/mkspecs/features/uikit/default_post.prf
@@ -0,0 +1,109 @@
+equals(TEMPLATE, app):qt {
+ # If the application uses Qt, it needs to be an application bundle
+ # to be able to deploy and run on iOS. The only exception to this
+ # is if you're working with a jailbroken device and can run the
+ # resulting binary from the console/over SSH, but that's not a
+ # use-case we care about, so no need to complicate the logic.
+ CONFIG *= app_bundle
+
+ # For Qt applications we want Xcode project files as the generated output,
+ # but since qmake doesn't handle the transition between makefiles and Xcode
+ # project files (which happens when using subdirs), we can't just override
+ # MAKEFILE_GENERATOR. Instead, we generate the Xcode project by spawning a
+ # child qmake process with -spec macx-xcode and let the top level qmake
+ # process generate a wrapper makefile that forwards everything to xcodebuild.
+ equals(MAKEFILE_GENERATOR, UNIX): \
+ CONFIG = xcodebuild $$CONFIG
+}
+
+load(default_post)
+
+macx-xcode {
+ device_family.name = TARGETED_DEVICE_FAMILY
+ ios: device_family.value = $$QMAKE_IOS_TARGETED_DEVICE_FAMILY
+ tvos: device_family.value = $$QMAKE_TVOS_TARGETED_DEVICE_FAMILY
+ QMAKE_MAC_XCODE_SETTINGS += device_family
+
+ ios {
+ # If QMAKE_BUNDLE_DATA contains an asset catalog that includes an
+ # AppIcon.appiconset, we configure Xcode to use it for app icons.
+ for(bundle_data, QMAKE_BUNDLE_DATA) {
+ for(bundle_file, $${bundle_data}.files) {
+ !contains(bundle_file, .*\.xcassets$): next()
+ !exists($$absolute_path($$bundle_file/AppIcon.appiconset, $$_PRO_FILE_PWD_)): next()
+
+ asset_catalog_appicon.name = "ASSETCATALOG_COMPILER_APPICON_NAME"
+ asset_catalog_appicon.value = "AppIcon"
+ QMAKE_MAC_XCODE_SETTINGS += asset_catalog_appicon
+ break()
+ }
+ !isEmpty(asset_catalog_appicon.name): break()
+ }
+
+ # Set up default 4-inch iPhone/iPod launch image so that our apps
+ # support the full screen resolution of those devices.
+ qmake_launch_image = Default-568h@2x.png
+ qmake_copy_image.input = $$QMAKESPEC/$$qmake_launch_image
+ qmake_copy_image.output = $$OUT_PWD/$${TARGET}.xcodeproj/$$qmake_launch_image
+ qmake_copy_image.CONFIG = verbatim
+ QMAKE_SUBSTITUTES += qmake_copy_image
+ qmake_launch_images.files = $$qmake_copy_image.output
+ QMAKE_BUNDLE_DATA += qmake_launch_images
+
+ lessThan(QMAKE_XCODE_VERSION, "6.0") {
+ warning("You need to update Xcode to version 6 or newer to fully support iPhone6/6+")
+ } else {
+ # Set up default LaunchScreen to support iPhone6/6+
+ qmake_launch_screen = LaunchScreen.xib
+ qmake_copy_launch_screen.input = $$QMAKESPEC/$$qmake_launch_screen
+ qmake_copy_launch_screen.output = $$OUT_PWD/$${TARGET}.xcodeproj/$$qmake_launch_screen
+ QMAKE_SUBSTITUTES += qmake_copy_launch_screen
+ qmake_launch_screens.files = $$qmake_copy_launch_screen.output
+ QMAKE_BUNDLE_DATA += qmake_launch_screens
+ }
+ }
+}
+
+macx-xcode {
+ arch_device.name = "ARCHS[sdk=$${device.sdk}*]"
+ arch_simulator.name = "ARCHS[sdk=$${simulator.sdk}*]"
+ ios {
+ arch_device.value = $$QMAKE_IOS_DEVICE_ARCHS
+ arch_simulator.value = $$QMAKE_IOS_SIMULATOR_ARCHS
+ QMAKE_XCODE_ARCHS = $$QMAKE_IOS_DEVICE_ARCHS $$QMAKE_IOS_SIMULATOR_ARCHS
+ }
+ tvos {
+ arch_device.value = $$QMAKE_TVOS_DEVICE_ARCHS
+ arch_simulator.value = $$QMAKE_TVOS_SIMULATOR_ARCHS
+ QMAKE_XCODE_ARCHS = $$QMAKE_TVOS_DEVICE_ARCHS $$QMAKE_TVOS_SIMULATOR_ARCHS
+ }
+
+ QMAKE_MAC_XCODE_SETTINGS += arch_device arch_simulator
+
+ only_active_arch.name = ONLY_ACTIVE_ARCH
+ only_active_arch.value = YES
+ only_active_arch.build = debug
+ QMAKE_MAC_XCODE_SETTINGS += only_active_arch
+} else {
+ # Be more specific about which architecture we're targeting
+ contains(QT_ARCH, arm.*) {
+ ios: VALID_ARCHS = $$QMAKE_IOS_DEVICE_ARCHS
+ tvos: VALID_ARCHS = $$QMAKE_TVOS_DEVICE_ARCHS
+ } else {
+ ios: VALID_ARCHS = $$QMAKE_IOS_SIMULATOR_ARCHS
+ tvos: VALID_ARCHS = $$QMAKE_TVOS_SIMULATOR_ARCHS
+ }
+
+ single_arch: VALID_ARCHS = $$first(VALID_ARCHS)
+
+ ACTIVE_ARCHS = $(filter $(EXPORT_VALID_ARCHS), $(ARCHS))
+ ARCH_ARGS = $(foreach arch, $(if $(EXPORT_ACTIVE_ARCHS), $(EXPORT_ACTIVE_ARCHS), $(EXPORT_VALID_ARCHS)), -arch $(arch))
+
+ QMAKE_EXTRA_VARIABLES += VALID_ARCHS ACTIVE_ARCHS ARCH_ARGS
+
+ arch_flags = $(EXPORT_ARCH_ARGS)
+
+ QMAKE_CFLAGS += $$arch_flags
+ QMAKE_CXXFLAGS += $$arch_flags
+ QMAKE_LFLAGS += $$arch_flags
+}
diff --git a/mkspecs/macx-ios-clang/features/default_pre.prf b/mkspecs/features/uikit/default_pre.prf
index 977ac9acb2..ff45c1de0d 100644
--- a/mkspecs/macx-ios-clang/features/default_pre.prf
+++ b/mkspecs/features/uikit/default_pre.prf
@@ -19,3 +19,13 @@ build_pass:simulator {
CONFIG -= neon
CONFIG += sse sse2
}
+build_pass:appletvsimulator {
+ # For a simulator_and_device build all the config tests
+ # are based on the AppleTVOS ARM SDK, but we know that the simulator
+ # is x64 and that we support SSE/SSE2.
+ QT_ARCH = x64
+ QT_CPU_FEATURES.x64 = sse sse2
+ DEFINES += QT_COMPILER_SUPPORTS_SSE2
+ CONFIG -= neon
+ CONFIG += sse sse2
+}
diff --git a/mkspecs/macx-ios-clang/ios_destinations.sh b/mkspecs/features/uikit/device_destinations.sh
index 04785ba6ca..af7cb91e85 100755
--- a/mkspecs/macx-ios-clang/ios_destinations.sh
+++ b/mkspecs/features/uikit/device_destinations.sh
@@ -39,10 +39,10 @@
##
#############################################################################
-booted_simulator=$(xcrun simctl list devices | grep -E "iPhone|iPad" | grep -v unavailable | grep Booted | perl -lne 'print $1 if /\((.*?)\)/')
-echo "IPHONESIMULATOR_DEVICES = $booted_simulator"
+booted_simulator=$(xcrun simctl list devices | grep -E '$1' | grep -v unavailable | grep Booted | perl -lne 'print $2 if /\((.*?)\)/')
+echo "SIMULATOR_DEVICES = $booted_simulator"
-xcodebuild test -scheme $1 -destination 'id=0' -destination-timeout 1 2>&1| sed -n 's/{ \(platform:.*\) }/\1/p' | while read destination; do
+xcodebuild test -scheme $2 -destination 'id=0' -destination-timeout 1 2>&1| sed -n 's/{ \(platform:.*\) }/\1/p' | while read destination; do
id=$(echo $destination | sed -n -E 's/.*id:([^ ,]+).*/\1/p')
echo $destination | tr ',' '\n' | while read keyval; do
key=$(echo $keyval | cut -d ':' -f 1 | tr '[:lower:]' '[:upper:]')
@@ -51,9 +51,13 @@ xcodebuild test -scheme $1 -destination 'id=0' -destination-timeout 1 2>&1| sed
if [ $key = 'PLATFORM' ]; then
if [ "$val" = "iOS" ]; then
- echo "IPHONEOS_DEVICES += $id"
+ echo "HARDWARE_DEVICES += $id"
elif [ "$val" = "iOS Simulator" -a "$id" != "$booted_simulator" ]; then
- echo "IPHONESIMULATOR_DEVICES += $id"
+ echo "SIMULATOR_DEVICES += $id"
+ elif [ "$val" = "tvOS" ]; then
+ echo "HARDWARE_DEVICES += $id"
+ elif [ "$val" = "tvOS Simulator" -a "$id" != "$booted_simulator" ]; then
+ echo "SIMULATOR_DEVICES += $id"
fi
fi
done
diff --git a/mkspecs/macx-ios-clang/features/exclusive_builds_post.prf b/mkspecs/features/uikit/exclusive_builds_post.prf
index 1fb0a55846..1fb0a55846 100644
--- a/mkspecs/macx-ios-clang/features/exclusive_builds_post.prf
+++ b/mkspecs/features/uikit/exclusive_builds_post.prf
diff --git a/mkspecs/macx-ios-clang/features/qt.prf b/mkspecs/features/uikit/qt.prf
index 474a195e4b..af047be466 100644
--- a/mkspecs/macx-ios-clang/features/qt.prf
+++ b/mkspecs/features/uikit/qt.prf
@@ -7,16 +7,18 @@ equals(TEMPLATE, app):contains(qt_depends, gui(-private)?) {
lib_path_and_base = $$[QT_INSTALL_PLUGINS/get]/platforms/lib$${lib_name}$$qtPlatformTargetSuffix()
LIBS += -l$${lib_name}$$qtPlatformTargetSuffix() $$fromfile($${lib_path_and_base}.prl, QMAKE_PRL_LIBS)
- # By marking qt_registerPlatformPlugin as undefined, we ensure that
- # the plugin.o translation unit is considered for inclusion in
- # the final binary, which in turn ensures that the plugin's
- # static initializer is included and run.
- QMAKE_LFLAGS += -u _qt_registerPlatformPlugin
+ !bitcode {
+ # By marking qt_registerPlatformPlugin as undefined, we ensure that
+ # the plugin.o translation unit is considered for inclusion in
+ # the final binary, which in turn ensures that the plugin's
+ # static initializer is included and run.
+ QMAKE_LFLAGS += -u _qt_registerPlatformPlugin
- # We do link and dependency resolution for the platform plugin
- # manually, since we know we always need the plugin, so we don't
- # need to generate an import for it.
- QTPLUGIN.platforms = -
+ # We do link and dependency resolution for the platform plugin
+ # manually, since we know we always need the plugin, so we don't
+ # need to generate an import for it.
+ QTPLUGIN.platforms = -
+ }
!no_main_wrapper {
# The LC_MAIN load command available in iOS 6.0 and above allows dyld to
diff --git a/mkspecs/macx-ios-clang/features/qt_config.prf b/mkspecs/features/uikit/qt_config.prf
index d746cba9d9..71e0982f7e 100644
--- a/mkspecs/macx-ios-clang/features/qt_config.prf
+++ b/mkspecs/features/uikit/qt_config.prf
@@ -5,10 +5,12 @@ isEmpty(QT_ARCH) {
# means we fail to pass -arch to the compiler, resulting in broke tests.
# As the Xcode toolchain doesn't seem to have a way to auto-detect the
# arch based on the SDK, we have to hard-code the arch for configure.
- contains(QMAKE_MAC_SDK, $${device.sdk}.*): \
+ contains(QMAKE_MAC_SDK, $${device.sdk}.*) {
QT_ARCH = arm
- else: \ # Simulator
- QT_ARCH = i386
+ } else { # Simulator
+ ios: QT_ARCH = i386
+ tvos: QT_ARCH = x64
+ }
# Prevent the arch/config tests from building as multi-arch binaries,
# as we only want the lowest common denominator features.
diff --git a/mkspecs/macx-ios-clang/features/qt_parts.prf b/mkspecs/features/uikit/qt_parts.prf
index 81814a62b0..81814a62b0 100644
--- a/mkspecs/macx-ios-clang/features/qt_parts.prf
+++ b/mkspecs/features/uikit/qt_parts.prf
diff --git a/mkspecs/macx-ios-clang/features/resolve_config.prf b/mkspecs/features/uikit/resolve_config.prf
index c3ab90f45e..c3ab90f45e 100644
--- a/mkspecs/macx-ios-clang/features/resolve_config.prf
+++ b/mkspecs/features/uikit/resolve_config.prf
diff --git a/mkspecs/macx-ios-clang/features/sdk.prf b/mkspecs/features/uikit/sdk.prf
index ce7ba61b47..94451ea196 100644
--- a/mkspecs/macx-ios-clang/features/sdk.prf
+++ b/mkspecs/features/uikit/sdk.prf
@@ -2,7 +2,7 @@
# In case the user sets the SDK manually
contains(QMAKE_MAC_SDK, ^$${simulator.sdk}.*) {
contains(QT_CONFIG, simulator_and_device): \
- error("iOS simulator is handled automatically for simulator_and_device")
+ error("Simulator is handled automatically for simulator_and_device")
CONFIG += simulator $${simulator.sdk}
}
diff --git a/mkspecs/macx-ios-clang/features/testcase.prf b/mkspecs/features/uikit/testcase.prf
index e16c163ffa..e16c163ffa 100644
--- a/mkspecs/macx-ios-clang/features/testcase.prf
+++ b/mkspecs/features/uikit/testcase.prf
diff --git a/mkspecs/macx-ios-clang/features/testcase_targets.prf b/mkspecs/features/uikit/testcase_targets.prf
index e0a2922c3f..e0a2922c3f 100644
--- a/mkspecs/macx-ios-clang/features/testcase_targets.prf
+++ b/mkspecs/features/uikit/testcase_targets.prf
diff --git a/mkspecs/macx-ios-clang/xcodebuild.mk b/mkspecs/features/uikit/xcodebuild.mk
index 1bd18430df..5cbad60804 100644
--- a/mkspecs/macx-ios-clang/xcodebuild.mk
+++ b/mkspecs/features/uikit/xcodebuild.mk
@@ -40,17 +40,17 @@ $(EXPORT_SUBTARGETS): % : %-build
%-install: ACTION = install
%-install: xcodebuild-% ;
-# iOS Simulator doesn't support archiving
-%-iphonesimulator-install: ACTION = build
-iphonesimulator-install: ACTION = build
+# Simulator doesn't support archiving
+%-simulator-install: ACTION = build
+simulator-install: ACTION = build
# Limit check to a single configuration
-%-iphoneos-check: check-iphoneos ;
-%-iphonesimulator-check: check-iphonesimulator ;
+%-device-check: check-device ;
+%-simulator-check: check-simulator ;
# SDK
-%-iphoneos: SDK = iphoneos
-%-iphonesimulator: SDK = iphonesimulator
+%-device: SDK = $(DEVICE_SDK)
+%-simulator: SDK = $(SIMULATOR_SDK)
# Configuration
release-%: CONFIGURATION = Release
@@ -61,19 +61,20 @@ ifneq ($(filter check%,$(MAKECMDGOALS)),)
ifeq ($(DEVICES),)
$(info Enumerating test destinations (you may override this by setting DEVICES explicitly), please wait...)
SPECDIR := $(dir $(lastword $(MAKEFILE_LIST)))
- DESTINATIONS_INCLUDE = /tmp/ios_destinations.mk
- $(shell $(SPECDIR)/ios_destinations.sh $(TARGET) > $(DESTINATIONS_INCLUDE))
+ DESTINATIONS_INCLUDE = /tmp/device_destinations.mk
+ $(shell $(SPECDIR)/../features/uikit/device_destinations.sh '$(EXPORT_DEVICE_FILTER)' $(TARGET) > $(DESTINATIONS_INCLUDE))
include $(DESTINATIONS_INCLUDE)
endif
endif
-%-iphonesimulator: DEVICES = $(firstword $(IPHONESIMULATOR_DEVICES))
-%-iphoneos: DEVICES = $(IPHONEOS_DEVICES)
+%-simulator: DEVICES = $(firstword $(SIMULATOR_DEVICES))
+%-device: DEVICES = $(HARDWARE_DEVICES)
-IPHONEOS_GENERIC_DESTINATION := "generic/platform=iOS"
-IPHONESIMULATOR_GENERIC_DESTINATION := "id=$(shell xcrun simctl list devices | grep -E 'iPhone|iPad' | grep -v unavailable | perl -lne 'print $$1 if /\((.*?)\)/' | tail -n 1)"
+GENERIC_DEVICE_DESTINATION := $(EXPORT_GENERIC_DEVICE_DESTINATION)
+GENERIC_SIMULATOR_DESTINATION := "id=$(shell xcrun simctl list devices | grep -E '$(EXPORT_DEVICE_FILTER)' | grep -v unavailable | perl -lne 'print $$1 if /\((.*?)\)/' | tail -n 1)"
-DESTINATION = $(if $(DESTINATION_ID),"id=$(DESTINATION_ID)",$(value $(call toupper,$(call basesdk,$(SDK)))_GENERIC_DESTINATION))
+%-simulator: DESTINATION = $(if $(DESTINATION_ID),"id=$(DESTINATION_ID)",$(GENERIC_SIMULATOR_DESTINATION))
+%-device: DESTINATION = $(if $(DESTINATION_ID),"id=$(DESTINATION_ID)",$(GENERIC_DEVICE_DESTINATION))
# Xcodebuild
diff --git a/mkspecs/macx-ios-clang/features/xcodebuild.prf b/mkspecs/features/uikit/xcodebuild.prf
index b897432a43..6e50bbcf50 100644
--- a/mkspecs/macx-ios-clang/features/xcodebuild.prf
+++ b/mkspecs/features/uikit/xcodebuild.prf
@@ -33,7 +33,19 @@ QMAKE_EXTRA_VARIABLES += SUBTARGETS
CONFIG += no_default_goal_deps
-QMAKE_EXTRA_INCLUDES += $$shell_quote($$QMAKESPEC/xcodebuild.mk)
+DEVICE_SDK = $${device.sdk}
+SIMULATOR_SDK = $${simulator.sdk}
+ios {
+ DEVICE_FILTER = "iPhone|iPad"
+ GENERIC_DEVICE_DESTINATION = "generic/platform=iOS"
+}
+tvos {
+ DEVICE_FILTER = "Apple TV"
+ GENERIC_DEVICE_DESTINATION = "generic/platform=tvOS"
+}
+QMAKE_EXTRA_VARIABLES += DEVICE_SDK SIMULATOR_SDK DEVICE_FILTER GENERIC_DEVICE_DESTINATION
+
+QMAKE_EXTRA_INCLUDES += $$shell_quote($$PWD/xcodebuild.mk)
# Distclean
diff --git a/mkspecs/features/win32/console.prf b/mkspecs/features/win32/console.prf
index 629f3af59b..e04367e20b 100644
--- a/mkspecs/features/win32/console.prf
+++ b/mkspecs/features/win32/console.prf
@@ -1,6 +1,5 @@
CONFIG -= windows
QMAKE_LFLAGS += $$replace(QMAKE_LFLAGS_CONSOLE, @QMAKE_SUBSYSTEM_SUFFIX@, $$QMAKE_SUBSYSTEM_SUFFIX)
contains(TEMPLATE, ".*app") {
- wince: QMAKE_LFLAGS += /ENTRY:mainACRTStartup
QMAKE_LFLAGS += $$QMAKE_LFLAGS_EXE
}
diff --git a/mkspecs/features/win32/opengl.prf b/mkspecs/features/win32/opengl.prf
index 8173348bc4..c26ab62f50 100644
--- a/mkspecs/features/win32/opengl.prf
+++ b/mkspecs/features/win32/opengl.prf
@@ -1,32 +1,23 @@
-# WinCE does not have a platform directory for .prf files, and the
-# win32 directory is searched for .prfs by qmake on WinCE. Ideally
-# there should be a features/wince/opengl.prf which contains the wince
-# block below.
-
-wince* {
- include(../unix/opengl.prf)
-} else {
- contains(QT_CONFIG, opengles2) {
-# For Desktop, use the ANGLE library location passed on from configure.
- INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES2
- CONFIG(debug, debug|release) {
- QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES2_DEBUG
- contains(QT_CONFIG, angle) {
- LIBS += $$QMAKE_LIBS_OPENGL_ES2_DEBUG
- } else {
- LIBS += $$QMAKE_LIBS_OPENGL_ES2
- }
+contains(QT_CONFIG, opengles2) {
+# For Desktop, use the ANGLE library location passed on from configure.
+ INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES2
+ CONFIG(debug, debug|release) {
+ QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES2_DEBUG
+ contains(QT_CONFIG, angle) {
+ LIBS += $$QMAKE_LIBS_OPENGL_ES2_DEBUG
} else {
LIBS += $$QMAKE_LIBS_OPENGL_ES2
- QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES2_RELEASE
}
- DEFINES += QT_OPENGL_ES_2 QT_OPENGL_ES_2_ANGLE
- contains(QT_CONFIG, static): DEFINES += QT_OPENGL_ES_2_ANGLE_STATIC GL_APICALL= EGLAPI=
- QT_CONFIG -= opengl
} else {
- !contains(QT_CONFIG, dynamicgl) {
- QMAKE_LIBS += $$QMAKE_LIBS_OPENGL
- QMAKE_LFLAGS += $$QMAKE_LFLAGS_OPENGL
- }
+ LIBS += $$QMAKE_LIBS_OPENGL_ES2
+ QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES2_RELEASE
+ }
+ DEFINES += QT_OPENGL_ES_2 QT_OPENGL_ES_2_ANGLE
+ contains(QT_CONFIG, static): DEFINES += QT_OPENGL_ES_2_ANGLE_STATIC GL_APICALL= EGLAPI=
+ QT_CONFIG -= opengl
+} else {
+ !contains(QT_CONFIG, dynamicgl) {
+ QMAKE_LIBS += $$QMAKE_LIBS_OPENGL
+ QMAKE_LFLAGS += $$QMAKE_LFLAGS_OPENGL
}
}
diff --git a/mkspecs/macx-clang-32/qmake.conf b/mkspecs/macx-clang-32/qmake.conf
index b4fbc5e1fd..ba3c7cab6c 100644
--- a/mkspecs/macx-clang-32/qmake.conf
+++ b/mkspecs/macx-clang-32/qmake.conf
@@ -2,16 +2,12 @@
# qmake configuration for 32-bit Clang on OS X
#
-MAKEFILE_GENERATOR = UNIX
-CONFIG += app_bundle incremental global_init_link_order lib_version_first plugin_no_soname
-QMAKE_INCREMENTAL_STYLE = sublib
-
include(../common/macx.conf)
include(../common/gcc-base-mac.conf)
include(../common/clang.conf)
include(../common/clang-mac.conf)
-QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.8
+QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9
QMAKE_CFLAGS += -arch i386
QMAKE_CXXFLAGS += -arch i386
diff --git a/mkspecs/macx-clang/qmake.conf b/mkspecs/macx-clang/qmake.conf
index 13facaa5f6..4d56d771a1 100644
--- a/mkspecs/macx-clang/qmake.conf
+++ b/mkspecs/macx-clang/qmake.conf
@@ -2,15 +2,11 @@
# qmake configuration for Clang on OS X
#
-MAKEFILE_GENERATOR = UNIX
-CONFIG += app_bundle incremental global_init_link_order lib_version_first plugin_no_soname
-QMAKE_INCREMENTAL_STYLE = sublib
-
include(../common/macx.conf)
include(../common/gcc-base-mac.conf)
include(../common/clang.conf)
include(../common/clang-mac.conf)
-QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.8
+QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9
load(qt_config)
diff --git a/mkspecs/macx-g++-32/qmake.conf b/mkspecs/macx-g++-32/qmake.conf
index 5871bbadb6..4d76472456 100644
--- a/mkspecs/macx-g++-32/qmake.conf
+++ b/mkspecs/macx-g++-32/qmake.conf
@@ -14,7 +14,7 @@ include(../common/macx.conf)
include(../common/gcc-base-mac.conf)
include(../common/g++-macx.conf)
-QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.8
+QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9
QMAKE_CFLAGS += -arch i386
QMAKE_CXXFLAGS += -arch i386
diff --git a/mkspecs/macx-g++/qmake.conf b/mkspecs/macx-g++/qmake.conf
index dcc023e6c5..65c53b20f6 100644
--- a/mkspecs/macx-g++/qmake.conf
+++ b/mkspecs/macx-g++/qmake.conf
@@ -14,6 +14,6 @@ include(../common/macx.conf)
include(../common/gcc-base-mac.conf)
include(../common/g++-macx.conf)
-QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.8
+QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9
load(qt_config)
diff --git a/mkspecs/macx-g++40/qmake.conf b/mkspecs/macx-g++40/qmake.conf
index f0583222cd..a60261d0dc 100644
--- a/mkspecs/macx-g++40/qmake.conf
+++ b/mkspecs/macx-g++40/qmake.conf
@@ -14,7 +14,7 @@ include(../common/macx.conf)
include(../common/gcc-base-mac.conf)
include(../common/g++-macx.conf)
-QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.8
+QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9
QMAKE_CC = gcc-4.0
QMAKE_CXX = g++-4.0
diff --git a/mkspecs/macx-g++42/qmake.conf b/mkspecs/macx-g++42/qmake.conf
index 3244a9c94a..afbe658dfa 100644
--- a/mkspecs/macx-g++42/qmake.conf
+++ b/mkspecs/macx-g++42/qmake.conf
@@ -14,7 +14,7 @@ include(../common/macx.conf)
include(../common/gcc-base-mac.conf)
include(../common/g++-macx.conf)
-QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.8
+QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9
QMAKE_CC = gcc-4.2
QMAKE_CXX = g++-4.2
diff --git a/mkspecs/macx-ios-clang/Info.plist.lib b/mkspecs/macx-ios-clang/Info.plist.lib
index 2a44d1721e..7cbdb9af12 100644
--- a/mkspecs/macx-ios-clang/Info.plist.lib
+++ b/mkspecs/macx-ios-clang/Info.plist.lib
@@ -14,6 +14,8 @@
<string>@TYPEINFO@</string>
<key>CFBundleExecutable</key>
<string>@LIBRARY@</string>
+ <key>CFBundleIdentifier</key>
+ <string>@BUNDLEIDENTIFIER@</string>
<key>NOTE</key>
<string>Please, do NOT change this file -- It was generated by Qt/QMake.</string>
</dict>
diff --git a/mkspecs/macx-ios-clang/features/default_post.prf b/mkspecs/macx-ios-clang/features/default_post.prf
deleted file mode 100644
index e5c78a0ea4..0000000000
--- a/mkspecs/macx-ios-clang/features/default_post.prf
+++ /dev/null
@@ -1,97 +0,0 @@
-
-equals(TEMPLATE, app):contains(CONFIG, qt) {
- # If the application uses Qt, it needs to be an application bundle
- # to be able to deploy and run on iOS. The only exception to this
- # is if you're working with a jailbroken device and can run the
- # resulting binary from the console/over SSH, but that's not a
- # use-case we care about, so no need to complicate the logic.
- CONFIG *= app_bundle
-
- # For Qt applications we want Xcode project files as the generated output,
- # but since qmake doesn't handle the transition between makefiles and Xcode
- # project files (which happens when using subdirs), we can't just override
- # MAKEFILE_GENERATOR. Instead, we generate the Xcode project by spawning a
- # child qmake process with -spec macx-xcode and let the top level qmake
- # process generate a wrapper makefile that forwards everything to xcodebuild.
- equals(MAKEFILE_GENERATOR, UNIX): \
- CONFIG = xcodebuild $$CONFIG
-}
-
-load(default_post)
-
-macx-xcode {
- ios_device_family.name = TARGETED_DEVICE_FAMILY
- ios_device_family.value = $$QMAKE_IOS_TARGETED_DEVICE_FAMILY
- QMAKE_MAC_XCODE_SETTINGS += ios_device_family
-
- # If QMAKE_BUNDLE_DATA contains an asset catalog that includes an
- # AppIcon.appiconset, we configure Xcode to use it for app icons.
- for(bundle_data, QMAKE_BUNDLE_DATA) {
- for(bundle_file, $${bundle_data}.files) {
- !contains(bundle_file, .*\.xcassets$): next()
- !exists($$absolute_path($$bundle_file/AppIcon.appiconset, $$_PRO_FILE_PWD_)): next()
-
- asset_catalog_appicon.name = "ASSETCATALOG_COMPILER_APPICON_NAME"
- asset_catalog_appicon.value = "AppIcon"
- QMAKE_MAC_XCODE_SETTINGS += asset_catalog_appicon
- break()
- }
- !isEmpty(asset_catalog_appicon.name): break()
- }
-
- # Set up default 4-inch iPhone/iPod launch image so that our apps
- # support the full screen resolution of those devices.
- qmake_launch_image = Default-568h@2x.png
- qmake_copy_image.input = $$QMAKESPEC/$$qmake_launch_image
- qmake_copy_image.output = $$OUT_PWD/$${TARGET}.xcodeproj/$$qmake_launch_image
- qmake_copy_image.CONFIG = verbatim
- QMAKE_SUBSTITUTES += qmake_copy_image
- qmake_launch_images.files = $$qmake_copy_image.output
- QMAKE_BUNDLE_DATA += qmake_launch_images
-
- lessThan(QMAKE_XCODE_VERSION, "6.0") {
- warning("You need to update Xcode to version 6 or newer to fully support iPhone6/6+")
- } else {
- # Set up default LaunchScreen to support iPhone6/6+
- qmake_launch_screen = LaunchScreen.xib
- qmake_copy_launch_screen.input = $$QMAKESPEC/$$qmake_launch_screen
- qmake_copy_launch_screen.output = $$OUT_PWD/$${TARGET}.xcodeproj/$$qmake_launch_screen
- QMAKE_SUBSTITUTES += qmake_copy_launch_screen
- qmake_launch_screens.files = $$qmake_copy_launch_screen.output
- QMAKE_BUNDLE_DATA += qmake_launch_screens
- }
-}
-
-macx-xcode {
- arch_device.name = "ARCHS[sdk=$${device.sdk}*]"
- arch_device.value = $$QMAKE_IOS_DEVICE_ARCHS
- arch_simulator.name = "ARCHS[sdk=$${simulator.sdk}*]"
- arch_simulator.value = $$QMAKE_IOS_SIMULATOR_ARCHS
-
- QMAKE_MAC_XCODE_SETTINGS += arch_device arch_simulator
- QMAKE_XCODE_ARCHS = $$QMAKE_IOS_DEVICE_ARCHS $$QMAKE_IOS_SIMULATOR_ARCHS
-
- only_active_arch.name = ONLY_ACTIVE_ARCH
- only_active_arch.value = YES
- only_active_arch.build = debug
- QMAKE_MAC_XCODE_SETTINGS += only_active_arch
-} else {
- # Be more specific about which architecture we're targeting
- contains(QT_ARCH, arm.*): \
- VALID_ARCHS = $$QMAKE_IOS_DEVICE_ARCHS
- else: \
- VALID_ARCHS = $$QMAKE_IOS_SIMULATOR_ARCHS
-
- single_arch: VALID_ARCHS = $$first(VALID_ARCHS)
-
- ACTIVE_ARCHS = $(filter $(EXPORT_VALID_ARCHS), $(ARCHS))
- ARCH_ARGS = $(foreach arch, $(if $(EXPORT_ACTIVE_ARCHS), $(EXPORT_ACTIVE_ARCHS), $(EXPORT_VALID_ARCHS)), -arch $(arch))
-
- QMAKE_EXTRA_VARIABLES += VALID_ARCHS ACTIVE_ARCHS ARCH_ARGS
-
- arch_flags = $(EXPORT_ARCH_ARGS)
-
- QMAKE_CFLAGS += $$arch_flags
- QMAKE_CXXFLAGS += $$arch_flags
- QMAKE_LFLAGS += $$arch_flags
-}
diff --git a/mkspecs/macx-ios-clang/qmake.conf b/mkspecs/macx-ios-clang/qmake.conf
index d5e5840902..94eff0d237 100644
--- a/mkspecs/macx-ios-clang/qmake.conf
+++ b/mkspecs/macx-ios-clang/qmake.conf
@@ -2,15 +2,7 @@
# qmake configuration for macx-ios-clang
#
-MAKEFILE_GENERATOR = UNIX
-CONFIG += app_bundle reduce_exports incremental global_init_link_order lib_version_first plugin_no_soname sdk
-QMAKE_INCREMENTAL_STYLE = sublib
-
-QMAKE_MACOSX_DEPLOYMENT_TARGET =
-QMAKE_IOS_DEPLOYMENT_TARGET = 6.0
-
-INCLUDEPATH += $$PWD/ios
-DEFINES += DARWIN_NO_CARBON QT_NO_PRINTER QT_NO_PRINTDIALOG
+QMAKE_IOS_DEPLOYMENT_TARGET = 7.0
# Universal target (iPhone and iPad)
QMAKE_IOS_TARGETED_DEVICE_FAMILY = 1,2
diff --git a/mkspecs/macx-llvm/qmake.conf b/mkspecs/macx-llvm/qmake.conf
index b4dd97f024..a22d2dfef3 100644
--- a/mkspecs/macx-llvm/qmake.conf
+++ b/mkspecs/macx-llvm/qmake.conf
@@ -14,7 +14,7 @@ include(../common/macx.conf)
include(../common/gcc-base-mac.conf)
include(../common/llvm.conf)
-QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.8
+QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9
QMAKE_XCODE_GCC_VERSION = com.apple.compilers.llvmgcc42
diff --git a/mkspecs/macx-tvos-clang/Info.plist.app b/mkspecs/macx-tvos-clang/Info.plist.app
new file mode 100644
index 0000000000..618989d63d
--- /dev/null
+++ b/mkspecs/macx-tvos-clang/Info.plist.app
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>en</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleGetInfoString</key>
+ <string>Created by Qt/QMake</string>
+ <key>CFBundleSignature</key>
+ <string>@TYPEINFO@</string>
+ <key>CFBundleExecutable</key>
+ <string>@EXECUTABLE@</string>
+ <key>CFBundleIdentifier</key>
+ <string>@BUNDLEIDENTIFIER@</string>
+ <key>CFBundleDisplayName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>CFBundleIcons</key>
+ <dict>
+ <key>CFBundlePrimaryIcon</key>
+ <string>App Icon - Small</string>
+ </dict>
+ <key>CFBundleSupportedPlatforms</key>
+ <array>
+ <string>AppleTVOS</string>
+ </array>
+ <key>LSRequiresIPhoneOS</key>
+ <true/>
+ <key>MinimumOSVersion</key>
+ <string>9.1</string>
+ <key>NOTE</key>
+ <string>This file was generated by Qt/QMake.</string>
+</dict>
+</plist>
diff --git a/mkspecs/macx-tvos-clang/Info.plist.lib b/mkspecs/macx-tvos-clang/Info.plist.lib
new file mode 100644
index 0000000000..7cbdb9af12
--- /dev/null
+++ b/mkspecs/macx-tvos-clang/Info.plist.lib
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleShortVersionString</key>
+ <string>@SHORT_VERSION@</string>
+ <key>CFBundleVersion</key>
+ <string>@FULL_VERSION@</string>
+ <key>CFBundleGetInfoString</key>
+ <string>Created by Qt/QMake</string>
+ <key>CFBundleSignature</key>
+ <string>@TYPEINFO@</string>
+ <key>CFBundleExecutable</key>
+ <string>@LIBRARY@</string>
+ <key>CFBundleIdentifier</key>
+ <string>@BUNDLEIDENTIFIER@</string>
+ <key>NOTE</key>
+ <string>Please, do NOT change this file -- It was generated by Qt/QMake.</string>
+</dict>
+</plist>
diff --git a/mkspecs/macx-tvos-clang/qmake.conf b/mkspecs/macx-tvos-clang/qmake.conf
new file mode 100644
index 0000000000..f389382450
--- /dev/null
+++ b/mkspecs/macx-tvos-clang/qmake.conf
@@ -0,0 +1,21 @@
+#
+# qmake configuration for macx-tvos-clang
+#
+
+QMAKE_TVOS_DEPLOYMENT_TARGET = 9.1
+
+INCLUDEPATH += $$PWD/tvos
+
+QMAKE_TVOS_TARGETED_DEVICE_FAMILY = 3
+
+QMAKE_TVOS_DEVICE_ARCHS = arm64
+QMAKE_TVOS_SIMULATOR_ARCHS = x86_64
+
+include(../common/tvos.conf)
+include(../common/gcc-base-mac.conf)
+include(../common/clang.conf)
+include(../common/clang-mac.conf)
+include(../common/ios/clang.conf)
+include(../common/ios/qmake.conf)
+
+load(qt_config)
diff --git a/mkspecs/macx-tvos-clang/qplatformdefs.h b/mkspecs/macx-tvos-clang/qplatformdefs.h
new file mode 100644
index 0000000000..68020de6d5
--- /dev/null
+++ b/mkspecs/macx-tvos-clang/qplatformdefs.h
@@ -0,0 +1,34 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the qmake spec of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "../common/mac/qplatformdefs.h"
diff --git a/mkspecs/wince60standard-armv4i-msvc2005/qmake.conf b/mkspecs/wince60standard-armv4i-msvc2005/qmake.conf
deleted file mode 100644
index fb16348487..0000000000
--- a/mkspecs/wince60standard-armv4i-msvc2005/qmake.conf
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# qmake configuration for wince-msvc2005
-#
-# Written for Microsoft VS 2005 for WindowsCE 6.0 (ARMV4I)
-# This is just a template for creating Windows CE 6 mkspecs.
-#
-
-include(../common/wince/qmake.conf)
-
-CE_SDK = STANDARDSDK_600 # replace with actual SDK name
-CE_ARCH = ARMV4I
-
-DEFINES += STANDARDSHELL_UI_MODEL _WIN32_WCE=0x600 $$CE_ARCH _ARMV4I_ armv4i _ARM_ ARM _M_ARM ARM _WIN32 __arm__
-
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,6.00 /MACHINE:THUMB
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,6.00 /MACHINE:THUMB
-QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,6.00 /MACHINE:THUMB /DLL /SAFESEH:NO
-QMAKE_LIBFLAGS_RELEASE = /LTCG
-QMAKE_LIBS = corelibc.lib coredll.lib
-QMAKE_LIBS_CORE = libcmt.lib corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib
-QMAKE_LIBS_GUI = ceshell.lib ole32.lib $$QMAKE_LIBS_CORE
-QMAKE_LIBS_NETWORK = ws2.lib $$QMAKE_LIBS_GUI
-QMAKE_LIBS_OPENGL =
-QMAKE_LIBS_COMPAT =
-
-QMAKE_RC = rc /DUNDER_CE=600 /D_WIN32_WCE=0x600
-
diff --git a/mkspecs/wince60standard-armv4i-msvc2005/qplatformdefs.h b/mkspecs/wince60standard-armv4i-msvc2005/qplatformdefs.h
deleted file mode 100644
index 780b7ef124..0000000000
--- a/mkspecs/wince60standard-armv4i-msvc2005/qplatformdefs.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wince60standard-x86-msvc2005/qmake.conf b/mkspecs/wince60standard-x86-msvc2005/qmake.conf
deleted file mode 100644
index 417de0d688..0000000000
--- a/mkspecs/wince60standard-x86-msvc2005/qmake.conf
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# qmake configuration for wince-msvc2005
-#
-# Written for Microsoft VS 2005 for WindowsCE 6.0 (x86)
-# This is just a template for creating Windows CE 6 mkspecs.
-#
-
-include(../common/wince/qmake.conf)
-
-CE_SDK = STANDARDSDK_600 # replace with actual SDK name
-CE_ARCH = x86
-
-DEFINES += STANDARDSHELL_UI_MODEL _WIN32_WCE=0x600 $$CE_ARCH _X86_ _M_IX86
-
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,6.00 /MACHINE:X86
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,6.00 /MACHINE:X86
-QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,6.00 /MACHINE:X86 /DLL /SAFESEH:NO
-QMAKE_LIBFLAGS_RELEASE = /LTCG
-QMAKE_LIBS = corelibc.lib coredll.lib
-QMAKE_LIBS_CORE = corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib
-QMAKE_LIBS_GUI = ceshell.lib ole32.lib $$QMAKE_LIBS_CORE
-QMAKE_LIBS_NETWORK = ws2.lib $$QMAKE_LIBS_GUI
-QMAKE_LIBS_OPENGL =
-QMAKE_LIBS_COMPAT =
-
-QMAKE_RC = rc /DUNDER_CE=600 /D_WIN32_WCE=0x600
-
diff --git a/mkspecs/wince60standard-x86-msvc2005/qplatformdefs.h b/mkspecs/wince60standard-x86-msvc2005/qplatformdefs.h
deleted file mode 100644
index 780b7ef124..0000000000
--- a/mkspecs/wince60standard-x86-msvc2005/qplatformdefs.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wince70embedded-armv4i-msvc2008/qmake.conf b/mkspecs/wince70embedded-armv4i-msvc2008/qmake.conf
deleted file mode 100644
index 860fbc0e6a..0000000000
--- a/mkspecs/wince70embedded-armv4i-msvc2008/qmake.conf
+++ /dev/null
@@ -1,29 +0,0 @@
-# qmake configuration for Windows Embedded Compact 7 with VS2008 on ARM targets
-#
-# This is just a template for creating WEC7 mkspecs for ARM targets
-# Replace the SDK name with actual SDK name.
-
-include(../common/wince/qmake.conf)
-
-CE_SDK = WEC7_SDK_NAME # replace with actual SDK name
-CE_ARCH = armv4i
-
-DEFINES += QT_NO_CLIPBOARD QT_NO_ACCESSIBILITY QT_NO_NATIVE_GESTURES QT_NOSTANDARDSHELL_UI_MODEL _CRT_SECURE_NO_DEPRECATE _WIN32_WCE=0x700 $$CE_ARCH _AMRV7_ armv7 _ARM_
-
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,7.00 /MACHINE:THUMB
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,7.00 /MACHINE:THUMB
-QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,7.00 /MACHINE:THUMB /DLL /SAFESEH:NO
-QMAKE_LIBFLAGS_RELEASE = /LTCG
-QMAKE_LIBS = corelibc.lib coredll.lib
-QMAKE_LIBS_CORE = corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib
-QMAKE_LIBS_GUI = ceshell.lib ole32.lib $$QMAKE_LIBS_CORE
-QMAKE_LIBS_NETWORK = ws2.lib $$QMAKE_LIBS_GUI
-QMAKE_LIBS_OPENGL =
-QMAKE_LIBS_COMPAT =
-QMAKE_LIBS_OPENVG = libopenvg.lib
-QMAKE_LIBS_OPENGL_ES2 = $${LIBEGL_NAME}.lib $${LIBGLESV2_NAME}.lib
-
-QMAKE_RC = rc
-
-QMAKE_COMPILER_DEFINES -= _MSC_VER=1400
-QMAKE_COMPILER_DEFINES += _MSC_VER=1500
diff --git a/mkspecs/wince70embedded-armv4i-msvc2008/qplatformdefs.h b/mkspecs/wince70embedded-armv4i-msvc2008/qplatformdefs.h
deleted file mode 100644
index 780b7ef124..0000000000
--- a/mkspecs/wince70embedded-armv4i-msvc2008/qplatformdefs.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wince70embedded-x86-msvc2008/qmake.conf b/mkspecs/wince70embedded-x86-msvc2008/qmake.conf
deleted file mode 100644
index 4d995db332..0000000000
--- a/mkspecs/wince70embedded-x86-msvc2008/qmake.conf
+++ /dev/null
@@ -1,27 +0,0 @@
-# qmake configuration for Windows Embedded Compact 7 with VS2008 platform builder target
-#
-#
-
-include(../common/wince/qmake.conf)
-
-CE_SDK = Platform Builder
-CE_ARCH = _TGTCPU
-
-DEFINES += QT_NO_NATIVE_GESTURES QT_NOSTANDARDSHELL_UI_MODEL _CRT_SECURE_NO_DEPRECATE _WIN32_WCE=0x700 $$CE_ARCH _X86_ _M_IX86
-
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,7.00 /MACHINE:X86
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,7.00 /MACHINE:X86
-QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,7.00 /MACHINE:X86 /DLL /SAFESEH:NO
-QMAKE_LIBFLAGS_RELEASE = /LTCG
-QMAKE_LIBS = corelibc.lib coredll.lib
-QMAKE_LIBS_CORE = corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib
-QMAKE_LIBS_GUI = ceshell.lib ole32.lib $$QMAKE_LIBS_CORE
-QMAKE_LIBS_NETWORK = ws2.lib $$QMAKE_LIBS_GUI
-QMAKE_LIBS_OPENGL =
-QMAKE_LIBS_COMPAT =
-QMAKE_LIBS_OPENVG = libopenvg.lib
-
-QMAKE_RC = rc
-
-QMAKE_COMPILER_DEFINES -= _MSC_VER=1400
-QMAKE_COMPILER_DEFINES += _MSC_VER=1500
diff --git a/mkspecs/wince70embedded-x86-msvc2008/qplatformdefs.h b/mkspecs/wince70embedded-x86-msvc2008/qplatformdefs.h
deleted file mode 100644
index 780b7ef124..0000000000
--- a/mkspecs/wince70embedded-x86-msvc2008/qplatformdefs.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wince80colibri-armv7-msvc2012/qmake.conf b/mkspecs/wince80colibri-armv7-msvc2012/qmake.conf
deleted file mode 100644
index 7af1ca828e..0000000000
--- a/mkspecs/wince80colibri-armv7-msvc2012/qmake.conf
+++ /dev/null
@@ -1,45 +0,0 @@
-# qmake configuration for Windows Embedded Compact 2013 with VS2012 on ARM targets
-#
-# This is just a template for creating WEC2013 mkspecs for ARM targets
-# Replace the SDK name with actual SDK name.
-
-include(../common/wince/qmake.conf)
-
-CE_SDK = Toradex_CE800 # replace with actual SDK name
-CE_ARCH = ARMV7
-CE_PLATFORMNAME = Toradex_CE800
-QT_CONFIG -= accessibility
-
-DEFINES += QT_NO_CLIPBOARD QT_NO_ACCESSIBILITY QT_NO_NATIVE_GESTURES QT_NOSTANDARDSHELL_UI_MODEL _CRT_SECURE_NO_DEPRECATE _WIN32_WCE=0x800 $$CE_ARCH _AMRV7_ armv7 _ARM_ UNDER_CE WINCE ARM QT_NO_WINCE_SHELLSDK QT_NO_WINCE_NUIOUSER
-
-#QMAKE_CXXFLAGS += /P
-QMAKE_CFLAGS_RELEASE += -O2 -MT
-QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
-QMAKE_CFLAGS_DEBUG += -Zi -MTd
-QMAKE_CFLAGS_RELEASE -= -MD
-QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO -= -MD
-QMAKE_CFLAGS_DEBUG -= -MDd
-QMAKE_CXXFLAGS_RELEASE -= -MD
-QMAKE_CXXFLAGS_RELEASE += -MT
-QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += -MT
-QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO -= -MD
-QMAKE_CXXFLAGS_DEBUG -= -MDd
-QMAKE_CXXFLAGS_DEBUG += -MTd
-QMAKE_INCDIR_OPENGL_ES2 += $$(NV_WINCE_T2_PLAT)/include
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,8.00 /MACHINE:ARM
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,8.00 /MACHINE:ARM
-QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,8.00 /MACHINE:ARM /DLL /SAFESEH:NO
-QMAKE_LIBFLAGS_RELEASE = /LTCG
-QMAKE_LIBS = coredll.lib
-QMAKE_LIBS_CORE = ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib
-QMAKE_LIBS_GUI = ole32.lib $$QMAKE_LIBS_CORE
-QMAKE_LIBS_NETWORK = ws2.lib $$QMAKE_LIBS_GUI
-QMAKE_LIBS_OPENGL_ES2 = $${LIBEGL_NAME}.lib $${LIBGLESV2_NAME}.lib
-
-MAKEFILE_GENERATOR = MSBUILD
-VCPROJ_EXTENSION = .vcxproj
-
-QMAKE_RC = rc
-
-QMAKE_COMPILER_DEFINES -= _MSC_VER=1400
-QMAKE_COMPILER_DEFINES += _MSC_VER=1700
diff --git a/mkspecs/wince80colibri-armv7-msvc2012/qplatformdefs.h b/mkspecs/wince80colibri-armv7-msvc2012/qplatformdefs.h
deleted file mode 100644
index 780b7ef124..0000000000
--- a/mkspecs/wince80colibri-armv7-msvc2012/qplatformdefs.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix
index 9d3ddab6f9..42ad826fd5 100644
--- a/qmake/Makefile.unix
+++ b/qmake/Makefile.unix
@@ -8,8 +8,7 @@ OBJS=project.o option.o property.o main.o ioutils.o proitems.o \
makefile.o unixmake2.o unixmake.o \
mingw_make.o winmakefile.o projectgenerator.o \
meta.o makefiledeps.o metamakefile.o xmloutput.o pbuilder_pbx.o \
- msvc_vcproj.o msvc_vcxproj.o msvc_nmake.o msvc_objectmodel.o msbuild_objectmodel.o \
- cesdkhandler.o
+ msvc_vcproj.o msvc_vcxproj.o msvc_nmake.o msvc_objectmodel.o msbuild_objectmodel.o
#qt code
QOBJS=qtextcodec.o qutfcodec.o qstring.o qstring_compat.o qstringbuilder.o qtextstream.o qiodevice.o \
@@ -36,7 +35,7 @@ DEPEND_SRC = \
$(QMKGENSRC)/mac/pbuilder_pbx.cpp \
$(QMKGENSRC)/win32/winmakefile.cpp \
$(QMKGENSRC)/win32/mingw_make.cpp $(QMKGENSRC)/win32/msvc_nmake.cpp \
- $(QMKGENSRC)/win32/cesdkhandler.cpp $(QMKGENSRC)/mac/xmloutput.cpp \
+ $(QMKGENSRC)/mac/xmloutput.cpp \
$(QMKGENSRC)/win32/msvc_vcproj.cpp $(QMKGENSRC)/win32/msvc_vcxproj.cpp \
$(QMKGENSRC)/win32/msvc_objectmodel.cpp $(QMKGENSRC)/win32/msbuild_objectmodel.cpp \
$(SOURCE_PATH)/src/corelib/codecs/qtextcodec.cpp $(SOURCE_PATH)/src/corelib/codecs/qutfcodec.cpp \
@@ -208,9 +207,6 @@ msvc_vcxproj.o: $(QMKSRC)/generators/win32/msvc_vcxproj.cpp
msvc_nmake.o: $(QMKSRC)/generators/win32/msvc_nmake.cpp
$(CXX) -c -o $@ $(CXXFLAGS) $<
-cesdkhandler.o: $(QMKSRC)/generators/win32/cesdkhandler.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) $<
-
pbuilder_pbx.o: $(QMKSRC)/generators/mac/pbuilder_pbx.cpp
$(CXX) -c -o $@ $(CXXFLAGS) $<
diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32
index 834065ee61..691d43058d 100644
--- a/qmake/Makefile.win32
+++ b/qmake/Makefile.win32
@@ -68,8 +68,7 @@ OBJS = project.obj main.obj ioutils.obj proitems.obj qmakevfs.obj \
option.obj winmakefile.obj projectgenerator.obj property.obj meta.obj \
makefiledeps.obj metamakefile.obj xmloutput.obj \
msvc_nmake.obj msvc_vcproj.obj msvc_vcxproj.obj \
- msvc_objectmodel.obj msbuild_objectmodel.obj registry.obj \
- cesdkhandler.obj
+ msvc_objectmodel.obj msbuild_objectmodel.obj registry.obj
#qt code
QTOBJS= \
diff --git a/qmake/doc/src/qmake-manual.qdoc b/qmake/doc/src/qmake-manual.qdoc
index 8078c377b2..4d958b1a20 100644
--- a/qmake/doc/src/qmake-manual.qdoc
+++ b/qmake/doc/src/qmake-manual.qdoc
@@ -657,7 +657,7 @@
qmake knows about many of these features, which can be accessed via specific
variables that only take effect on the platforms where they are relevant.
- \section1 OS X and iOS
+ \section1 OS X, iOS and tvOS
Features specific to these platforms include support for creating universal
binaries, frameworks and bundles.
@@ -1439,7 +1439,7 @@
\target QMAKE_BUNDLE_DATA
\section1 QMAKE_BUNDLE_DATA
- \note This variable is used on OS X and iOS only.
+ \note This variable is used on OS X, iOS and tvOS only.
Specifies the data that will be installed with a library
bundle, and is often used to specify a collection of header files.
@@ -1461,7 +1461,7 @@
\section1 QMAKE_BUNDLE_EXTENSION
- \note This variable is used on OS X and iOS only.
+ \note This variable is used on OS X, iOS and tvOS only.
Specifies the extension to be used for library bundles.
This allows frameworks to be created with custom extensions instead of the
@@ -1695,7 +1695,7 @@
\section1 QMAKE_FRAMEWORK_BUNDLE_NAME
- \note This variable is used on OS X and iOS only.
+ \note This variable is used on OS X, iOS and tvOS only.
In a framework project, this variable contains the name to be used for the
framework that is built.
@@ -1709,11 +1709,11 @@
\target QMAKE_FRAMEWORK_VERSION
\section1 QMAKE_FRAMEWORK_VERSION
- \note This variable is used on OS X and iOS only.
+ \note This variable is used on OS X, iOS and tvOS only.
- For projects where the build target is an OS X or iOS framework, this variable
- is used to specify the version number that will be applied to the framework
- that is built.
+ For projects where the build target is an OS X, iOS or tvOS framework, this
+ variable is used to specify the version number that will be applied to the
+ framework that is built.
By default, this variable contains the same value as the \l{#VERSION}{VERSION}
variable.
@@ -1804,10 +1804,10 @@
\target QMAKE_INFO_PLIST
\section1 QMAKE_INFO_PLIST
- \note This variable is used on OS X and iOS platforms only.
+ \note This variable is used on OS X, iOS and tvOS platforms only.
Specifies the name of the property list file, \c{.plist}, you
- would like to include in your OS X and iOS application bundle.
+ would like to include in your OS X, iOS and tvOS application bundle.
In the \c{.plist} file, you can define some variables, e.g., @EXECUTABLE@,
which qmake will replace with the actual executable name. Other variables
@@ -2165,7 +2165,7 @@
the built shared library's \c SONAME identifier. The \c SONAME is the
identifier that the dynamic linker will later use to reference the library.
In general this reference may be a library name or full library path. On OS
- X and iOS, the path may be specified relatively using the following
+ X, iOS and tvOS, the path may be specified relatively using the following
placeholders:
\table
@@ -2854,6 +2854,7 @@
MY_VAR2 will contain '-Lone -Ltwo -Lthree -Lfour -Lfive', and MY_VAR3 will
contain 'three two three'.
+ \target fn_first
\section2 first(variablename)
Returns the first value of \c variablename.
@@ -2862,8 +2863,9 @@
\snippet code/doc_src_qmake-manual.pro 161
- See also \l{last(variablename)}{last()}.
+ See also \l{take_first()}, \l{fn_last}{last()}.
+ \target format_number()
\section2 format_number(number[, options...])
Returns \c number in the format specified by \c options. You can specify the
@@ -2910,6 +2912,7 @@
to empty strings. If you need to encode spaces in \c glue, \c before, or \c
after, you must quote them.
+ \target fn_last
\section2 last(variablename)
Returns the last value of \c variablename.
@@ -2918,7 +2921,7 @@
\snippet code/doc_src_qmake-manual.pro 162
- See also \l{first(variablename)}{first()}.
+ See also \l{take_last()}, \l{fn_first}{first()}.
\section2 list(arg1 [, arg2 ..., argn])
@@ -2939,14 +2942,56 @@
See also \l{upper(arg1 [, arg2 ..., argn])}{upper()}.
- \section2 member(variablename, position)
+ \target member()
+ \section2 member(variablename [, start [, end]])
- Returns the value at the given \c position in the list of items in
- \c variablename.
- If an item cannot be found at the position specified, an empty string is
- returned. \c variablename is the only required field. If not specified,
- \c position defaults to 0, causing the first value in the list to be
- returned.
+ Returns the slice of the list value of \c variablename with the
+ zero-based element indices between \c start and \c end (inclusive).
+
+ If \c start is not given, it defaults to zero. This usage is
+ equivalent to \c $$first(variablename).
+
+ If \c end is not given, it defaults to \c start. This usage represents
+ simple array indexing, as exactly one element will be returned.
+
+ It is also possible to specify start and end in a single argument, with
+ the numbers separated by two periods.
+
+ Negative numbers represent indices starting from the end of the list,
+ with -1 being the last element.
+
+ If either index is out of range, an empty list is returned.
+
+ If \c end is smaller than \c start, the elements are returned
+ in reverse order.
+
+ \note The fact that the end index is inclusive and unordered implies
+ that an empty list will be returned only when an index is invalid
+ (which is implied by the input variable being empty).
+
+ See also \l{str_member()}.
+
+ \target num_add()
+ \section2 num_add(arg1 [, arg2 ..., argn])
+
+ Takes an arbitrary number of numeric arguments and adds them up,
+ returning the sum.
+
+ Subtraction is implicitly supported due to the possibility to simply
+ prepend a minus sign to a numeric value to negate it:
+
+ \code
+ sum = $$num_add($$first, -$$second)
+ \endcode
+
+ If the operand may be already negative, another step is necessary to
+ normalize the number:
+
+ \code
+ second_neg = -$$second
+ second_neg ~= s/^--//
+ sum = $$num_add($$first, $$second_neg)
+ \endcode
\section2 prompt(question)
@@ -3026,14 +3071,25 @@
See also \l{system_quote(arg)}{system_quote()}.
+ \target fn_size
\section2 size(variablename)
Returns the number of values of \c variablename.
+ See also \l{str_size()}.
+
\section2 sort_depends(variablename, prefix)
This is an internal function that you will typically not need.
+ \section2 sorted(variablename)
+
+ Returns the list of values in \c variablename with entries sorted
+ in ascending ASCII order.
+
+ Numerical sorting can be accomplished by zero-padding the values to
+ a fixed length with the help of the \l{format_number()} function.
+
\section2 split(variablename, separator)
Splits the value of \c variablename into separate values, and returns them
@@ -3043,6 +3099,45 @@
\snippet code/doc_src_qmake-manual.pro 168
+ \target str_member()
+ \section2 str_member(arg [, start [, end]])
+
+ This function is identical to \l{member()}, except that it operates
+ on a string value instead of a list variable, and consequently the
+ indices refer to character positions.
+
+ This function can be used to implement many common string slicing
+ operations:
+
+ \code
+ # $$left(VAR, len)
+ left = $$str_member(VAR, 0, $$num_add($$len, -1))
+
+ # $$right(VAR, len)
+ right = $$str_member(VAR, -$$num, -1)
+
+ # $$mid(VAR, off, len)
+ mid = $$str_member(VAR, $$off, $$num_add($$off, $$len, -1))
+
+ # $$mid(VAR, off)
+ mid = $$str_member(VAR, $$off, -1)
+
+ # $$reverse(VAR)
+ reverse = $$str_member(VAR, -1, 0)
+ \endcode
+
+ \note In these implementations, a zero \c len argument needs to be
+ handled separately.
+
+ See also \l{member()}, \l{num_add()}.
+
+ \target str_size()
+ \section2 str_size(arg)
+
+ Returns the number of characters in the argument.
+
+ See also \l{fn_size}{size()}.
+
\section2 system(command[, mode])
You can use this variant of the \c system function to obtain stdout from the
@@ -3070,6 +3165,26 @@
See also \l{shell_quote(arg)}{shell_quote()}.
+ \target take_first()
+ \section2 take_first(variablename)
+
+ Returns the first value of \c variablename and removes it from the
+ source variable.
+
+ This provides convenience for implementing queues, for example.
+
+ See also \l{take_last()}, \l{fn_first}{first()}.
+
+ \target take_last()
+ \section2 take_last(variablename)
+
+ Returns the last value of \c variablename and removes it from the
+ source variable.
+
+ This provides convenience for implementing stacks, for example.
+
+ See also \l{take_first()}, \l{fn_last}{last()}.
+
\target unique
\section2 unique(variablename)
@@ -4308,7 +4423,7 @@
\li nmake
\li Visual Studio projects (VS 2008 and later)
\endlist
- \li OS X and iOS
+ \li OS X, iOS and tvOS
\list
\li Makefile
\li Xcode
diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp
index 147c03a92d..47c7826154 100644
--- a/qmake/generators/mac/pbuilder_pbx.cpp
+++ b/qmake/generators/mac/pbuilder_pbx.cpp
@@ -1089,7 +1089,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
// Copy Bundle Data
if (!project->isEmpty("QMAKE_BUNDLE_DATA")) {
ProStringList bundle_file_refs;
- bool ios = project->isActiveConfig("ios");
+ bool osx = project->isActiveConfig("osx");
//all bundle data
const ProStringList &bundle_data = project->values("QMAKE_BUNDLE_DATA");
@@ -1117,8 +1117,8 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
<< "\t\t};\n";
}
- if (copyBundleResources && ((ios && path.isEmpty())
- || (!ios && path == QLatin1String("Contents/Resources")))) {
+ if (copyBundleResources && ((!osx && path.isEmpty())
+ || (osx && path == QLatin1String("Contents/Resources")))) {
for (const ProString &s : qAsConst(bundle_files))
bundle_resources_files << s;
} else {
@@ -1336,7 +1336,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
ProString targetName = project->first("QMAKE_ORIG_TARGET");
ProString testHost = "$(BUILT_PRODUCTS_DIR)/" + targetName + ".app/";
- if (!project->isActiveConfig("ios"))
+ if (project->isActiveConfig("osx"))
testHost.append("Contents/MacOS/");
testHost.append(targetName);
@@ -1404,10 +1404,8 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
QMap<QString, QString> settings;
settings.insert("COPY_PHASE_STRIP", (as_release ? "YES" : "NO"));
- // Bitcode is only supported with a deployment target >= iOS 6.0.
- // Disable it for now, and consider switching it on when later
- // bumping the deployment target.
- settings.insert("ENABLE_BITCODE", "NO");
+ // required for tvOS (and watchos), optional on iOS (deployment target >= iOS 6.0)
+ settings.insert("ENABLE_BITCODE", project->isActiveConfig("bitcode") ? "YES" : "NO");
settings.insert("GCC_GENERATE_DEBUGGING_SYMBOLS", as_release ? "NO" : "YES");
if(!as_release)
settings.insert("GCC_OPTIMIZATION_LEVEL", "0");
@@ -1537,6 +1535,8 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
t << "\t\t\t\t" << writeSettings("MACOSX_DEPLOYMENT_TARGET", project->first("QMAKE_MACOSX_DEPLOYMENT_TARGET")) << ";\n";
if (!project->isEmpty("QMAKE_IOS_DEPLOYMENT_TARGET"))
t << "\t\t\t\t" << writeSettings("IPHONEOS_DEPLOYMENT_TARGET", project->first("QMAKE_IOS_DEPLOYMENT_TARGET")) << ";\n";
+ if (!project->isEmpty("QMAKE_TVOS_DEPLOYMENT_TARGET"))
+ t << "\t\t\t\t" << writeSettings("APPLETVOS_DEPLOYMENT_TARGET", project->first("QMAKE_TVOS_DEPLOYMENT_TARGET")) << ";\n";
if (!project->isEmpty("QMAKE_XCODE_CODE_SIGN_IDENTITY"))
t << "\t\t\t\t" << writeSettings("CODE_SIGN_IDENTITY", project->first("QMAKE_XCODE_CODE_SIGN_IDENTITY")) << ";\n";
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index 12004c62c3..762ae66a1a 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -318,8 +318,8 @@ MakefileGenerator::findFilesInVPATH(ProStringList l, uchar flags, const QString
QDir::NoDotAndDotDot | QDir::AllEntries);
if(files.isEmpty()) {
debug_msg(1, "%s:%d Failure to find %s in vpath (%s)",
- __FILE__, __LINE__,
- val.toLatin1().constData(), vpath.join("::").toLatin1().constData());
+ __FILE__, __LINE__, val.toLatin1().constData(),
+ vpath.join(QString("::")).toLatin1().constData());
if(flags & VPATH_RemoveMissingFiles)
remove_file = true;
else if(flags & VPATH_WarnMissingFiles)
@@ -780,7 +780,8 @@ MakefileGenerator::init()
for (ProStringList::Iterator it = incDirs.begin(); it != incDirs.end(); ++it)
deplist.append(QMakeLocalFileName((*it).toQString()));
QMakeSourceFileInfo::setDependencyPaths(deplist);
- debug_msg(1, "Dependency Directories: %s", incDirs.join(" :: ").toLatin1().constData());
+ debug_msg(1, "Dependency Directories: %s",
+ incDirs.join(QString(" :: ")).toLatin1().constData());
//cache info
if(project->isActiveConfig("qmake_cache")) {
QString cache_file;
@@ -2183,7 +2184,7 @@ MakefileGenerator::writeExtraVariables(QTextStream &t)
}
if (!outlist.isEmpty()) {
t << "####### Custom Variables\n";
- t << outlist.join("\n") << endl << endl;
+ t << outlist.join('\n') << endl << endl;
}
}
@@ -2727,7 +2728,7 @@ MakefileGenerator::writeMakeQmake(QTextStream &t, bool noDummyQmakeAll)
t << escapeDependencyPath(specdir() + Option::dir_sep + "qmake.conf") << " ";
}
const ProStringList &included = escapeDependencyPaths(project->values("QMAKE_INTERNAL_INCLUDED_FILES"));
- t << included.join(" \\\n\t\t") << "\n\t"
+ t << included.join(QString(" \\\n\t\t")) << "\n\t"
<< qmake << endl;
for(int include = 0; include < included.size(); ++include) {
const ProString &i = included.at(include);
diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp
index 9312f19418..c53393e268 100644
--- a/qmake/generators/unix/unixmake2.cpp
+++ b/qmake/generators/unix/unixmake2.cpp
@@ -241,13 +241,14 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
t << "\\\n\t\t" << (*objit);
}
if(incrs_out.count() == objs.count()) { //we just switched places, no real incrementals to be done!
- t << escapeFilePaths(incrs_out).join(" \\\n\t\t") << endl;
+ t << escapeFilePaths(incrs_out).join(QString(" \\\n\t\t")) << endl;
} else if(!incrs_out.count()) {
t << endl;
} else {
src_incremental = true;
t << endl;
- t << "INCREMENTAL_OBJECTS = " << escapeFilePaths(incrs_out).join(" \\\n\t\t") << endl;
+ t << "INCREMENTAL_OBJECTS = "
+ << escapeFilePaths(incrs_out).join(QString(" \\\n\t\t")) << endl;
}
} else {
// Used all over the place in both deps and commands.
diff --git a/qmake/generators/win32/cesdkhandler.cpp b/qmake/generators/win32/cesdkhandler.cpp
deleted file mode 100644
index f45cbf74a9..0000000000
--- a/qmake/generators/win32/cesdkhandler.cpp
+++ /dev/null
@@ -1,368 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the tools applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "cesdkhandler.h"
-
-#include <qfile.h>
-#include <qfileinfo.h>
-#include <qdebug.h>
-#include <qxmlstream.h>
-#include <qsettings.h>
-#include <qtextstream.h>
-
-QT_BEGIN_NAMESPACE
-
-struct PropertyContainer
-{
- void clear() { name.clear(); value.clear(); properties.clear(); }
- QString name;
- QString value;
- QMap<QString, PropertyContainer> properties;
-};
-Q_DECLARE_TYPEINFO(PropertyContainer, Q_MOVABLE_TYPE);
-
-CeSdkInfo::CeSdkInfo() : m_major(0) , m_minor(0)
-{
-}
-
-CeSdkHandler::CeSdkHandler()
-{
-}
-
-struct ContainsPathKey
-{
- bool operator()(const QString &val) const
- {
- return !(val.endsWith(QLatin1String("MSBuildToolsPath"))
- || val.endsWith(QLatin1String("MSBuildToolsRoot")));
- }
-};
-
-struct ValueFromKey
-{
- explicit ValueFromKey(const QSettings *settings) : settings(settings) {}
- QString operator()(const QString &key) const
- {
- return settings->value(key).toString();
- }
-
- const QSettings *settings;
-};
-
-bool CeSdkHandler::parseMsBuildFile(QFile *file, CeSdkInfo *info)
-{
- bool result = file->open(QFile::ReadOnly | QFile::Text);
- const QString IncludePath = QStringLiteral("IncludePath");
- const QString LibraryPath = QStringLiteral("LibraryPath");
- const QString PreprocessorDefinitions = QStringLiteral("PreprocessorDefinitions");
- const QString SdkRootPathString = QStringLiteral("SdkRootPath");
- const QString ExecutablePath = QStringLiteral("ExecutablePath");
- enum ParserState{Not, Include, Lib, Define, BinDir, SdkRootPath};
- QString includePath;
- QString libraryPath;
- QString defines;
- QString binDirs;
- QString sdkRootPath;
- ParserState state = Not;
- if (result) {
- QXmlStreamReader xml(file);
- while (!xml.atEnd()) {
- if (xml.isStartElement()) {
- if (xml.name() == IncludePath)
- state = Include;
- else if (xml.name() == LibraryPath)
- state = Lib;
- else if (xml.name() == PreprocessorDefinitions)
- state = Define;
- else if (xml.name() == SdkRootPathString)
- state = SdkRootPath;
- else if (xml.name() == ExecutablePath)
- state = BinDir;
- else
- state = Not;
- } else if (xml.isEndElement()) {
- state = Not;
- } else if (xml.isCharacters()) {
- switch (state) {
- case Include:
- includePath += xml.text();
- break;
- case Lib:
- libraryPath += xml.text();
- break;
- case Define:
- defines += xml.text();
- break;
- case SdkRootPath:
- sdkRootPath = xml.text().toString();
- break;
- case BinDir:
- binDirs += xml.text();
- case(Not):
- break;
- }
- }
- xml.readNext();
- }
- }
- file->close();
- const bool success = result && !includePath.isEmpty() && !libraryPath.isEmpty() &&
- !defines.isEmpty() && !sdkRootPath.isEmpty();
- if (success) {
- const QString startPattern = QStringLiteral("$(Registry:");
- const int startIndex = sdkRootPath.indexOf(startPattern);
- const int endIndex = sdkRootPath.lastIndexOf(QLatin1Char(')'));
- const QString regString = sdkRootPath.mid(startIndex + startPattern.size(),
- endIndex - startIndex - startPattern.size());
- QSettings sdkRootPathRegistry(regString, QSettings::NativeFormat);
- const QString erg = sdkRootPathRegistry.value(QStringLiteral(".")).toString();
- const QString fullSdkRootPath = erg + sdkRootPath.mid(endIndex + 1);
- const QLatin1String rootString("$(SdkRootPath)");
-
- includePath = includePath.replace(rootString, fullSdkRootPath);
- libraryPath = libraryPath.replace(rootString, fullSdkRootPath);
- binDirs = binDirs.replace(rootString, fullSdkRootPath);
- info->m_include = includePath + ";$(INCLUDE)";
- info->m_lib = libraryPath;
- info->m_bin = binDirs;
- }
- return success;
-}
-
-QStringList CeSdkHandler::getMsBuildToolPaths() const
-{
- QSettings msbuildEntries("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\MSBuild\\ToolsVersions",
- QSettings::NativeFormat);
- const QStringList allKeys = msbuildEntries.allKeys();
- QStringList toolVersionKeys;
- toolVersionKeys.push_back(QStringLiteral("c:\\Program Files\\MSBuild\\"));
- std::remove_copy_if(allKeys.cbegin(), allKeys.cend(),
- std::back_inserter(toolVersionKeys), ContainsPathKey());
- QStringList toolVersionValues;
- std::transform(toolVersionKeys.constBegin(), toolVersionKeys.constEnd(),
- std::back_inserter(toolVersionValues),
- ValueFromKey(&msbuildEntries));
- return toolVersionValues;
-}
-
-QStringList CeSdkHandler::filterMsBuildToolPaths(const QStringList &paths) const
-{
- QStringList result;
- for (const QString &path : paths) {
- QDir dirVC110(path);
- if (path.endsWith(QLatin1String("bin")))
- dirVC110.cdUp();
- QDir dirVC120 = dirVC110;
- if (dirVC110.cd(QStringLiteral("Microsoft.Cpp\\v4.0\\V110\\Platforms")))
- result << dirVC110.absolutePath();
- if (dirVC120.cd(QStringLiteral("Microsoft.Cpp\\v4.0\\V120\\Platforms")))
- result << dirVC120.absolutePath();
- }
- return result;
-}
-
-bool CeSdkHandler::retrieveEnvironment(const QStringList &relativePaths,
- const QStringList &toolPaths,
- CeSdkInfo *info)
-{
- bool result = false;
- for (const QString &path : toolPaths) {
- const QDir dir(path);
- for (const QString &filePath : relativePaths) {
- QFile file(dir.absoluteFilePath(filePath));
- if (file.exists())
- result = parseMsBuildFile(&file, info) || result;
- }
- }
-
- return result;
-}
-
-void CeSdkHandler::retrieveWEC2013SDKs()
-{
- const QStringList toolPaths = getMsBuildToolPaths();
- const QStringList filteredToolPaths = filterMsBuildToolPaths(toolPaths);
- QSettings settings("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows CE Tools\\SDKs", QSettings::NativeFormat);
- const QStringList keys = settings.allKeys();
- for (const QString &key : keys) {
- if (key.contains(QLatin1String("SDKInformation")) || key.contains(QLatin1Char('.'))) {
- QFile sdkPropertyFile(settings.value(key).toString());
- if (!sdkPropertyFile.exists())
- continue;
- QFileInfo info(sdkPropertyFile);
- if (info.isDir()) {
- const QDir dir = info.absoluteFilePath();
- QFileInfo fInfo(dir.filePath(QLatin1String("Properties.xml")));
- if (fInfo.exists())
- sdkPropertyFile.setFileName(fInfo.absoluteFilePath());
- }
- if (!sdkPropertyFile.open(QFile::ReadOnly))
- continue;
- QXmlStreamReader xml(&sdkPropertyFile);
- QString currentElement;
- QString curName;
- PropertyContainer currentProperty;
- QVector<PropertyContainer> propStack;
- propStack.push_back(currentProperty);
- while (!xml.atEnd()) {
- xml.readNext();
- if (xml.isStartElement()) {
- currentElement = xml.name().toString();
- if (currentElement == QLatin1String("Property")) {
- QXmlStreamAttributes attributes = xml.attributes();
- if (attributes.hasAttribute(QLatin1String("NAME")))
- curName = attributes.value(QLatin1String("NAME")).toString();
- Q_ASSERT(!curName.isEmpty());
- currentProperty.clear();
- currentProperty.name = curName;
- propStack.push_back(currentProperty);
- } else if (currentElement == QLatin1String("PropertyBag")) {
- QXmlStreamAttributes attributes = xml.attributes();
- if (attributes.hasAttribute(QLatin1String("NAME")))
- curName = attributes.value(QLatin1String("NAME")).toString();
- Q_ASSERT(!curName.isEmpty());
- currentProperty.clear();
- currentProperty.name = curName;
- propStack.push_back(currentProperty);
- }
- } else if (xml.isEndElement()) {
- currentElement = xml.name().toString();
- PropertyContainer self = propStack.takeLast();
- if (currentElement != QLatin1String("Root")) {
- PropertyContainer &last = propStack.last();
- last.properties[self.name] = self;
- } else {
- currentProperty = self;
- }
- } else if (xml.isCharacters()) {
- PropertyContainer &self = propStack.last();
- self.value = xml.text().toString();
- }
- }
-
- if (xml.error() && xml.error() != QXmlStreamReader::PrematureEndOfDocumentError) {
- qWarning() << "XML ERROR:" << xml.lineNumber() << ": " << xml.errorString();
- return;
- }
- CeSdkInfo currentSdk;
- const PropertyContainer &cpuInfo = currentProperty.properties.value(QLatin1String("CPU info"));
- if (cpuInfo.properties.isEmpty())
- continue;
- const PropertyContainer &cpuInfoVal = cpuInfo.properties.first().properties.value(QLatin1String("CpuName"));
- if (cpuInfoVal.name != QLatin1String("CpuName"))
- continue;
- const QString SDKName = QStringLiteral("SDK name");
- currentSdk.m_name = currentProperty.properties.value(SDKName).value+
- QStringLiteral(" (") + cpuInfoVal.value + ")";
- currentSdk.m_major = currentProperty.properties.value(QLatin1String("OSMajor")).value.toInt();
- currentSdk.m_minor = currentProperty.properties.value(QLatin1String("OSMinor")).value.toInt();
- retrieveEnvironment(currentProperty.properties.value(QLatin1String("MSBuild Files110")).value.split(';'),
- filteredToolPaths, &currentSdk);
- retrieveEnvironment(currentProperty.properties.value(QLatin1String("MSBuild Files120")).value.split(';'),
- filteredToolPaths, &currentSdk);
- if (!currentSdk.m_include.isEmpty())
- m_list.append(currentSdk);
- }
- }
-}
-
-void CeSdkHandler::retrieveWEC6n7SDKs()
-{
- // look at the file at %VCInstallDir%/vcpackages/WCE.VCPlatform.config
- // and scan through all installed sdks...
- m_vcInstallDir = QString::fromLatin1(qgetenv("VCInstallDir"));
- if (m_vcInstallDir.isEmpty())
- return;
-
- QDir vStudioDir(m_vcInstallDir);
- if (!vStudioDir.cd(QLatin1String("vcpackages")))
- return;
-
- QFile configFile(vStudioDir.absoluteFilePath(QLatin1String("WCE.VCPlatform.config")));
- if (!configFile.open(QIODevice::ReadOnly))
- return;
-
- QString currentElement;
- CeSdkInfo currentItem;
- QXmlStreamReader xml(&configFile);
- while (!xml.atEnd()) {
- xml.readNext();
- if (xml.isStartElement()) {
- currentElement = xml.name().toString();
- if (currentElement == QLatin1String("Platform")) {
- currentItem = CeSdkInfo();
- } else if (currentElement == QLatin1String("Directories")) {
- QXmlStreamAttributes attr = xml.attributes();
- currentItem.m_include = fixPaths(attr.value(QLatin1String("Include")).toString());
- currentItem.m_lib = fixPaths(attr.value(QLatin1String("Library")).toString());
- currentItem.m_bin = fixPaths(attr.value(QLatin1String("Path")).toString());
- }
- } else if (xml.isEndElement()) {
- if (xml.name().toString() == QLatin1String("Platform"))
- m_list.append(currentItem);
- } else if (xml.isCharacters() && !xml.isWhitespace()) {
- if (currentElement == QLatin1String("PlatformName"))
- currentItem.m_name = xml.text().toString();
- else if (currentElement == QLatin1String("OSMajorVersion"))
- currentItem.m_major = xml.text().toString().toInt();
- else if (currentElement == QLatin1String("OSMinorVersion"))
- currentItem.m_minor = xml.text().toString().toInt();
- }
- }
-
- if (xml.error() && xml.error() != QXmlStreamReader::PrematureEndOfDocumentError) {
- qWarning() << "XML ERROR:" << xml.lineNumber() << ": " << xml.errorString();
- return;
- }
-}
-
-bool CeSdkHandler::retrieveAvailableSDKs()
-{
- m_list.clear();
- retrieveWEC2013SDKs();
- retrieveWEC6n7SDKs();
- return !m_list.empty();
-}
-
-QString CeSdkHandler::fixPaths(const QString &path) const
-{
- QRegExp searchStr(QLatin1String("(\\$\\(\\w+\\))"));
- QString fixedString = path;
- for (int index = fixedString.indexOf(searchStr, 0);
- index >= 0;
- index = fixedString.indexOf(searchStr, index)) {
- const QString capture = searchStr.cap(0);
- fixedString.replace(index, capture.length(), capture.toUpper());
- index += capture.length(); // don't count the zero terminator
- fixedString.insert(index, '\\'); // the configuration file lacks a directory separator for env vars
- ++index;
- }
- return fixedString;
-}
-
-QT_END_NAMESPACE
diff --git a/qmake/generators/win32/cesdkhandler.h b/qmake/generators/win32/cesdkhandler.h
deleted file mode 100644
index 3bb8d2adcb..0000000000
--- a/qmake/generators/win32/cesdkhandler.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the tools applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef CE_SDK_HANDLER_INCL
-#define CE_SDK_HANDLER_INCL
-
-#include <qstringlist.h>
-#include <qdir.h>
-
-QT_BEGIN_NAMESPACE
-
-class CeSdkInfo
-{
-public:
- CeSdkInfo();
- inline QString name() const { return m_name; }
- inline QString binPath() const { return m_bin; }
- inline QString includePath() const { return m_include; }
- inline QString libPath() const { return m_lib; }
- inline bool isValid() const;
- inline int majorVersion() const { return m_major; }
- inline int minorVersion() const { return m_minor; }
- inline bool isSupported() const { return m_major >= 5; }
-private:
- friend class CeSdkHandler;
- QString m_name;
- QString m_bin;
- QString m_include;
- QString m_lib;
- int m_major;
- int m_minor;
-};
-
-bool CeSdkInfo::isValid() const
-{
- return !m_name.isEmpty() &&
- !m_bin.isEmpty() &&
- !m_include.isEmpty() &&
- !m_lib.isEmpty();
-}
-
-class CeSdkHandler
-{
-public:
- CeSdkHandler();
- bool retrieveAvailableSDKs();
- inline QList<CeSdkInfo> listAll() const { return m_list; }
-private:
- void retrieveWEC6n7SDKs();
- void retrieveWEC2013SDKs();
- inline QString fixPaths(const QString &path) const;
- QStringList getMsBuildToolPaths() const;
- QStringList filterMsBuildToolPaths(const QStringList &paths) const;
- bool parseMsBuildFile(QFile *file, CeSdkInfo *info);
- bool retrieveEnvironment(const QStringList &relativePaths,
- const QStringList &toolPaths,
- CeSdkInfo *info);
- QList<CeSdkInfo> m_list;
- QString m_vcInstallDir;
-};
-
-QT_END_NAMESPACE
-
-#endif
diff --git a/qmake/generators/win32/msvc_nmake.cpp b/qmake/generators/win32/msvc_nmake.cpp
index d8ac80f99d..9e1af05414 100644
--- a/qmake/generators/win32/msvc_nmake.cpp
+++ b/qmake/generators/win32/msvc_nmake.cpp
@@ -28,7 +28,6 @@
#include "msvc_nmake.h"
#include "option.h"
-#include "cesdkhandler.h"
#include <qregexp.h>
#include <qdir.h>
@@ -72,38 +71,7 @@ NmakeMakefileGenerator::writeMakefile(QTextStream &t)
return MakefileGenerator::writeStubMakefile(t);
#endif
if (!project->isHostBuild()) {
- const ProValueMap &variables = project->variables();
- if (project->isActiveConfig("wince")) {
- CeSdkHandler sdkhandler;
- sdkhandler.retrieveAvailableSDKs();
- const QString sdkName = variables["CE_SDK"].join(' ')
- + " (" + variables["CE_ARCH"].join(' ') + ")";
- const QList<CeSdkInfo> sdkList = sdkhandler.listAll();
- CeSdkInfo sdk;
- for (const CeSdkInfo &info : sdkList) {
- if (info.name().compare(sdkName, Qt::CaseInsensitive ) == 0) {
- sdk = info;
- break;
- }
- }
- if (sdk.isValid()) {
- t << "\nINCLUDE = " << sdk.includePath();
- t << "\nLIB = " << sdk.libPath();
- t << "\nPATH = " << sdk.binPath() << "\n";
- } else {
- QStringList sdkStringList;
- sdkStringList.reserve(sdkList.size());
- for (const CeSdkInfo &info : sdkList)
- sdkStringList << info.name();
-
- fprintf(stderr, "Failed to find Windows CE SDK matching %s, found: %s\n"
- "SDK needs to be specified in mkspec (using: %s/qmake.conf)\n"
- "SDK name needs to match the following format: CE_SDK (CE_ARCH)\n",
- qPrintable(sdkName), qPrintable(sdkStringList.join(", ")),
- qPrintable(variables["QMAKESPEC"].first().toQString()));
- return false;
- }
- } else if (project->isActiveConfig(QStringLiteral("winrt"))) {
+ if (project->isActiveConfig(QStringLiteral("winrt"))) {
QString arch = project->first("VCPROJ_ARCH").toQString().toLower();
QString compiler;
QString compilerArch;
@@ -614,12 +582,6 @@ void NmakeMakefileGenerator::writeBuildRulesPart(QTextStream &t)
writeLinkCommand(t);
}
}
- QString signature = !project->isEmpty("SIGNATURE_FILE") ? var("SIGNATURE_FILE") : var("DEFAULT_SIGNATURE");
- bool useSignature = !signature.isEmpty() && !project->isActiveConfig("staticlib") &&
- !project->isEmpty("CE_SDK") && !project->isEmpty("CE_ARCH");
- if(useSignature) {
- t << "\n\tsigntool sign /F " << escapeFilePath(signature) << " $(DESTDIR_TARGET)";
- }
if(!project->isEmpty("QMAKE_POST_LINK")) {
t << "\n\t" << var("QMAKE_POST_LINK");
}
diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp
index d55e5bacf2..51cf5abdd4 100644
--- a/qmake/generators/win32/msvc_vcproj.cpp
+++ b/qmake/generators/win32/msvc_vcproj.cpp
@@ -490,7 +490,8 @@ ProStringList VcprojGenerator::collectDependencies(QMakeProject *proj, QHash<QSt
// Check if all requirements are fulfilled
if (!tmp_proj.isEmpty("QMAKE_FAILED_REQUIREMENTS")) {
fprintf(stderr, "Project file(%s) not added to Solution because all requirements not met:\n\t%s\n",
- fn.toLatin1().constData(), tmp_proj.values("QMAKE_FAILED_REQUIREMENTS").join(" ").toLatin1().constData());
+ fn.toLatin1().constData(),
+ tmp_proj.values("QMAKE_FAILED_REQUIREMENTS").join(' ').toLatin1().constData());
qmake_setpwd(oldpwd);
Option::output_dir = oldoutpwd;
continue;
@@ -700,11 +701,6 @@ void VcprojGenerator::writeSubDirs(QTextStream &t)
QString slnConf = _slnSolutionConf;
if (!project->isEmpty("VCPROJ_ARCH")) {
slnConf.replace(QLatin1String("|Win32"), "|" + project->first("VCPROJ_ARCH"));
- } else if (!project->isEmpty("CE_PLATFORMNAME")) {
- slnConf.replace(QLatin1String("|Win32"), "|" + project->first("CE_PLATFORMNAME"));
- } else if (!project->isEmpty("CE_SDK") && !project->isEmpty("CE_ARCH")) {
- QString slnPlatform = QString("|") + project->values("CE_SDK").join(' ') + " (" + project->first("CE_ARCH") + ")";
- slnConf.replace(QLatin1String("|Win32"), slnPlatform);
} else if (is64Bit) {
slnConf.replace(QLatin1String("|Win32"), QLatin1String("|x64"));
}
@@ -719,10 +715,6 @@ void VcprojGenerator::writeSubDirs(QTextStream &t)
QString xplatform = platform;
if (!project->isEmpty("VCPROJ_ARCH")) {
xplatform = project->first("VCPROJ_ARCH").toQString();
- } else if (!project->isEmpty("CE_PLATFORMNAME")) {
- xplatform = project->first("CE_PLATFORMNAME").toQString();
- } else if (!project->isEmpty("CE_SDK") && !project->isEmpty("CE_ARCH")) {
- xplatform = project->values("CE_SDK").join(' ') + " (" + project->first("CE_ARCH") + ")";
}
if (!project->isHostBuild())
platform = xplatform;
@@ -980,12 +972,8 @@ void VcprojGenerator::initProject()
vcProject.Keyword = project->first("VCPROJ_KEYWORD").toQString();
if (!project->isEmpty("VCPROJ_ARCH")) {
vcProject.PlatformName = project->first("VCPROJ_ARCH").toQString();
- } else if (!project->isEmpty("CE_PLATFORMNAME")) {
- vcProject.PlatformName = project->first("CE_PLATFORMNAME").toQString();
- } else if (project->isHostBuild() || project->isEmpty("CE_SDK") || project->isEmpty("CE_ARCH")) {
+ } else if (project->isHostBuild()) {
vcProject.PlatformName = (is64Bit ? "x64" : "Win32");
- } else {
- vcProject.PlatformName = project->values("CE_SDK").join(' ') + " (" + project->first("CE_ARCH") + ")";
}
vcProject.SdkVersion = project->first("WINSDK_VER").toQString();
// These are not used by Qt, but may be used by customers
@@ -1066,12 +1054,8 @@ void VcprojGenerator::initConfiguration()
conf.ConfigurationName = conf.Name;
if (!project->isEmpty("VCPROJ_ARCH")) {
conf.Name += "|" + project->first("VCPROJ_ARCH");
- } else if (!project->isEmpty("CE_PLATFORMNAME")) {
- conf.Name += "|" + project->first("CE_PLATFORMNAME");
- } else if (project->isHostBuild() || project->isEmpty("CE_SDK") || project->isEmpty("CE_ARCH")) {
+ } else if (project->isHostBuild()) {
conf.Name += (is64Bit ? "|x64" : "|Win32");
- } else {
- conf.Name += "|" + project->values("CE_SDK").join(' ') + " (" + project->first("CE_ARCH") + ")";
}
conf.ATLMinimizesCRunTimeLibraryUsage = (project->first("ATLMinimizesCRunTimeLibraryUsage").isEmpty() ? _False : _True);
conf.BuildBrowserInformation = triState(temp.isEmpty() ? (short)unset : temp.toShort());
@@ -1094,8 +1078,7 @@ void VcprojGenerator::initConfiguration()
initPreBuildEventTools();
initPostBuildEventTools();
// Only deploy for CE and WinRT projects
- if ((!project->isHostBuild() && !project->isEmpty("CE_SDK") && !project->isEmpty("CE_ARCH"))
- || conf.WinRT)
+ if (!project->isHostBuild() || conf.WinRT)
initDeploymentTool();
initWinDeployQtTool();
initPreLinkEventTools();
@@ -1243,16 +1226,6 @@ void VcprojGenerator::initPostBuildEventTools()
conf.postBuild.Description = cmdline.join(QLatin1String("\r\n"));
conf.postBuild.ExcludedFromBuild = _False;
}
-
- QString signature = !project->isEmpty("SIGNATURE_FILE") ? var("SIGNATURE_FILE") : var("DEFAULT_SIGNATURE");
- bool useSignature = !signature.isEmpty() && !project->isActiveConfig("staticlib") &&
- !project->isHostBuild() && !project->isEmpty("CE_SDK") && !project->isEmpty("CE_ARCH");
- if (useSignature) {
- conf.postBuild.CommandLine.prepend(
- QLatin1String("signtool sign /F ") + escapeFilePath(signature) + QLatin1String(" \"$(TargetPath)\""));
- conf.postBuild.ExcludedFromBuild = _False;
- }
-
if (!project->values("MSVCPROJ_COPY_DLL").isEmpty()) {
conf.postBuild.Description += var("MSVCPROJ_COPY_DLL_DESC");
conf.postBuild.CommandLine += var("MSVCPROJ_COPY_DLL");
@@ -1346,45 +1319,6 @@ void VcprojGenerator::initDeploymentTool()
}
}
- if (!conf.WinRT) {
- // C-runtime deployment
- QString runtime = project->values("QT_CE_C_RUNTIME").join(QLatin1Char(' '));
- if (!runtime.isEmpty() && (runtime != QLatin1String("no"))) {
- QString runtimeVersion = QLatin1String("msvcr");
- ProString mkspec = project->first("QMAKESPEC");
-
- if (!mkspec.isEmpty()) {
- if (mkspec.endsWith("2008"))
- runtimeVersion.append("90");
- else
- runtimeVersion.append("80");
- if (project->isActiveConfig("debug"))
- runtimeVersion.append("d");
- runtimeVersion.append(".dll");
-
- if (runtime == "yes") {
- // Auto-find C-runtime
- QString vcInstallDir = qgetenv("VCINSTALLDIR");
- if (!vcInstallDir.isEmpty()) {
- vcInstallDir += "\\ce\\dll\\";
- vcInstallDir += project->values("CE_ARCH").join(QLatin1Char(' '));
- if (!QFileInfo::exists(vcInstallDir + QDir::separator() + runtimeVersion))
- runtime.clear();
- else
- runtime = vcInstallDir;
- }
- }
- }
-
- if (!runtime.isEmpty() && runtime != QLatin1String("yes")) {
- conf.deployment.AdditionalFiles += runtimeVersion
- + "|" + QDir::toNativeSeparators(runtime)
- + "|" + targetPath
- + "|0;";
- }
- }
- }
-
for (const ProString &item : project->values("INSTALLS")) {
// get item.path
QString devicePath = project->first(ProKey(item + ".path")).toQString();
diff --git a/qmake/library/proitems.cpp b/qmake/library/proitems.cpp
index 5f923744be..66db190bc1 100644
--- a/qmake/library/proitems.cpp
+++ b/qmake/library/proitems.cpp
@@ -365,6 +365,11 @@ static QString ProStringList_join(const ProStringList &this_, const QChar *sep,
return res;
}
+QString ProStringList::join(const ProString &sep) const
+{
+ return ProStringList_join(*this, sep.constData(), sep.size());
+}
+
QString ProStringList::join(const QString &sep) const
{
return ProStringList_join(*this, sep.constData(), sep.size());
@@ -453,6 +458,14 @@ bool ProStringList::contains(const ProString &str, Qt::CaseSensitivity cs) const
return false;
}
+bool ProStringList::contains(const QStringRef &str, Qt::CaseSensitivity cs) const
+{
+ for (int i = 0; i < size(); i++)
+ if (!at(i).toQStringRef().compare(str, cs))
+ return true;
+ return false;
+}
+
bool ProStringList::contains(const char *str, Qt::CaseSensitivity cs) const
{
for (int i = 0; i < size(); i++)
diff --git a/qmake/library/proitems.h b/qmake/library/proitems.h
index dcff970600..16dd9386c8 100644
--- a/qmake/library/proitems.h
+++ b/qmake/library/proitems.h
@@ -100,6 +100,7 @@ public:
bool operator!=(const QString &other) const { return !(*this == other); }
bool operator!=(QLatin1String other) const { return !(*this == other); }
bool operator!=(const char *other) const { return !(*this == other); }
+ bool operator<(const ProString &other) const { return toQStringRef() < other.toQStringRef(); }
bool isNull() const { return m_string.isNull(); }
bool isEmpty() const { return !m_length; }
int length() const { return m_length; }
@@ -233,6 +234,7 @@ public:
int length() const { return size(); }
+ QString join(const ProString &sep) const;
QString join(const QString &sep) const;
QString join(QChar sep) const;
@@ -246,6 +248,7 @@ public:
void removeDuplicates();
bool contains(const ProString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
+ bool contains(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
{ return contains(ProString(str), cs); }
bool contains(const char *str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
diff --git a/qmake/library/qmakebuiltins.cpp b/qmake/library/qmakebuiltins.cpp
index 80569e503a..6f93b655b4 100644
--- a/qmake/library/qmakebuiltins.cpp
+++ b/qmake/library/qmakebuiltins.cpp
@@ -80,9 +80,10 @@ QT_BEGIN_NAMESPACE
#define fL1S(s) QString::fromLatin1(s)
enum ExpandFunc {
- E_INVALID = 0, E_MEMBER, E_FIRST, E_LAST, E_SIZE, E_CAT, E_FROMFILE, E_EVAL, E_LIST,
- E_SPRINTF, E_FORMAT_NUMBER, E_JOIN, E_SPLIT, E_BASENAME, E_DIRNAME, E_SECTION,
- E_FIND, E_SYSTEM, E_UNIQUE, E_REVERSE, E_QUOTE, E_ESCAPE_EXPAND,
+ E_INVALID = 0, E_MEMBER, E_STR_MEMBER, E_FIRST, E_TAKE_FIRST, E_LAST, E_TAKE_LAST,
+ E_SIZE, E_STR_SIZE, E_CAT, E_FROMFILE, E_EVAL, E_LIST, E_SPRINTF, E_FORMAT_NUMBER,
+ E_NUM_ADD, E_JOIN, E_SPLIT, E_BASENAME, E_DIRNAME, E_SECTION,
+ E_FIND, E_SYSTEM, E_UNIQUE, E_SORTED, E_REVERSE, E_QUOTE, E_ESCAPE_EXPAND,
E_UPPER, E_LOWER, E_TITLE, E_FILES, E_PROMPT, E_RE_ESCAPE, E_VAL_ESCAPE,
E_REPLACE, E_SORT_DEPENDS, E_RESOLVE_DEPENDS, E_ENUMERATE_VARS,
E_SHADOWED, E_ABSOLUTE_PATH, E_RELATIVE_PATH, E_CLEAN_PATH,
@@ -104,15 +105,20 @@ void QMakeEvaluator::initFunctionStatics()
const ExpandFunc func;
} expandInits[] = {
{ "member", E_MEMBER },
+ { "str_member", E_STR_MEMBER },
{ "first", E_FIRST },
+ { "take_first", E_TAKE_FIRST },
{ "last", E_LAST },
+ { "take_last", E_TAKE_LAST },
{ "size", E_SIZE },
+ { "str_size", E_STR_SIZE },
{ "cat", E_CAT },
{ "fromfile", E_FROMFILE },
{ "eval", E_EVAL },
{ "list", E_LIST },
{ "sprintf", E_SPRINTF },
{ "format_number", E_FORMAT_NUMBER },
+ { "num_add", E_NUM_ADD },
{ "join", E_JOIN },
{ "split", E_SPLIT },
{ "basename", E_BASENAME },
@@ -121,6 +127,7 @@ void QMakeEvaluator::initFunctionStatics()
{ "find", E_FIND },
{ "system", E_SYSTEM },
{ "unique", E_UNIQUE },
+ { "sorted", E_SORTED },
{ "reverse", E_REVERSE },
{ "quote", E_QUOTE },
{ "escape_expand", E_ESCAPE_EXPAND },
@@ -197,6 +204,49 @@ static bool isTrue(const ProString &str)
return !str.compare(statics.strtrue, Qt::CaseInsensitive) || str.toInt();
}
+bool
+QMakeEvaluator::getMemberArgs(const ProKey &func, int srclen, const ProStringList &args,
+ int *start, int *end)
+{
+ *start = 0, *end = 0;
+ if (args.count() >= 2) {
+ bool ok = true;
+ const ProString &start_str = args.at(1);
+ *start = start_str.toInt(&ok);
+ if (!ok) {
+ if (args.count() == 2) {
+ int dotdot = start_str.indexOf(statics.strDotDot);
+ if (dotdot != -1) {
+ *start = start_str.left(dotdot).toInt(&ok);
+ if (ok)
+ *end = start_str.mid(dotdot+2).toInt(&ok);
+ }
+ }
+ if (!ok) {
+ evalError(fL1S("%1() argument 2 (start) '%2' invalid.")
+ .arg(func.toQString(m_tmp1), start_str.toQString(m_tmp2)));
+ return false;
+ }
+ } else {
+ *end = *start;
+ if (args.count() == 3)
+ *end = args.at(2).toInt(&ok);
+ if (!ok) {
+ evalError(fL1S("%1() argument 3 (end) '%2' invalid.")
+ .arg(func.toQString(m_tmp1), args.at(2).toQString(m_tmp2)));
+ return false;
+ }
+ }
+ }
+ if (*start < 0)
+ *start += srclen;
+ if (*end < 0)
+ *end += srclen;
+ if (*start < 0 || *start >= srclen || *end < 0 || *end >= srclen)
+ return false;
+ return true;
+}
+
#if defined(Q_OS_WIN) && defined(PROEVALUATOR_FULL)
static QString windowsErrorCode()
{
@@ -532,31 +582,30 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
bool leftalign = false;
enum { DefaultSign, PadSign, AlwaysSign } sign = DefaultSign;
if (args.count() >= 2) {
- const auto opts = split_value_list(args.at(1).toQString(m_tmp2));
+ const auto opts = split_value_list(args.at(1).toQStringRef());
for (const ProString &opt : opts) {
- opt.toQString(m_tmp3);
- if (m_tmp3.startsWith(QLatin1String("ibase="))) {
- ibase = m_tmp3.mid(6).toInt();
- } else if (m_tmp3.startsWith(QLatin1String("obase="))) {
- obase = m_tmp3.mid(6).toInt();
- } else if (m_tmp3.startsWith(QLatin1String("width="))) {
- width = m_tmp3.mid(6).toInt();
- } else if (m_tmp3 == QLatin1String("zeropad")) {
+ if (opt.startsWith(QLatin1String("ibase="))) {
+ ibase = opt.mid(6).toInt();
+ } else if (opt.startsWith(QLatin1String("obase="))) {
+ obase = opt.mid(6).toInt();
+ } else if (opt.startsWith(QLatin1String("width="))) {
+ width = opt.mid(6).toInt();
+ } else if (opt == QLatin1String("zeropad")) {
zeropad = true;
- } else if (m_tmp3 == QLatin1String("padsign")) {
+ } else if (opt == QLatin1String("padsign")) {
sign = PadSign;
- } else if (m_tmp3 == QLatin1String("alwayssign")) {
+ } else if (opt == QLatin1String("alwayssign")) {
sign = AlwaysSign;
- } else if (m_tmp3 == QLatin1String("leftalign")) {
+ } else if (opt == QLatin1String("leftalign")) {
leftalign = true;
} else {
- evalError(fL1S("format_number(): invalid format option %1.").arg(m_tmp3));
+ evalError(fL1S("format_number(): invalid format option %1.")
+ .arg(opt.toQString(m_tmp3)));
goto formfail;
}
}
}
- args.at(0).toQString(m_tmp3);
- if (m_tmp3.contains(QLatin1Char('.'))) {
+ if (args.at(0).contains(QLatin1Char('.'))) {
evalError(fL1S("format_number(): floats are currently not supported."));
break;
}
@@ -564,7 +613,7 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
qlonglong num = args.at(0).toLongLong(&ok, ibase);
if (!ok) {
evalError(fL1S("format_number(): malformed number %2 for base %1.")
- .arg(ibase).arg(m_tmp3));
+ .arg(ibase).arg(args.at(0).toQString(m_tmp3)));
break;
}
QString outstr;
@@ -592,14 +641,36 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
}
formfail:
break;
+ case E_NUM_ADD:
+ if (args.count() < 1 || args.at(0).isEmpty()) {
+ evalError(fL1S("num_add(num, ...) requires at least one argument."));
+ } else {
+ qlonglong sum = 0;
+ for (const ProString &arg : qAsConst(args)) {
+ if (arg.contains(QLatin1Char('.'))) {
+ evalError(fL1S("num_add(): floats are currently not supported."));
+ goto nafail;
+ }
+ bool ok;
+ qlonglong num = arg.toLongLong(&ok);
+ if (!ok) {
+ evalError(fL1S("num_add(): malformed number %1.")
+ .arg(arg.toQString(m_tmp3)));
+ goto nafail;
+ }
+ sum += num;
+ }
+ ret += ProString(QString::number(sum));
+ }
+ nafail:
+ break;
case E_JOIN: {
if (args.count() < 1 || args.count() > 4) {
evalError(fL1S("join(var, glue, before, after) requires one to four arguments."));
} else {
- QString glue;
- ProString before, after;
+ ProString glue, before, after;
if (args.count() >= 2)
- glue = args.at(1).toQString(m_tmp1);
+ glue = args.at(1);
if (args.count() >= 3)
before = args[2];
if (args.count() == 4)
@@ -634,47 +705,37 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
if (args.count() < 1 || args.count() > 3) {
evalError(fL1S("member(var, start, end) requires one to three arguments."));
} else {
- bool ok = true;
- const ProStringList &var = values(map(args.at(0)));
- int start = 0, end = 0;
- if (args.count() >= 2) {
- const ProString &start_str = args.at(1);
- start = start_str.toInt(&ok);
- if (!ok) {
- if (args.count() == 2) {
- int dotdot = start_str.indexOf(statics.strDotDot);
- if (dotdot != -1) {
- start = start_str.left(dotdot).toInt(&ok);
- if (ok)
- end = start_str.mid(dotdot+2).toInt(&ok);
- }
- }
- if (!ok)
- evalError(fL1S("member() argument 2 (start) '%2' invalid.")
- .arg(start_str.toQString(m_tmp1)));
+ const ProStringList &src = values(map(args.at(0)));
+ int start, end;
+ if (getMemberArgs(func, src.size(), args, &start, &end)) {
+ ret.reserve(qAbs(end - start) + 1);
+ if (start < end) {
+ for (int i = start; i <= end && src.size() >= i; i++)
+ ret += src.at(i);
} else {
- end = start;
- if (args.count() == 3)
- end = args.at(2).toInt(&ok);
- if (!ok)
- evalError(fL1S("member() argument 3 (end) '%2' invalid.")
- .arg(args.at(2).toQString(m_tmp1)));
+ for (int i = start; i >= end && src.size() >= i && i >= 0; i--)
+ ret += src.at(i);
}
}
- if (ok) {
- if (start < 0)
- start += var.count();
- if (end < 0)
- end += var.count();
- if (start < 0 || start >= var.count() || end < 0 || end >= var.count()) {
- //nothing
- } else if (start < end) {
- for (int i = start; i <= end && var.count() >= i; i++)
- ret.append(var[i]);
+ }
+ break;
+ case E_STR_MEMBER:
+ if (args.count() < 1 || args.count() > 3) {
+ evalError(fL1S("str_member(str, start, end) requires one to three arguments."));
+ } else {
+ const ProString &src = args.at(0);
+ int start, end;
+ if (getMemberArgs(func, src.size(), args, &start, &end)) {
+ QString res;
+ res.reserve(qAbs(end - start) + 1);
+ if (start < end) {
+ for (int i = start; i <= end && src.size() >= i; i++)
+ res += src.at(i);
} else {
- for (int i = start; i >= end && var.count() >= i && i >= 0; i--)
- ret += var[i];
+ for (int i = start; i >= end && src.size() >= i && i >= 0; i--)
+ res += src.at(i);
}
+ ret += ProString(res);
}
}
break;
@@ -692,12 +753,32 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
}
}
break;
+ case E_TAKE_FIRST:
+ case E_TAKE_LAST:
+ if (args.count() != 1) {
+ evalError(fL1S("%1(var) requires one argument.").arg(func.toQString(m_tmp1)));
+ } else {
+ ProStringList &var = valuesRef(map(args.at(0)));
+ if (!var.isEmpty()) {
+ if (func_t == E_TAKE_FIRST)
+ ret.append(var.takeFirst());
+ else
+ ret.append(var.takeLast());
+ }
+ }
+ break;
case E_SIZE:
if (args.count() != 1)
evalError(fL1S("size(var) requires one argument."));
else
ret.append(ProString(QString::number(values(map(args.at(0))).size())));
break;
+ case E_STR_SIZE:
+ if (args.count() != 1)
+ evalError(fL1S("str_size(str) requires one argument."));
+ else
+ ret.append(ProString(QString::number(args.at(0).size())));
+ break;
case E_CAT:
if (args.count() < 1 || args.count() > 2) {
evalError(fL1S("cat(file, singleline=true) requires one or two arguments."));
@@ -708,12 +789,11 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
bool lines = false;
bool singleLine = true;
if (args.count() > 1) {
- args.at(1).toQString(m_tmp2);
- if (!m_tmp2.compare(QLatin1String("false"), Qt::CaseInsensitive))
+ if (!args.at(1).compare(QLatin1String("false"), Qt::CaseInsensitive))
singleLine = false;
- else if (!m_tmp2.compare(QLatin1String("blob"), Qt::CaseInsensitive))
+ else if (!args.at(1).compare(QLatin1String("blob"), Qt::CaseInsensitive))
blob = true;
- else if (!m_tmp2.compare(QLatin1String("lines"), Qt::CaseInsensitive))
+ else if (!args.at(1).compare(QLatin1String("lines"), Qt::CaseInsensitive))
lines = true;
}
@@ -727,7 +807,8 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
if (lines) {
ret += ProString(stream.readLine());
} else {
- ret += split_value_list(stream.readLine().trimmed());
+ const QString &line = stream.readLine();
+ ret += split_value_list(QStringRef(&line).trimmed());
if (!singleLine)
ret += ProString("\n");
}
@@ -759,7 +840,7 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
ret = ProStringList(ProString(tmp));
ProStringList lst;
for (const ProString &arg : args)
- lst += split_value_list(arg.toQString(m_tmp1), arg.sourceFile()); // Relies on deep copy
+ lst += split_value_list(arg.toQStringRef(), arg.sourceFile()); // Relies on deep copy
m_valuemapStack.top()[ret.at(0).toKey()] = lst;
break; }
case E_FIND:
@@ -785,12 +866,11 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
bool lines = false;
bool singleLine = true;
if (args.count() > 1) {
- args.at(1).toQString(m_tmp2);
- if (!m_tmp2.compare(QLatin1String("false"), Qt::CaseInsensitive))
+ if (!args.at(1).compare(QLatin1String("false"), Qt::CaseInsensitive))
singleLine = false;
- else if (!m_tmp2.compare(QLatin1String("blob"), Qt::CaseInsensitive))
+ else if (!args.at(1).compare(QLatin1String("blob"), Qt::CaseInsensitive))
blob = true;
- else if (!m_tmp2.compare(QLatin1String("lines"), Qt::CaseInsensitive))
+ else if (!args.at(1).compare(QLatin1String("lines"), Qt::CaseInsensitive))
lines = true;
}
QByteArray bytes = getCommandOutput(args.at(0).toQString(m_tmp2));
@@ -806,7 +886,7 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
output.replace(QLatin1Char('\t'), QLatin1Char(' '));
if (singleLine)
output.replace(QLatin1Char('\n'), QLatin1Char(' '));
- ret += split_value_list(output);
+ ret += split_value_list(QStringRef(&output));
}
}
}
@@ -820,6 +900,14 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
ret.removeDuplicates();
}
break;
+ case E_SORTED:
+ if (args.count() != 1) {
+ evalError(fL1S("sorted(var) requires one argument."));
+ } else {
+ ret = values(map(args.at(0)));
+ std::sort(ret.begin(), ret.end());
+ }
+ break;
case E_REVERSE:
if (args.count() != 1) {
evalError(fL1S("reverse(var) requires one argument."));
@@ -955,7 +1043,8 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
QFile qfile;
if (qfile.open(stdin, QIODevice::ReadOnly)) {
QTextStream t(&qfile);
- ret = split_value_list(t.readLine());
+ const QString &line = t.readLine();
+ ret = split_value_list(QStringRef(&line));
}
}
break; }
@@ -989,7 +1078,7 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
ProString priosfx = args.count() < 4 ? ProString(".priority") : args.at(3);
populateDeps(orgList, prefix,
args.count() < 3 ? ProStringList(ProString(".depends"))
- : split_value_list(args.at(2).toQString(m_tmp2)),
+ : split_value_list(args.at(2).toQStringRef()),
priosfx, dependencies, dependees, rootSet);
while (!rootSet.isEmpty()) {
QMultiMap<int, ProString>::iterator it = rootSet.begin();
@@ -1211,7 +1300,8 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
return ReturnFalse; // Another qmake breakage
case T_EVAL: {
VisitReturn ret = ReturnFalse;
- ProFile *pro = m_parser->parsedProBlock(args.join(statics.field_sep),
+ QString contents = args.join(statics.field_sep);
+ ProFile *pro = m_parser->parsedProBlock(QStringRef(&contents),
m_current.pro->fileName(), m_current.line);
if (m_cumulative || pro->isOk()) {
m_locationStack.push(m_current);
@@ -1227,7 +1317,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
evalError(fL1S("if(condition) requires one argument."));
return ReturnFalse;
}
- return returnBool(evaluateConditional(args.at(0).toQString(),
+ return returnBool(evaluateConditional(args.at(0).toQStringRef(),
m_current.pro->fileName(), m_current.line));
}
case T_CONFIG: {
@@ -1236,7 +1326,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
return ReturnFalse;
}
if (args.count() == 1)
- return returnBool(isActiveConfig(args.at(0).toQString(m_tmp2)));
+ return returnBool(isActiveConfig(args.at(0).toQStringRef()));
const QStringList &mutuals = args.at(1).toQString(m_tmp2).split(QLatin1Char('|'));
const ProStringList &configs = values(statics.strCONFIG);
@@ -1319,8 +1409,8 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
.arg(function.toQString(m_tmp1)));
return ReturnFalse;
}
- const QString &rhs(args.at(1).toQString(m_tmp1)),
- &lhs(values(map(args.at(0))).join(statics.field_sep));
+ const ProString &rhs = args.at(1);
+ const QString &lhs = values(map(args.at(0))).join(statics.field_sep);
bool ok;
int rhs_int = rhs.toInt(&ok);
if (ok) { // do integer compare
@@ -1332,8 +1422,8 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
}
}
if (func_t == T_GREATERTHAN)
- return returnBool(lhs > rhs);
- return returnBool(lhs < rhs);
+ return returnBool(lhs > rhs.toQStringRef());
+ return returnBool(lhs < rhs.toQStringRef());
}
case T_EQUALS:
if (args.count() != 2) {
@@ -1569,7 +1659,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
if (!vals.isEmpty())
contents = vals.join(QLatin1Char('\n')) + QLatin1Char('\n');
if (args.count() >= 3) {
- const auto opts = split_value_list(args.at(2).toQString(m_tmp2));
+ const auto opts = split_value_list(args.at(2).toQStringRef());
for (const ProString &opt : opts) {
opt.toQString(m_tmp3);
if (m_tmp3 == QLatin1String("append")) {
@@ -1642,7 +1732,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
enum { CacheSet, CacheAdd, CacheSub } mode = CacheSet;
ProKey srcvar;
if (args.count() >= 2) {
- const auto opts = split_value_list(args.at(1).toQString(m_tmp2));
+ const auto opts = split_value_list(args.at(1).toQStringRef());
for (const ProString &opt : opts) {
opt.toQString(m_tmp3);
if (m_tmp3 == QLatin1String("transient")) {
diff --git a/qmake/library/qmakeevaluator.cpp b/qmake/library/qmakeevaluator.cpp
index d7fe14c02f..b0def45447 100644
--- a/qmake/library/qmakeevaluator.cpp
+++ b/qmake/library/qmakeevaluator.cpp
@@ -270,7 +270,7 @@ void QMakeEvaluator::skipHashStr(const ushort *&tokPtr)
// FIXME: this should not build new strings for direct sections.
// Note that the E_SPRINTF and E_LIST implementations rely on the deep copy.
-ProStringList QMakeEvaluator::split_value_list(const QString &vals, const ProFile *source)
+ProStringList QMakeEvaluator::split_value_list(const QStringRef &vals, const ProFile *source)
{
QString build;
ProStringList ret;
@@ -624,7 +624,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProBlock(
evalError(fL1S("Conditional must expand to exactly one word."));
okey = false;
} else {
- okey = isActiveConfig(curr.at(0).toQString(m_tmp2), true);
+ okey = isActiveConfig(curr.at(0).toQStringRef(), true);
traceMsg("condition %s is %s", dbgStr(curr.at(0)), dbgBool(okey));
okey ^= invert;
}
@@ -1277,7 +1277,7 @@ void QMakeEvaluator::setupProject()
void QMakeEvaluator::evaluateCommand(const QString &cmds, const QString &where)
{
if (!cmds.isEmpty()) {
- ProFile *pro = m_parser->parsedProBlock(cmds, where, -1);
+ ProFile *pro = m_parser->parsedProBlock(QStringRef(&cmds), where, -1);
if (pro->isOk()) {
m_locationStack.push(m_current);
visitProBlock(pro, pro->tokPtr());
@@ -1571,7 +1571,7 @@ QString QMakeEvaluator::currentDirectory() const
return QString();
}
-bool QMakeEvaluator::isActiveConfig(const QString &config, bool regex)
+bool QMakeEvaluator::isActiveConfig(const QStringRef &config, bool regex)
{
// magic types for easy flipping
if (config == statics.strtrue)
@@ -1583,7 +1583,7 @@ bool QMakeEvaluator::isActiveConfig(const QString &config, bool regex)
return m_hostBuild;
if (regex && (config.contains(QLatin1Char('*')) || config.contains(QLatin1Char('?')))) {
- QString cfg = config;
+ QString cfg = config.toString();
cfg.detach(); // Keep m_tmp out of QRegExp's cache
QRegExp re(cfg, Qt::CaseSensitive, QRegExp::Wildcard);
@@ -1605,7 +1605,7 @@ bool QMakeEvaluator::isActiveConfig(const QString &config, bool regex)
return true;
// CONFIG variable
- if (values(statics.strCONFIG).contains(ProString(config)))
+ if (values(statics.strCONFIG).contains(config))
return true;
}
@@ -1760,7 +1760,7 @@ ProStringList QMakeEvaluator::evaluateExpandFunction(
return ProStringList();
}
-bool QMakeEvaluator::evaluateConditional(const QString &cond, const QString &where, int line)
+bool QMakeEvaluator::evaluateConditional(const QStringRef &cond, const QString &where, int line)
{
bool ret = false;
ProFile *pro = m_parser->parsedProBlock(cond, where, line, QMakeParser::TestGrammar);
@@ -1778,7 +1778,7 @@ void QMakeEvaluator::checkRequirements(const ProStringList &deps)
{
ProStringList &failed = valuesRef(ProKey("QMAKE_FAILED_REQUIREMENTS"));
for (const ProString &dep : deps)
- if (!evaluateConditional(dep.toQString(), m_current.pro->fileName(), m_current.line))
+ if (!evaluateConditional(dep.toQStringRef(), m_current.pro->fileName(), m_current.line))
failed << dep;
}
#endif
diff --git a/qmake/library/qmakeevaluator.h b/qmake/library/qmakeevaluator.h
index 5477d82f26..7b911e7911 100644
--- a/qmake/library/qmakeevaluator.h
+++ b/qmake/library/qmakeevaluator.h
@@ -176,7 +176,7 @@ public:
void setTemplate();
- ProStringList split_value_list(const QString &vals, const ProFile *source = 0);
+ ProStringList split_value_list(const QStringRef &vals, const ProFile *source = 0);
ProStringList expandVariableReferences(const ProString &value, int *pos = 0, bool joined = false);
ProStringList expandVariableReferences(const ushort *&tokPtr, int sizeHint = 0, bool joined = false);
@@ -216,7 +216,7 @@ public:
ProStringList evaluateBuiltinExpand(int func_t, const ProKey &function, const ProStringList &args);
VisitReturn evaluateBuiltinConditional(int func_t, const ProKey &function, const ProStringList &args);
- bool evaluateConditional(const QString &cond, const QString &where, int line = -1);
+ bool evaluateConditional(const QStringRef &cond, const QString &where, int line = -1);
#ifdef PROEVALUATOR_FULL
void checkRequirements(const ProStringList &deps);
#endif
@@ -224,7 +224,7 @@ public:
void updateMkspecPaths();
void updateFeaturePaths();
- bool isActiveConfig(const QString &config, bool regex = false);
+ bool isActiveConfig(const QStringRef &config, bool regex = false);
void populateDeps(
const ProStringList &deps, const ProString &prefix, const ProStringList &suffixes,
@@ -232,6 +232,9 @@ public:
QHash<ProKey, QSet<ProKey> > &dependencies, ProValueMap &dependees,
QMultiMap<int, ProString> &rootSet) const;
+ bool getMemberArgs(const ProKey &name, int srclen, const ProStringList &args,
+ int *start, int *end);
+
VisitReturn writeFile(const QString &ctx, const QString &fn, QIODevice::OpenMode mode,
bool exe, const QString &contents);
#ifndef QT_BOOTSTRAPPED
diff --git a/qmake/library/qmakeglobals.cpp b/qmake/library/qmakeglobals.cpp
index 6a648e9ecf..f90ad905ee 100644
--- a/qmake/library/qmakeglobals.cpp
+++ b/qmake/library/qmakeglobals.cpp
@@ -134,6 +134,11 @@ QMakeGlobals::ArgumentReturn QMakeGlobals::addCommandLineArguments(
break;
default:
if (arg.startsWith(QLatin1Char('-'))) {
+ if (arg == QLatin1String("--")) {
+ state.extraargs = args.mid(*pos + 1);
+ *pos = args.size();
+ return ArgumentsOk;
+ }
if (arg == QLatin1String("-after"))
state.after = true;
else if (arg == QLatin1String("-config"))
@@ -179,6 +184,12 @@ void QMakeGlobals::commitCommandLineArguments(QMakeCmdLineParserState &state)
{
if (!state.preconfigs.isEmpty())
state.precmds << (fL1S("CONFIG += ") + state.preconfigs.join(QLatin1Char(' ')));
+ if (!state.extraargs.isEmpty()) {
+ QString extra = fL1S("QMAKE_EXTRA_ARGS =");
+ for (const QString &ea : qAsConst(state.extraargs))
+ extra += QLatin1Char(' ') + QMakeEvaluator::quoteValue(ProString(ea));
+ state.precmds << extra;
+ }
precmds = state.precmds.join(QLatin1Char('\n'));
if (!state.postconfigs.isEmpty())
state.postcmds << (fL1S("CONFIG += ") + state.postconfigs.join(QLatin1Char(' ')));
diff --git a/qmake/library/qmakeglobals.h b/qmake/library/qmakeglobals.h
index 79237e6ebe..96c39fa168 100644
--- a/qmake/library/qmakeglobals.h
+++ b/qmake/library/qmakeglobals.h
@@ -85,7 +85,7 @@ class QMAKE_EXPORT QMakeCmdLineParserState
public:
QMakeCmdLineParserState(const QString &_pwd) : pwd(_pwd), after(false) {}
QString pwd;
- QStringList precmds, preconfigs, postcmds, postconfigs;
+ QStringList precmds, preconfigs, postcmds, postconfigs, extraargs;
bool after;
void flush() { after = false; }
diff --git a/qmake/library/qmakeparser.cpp b/qmake/library/qmakeparser.cpp
index 2a48103147..90bc64bd2b 100644
--- a/qmake/library/qmakeparser.cpp
+++ b/qmake/library/qmakeparser.cpp
@@ -224,7 +224,7 @@ ProFile *QMakeParser::parsedProFile(const QString &fileName, ParseFlags flags)
}
ProFile *QMakeParser::parsedProBlock(
- const QString &contents, const QString &name, int line, SubGrammar grammar)
+ const QStringRef &contents, const QString &name, int line, SubGrammar grammar)
{
ProFile *pro = new ProFile(name);
read(pro, contents, line, grammar);
@@ -247,7 +247,7 @@ bool QMakeParser::read(ProFile *pro, ParseFlags flags)
fL1S("Cannot read %1: %2").arg(pro->fileName(), errStr));
return false;
}
- read(pro, content, 1, FullGrammar);
+ read(pro, QStringRef(&content), 1, FullGrammar);
return true;
}
@@ -289,7 +289,7 @@ void QMakeParser::finalizeHashStr(ushort *buf, uint len)
buf[-2] = (ushort)(hash >> 16);
}
-void QMakeParser::read(ProFile *pro, const QString &in, int line, SubGrammar grammar)
+void QMakeParser::read(ProFile *pro, const QStringRef &in, int line, SubGrammar grammar)
{
m_proFile = pro;
m_lineNo = line;
@@ -334,8 +334,8 @@ void QMakeParser::read(ProFile *pro, const QString &in, int line, SubGrammar gra
QStack<ParseCtx> xprStack;
xprStack.reserve(10);
- // We rely on QStrings being null-terminated, so don't maintain a global end pointer.
const ushort *cur = (const ushort *)in.unicode();
+ const ushort *inend = cur + in.length();
m_canElse = false;
freshLine:
m_state = StNew;
@@ -418,7 +418,7 @@ void QMakeParser::read(ProFile *pro, const QString &in, int line, SubGrammar gra
int indent;
if (context == CtxPureValue) {
- end = (const ushort *)in.unicode() + in.length();
+ end = inend;
cptr = 0;
lineCont = false;
indent = 0; // just gcc being stupid
@@ -430,24 +430,30 @@ void QMakeParser::read(ProFile *pro, const QString &in, int line, SubGrammar gra
// First, skip leading whitespace
for (indent = 0; ; ++cur, ++indent) {
+ if (cur == inend) {
+ cur = 0;
+ goto flushLine;
+ }
c = *cur;
if (c == '\n') {
++cur;
goto flushLine;
- } else if (!c) {
- cur = 0;
- goto flushLine;
- } else if (c != ' ' && c != '\t' && c != '\r') {
- break;
}
+ if (c != ' ' && c != '\t' && c != '\r')
+ break;
}
// Then strip comments. Yep - no escaping is possible.
for (cptr = cur;; ++cptr) {
+ if (cptr == inend) {
+ end = cptr;
+ break;
+ }
c = *cptr;
if (c == '#') {
- for (end = cptr; (c = *++cptr);) {
- if (c == '\n') {
+ end = cptr;
+ while (++cptr < inend) {
+ if (*cptr == '\n') {
++cptr;
break;
}
@@ -460,10 +466,6 @@ void QMakeParser::read(ProFile *pro, const QString &in, int line, SubGrammar gra
}
break;
}
- if (!c) {
- end = cptr;
- break;
- }
if (c == '\n') {
end = cptr++;
break;
@@ -1215,7 +1217,7 @@ void QMakeParser::finalizeCall(ushort *&tokPtr, ushort *uc, ushort *ptr, int arg
bool QMakeParser::resolveVariable(ushort *xprPtr, int tlen, int needSep, ushort **ptr,
ushort **buf, QString *xprBuff,
ushort **tokPtr, QString *tokBuff,
- const ushort *cur, const QString &in)
+ const ushort *cur, const QStringRef &in)
{
QString out;
m_tmp.setRawData((const QChar *)xprPtr, tlen);
diff --git a/qmake/library/qmakeparser.h b/qmake/library/qmakeparser.h
index f78b3215bb..f8ff2fc3cc 100644
--- a/qmake/library/qmakeparser.h
+++ b/qmake/library/qmakeparser.h
@@ -87,7 +87,7 @@ public:
enum SubGrammar { FullGrammar, TestGrammar, ValueGrammar };
// fileName is expected to be absolute and cleanPath()ed.
ProFile *parsedProFile(const QString &fileName, ParseFlags flags = ParseDefault);
- ProFile *parsedProBlock(const QString &contents, const QString &name, int line = 0,
+ ProFile *parsedProBlock(const QStringRef &contents, const QString &name, int line = 0,
SubGrammar grammar = FullGrammar);
void discardFileFromCache(const QString &fileName);
@@ -130,7 +130,7 @@ private:
};
bool read(ProFile *pro, ParseFlags flags);
- void read(ProFile *pro, const QString &content, int line, SubGrammar grammar);
+ void read(ProFile *pro, const QStringRef &content, int line, SubGrammar grammar);
ALWAYS_INLINE void putTok(ushort *&tokPtr, ushort tok);
ALWAYS_INLINE void putBlockLen(ushort *&tokPtr, uint len);
@@ -141,7 +141,7 @@ private:
ALWAYS_INLINE bool resolveVariable(ushort *xprPtr, int tlen, int needSep, ushort **ptr,
ushort **buf, QString *xprBuff,
ushort **tokPtr, QString *tokBuff,
- const ushort *cur, const QString &in);
+ const ushort *cur, const QStringRef &in);
void finalizeCond(ushort *&tokPtr, ushort *uc, ushort *ptr, int wordCount);
void finalizeCall(ushort *&tokPtr, ushort *uc, ushort *ptr, int argc);
void warnOperator(const char *msg);
diff --git a/qmake/project.cpp b/qmake/project.cpp
index 01adb7422c..28a6c72a46 100644
--- a/qmake/project.cpp
+++ b/qmake/project.cpp
@@ -120,7 +120,8 @@ QStringList QMakeProject::expand(const ProKey &func, const QList<ProStringList>
ProString QMakeProject::expand(const QString &expr, const QString &where, int line)
{
ProString ret;
- ProFile *pro = m_parser->parsedProBlock(expr, where, line, QMakeParser::ValueGrammar);
+ ProFile *pro = m_parser->parsedProBlock(QStringRef(&expr), where, line,
+ QMakeParser::ValueGrammar);
if (pro->isOk()) {
m_current.pro = pro;
m_current.line = 0;
diff --git a/qmake/project.h b/qmake/project.h
index aa9f7dfb3b..4986c7c82d 100644
--- a/qmake/project.h
+++ b/qmake/project.h
@@ -55,7 +55,7 @@ public:
ProString expand(const QString &v, const QString &file, int line);
QStringList expand(const ProKey &func, const QList<ProStringList> &args);
bool test(const QString &v, const QString &file, int line)
- { m_current.clear(); return evaluateConditional(v, file, line); }
+ { m_current.clear(); return evaluateConditional(QStringRef(&v), file, line); }
bool test(const ProKey &func, const QList<ProStringList> &args);
bool isSet(const ProKey &v) const { return m_valuemapStack.first().contains(v); }
@@ -64,6 +64,8 @@ public:
int intValue(const ProKey &v, int defaultValue = 0) const;
const ProValueMap &variables() const { return m_valuemapStack.first(); }
ProValueMap &variables() { return m_valuemapStack.first(); }
+ bool isActiveConfig(const QString &config, bool regex = false)
+ { return QMakeEvaluator::isActiveConfig(QStringRef(&config), regex); }
void dump() const;
@@ -78,7 +80,6 @@ public:
using QMakeEvaluator::propertyValue;
using QMakeEvaluator::values;
using QMakeEvaluator::first;
- using QMakeEvaluator::isActiveConfig;
using QMakeEvaluator::isHostBuild;
using QMakeEvaluator::dirSep;
diff --git a/qmake/qmake.pri b/qmake/qmake.pri
index 782151d763..7f49bb9adb 100644
--- a/qmake/qmake.pri
+++ b/qmake/qmake.pri
@@ -11,8 +11,7 @@ SOURCES += project.cpp property.cpp main.cpp \
generators/win32/msvc_nmake.cpp generators/projectgenerator.cpp \
generators/win32/msvc_vcproj.cpp \
generators/win32/msvc_vcxproj.cpp \
- generators/win32/msvc_objectmodel.cpp generators/win32/msbuild_objectmodel.cpp \
- generators/win32/cesdkhandler.cpp
+ generators/win32/msvc_objectmodel.cpp generators/win32/msbuild_objectmodel.cpp
HEADERS += project.h property.h \
library/qmake_global.h library/ioutils.h library/proitems.h library/qmakevfs.h library/qmakeglobals.h \
@@ -24,8 +23,7 @@ HEADERS += project.h property.h \
generators/xmloutput.h generators/win32/msvc_nmake.h \
generators/win32/msvc_vcproj.h \
generators/win32/msvc_vcxproj.h \
- generators/win32/msvc_objectmodel.h generators/win32/msbuild_objectmodel.h \
- generators/win32/cesdkhandler.h
+ generators/win32/msvc_objectmodel.h generators/win32/msbuild_objectmodel.h
bootstrap { #Qt code
SOURCES+= \
diff --git a/qtbase.pro b/qtbase.pro
index 11cff9e8bf..34f6704752 100644
--- a/qtbase.pro
+++ b/qtbase.pro
@@ -121,14 +121,14 @@ FWD_FEATURES_H = \
write_file($$OUT_PWD/include/QtCore/qfeatures.h, FWD_FEATURES_H)|error("Aborting.")
no_features =
-lines = $$cat($$absolute_path($$QT_QCONFIG_PATH, $$PWD/src/corelib/global), lines)
+lines = $$cat($$OUT_PWD/src/corelib/global/qconfig.h, lines)
for (line, lines) {
# We ignore all defines that don't follow the #ifndef + indent pattern.
# This makes it possible to have unchecked defines which are no features.
t = $$replace(line, "^$${LITERAL_HASH} define QT_NO_(\\S+)\\s*$", "\\1")
!isEqual(t, $$line) {
isEmpty(features.$${t}.name): \
- error("$$QT_QCONFIG_PATH disables unknown feature $$t")
+ error("qconfig.h disables unknown feature $$t")
no_features += $$t
}
}
diff --git a/src/3rdparty/double-conversion/include/double-conversion/utils.h b/src/3rdparty/double-conversion/include/double-conversion/utils.h
index a89b284eda..20bfd36c84 100644
--- a/src/3rdparty/double-conversion/include/double-conversion/utils.h
+++ b/src/3rdparty/double-conversion/include/double-conversion/utils.h
@@ -74,8 +74,6 @@
#else
#undef DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS
#endif // _WIN32
-#elif defined(WINCE) || defined(_WIN32_WCE)
-#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#elif defined(__ghs)
// Green Hills toolchain uses a 64bit wide floating point stack
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
diff --git a/src/3rdparty/freetype_dependency.pri b/src/3rdparty/freetype_dependency.pri
index 39280deb2f..7513e40bfd 100644
--- a/src/3rdparty/freetype_dependency.pri
+++ b/src/3rdparty/freetype_dependency.pri
@@ -1,7 +1,7 @@
-contains(QT_CONFIG, freetype) {
- INCLUDEPATH += $$PWD/freetype/include
- LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtfreetype$$qtPlatformTargetSuffix()
-} else:contains(QT_CONFIG, system-freetype) {
+contains(QT_CONFIG, system-freetype) {
# pull in the proper freetype2 include directory
include($$QT_SOURCE_TREE/config.tests/unix/freetype/freetype.pri)
+} else: contains(QT_CONFIG, freetype) {
+ INCLUDEPATH += $$PWD/freetype/include
+ LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtfreetype$$qtPlatformTargetSuffix()
}
diff --git a/src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro b/src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro
index 163842e8fc..99c32ea672 100644
--- a/src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro
+++ b/src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro
@@ -143,8 +143,8 @@ contains(SHAPERS, coretext) {
HEADERS += \
$$PWD/src/hb-coretext.h
- ios: \
- # On iOS CoreText and CoreGraphics are stand-alone frameworks
+ uikit: \
+ # On iOS/tvOS CoreText and CoreGraphics are stand-alone frameworks
LIBS_PRIVATE += -framework CoreText -framework CoreGraphics
else: \
# On Mac OS they are part of the ApplicationServices umbrella framework,
diff --git a/src/3rdparty/harfbuzz_dependency.pri b/src/3rdparty/harfbuzz_dependency.pri
index 74433688f6..36abbfbe35 100644
--- a/src/3rdparty/harfbuzz_dependency.pri
+++ b/src/3rdparty/harfbuzz_dependency.pri
@@ -1,6 +1,6 @@
-contains(QT_CONFIG, harfbuzz) {
+contains(QT_CONFIG, system-harfbuzz) {
+ LIBS_PRIVATE += -lharfbuzz
+} else: contains(QT_CONFIG, harfbuzz) {
INCLUDEPATH += $$PWD/harfbuzz-ng/include
LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtharfbuzzng$$qtPlatformTargetSuffix()
-} else:contains(QT_CONFIG, system-harfbuzz) {
- LIBS_PRIVATE += -lharfbuzz
}
diff --git a/src/3rdparty/pcre/pcre.pro b/src/3rdparty/pcre/pcre.pro
index 53405e0e46..fad82b80b1 100644
--- a/src/3rdparty/pcre/pcre.pro
+++ b/src/3rdparty/pcre/pcre.pro
@@ -11,7 +11,7 @@ DEFINES += HAVE_CONFIG_H
# platform/compiler specific definitions
win32: DEFINES += PCRE_STATIC
-ios|qnx|winrt: DEFINES += PCRE_DISABLE_JIT
+uikit|qnx|winrt: DEFINES += PCRE_DISABLE_JIT
SOURCES += \
$$PWD/pcre16_byte_order.c \
diff --git a/src/corelib/arch/arch.pri b/src/corelib/arch/arch.pri
index ec617386a4..0f7c2b887b 100644
--- a/src/corelib/arch/arch.pri
+++ b/src/corelib/arch/arch.pri
@@ -1,4 +1,4 @@
-win32|wince:HEADERS += arch/qatomic_msvc.h
+win32:HEADERS += arch/qatomic_msvc.h
HEADERS += \
arch/qatomic_bootstrap.h \
diff --git a/src/corelib/arch/qatomic_msvc.h b/src/corelib/arch/qatomic_msvc.h
index 62d54ded55..5eae2bdc48 100644
--- a/src/corelib/arch/qatomic_msvc.h
+++ b/src/corelib/arch/qatomic_msvc.h
@@ -45,8 +45,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
-#ifndef Q_OS_WINCE
-
// use compiler intrinsics for all atomic functions
# define QT_INTERLOCKED_PREFIX _
# define QT_INTERLOCKED_PROTOTYPE
@@ -58,36 +56,6 @@
# define Q_ATOMIC_INT64_IS_SUPPORTED
# endif
-#else // Q_OS_WINCE
-
-# if _WIN32_WCE < 0x600 && defined(_X86_)
-// For X86 Windows CE, include winbase.h to catch inline functions which
-// override the regular definitions inside of coredll.dll.
-// Though one could use the original version of Increment/Decrement, others are
-// not exported at all.
-# include <winbase.h>
-
-// It's safer to remove the volatile and let the compiler add it as needed.
-# define QT_INTERLOCKED_VOLATILE
-
-# else // _WIN32_WCE >= 0x600 || !_X86_
-
-# define QT_INTERLOCKED_PROTOTYPE __cdecl
-# define QT_INTERLOCKED_DECLARE_PROTOTYPES
-
-# if _WIN32_WCE >= 0x600
-# if defined(_X86_)
-# define QT_INTERLOCKED_PREFIX _
-# define QT_INTERLOCKED_INTRINSIC
-# endif
-# else
-# define QT_INTERLOCKED_VOLATILE
-# endif
-
-# endif // _WIN32_WCE >= 0x600 || !_X86_
-
-#endif // Q_OS_WINCE
-
////////////////////////////////////////////////////////////////////////////////////////////////////
// Prototype declaration
@@ -128,7 +96,7 @@ extern "C" {
long QT_INTERLOCKED_PROTOTYPE QT_INTERLOCKED_FUNCTION( Exchange )(long QT_INTERLOCKED_VOLATILE *, long);
long QT_INTERLOCKED_PROTOTYPE QT_INTERLOCKED_FUNCTION( ExchangeAdd )(long QT_INTERLOCKED_VOLATILE *, long);
-# if !defined(Q_OS_WINCE) && !defined(__i386__) && !defined(_M_IX86)
+# if !defined(__i386__) && !defined(_M_IX86)
void * QT_INTERLOCKED_FUNCTION( CompareExchangePointer )(void * QT_INTERLOCKED_VOLATILE *, void *, void *);
void * QT_INTERLOCKED_FUNCTION( ExchangePointer )(void * QT_INTERLOCKED_VOLATILE *, void *);
__int64 QT_INTERLOCKED_FUNCTION( ExchangeAdd64 )(__int64 QT_INTERLOCKED_VOLATILE *, __int64);
@@ -165,7 +133,7 @@ extern "C" {
# pragma intrinsic (_InterlockedCompareExchange)
# pragma intrinsic (_InterlockedExchangeAdd)
-# if !defined(Q_OS_WINCE) && !defined(_M_IX86)
+# if !defined(_M_IX86)
# pragma intrinsic (_InterlockedCompareExchangePointer)
# pragma intrinsic (_InterlockedExchangePointer)
# pragma intrinsic (_InterlockedExchangeAdd64)
@@ -176,7 +144,7 @@ extern "C" {
////////////////////////////////////////////////////////////////////////////////////////////////////
// Interlocked* replacement macros
-#if defined(Q_OS_WINCE) || defined(__i386__) || defined(_M_IX86)
+#if defined(__i386__) || defined(_M_IX86)
# define QT_INTERLOCKED_COMPARE_EXCHANGE_POINTER(value, newValue, expectedValue) \
reinterpret_cast<void *>( \
@@ -195,7 +163,7 @@ extern "C" {
reinterpret_cast<long QT_INTERLOCKED_VOLATILE *>(value), \
(valueToAdd))
-#else // !defined(Q_OS_WINCE) && !defined(__i386__) && !defined(_M_IX86)
+#else // !defined(__i386__) && !defined(_M_IX86)
# define QT_INTERLOCKED_COMPARE_EXCHANGE_POINTER(value, newValue, expectedValue) \
QT_INTERLOCKED_FUNCTION(CompareExchangePointer)( \
@@ -213,7 +181,7 @@ extern "C" {
reinterpret_cast<qint64 QT_INTERLOCKED_VOLATILE *>(value), \
(valueToAdd))
-#endif // !defined(Q_OS_WINCE) && !defined(__i386__) && !defined(_M_IX86)
+#endif // !defined(__i386__) && !defined(_M_IX86)
////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/corelib/codecs/codecs.pri b/src/corelib/codecs/codecs.pri
index bfb677e6fb..fdaec33c5a 100644
--- a/src/corelib/codecs/codecs.pri
+++ b/src/corelib/codecs/codecs.pri
@@ -40,20 +40,17 @@ contains(QT_CONFIG,icu) {
codecs/qeuckrcodec.cpp \
codecs/qbig5codec.cpp
- unix:!qnx:!mac:!ios:!linux-android-* {
- contains(QT_CONFIG,iconv) {
- HEADERS += codecs/qiconvcodec_p.h
- SOURCES += codecs/qiconvcodec.cpp
- } else:contains(QT_CONFIG,gnu-libiconv) {
- HEADERS += codecs/qiconvcodec_p.h
- SOURCES += codecs/qiconvcodec.cpp
- DEFINES += GNU_LIBICONV
- LIBS_PRIVATE *= -liconv
- } else:contains(QT_CONFIG,sun-libiconv) {
- HEADERS += codecs/qiconvcodec_p.h
- SOURCES += codecs/qiconvcodec.cpp
- DEFINES += GNU_LIBICONV
+ unix:!qnx:!darwin:!linux-android-* {
+ contains(QT_CONFIG, iconv) {
+ HEADERS += codecs/qiconvcodec_p.h
+ SOURCES += codecs/qiconvcodec.cpp
+ contains(QT_CONFIG, gnu-libiconv) {
+ DEFINES += GNU_LIBICONV
+ LIBS_PRIVATE *= -liconv
+ } else: contains(QT_CONFIG, sun-libiconv) {
+ DEFINES += GNU_LIBICONV
}
+ }
} else:!win32-msvc* {
DEFINES += QT_NO_ICONV
}
diff --git a/src/corelib/codecs/qicucodec.cpp b/src/corelib/codecs/qicucodec.cpp
index aa2095d9da..ee9f1d0048 100644
--- a/src/corelib/codecs/qicucodec.cpp
+++ b/src/corelib/codecs/qicucodec.cpp
@@ -527,7 +527,7 @@ QTextCodec *QIcuCodec::codecForNameUnlocked(const char *name)
// check whether there is really a converter for the name available.
UConverter *conv = ucnv_open(standardName, &error);
if (!conv) {
- qDebug() << "codecForName: ucnv_open failed" << standardName << u_errorName(error);
+ qDebug("codecForName: ucnv_open failed %s %s", standardName, u_errorName(error));
return 0;
}
//qDebug() << "QIcuCodec: Standard name for " << name << "is" << standardName;
@@ -577,7 +577,7 @@ UConverter *QIcuCodec::getConverter(QTextCodec::ConverterState *state) const
ucnv_setSubstChars(static_cast<UConverter *>(state->d),
state->flags & QTextCodec::ConvertInvalidToNull ? "\0" : "?", 1, &error);
if (U_FAILURE(error))
- qDebug() << "getConverter(state) ucnv_open failed" << m_name << u_errorName(error);
+ qDebug("getConverter(state) ucnv_open failed %s %s", m_name, u_errorName(error));
}
conv = static_cast<UConverter *>(state->d);
}
@@ -587,7 +587,7 @@ UConverter *QIcuCodec::getConverter(QTextCodec::ConverterState *state) const
conv = ucnv_open(m_name, &error);
ucnv_setSubstChars(conv, "?", 1, &error);
if (U_FAILURE(error))
- qDebug() << "getConverter(no state) ucnv_open failed" << m_name << u_errorName(error);
+ qDebug("getConverter(no state) ucnv_open failed %s %s", m_name, u_errorName(error));
}
return conv;
}
@@ -610,7 +610,7 @@ QString QIcuCodec::convertToUnicode(const char *chars, int length, QTextCodec::C
&chars, end,
0, false, &error);
if (!U_SUCCESS(error) && error != U_BUFFER_OVERFLOW_ERROR) {
- qDebug() << "convertToUnicode failed:" << u_errorName(error);
+ qDebug("convertToUnicode failed: %s", u_errorName(error));
break;
}
@@ -647,7 +647,7 @@ QByteArray QIcuCodec::convertFromUnicode(const QChar *unicode, int length, QText
&uc, end,
0, false, &error);
if (!U_SUCCESS(error))
- qDebug() << "convertFromUnicode failed:" << u_errorName(error);
+ qDebug("convertFromUnicode failed: %s", u_errorName(error));
convertedChars = ch - string.data();
if (uc >= end)
break;
diff --git a/src/corelib/codecs/qtextcodec.cpp b/src/corelib/codecs/qtextcodec.cpp
index edb03af447..5098ac4242 100644
--- a/src/corelib/codecs/qtextcodec.cpp
+++ b/src/corelib/codecs/qtextcodec.cpp
@@ -132,7 +132,7 @@ bool qTextCodecNameMatch(const char *n, const char *h)
}
-#if !defined(Q_OS_WIN32) && !defined(Q_OS_WINCE) && !defined(QT_LOCALE_IS_UTF8)
+#if !defined(Q_OS_WIN32) && !defined(QT_LOCALE_IS_UTF8)
static QTextCodec *checkForCodec(const QByteArray &name) {
QTextCodec *c = QTextCodec::codecForName(name);
if (!c) {
@@ -169,7 +169,7 @@ static QTextCodec *setupLocaleMapper()
#if defined(QT_LOCALE_IS_UTF8)
locale = QTextCodec::codecForName("UTF-8");
-#elif defined(Q_OS_WIN) || defined(Q_OS_WINCE)
+#elif defined(Q_OS_WIN)
locale = QTextCodec::codecForName("System");
#else
@@ -289,7 +289,7 @@ static void setup()
#if !defined(QT_NO_ICONV)
(void) new QIconvCodec;
#endif
-#if defined(Q_OS_WIN32) || defined(Q_OS_WINCE)
+#if defined(Q_OS_WIN32)
(void) new QWindowsLocalCodec;
#endif // Q_OS_WIN32
#endif // !QT_NO_CODECS && !QT_BOOTSTRAPPED
diff --git a/src/corelib/codecs/qutfcodec.cpp b/src/corelib/codecs/qutfcodec.cpp
index f1054ceb98..74a716db4a 100644
--- a/src/corelib/codecs/qutfcodec.cpp
+++ b/src/corelib/codecs/qutfcodec.cpp
@@ -52,6 +52,19 @@ enum { Endian = 0, Data = 1 };
static const uchar utf8bom[] = { 0xef, 0xbb, 0xbf };
+#if (defined(__SSE2__) && defined(QT_COMPILER_SUPPORTS_SSE2)) \
+ || (defined(__ARM_NEON__) && defined(Q_PROCESSOR_ARM_64))
+static Q_ALWAYS_INLINE uint qBitScanReverse(unsigned v) Q_DECL_NOTHROW
+{
+ uint result = qCountLeadingZeroBits(v);
+ // Now Invert the result: clz will count *down* from the msb to the lsb, so the msb index is 31
+ // and the lsb index is 0. The result for _bit_scan_reverse is expected to be the index when
+ // counting up: msb index is 0 (because it starts there), and the lsb index is 31.
+ result ^= sizeof(unsigned) * 8 - 1;
+ return result;
+}
+#endif
+
#if defined(__SSE2__) && defined(QT_COMPILER_SUPPORTS_SSE2)
static inline bool simdEncodeAscii(uchar *&dst, const ushort *&nextAscii, const ushort *&src, const ushort *end)
{
@@ -81,9 +94,9 @@ static inline bool simdEncodeAscii(uchar *&dst, const ushort *&nextAscii, const
// find the next probable ASCII character
// we don't want to load 32 bytes again in this loop if we know there are non-ASCII
// characters still coming
- nextAscii = src + _bit_scan_reverse(n) + 1;
+ nextAscii = src + qBitScanReverse(n) + 1;
- n = _bit_scan_forward(n);
+ n = qCountTrailingZeroBits(n);
dst += n;
src += n;
return false;
@@ -132,13 +145,81 @@ static inline bool simdDecodeAscii(ushort *&dst, const uchar *&nextAscii, const
// find the next probable ASCII character
// we don't want to load 16 bytes again in this loop if we know there are non-ASCII
// characters still coming
- n = _bit_scan_reverse(n);
+ n = qBitScanReverse(n);
nextAscii = src + (n / BitSpacing) + 1;
return false;
}
return src == end;
}
+#elif defined(__ARM_NEON__) && defined(Q_PROCESSOR_ARM_64) // vaddv is only available on Aarch64
+static inline bool simdEncodeAscii(uchar *&dst, const ushort *&nextAscii, const ushort *&src, const ushort *end)
+{
+ uint16x8_t maxAscii = vdupq_n_u16(0x7f);
+ uint16x8_t mask1 = { 1, 1 << 2, 1 << 4, 1 << 6, 1 << 8, 1 << 10, 1 << 12, 1 << 14 };
+ uint16x8_t mask2 = vshlq_n_u16(mask1, 1);
+
+ // do sixteen characters at a time
+ for ( ; end - src >= 16; src += 16, dst += 16) {
+ // load 2 lanes (or: "load interleaved")
+ uint16x8x2_t in = vld2q_u16(src);
+
+ // check if any of the elements > 0x7f, select 1 bit per element (element 0 -> bit 0, element 1 -> bit 1, etc),
+ // add those together into a scalar, and merge the scalars.
+ uint16_t nonAscii = vaddvq_u16(vandq_u16(vcgtq_u16(in.val[0], maxAscii), mask1))
+ | vaddvq_u16(vandq_u16(vcgtq_u16(in.val[1], maxAscii), mask2));
+
+ // merge the two lanes by shifting