Merge remote-tracking branch 'origin/stable' into dev
Conflicts: src/concurrent/doc/qtconcurrent.qdocconf src/corelib/doc/qtcore.qdocconf src/corelib/global/qglobal.h src/dbus/doc/qtdbus.qdocconf src/dbus/qdbusmessage.h src/gui/doc/qtgui.qdocconf src/gui/image/qimagereader.cpp src/network/doc/qtnetwork.qdocconf src/opengl/doc/qtopengl.qdocconf src/opengl/qgl.h src/plugins/platforms/windows/qwindowswindow.cpp src/printsupport/doc/qtprintsupport.qdocconf src/sql/doc/qtsql.qdocconf src/testlib/doc/qttestlib.qdocconf src/tools/qdoc/doc/config/qt-cpp-ignore.qdocconf src/widgets/doc/qtwidgets.qdocconf src/xml/doc/qtxml.qdocconf Change-Id: Ie9a1fa2cc44bec22a0b942e817a1095ca3414629
This commit is contained in:
commit
e65cd6f379
@ -195,12 +195,6 @@ sub classNames {
|
|||||||
chomp $line;
|
chomp $line;
|
||||||
chop $line if ($line =~ /\r$/);
|
chop $line if ($line =~ /\r$/);
|
||||||
if($line =~ /^\#/) {
|
if($line =~ /^\#/) {
|
||||||
if($line =~ /\\$/) {
|
|
||||||
while($line = <F>) {
|
|
||||||
chomp $line;
|
|
||||||
last unless($line =~ /\\$/);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return @ret if($line =~ m/^#pragma qt_sync_stop_processing/);
|
return @ret if($line =~ m/^#pragma qt_sync_stop_processing/);
|
||||||
push(@ret, $1) if($line =~ m/^#pragma qt_class\(([^)]*)\)[\r\n]*$/);
|
push(@ret, $1) if($line =~ m/^#pragma qt_class\(([^)]*)\)[\r\n]*$/);
|
||||||
$line = 0;
|
$line = 0;
|
||||||
|
94
dist/changes-5.0.1
vendored
94
dist/changes-5.0.1
vendored
@ -40,37 +40,66 @@ Legal
|
|||||||
* Library *
|
* Library *
|
||||||
****************************************************************************
|
****************************************************************************
|
||||||
|
|
||||||
|
|
||||||
QtCore
|
QtCore
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
- Fix QMutex::tryLock with negative values
|
||||||
|
- Fix a leak in case the QMetaObject::Connection survives the sender object,
|
||||||
|
after a successful disconnect().
|
||||||
|
- Speed up and fix QByteArray::setNum()
|
||||||
|
- [QTBUG-28924] Don't increase the reference count if dynamic_cast failed
|
||||||
|
|
||||||
QtGui
|
QtGui
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
- Fix QGuiApplication::keyboardModifiers() and QGuiApplication::mouseButtons()
|
||||||
|
- Fix styleName support in QPA font database
|
||||||
|
- Make QImage::mirrored() propagate devicePixelRatio
|
||||||
|
- [QTBUG-28324] Fixed invalid memory read in SSSE3 image blending code.
|
||||||
|
|
||||||
QtWidgets
|
QtWidgets
|
||||||
---------
|
---------
|
||||||
|
|
||||||
|
- Do not inform that a widget is not visible when it's disabled.
|
||||||
|
- [QTBUG-28031, QTBUG-2596] QMenu: Do not set snapToMouse if a caused-widget exists.
|
||||||
|
- [QTBUG-28321] Fix focusproxy-relayed crash in QGraphicsItem destructor.
|
||||||
|
- [QTBUG-28446] Fix compilation when Q_NO_USING_KEYWORD is defined
|
||||||
|
- [QTBUG-28477] Fix QWidget::setWindowOpacity() when called before show().
|
||||||
|
- [QTBUG-28506] Style animations: fix QCommonStylePrivate::stopAnimation()
|
||||||
|
- [QTBUG-28557] Fix QGtkPainter::reset() to reset the clip rect
|
||||||
|
|
||||||
QtNetwork
|
QtNetwork
|
||||||
---------
|
---------
|
||||||
|
|
||||||
|
- [QTBUG-28937] SSL certificates: blacklist mis-issued Turktrust certificates
|
||||||
|
|
||||||
QtDBus
|
QtDBus
|
||||||
------
|
------
|
||||||
|
|
||||||
|
- qdbusxml2cpp: Check string length before checking for \r\n.
|
||||||
|
|
||||||
QtConcurrent
|
QtConcurrent
|
||||||
------------
|
------------
|
||||||
|
|
||||||
QtOpenGL
|
QtOpenGL
|
||||||
--------
|
--------
|
||||||
|
|
||||||
QtScript
|
- Fix compilation of Open GL ES 2 examples when using a Qt-namespace.
|
||||||
--------
|
- Fixed deadlock situation in QtOpenGL's texture management.
|
||||||
|
- updating qeglfshooks_imx6.cpp to 12.09.01 (L3.0.35) opengl-drivers
|
||||||
|
- [QTBUG-27512] Entered hardcoded urls for <OpenGL> and <Khronos O.GL>
|
||||||
|
- [QTBUG-28875] Fix bug in multisampling handling when converting from surface format
|
||||||
|
|
||||||
QTestLib
|
QTestLib
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
- Add qtest_widget.h to the list of testlib headers
|
||||||
|
|
||||||
QtSql
|
QtSql
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
- Fix QSqlQuery test in relation to PSQL support
|
||||||
|
|
||||||
****************************************************************************
|
****************************************************************************
|
||||||
* Database Drivers *
|
* Database Drivers *
|
||||||
****************************************************************************
|
****************************************************************************
|
||||||
@ -81,6 +110,8 @@ sqlite
|
|||||||
postgres
|
postgres
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
- Use PG_VERSION if PG_MAJORVERSION is not defined
|
||||||
|
|
||||||
****************************************************************************
|
****************************************************************************
|
||||||
* Platform Specific Changes *
|
* Platform Specific Changes *
|
||||||
****************************************************************************
|
****************************************************************************
|
||||||
@ -88,19 +119,44 @@ postgres
|
|||||||
Qt for Linux/X11
|
Qt for Linux/X11
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
- XCB: add support for getting and setting appTime and appUserTime.
|
||||||
|
- [QTBUG-28561] Fixed incorrect handling of extra mouse buttons in XCB platform plugin.
|
||||||
|
|
||||||
Qt for Windows
|
Qt for Windows
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
|
- DBUS: Fix linker errors on Windows.
|
||||||
|
- Define Q_COMPILER_AUTO_FUNCTION for MVSC
|
||||||
|
- [QTBUG-28611] Fix warnings about not being able to set Window geometry on Windows.
|
||||||
|
- [QTBUG-28611] QMdiArea: Increase minimum size for Windows 8/Large fonts.
|
||||||
|
- [QTBUG-28645] Rename conflicting symbol QVariantToVARIANT
|
||||||
|
- [QTBUG-28876] QWindowsVistaStyle: fix frame rendering
|
||||||
|
|
||||||
Qt for Mac OS X
|
Qt for Mac OS X
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
|
- Ignore ScrollBarAlwaysOn policy for transient scrollbars
|
||||||
|
- New rendering for disclose triangle, get proper color when selected
|
||||||
|
- [QTBUG-27415] Fix bugs for font selection in QFontDialog
|
||||||
|
- [QTBUG-28161] Ensure the native filedialog starts up with the right directory
|
||||||
|
- [QTBUG-28443] Cocoa: Re-enable per class palette on QPA plugin
|
||||||
|
- [QTBUG-28669] Fix transient QScrollBar flashing
|
||||||
|
- [QTBUG-28738] Bring back proper layout in QMessageBox
|
||||||
|
|
||||||
|
Qt for BlackBerry
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
- Reset virtual keyboard when shown.
|
||||||
|
- Disable Q_COMPILER_RVALUE_REFS on QNX
|
||||||
|
- Fix QNX QPA plugin clipboard impl
|
||||||
|
- Don't crash because the window hasn't been initialized yet.
|
||||||
|
|
||||||
Qt for Embedded Linux
|
Qt for Embedded Linux
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
Qt for Windows CE
|
Qt for Windows CE
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
|
||||||
****************************************************************************
|
****************************************************************************
|
||||||
* Compiler Specific Changes *
|
* Compiler Specific Changes *
|
||||||
****************************************************************************
|
****************************************************************************
|
||||||
@ -111,11 +167,41 @@ Qt for Windows CE
|
|||||||
* Tools *
|
* Tools *
|
||||||
****************************************************************************
|
****************************************************************************
|
||||||
|
|
||||||
|
configure
|
||||||
|
---------
|
||||||
|
|
||||||
|
- Remove the -fast configure option as it was pretty much broken
|
||||||
|
- [QTBUG-23569, QTBUG-25760] Check for gtk_adjustment_configure as this is not always implemented
|
||||||
|
|
||||||
|
mkspecs
|
||||||
|
-------
|
||||||
|
|
||||||
|
- Fix the computation of the location of mkspecs.
|
||||||
|
- [QTBUG-28215] Enable forcing generation of static plugin imports
|
||||||
|
- [QTBUG-28606] Fix installation of plugin module .pris in static Qt builds
|
||||||
|
|
||||||
|
moc
|
||||||
|
---
|
||||||
|
|
||||||
|
- [QTBUG-26589] Remove the timestamp info in genarated files to optimize rebuilds with ccache
|
||||||
|
|
||||||
|
qmake
|
||||||
|
-----
|
||||||
|
|
||||||
|
- Do not fixify + create QMAKE_{PKGCONFIG,LIBTOOL}_DESTDIR
|
||||||
|
- Fix qtCompileTest for cross building modules
|
||||||
|
- [QTBUG-28104] Respect the OBJECTS_DIR setting for XCode projects
|
||||||
|
- [QTBUG-24589] Fix handling of precompiled header files in XCode projects
|
||||||
|
- [QTBUG-28624] accept hex/octal values for RC_LANG and RC_CODEPAGE
|
||||||
|
- [QTBUG-28625] fix duplicate TRANSLATION entry in generated RC file
|
||||||
|
- [QTBUG-28682, QTBUG-28683] fix DLL manifest resource ids for debug builds
|
||||||
|
|
||||||
****************************************************************************
|
****************************************************************************
|
||||||
* Plugins *
|
* Plugins *
|
||||||
****************************************************************************
|
****************************************************************************
|
||||||
|
|
||||||
|
- Accessibility Linux: Prevent access to invalid interfaces
|
||||||
|
- Call QAccessible::updateAccessibility when caret moves in QTextEdit
|
||||||
|
|
||||||
****************************************************************************
|
****************************************************************************
|
||||||
* Important Behavior Changes *
|
* Important Behavior Changes *
|
||||||
|
119
dist/changes-5.0.2
vendored
Normal file
119
dist/changes-5.0.2
vendored
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
Qt 5.0.2 is a bug-fix release. It maintains both forward and backward
|
||||||
|
compatibility (source and binary) with Qt 5.0.0 and 5.0.1.
|
||||||
|
|
||||||
|
For more details, refer to the online documentation included in this
|
||||||
|
distribution. The documentation is also available online:
|
||||||
|
|
||||||
|
http://qt-project.org/doc/qt-5.0/
|
||||||
|
|
||||||
|
Some of the changes listed in this file include issue tracking numbers
|
||||||
|
corresponding to tasks in the Qt Bug Tracker:
|
||||||
|
|
||||||
|
http://bugreports.qt-project.org/
|
||||||
|
|
||||||
|
Each of these identifiers can be entered in the bug tracker to obtain more
|
||||||
|
information about a particular change.
|
||||||
|
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
* General *
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
General Improvements
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Third party components
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
Legal
|
||||||
|
-----
|
||||||
|
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
* Library *
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
QtCore
|
||||||
|
-----
|
||||||
|
|
||||||
|
- [QTBUG-29130] Fixed compilation when connecting with the new syntax to a
|
||||||
|
signal that has more than 3 registered meta type arguments, and the compiler
|
||||||
|
does not support variadic templates
|
||||||
|
|
||||||
|
QtGui
|
||||||
|
-----
|
||||||
|
|
||||||
|
QtWidgets
|
||||||
|
---------
|
||||||
|
|
||||||
|
QtNetwork
|
||||||
|
---------
|
||||||
|
|
||||||
|
QtDBus
|
||||||
|
------
|
||||||
|
|
||||||
|
QtConcurrent
|
||||||
|
------------
|
||||||
|
|
||||||
|
QtOpenGL
|
||||||
|
--------
|
||||||
|
|
||||||
|
QtTest
|
||||||
|
------
|
||||||
|
|
||||||
|
QtSql
|
||||||
|
-----
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
* Database Drivers *
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
sqlite
|
||||||
|
------
|
||||||
|
|
||||||
|
postgres
|
||||||
|
--------
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
* Platform Specific Changes *
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
Qt for Linux/X11
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Qt for Windows
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Qt for Mac OS X
|
||||||
|
---------------
|
||||||
|
|
||||||
|
Qt for BlackBerry
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Qt for Embedded Linux
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Qt for Windows CE
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
* Compiler Specific Changes *
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
* Tools *
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
* Plugins *
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
* Important Behavior Changes *
|
||||||
|
****************************************************************************
|
||||||
|
|
@ -51,14 +51,14 @@ QString contentType = header.value("content-type");
|
|||||||
|
|
||||||
//! [2]
|
//! [2]
|
||||||
QHttpRequestHeader header("GET", QUrl::toPercentEncoding("/index.html"));
|
QHttpRequestHeader header("GET", QUrl::toPercentEncoding("/index.html"));
|
||||||
header.setValue("Host", "qt.nokia.com");
|
header.setValue("Host", "qt-project.org");
|
||||||
http->setHost("qt.nokia.com");
|
http->setHost("qt-project.org");
|
||||||
http->request(header);
|
http->request(header);
|
||||||
//! [2]
|
//! [2]
|
||||||
|
|
||||||
|
|
||||||
//! [3]
|
//! [3]
|
||||||
http->setHost("qt.nokia.com"); // id == 1
|
http->setHost("qt-project.org"); // id == 1
|
||||||
http->get(QUrl::toPercentEncoding("/index.html")); // id == 2
|
http->get(QUrl::toPercentEncoding("/index.html")); // id == 2
|
||||||
//! [3]
|
//! [3]
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle" >
|
<property name="windowTitle" >
|
||||||
<string>QtDBus Chat</string>
|
<string>Qt D-Bus Chat</string>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="centralwidget" >
|
<widget class="QWidget" name="centralwidget" >
|
||||||
<layout class="QHBoxLayout" >
|
<layout class="QHBoxLayout" >
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
requires(qtHaveModule(dbus))
|
||||||
|
|
||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
SUBDIRS = listnames \
|
SUBDIRS = listnames \
|
||||||
pingpong \
|
pingpong \
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
requires(if(wince|embedded|x11):qtHaveModule(gui))
|
||||||
|
|
||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
SUBDIRS = styleexample raycasting flickable digiflip
|
SUBDIRS = styleexample raycasting flickable digiflip
|
||||||
|
|
||||||
|
@ -2,27 +2,22 @@ TEMPLATE = subdirs
|
|||||||
CONFIG += no_docs_target
|
CONFIG += no_docs_target
|
||||||
|
|
||||||
SUBDIRS = \
|
SUBDIRS = \
|
||||||
|
dbus \
|
||||||
|
embedded \
|
||||||
|
gestures \
|
||||||
gui \
|
gui \
|
||||||
network \
|
|
||||||
threads \
|
|
||||||
xml \
|
|
||||||
qpa
|
|
||||||
|
|
||||||
qtHaveModule(widgets) {
|
|
||||||
SUBDIRS += widgets \
|
|
||||||
ipc \
|
ipc \
|
||||||
|
network \
|
||||||
|
opengl \
|
||||||
|
qpa \
|
||||||
|
qtconcurrent \
|
||||||
|
qtestlib \
|
||||||
sql \
|
sql \
|
||||||
|
threads \
|
||||||
tools \
|
tools \
|
||||||
touch \
|
touch \
|
||||||
gestures
|
widgets \
|
||||||
}
|
xml
|
||||||
|
|
||||||
wince*|embedded|x11:qtHaveModule(gui): SUBDIRS += embedded
|
|
||||||
|
|
||||||
contains(QT_BUILD_PARTS, tools):qtHaveModule(gui):qtHaveModule(widgets): SUBDIRS += qtestlib
|
|
||||||
qtHaveModule(opengl):qtHaveModule(widgets): SUBDIRS += opengl
|
|
||||||
qtHaveModule(dbus): SUBDIRS += dbus
|
|
||||||
qtHaveModule(concurrent): SUBDIRS += qtconcurrent
|
|
||||||
|
|
||||||
aggregate.files = aggregate/examples.pro
|
aggregate.files = aggregate/examples.pro
|
||||||
aggregate.path = $$[QT_INSTALL_EXAMPLES]
|
aggregate.path = $$[QT_INSTALL_EXAMPLES]
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
requires(qtHaveModule(widgets))
|
||||||
|
|
||||||
TEMPLATE = \
|
TEMPLATE = \
|
||||||
subdirs
|
subdirs
|
||||||
SUBDIRS = \
|
SUBDIRS = \
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
||||||
** Contact: http://www.qt-project.org/legal
|
** Contact: http://www.qt-project.org/legal
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
requires(qtHaveModule(widgets))
|
||||||
|
|
||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
# no QSharedMemory
|
# no QSharedMemory
|
||||||
!vxworks:!qnx:SUBDIRS = sharedmemory
|
!vxworks:!qnx:SUBDIRS = sharedmemory
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
requires(qtHaveModule(opengl))
|
||||||
|
|
||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
contains(QT_CONFIG, opengles1)|contains(QT_CONFIG, opengles2){
|
contains(QT_CONFIG, opengles1)|contains(QT_CONFIG, opengles2){
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\example qtconcurrent/imagescaling
|
\example imagescaling
|
||||||
\title Image Scaling Example
|
\title Image Scaling Example
|
||||||
\brief Demonstrates how to asynchronously scale images.
|
\brief Demonstrates how to asynchronously scale images.
|
||||||
\ingroup qtconcurrentexamples
|
\ingroup qtconcurrentexamples
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\example qtconcurrent/map
|
\example map
|
||||||
\title Map Example
|
\title Map Example
|
||||||
\brief Demonstrates how to scale images synchronously.
|
\brief Demonstrates how to scale images synchronously.
|
||||||
\ingroup qtconcurrentexamples
|
\ingroup qtconcurrentexamples
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\example qtconcurrent/progressdialog
|
\example progressdialog
|
||||||
\title QtConcurrent Progress Dialog Example
|
\title QtConcurrent Progress Dialog Example
|
||||||
\brief Demonstrates how to monitor the progress of the active processes.
|
\brief Demonstrates how to monitor the progress of the active processes.
|
||||||
\ingroup qtconcurrentexamples
|
\ingroup qtconcurrentexamples
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
requires(qtHaveModule(concurrent))
|
||||||
|
|
||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
SUBDIRS = imagescaling \
|
SUBDIRS = imagescaling \
|
||||||
map \
|
map \
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\example qtconcurrent/runfunction
|
\example runfunction
|
||||||
\title Run Function Example
|
\title Run Function Example
|
||||||
\brief Demonstrates how to run standard functions concurrently.
|
\brief Demonstrates how to run standard functions concurrently.
|
||||||
\ingroup qtconcurrentexamples
|
\ingroup qtconcurrentexamples
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\example qtconcurrent/wordcount
|
\example wordcount
|
||||||
\title QtConcurrent Word Count Example
|
\title QtConcurrent Word Count Example
|
||||||
\brief Demonstrates how to use the map-reduce algorithm
|
\brief Demonstrates how to use the map-reduce algorithm
|
||||||
\ingroup qtconcurrentexamples
|
\ingroup qtconcurrentexamples
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
The QTestLib framework is a tool for unit testing Qt based applications
|
The Qt Test framework is a tool for unit testing Qt based applications
|
||||||
and libraries. QTestLib provides all the functionality commonly found
|
and libraries. Qt Test provides all the functionality commonly found
|
||||||
in unit testing frameworks as well as extensions for testing graphical
|
in unit testing frameworks as well as extensions for testing graphical
|
||||||
user interfaces.
|
user interfaces.
|
||||||
|
|
||||||
|
@ -1,2 +1,4 @@
|
|||||||
|
requires(contains(QT_BUILD_PARTS,tools):qtHaveModule(widgets))
|
||||||
|
|
||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
SUBDIRS = tutorial1 tutorial2 tutorial3 tutorial4 tutorial5
|
SUBDIRS = tutorial1 tutorial2 tutorial3 tutorial4 tutorial5
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
requires(qtHaveModule(widgets))
|
||||||
|
|
||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
SUBDIRS = books \
|
SUBDIRS = books \
|
||||||
@ -19,4 +21,3 @@ SUBDIRS = books \
|
|||||||
}
|
}
|
||||||
|
|
||||||
EXAMPLE_FILES = connection.h
|
EXAMPLE_FILES = connection.h
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
requires(qtHaveModule(widgets))
|
||||||
|
|
||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
CONFIG += ordered
|
CONFIG += ordered
|
||||||
SUBDIRS = contiguouscache \
|
SUBDIRS = contiguouscache \
|
||||||
|
@ -1,2 +1,4 @@
|
|||||||
|
requires(qtHaveModule(widgets))
|
||||||
|
|
||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
SUBDIRS = pinchzoom fingerpaint knobs dials
|
SUBDIRS = pinchzoom fingerpaint knobs dials
|
||||||
|
@ -192,6 +192,6 @@
|
|||||||
fetched with QTextBlock::userData(). Matching parentheses can be
|
fetched with QTextBlock::userData(). Matching parentheses can be
|
||||||
highlighted with an extra selection. The "Matching Parentheses
|
highlighted with an extra selection. The "Matching Parentheses
|
||||||
with QSyntaxHighlighter" article in Qt Quarterly 31 implements
|
with QSyntaxHighlighter" article in Qt Quarterly 31 implements
|
||||||
this. You find it here: \l{http://doc.qt.nokia.com/qq/}.
|
this. You find it here: \l{http://doc.qt.digia.com/qq/}.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
@ -248,7 +248,7 @@
|
|||||||
It is possible to implement parenthesis matching with
|
It is possible to implement parenthesis matching with
|
||||||
QSyntaxHighlighter. The "Matching Parentheses with
|
QSyntaxHighlighter. The "Matching Parentheses with
|
||||||
QSyntaxHighlighter" article in Qt Quarterly 31
|
QSyntaxHighlighter" article in Qt Quarterly 31
|
||||||
(\l{http://doc.qt.nokia.com/qq/}) implements this. We also have
|
(\l{http://doc.qt.digia.com/qq/}) implements this. We also have
|
||||||
the \l{Code Editor Example}, which shows how to implement line
|
the \l{Code Editor Example}, which shows how to implement line
|
||||||
numbers and how to highlight the current line.
|
numbers and how to highlight the current line.
|
||||||
|
|
||||||
|
@ -1,28 +1,15 @@
|
|||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
SUBDIRS = basicdrawing \
|
SUBDIRS = basicdrawing \
|
||||||
concentriccircles \
|
concentriccircles \
|
||||||
examples_affine \
|
affine \
|
||||||
examples_composition \
|
composition \
|
||||||
examples_deform \
|
deform \
|
||||||
examples_gradients \
|
gradients \
|
||||||
examples_pathstroke \
|
pathstroke \
|
||||||
painting_shared \
|
|
||||||
imagecomposition \
|
imagecomposition \
|
||||||
painterpaths \
|
painterpaths \
|
||||||
transformations \
|
transformations \
|
||||||
fontsampler
|
fontsampler
|
||||||
|
|
||||||
examples_affine.subdir = affine
|
EXAMPLE_FILES = \
|
||||||
examples_composition.subdir = composition
|
shared
|
||||||
examples_deform.subdir = deform
|
|
||||||
examples_gradients.subdir = gradients
|
|
||||||
examples_pathstroke.subdir = pathstroke
|
|
||||||
painting_shared.subdir = shared
|
|
||||||
|
|
||||||
!ordered {
|
|
||||||
examples_affine.depends = painting_shared
|
|
||||||
examples_deform.depends = painting_shared
|
|
||||||
examples_gradients.depends = painting_shared
|
|
||||||
examples_composition.depends = painting_shared
|
|
||||||
examples_pathstroke.depends = painting_shared
|
|
||||||
}
|
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
TEMPLATE = lib
|
|
||||||
CONFIG += static
|
|
||||||
|
|
||||||
qtHaveModule(opengl) {
|
|
||||||
DEFINES += QT_OPENGL_SUPPORT
|
|
||||||
QT += opengl
|
|
||||||
}
|
|
||||||
QT += widgets
|
|
||||||
|
|
||||||
build_all:!build_pass {
|
|
||||||
CONFIG -= build_all
|
|
||||||
CONFIG += release
|
|
||||||
}
|
|
||||||
TARGET = demo_shared
|
|
||||||
|
|
||||||
SOURCES += \
|
|
||||||
arthurstyle.cpp\
|
|
||||||
arthurwidgets.cpp \
|
|
||||||
hoverpoints.cpp
|
|
||||||
|
|
||||||
HEADERS += \
|
|
||||||
arthurstyle.h \
|
|
||||||
arthurwidgets.h \
|
|
||||||
hoverpoints.h
|
|
||||||
|
|
||||||
RESOURCES += shared.qrc
|
|
@ -9,7 +9,7 @@ SOURCES += main.cpp \
|
|||||||
EXAMPLE_FILES = encodedfiles
|
EXAMPLE_FILES = encodedfiles
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/codecs
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/codecs
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
|
||||||
simulator: warning(This example might not fully work on Simulator platform)
|
simulator: warning(This example might not fully work on Simulator platform)
|
||||||
|
@ -8,7 +8,7 @@ SOURCES = fsmodel.cpp \
|
|||||||
RESOURCES = completer.qrc
|
RESOURCES = completer.qrc
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/completer
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/completer
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
|
||||||
simulator: warning(This example might not fully work on Simulator platform)
|
simulator: warning(This example might not fully work on Simulator platform)
|
||||||
|
@ -8,7 +8,7 @@ SOURCES = main.cpp \
|
|||||||
RESOURCES = customcompleter.qrc
|
RESOURCES = customcompleter.qrc
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/customcompleter
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/customcompleter
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
|
||||||
simulator: warning(This example might not fully work on Simulator platform)
|
simulator: warning(This example might not fully work on Simulator platform)
|
||||||
|
@ -5,5 +5,5 @@ SUBDIRS = echowindow \
|
|||||||
#! [0]
|
#! [0]
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/echoplugin
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/echoplugin
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
@ -15,7 +15,7 @@ win32 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/echoplugin
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/echoplugin
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
|
||||||
simulator: warning(This example might not fully work on Simulator platform)
|
simulator: warning(This example might not fully work on Simulator platform)
|
||||||
|
@ -12,5 +12,5 @@ DESTDIR = ../plugins
|
|||||||
EXAMPLE_FILES = echoplugin.json
|
EXAMPLE_FILES = echoplugin.json
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/echoplugin/plugin
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/echoplugin/plugin
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
@ -22,7 +22,7 @@ TRANSLATIONS += translations/i18n_ar.ts \
|
|||||||
translations/i18n_zh.ts
|
translations/i18n_zh.ts
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/i18n
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/i18n
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
|
||||||
simulator: warning(This example might not fully work on Simulator platform)
|
simulator: warning(This example might not fully work on Simulator platform)
|
||||||
|
@ -19,5 +19,5 @@ if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
|
|||||||
#! [0]
|
#! [0]
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/plugandpaint
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/plugandpaint
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
@ -10,5 +10,5 @@ DESTDIR = ../../plugandpaint/plugins
|
|||||||
#! [0]
|
#! [0]
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/plugandpaint/plugins
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/plugandpaint/plugins
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
@ -10,5 +10,5 @@ DESTDIR = ../../plugandpaint/plugins
|
|||||||
|
|
||||||
#! [0]
|
#! [0]
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/plugandpaint/plugins
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/plugandpaint/plugins
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
@ -5,7 +5,7 @@ SOURCES = regexpdialog.cpp \
|
|||||||
main.cpp
|
main.cpp
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/regexp
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/regexp
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
|
||||||
simulator: warning(This example might not fully work on Simulator platform)
|
simulator: warning(This example might not fully work on Simulator platform)
|
||||||
|
@ -13,7 +13,7 @@ SOURCES = locationdialog.cpp \
|
|||||||
EXAMPLE_FILES = inifiles
|
EXAMPLE_FILES = inifiles
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/settingseditor
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/settingseditor
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
|
||||||
simulator: warning(This example might not fully work on Simulator platform)
|
simulator: warning(This example might not fully work on Simulator platform)
|
||||||
|
@ -18,5 +18,5 @@ win32 {
|
|||||||
EXAMPLE_FILES += simplestyle.json
|
EXAMPLE_FILES += simplestyle.json
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/styleplugin/styles
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/styleplugin/styles
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
@ -3,5 +3,5 @@ SUBDIRS = stylewindow \
|
|||||||
plugin
|
plugin
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/styleplugin
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/styleplugin
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
@ -13,5 +13,5 @@ win32 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/styleplugin
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/styleplugin
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
@ -8,7 +8,7 @@ SOURCES = treemodelcompleter.cpp \
|
|||||||
RESOURCES = treemodelcompleter.qrc
|
RESOURCES = treemodelcompleter.qrc
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/treemodelcompleter
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/treemodelcompleter
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
|
||||||
simulator: warning(This example might not fully work on Simulator platform)
|
simulator: warning(This example might not fully work on Simulator platform)
|
||||||
|
@ -12,5 +12,5 @@ build_all:!build_pass {
|
|||||||
RESOURCES += undo.qrc
|
RESOURCES += undo.qrc
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/undo
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/undo
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
@ -12,7 +12,7 @@ SOURCES = commands.cpp \
|
|||||||
RESOURCES = undoframework.qrc
|
RESOURCES = undoframework.qrc
|
||||||
|
|
||||||
# install
|
# install
|
||||||
target.path = $$[QT_INSTALL_EXAMPLES]/tools/undoframework
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/undoframework
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
|
||||||
simulator: warning(This example might not fully work on Simulator platform)
|
simulator: warning(This example might not fully work on Simulator platform)
|
||||||
|
@ -4,7 +4,7 @@ Qt documentation, which can be viewed using Qt Assistant or a Web browser.
|
|||||||
|
|
||||||
The tutorial is also available online at
|
The tutorial is also available online at
|
||||||
|
|
||||||
http://qt.nokia.com/doc/4.4/tutorial.html
|
http://qt-project.org/doc/qt-5.0/qtwidgets/tutorials-addressbook.html
|
||||||
|
|
||||||
All programs corresponding to the chapters in the tutorial should
|
All programs corresponding to the chapters in the tutorial should
|
||||||
automatically be built when Qt is compiled, or will be provided as
|
automatically be built when Qt is compiled, or will be provided as
|
||||||
|
@ -4,7 +4,7 @@ Qt documentation, which can be viewed using Qt Assistant or a Web browser.
|
|||||||
|
|
||||||
The tutorial is also available online at
|
The tutorial is also available online at
|
||||||
|
|
||||||
http://qt.nokia.com/doc/tutorial.html
|
http://qt-project.org/doc/qt-5.0/qtwidgets/tutorials-addressbook.html
|
||||||
|
|
||||||
All programs corresponding to the chapters in the tutorial should
|
All programs corresponding to the chapters in the tutorial should
|
||||||
automatically be built when Qt is compiled, or will be provided as
|
automatically be built when Qt is compiled, or will be provided as
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
requires(qtHaveModule(widgets))
|
||||||
|
|
||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
CONFIG += no_docs_target
|
CONFIG += no_docs_target
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ void MainWindow::on_aboutAction_triggered()
|
|||||||
{
|
{
|
||||||
QMessageBox::about(this, tr("About Style sheet"),
|
QMessageBox::about(this, tr("About Style sheet"),
|
||||||
tr("The <b>Style Sheet</b> example shows how widgets can be styled "
|
tr("The <b>Style Sheet</b> example shows how widgets can be styled "
|
||||||
"using <a href=\"http://qt.nokia.com/doc/4.5/stylesheet.html\">Qt "
|
"using <a href=\"http://doc.qt.digia.com/4.5/stylesheet.html\">Qt "
|
||||||
"Style Sheets</a>. Click <b>File|Edit Style Sheet</b> to pop up the "
|
"Style Sheets</a>. Click <b>File|Edit Style Sheet</b> to pop up the "
|
||||||
"style editor, and either choose an existing style sheet or design "
|
"style editor, and either choose an existing style sheet or design "
|
||||||
"your own."));
|
"your own."));
|
||||||
|
@ -71,16 +71,16 @@
|
|||||||
</folder>
|
</folder>
|
||||||
<folder folded="no">
|
<folder folded="no">
|
||||||
<title>Qt</title>
|
<title>Qt</title>
|
||||||
<bookmark href="http://qt.nokia.com/doc/2.3/">
|
<bookmark href="http://doc.qt.digia.com/2.3/">
|
||||||
<title>Qt 2.3 Reference</title>
|
<title>Qt 2.3 Reference</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/doc/3.3/">
|
<bookmark href="http://doc.qt.digia.com/3.3/">
|
||||||
<title>Qt 3.3 Reference</title>
|
<title>Qt 3.3 Reference</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/doc/4.0/">
|
<bookmark href="http://doc.qt.digia.com/4.0/">
|
||||||
<title>Qt 4.0 Reference</title>
|
<title>Qt 4.0 Reference</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/">
|
<bookmark href="http://qt-project.org/">
|
||||||
<title>Qt Home Page</title>
|
<title>Qt Home Page</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
</folder>
|
</folder>
|
||||||
|
@ -45,16 +45,16 @@
|
|||||||
<title>QtQuestions</title>
|
<title>QtQuestions</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
</folder>
|
</folder>
|
||||||
<bookmark href="http://qt.nokia.com/doc/qq/">
|
<bookmark href="http://doc.qt.digia.com/qq/">
|
||||||
<title>Qt Quarterly</title>
|
<title>Qt Quarterly</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/">
|
<bookmark href="http://qt-project.org/">
|
||||||
<title>Qt home page</title>
|
<title>Qt home page</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/doc/4.0/">
|
<bookmark href="http://doc.qt.digia.com/4.0/">
|
||||||
<title>Qt 4.0 documentation</title>
|
<title>Qt 4.0 documentation</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/developer/faqs/">
|
<bookmark href="http://qt-project.org/faq/">
|
||||||
<title>Frequently Asked Questions</title>
|
<title>Frequently Asked Questions</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
</folder>
|
</folder>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<p>A paragraph.</p>
|
<p>A paragraph.</p>
|
||||||
<p>A second paragraph. Check out our <a href="http://labs.qt.nokia.com/">developer blogs</a></p>
|
<p>A second paragraph. Check out our <a href="http://blog.qt.digia.com/">developer blogs</a></p>
|
||||||
<p>And the last paragraph. Or our <a href="http://qt.nokia.com/doc/">online documentation</a>.</p>
|
<p>And the last paragraph. Or our <a href="http://qt-project.org/doc/">online documentation</a>.</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -76,7 +76,7 @@ RSSListing::RSSListing(QWidget *parent)
|
|||||||
{
|
{
|
||||||
|
|
||||||
lineEdit = new QLineEdit(this);
|
lineEdit = new QLineEdit(this);
|
||||||
lineEdit->setText("http://labs.qt.nokia.com/blogs/feed");
|
lineEdit->setText("http://blog.qt.digia.com/feed/");
|
||||||
|
|
||||||
fetchButton = new QPushButton(tr("Fetch"), this);
|
fetchButton = new QPushButton(tr("Fetch"), this);
|
||||||
|
|
||||||
|
@ -71,16 +71,16 @@
|
|||||||
</folder>
|
</folder>
|
||||||
<folder folded="no">
|
<folder folded="no">
|
||||||
<title>Qt</title>
|
<title>Qt</title>
|
||||||
<bookmark href="http://qt.nokia.com/doc/2.3/">
|
<bookmark href="http://doc.qt.digia.com/2.3/">
|
||||||
<title>Qt 2.3 Reference</title>
|
<title>Qt 2.3 Reference</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/doc/3.3/">
|
<bookmark href="http://doc.qt.digia.com/3.3/">
|
||||||
<title>Qt 3.3 Reference</title>
|
<title>Qt 3.3 Reference</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/doc/4.0/">
|
<bookmark href="http://doc.qt.digia.com/4.0/">
|
||||||
<title>Qt 4.0 Reference</title>
|
<title>Qt 4.0 Reference</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/">
|
<bookmark href="http://qt-project.org/">
|
||||||
<title>Qt Home Page</title>
|
<title>Qt Home Page</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
</folder>
|
</folder>
|
||||||
|
@ -45,16 +45,16 @@
|
|||||||
<title>QtQuestions</title>
|
<title>QtQuestions</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
</folder>
|
</folder>
|
||||||
<bookmark href="http://qt.nokia.com/doc/qq/">
|
<bookmark href="http://doc.qt.digia.com/qq/">
|
||||||
<title>Qt Quarterly</title>
|
<title>Qt Quarterly</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/">
|
<bookmark href="http://qt-project.org/">
|
||||||
<title>qt home page</title>
|
<title>qt home page</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/doc/4.0/">
|
<bookmark href="http://doc.qt.digia.com/4.0/">
|
||||||
<title>Qt 4.0 documentation</title>
|
<title>Qt 4.0 documentation</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/developer/faqs/">
|
<bookmark href="http://qt-project.org/faq/">
|
||||||
<title>Frequently Asked Questions</title>
|
<title>Frequently Asked Questions</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
</folder>
|
</folder>
|
||||||
|
@ -71,16 +71,16 @@
|
|||||||
</folder>
|
</folder>
|
||||||
<folder folded="no">
|
<folder folded="no">
|
||||||
<title>Qt</title>
|
<title>Qt</title>
|
||||||
<bookmark href="http://qt.nokia.com/doc/2.3/">
|
<bookmark href="http://doc.qt.digia.com/2.3/">
|
||||||
<title>Qt 2.3 Reference</title>
|
<title>Qt 2.3 Reference</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/doc/3.3/">
|
<bookmark href="http://doc.qt.digia.com/3.3/">
|
||||||
<title>Qt 3.3 Reference</title>
|
<title>Qt 3.3 Reference</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/doc/4.0/">
|
<bookmark href="http://doc.qt.digia.com/4.0/">
|
||||||
<title>Qt 4.0 Reference</title>
|
<title>Qt 4.0 Reference</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/">
|
<bookmark href="http://qt-project.org/">
|
||||||
<title>Qt Home Page</title>
|
<title>Qt Home Page</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
</folder>
|
</folder>
|
||||||
|
@ -45,16 +45,16 @@
|
|||||||
<title>QtQuestions</title>
|
<title>QtQuestions</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
</folder>
|
</folder>
|
||||||
<bookmark href="http://qt.nokia.com/doc/qq/">
|
<bookmark href="http://doc.qt.digia.com/qq/">
|
||||||
<title>Qt Quarterly</title>
|
<title>Qt Quarterly</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/">
|
<bookmark href="http://qt-project.org/">
|
||||||
<title>Qt home page</title>
|
<title>Qt home page</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/doc/4.0/">
|
<bookmark href="http://doc.qt.digia.com/4.0/">
|
||||||
<title>Qt 4.0 documentation</title>
|
<title>Qt 4.0 documentation</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
<bookmark href="http://qt.nokia.com/developer/faqs/">
|
<bookmark href="http://qt-project.org/faq/">
|
||||||
<title>Frequently Asked Questions</title>
|
<title>Frequently Asked Questions</title>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
</folder>
|
</folder>
|
||||||
|
@ -37,13 +37,13 @@ CMAKE_PARTIAL_MODULE_DEPS = $$replace(CMAKE_MODULE_DEPS, ";", ";Qt5::")
|
|||||||
!isEmpty(CMAKE_PARTIAL_MODULE_DEPS):CMAKE_QT5_MODULE_DEPS = "Qt5::$${CMAKE_PARTIAL_MODULE_DEPS}"
|
!isEmpty(CMAKE_PARTIAL_MODULE_DEPS):CMAKE_QT5_MODULE_DEPS = "Qt5::$${CMAKE_PARTIAL_MODULE_DEPS}"
|
||||||
|
|
||||||
CMAKE_INCLUDE_DIR = $$cmakeRelativePath($$[QT_INSTALL_HEADERS], $$[QT_INSTALL_PREFIX])
|
CMAKE_INCLUDE_DIR = $$cmakeRelativePath($$[QT_INSTALL_HEADERS], $$[QT_INSTALL_PREFIX])
|
||||||
contains(CMAKE_INCLUDE_DIR, "^\.\.") {
|
contains(CMAKE_INCLUDE_DIR, "^\\.\\./.*") {
|
||||||
CMAKE_INCLUDE_DIR = $$[QT_INSTALL_HEADERS]/
|
CMAKE_INCLUDE_DIR = $$[QT_INSTALL_HEADERS]/
|
||||||
CMAKE_INCLUDE_DIR_IS_ABSOLUTE = True
|
CMAKE_INCLUDE_DIR_IS_ABSOLUTE = True
|
||||||
}
|
}
|
||||||
|
|
||||||
CMAKE_LIB_DIR = $$cmakeRelativePath($$[QT_INSTALL_LIBS], $$[QT_INSTALL_PREFIX])
|
CMAKE_LIB_DIR = $$cmakeRelativePath($$[QT_INSTALL_LIBS], $$[QT_INSTALL_PREFIX])
|
||||||
contains(CMAKE_LIB_DIR, "^\.\.") {
|
contains(CMAKE_LIB_DIR, "^\\.\\./.*") {
|
||||||
CMAKE_LIB_DIR = $$[QT_INSTALL_LIBS]/
|
CMAKE_LIB_DIR = $$[QT_INSTALL_LIBS]/
|
||||||
CMAKE_LIB_DIR_IS_ABSOLUTE = True
|
CMAKE_LIB_DIR_IS_ABSOLUTE = True
|
||||||
} else {
|
} else {
|
||||||
@ -54,13 +54,13 @@ contains(CMAKE_LIB_DIR, "^\.\.") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
CMAKE_BIN_DIR = $$cmakeRelativePath($$[QT_HOST_BINS], $$[QT_INSTALL_PREFIX])
|
CMAKE_BIN_DIR = $$cmakeRelativePath($$[QT_HOST_BINS], $$[QT_INSTALL_PREFIX])
|
||||||
contains(CMAKE_BIN_DIR, "^\.\.") {
|
contains(CMAKE_BIN_DIR, "^\\.\\./.*") {
|
||||||
CMAKE_BIN_DIR = $$[QT_HOST_BINS]/
|
CMAKE_BIN_DIR = $$[QT_HOST_BINS]/
|
||||||
CMAKE_BIN_DIR_IS_ABSOLUTE = True
|
CMAKE_BIN_DIR_IS_ABSOLUTE = True
|
||||||
}
|
}
|
||||||
|
|
||||||
CMAKE_ARCHDATA_DIR = $$cmakeRelativePath($$[QT_INSTALL_ARCHDATA], $$[QT_INSTALL_PREFIX])
|
CMAKE_ARCHDATA_DIR = $$cmakeRelativePath($$[QT_INSTALL_ARCHDATA], $$[QT_INSTALL_PREFIX])
|
||||||
contains(CMAKE_ARCHDATA_DIR, "^\.\.") { # For the mkspecs
|
contains(CMAKE_ARCHDATA_DIR, "^\\.\\./.*") { # For the mkspecs
|
||||||
CMAKE_ARCHDATA_DIR = $$[QT_INSTALL_ARCHDATA]/
|
CMAKE_ARCHDATA_DIR = $$[QT_INSTALL_ARCHDATA]/
|
||||||
CMAKE_ARCHDATA_DIR_IS_ABSOLUTE = True
|
CMAKE_ARCHDATA_DIR_IS_ABSOLUTE = True
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,11 @@ if (CMAKE_VERSION VERSION_LESS 2.8.3)
|
|||||||
message(FATAL_ERROR \"Qt 5 requires at least CMake version 2.8.3\")
|
message(FATAL_ERROR \"Qt 5 requires at least CMake version 2.8.3\")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
|
||||||
get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
|
get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
|
||||||
|
!!ELSE
|
||||||
|
set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\")
|
||||||
|
!!ENDIF
|
||||||
|
|
||||||
set(Qt5$${CMAKE_MODULE_NAME}_VERSION_MAJOR "$$eval(QT.$${MODULE}.MAJOR_VERSION)")
|
set(Qt5$${CMAKE_MODULE_NAME}_VERSION_MAJOR "$$eval(QT.$${MODULE}.MAJOR_VERSION)")
|
||||||
set(Qt5$${CMAKE_MODULE_NAME}_VERSION_MINOR "$$eval(QT.$${MODULE}.MINOR_VERSION)")
|
set(Qt5$${CMAKE_MODULE_NAME}_VERSION_MINOR "$$eval(QT.$${MODULE}.MINOR_VERSION)")
|
||||||
@ -14,13 +18,13 @@ set(Qt5$${CMAKE_MODULE_NAME}_LIBRARIES Qt5::$${CMAKE_MODULE_NAME})
|
|||||||
|
|
||||||
!!IF !no_module_headers
|
!!IF !no_module_headers
|
||||||
!!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE)
|
!!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE)
|
||||||
set(Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}\")
|
set(Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}\")
|
||||||
set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
|
set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
|
||||||
\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}\"
|
\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}\"
|
||||||
\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}/$${MODULE_INCNAME}\"
|
\"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}/$${MODULE_INCNAME}\"
|
||||||
)
|
)
|
||||||
!!ELSE
|
!!ELSE
|
||||||
set(Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR\" \"$${CMAKE_INCLUDE_DIR}Qt$${CMAKE_MODULE_NAME}\")
|
set(Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS \"$${CMAKE_INCLUDE_DIR}Qt$${CMAKE_MODULE_NAME}\")
|
||||||
set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
|
set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
|
||||||
\"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}\"
|
\"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}\"
|
||||||
\"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}/$${MODULE_INCNAME}\"
|
\"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}/$${MODULE_INCNAME}\"
|
||||||
@ -179,12 +183,12 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
|
|||||||
|
|
||||||
!!ENDIF // CMAKE_RELEASE_TYPE
|
!!ENDIF // CMAKE_RELEASE_TYPE
|
||||||
|
|
||||||
endif()
|
|
||||||
|
|
||||||
!!IF !isEmpty(CMAKE_MODULE_EXTRAS)
|
!!IF !isEmpty(CMAKE_MODULE_EXTRAS)
|
||||||
include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\")
|
include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\")
|
||||||
!!ENDIF
|
!!ENDIF
|
||||||
|
|
||||||
!!IF !isEmpty(CMAKE_MODULE_MACROS)
|
!!IF !isEmpty(CMAKE_MODULE_MACROS)
|
||||||
include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}Macros.cmake\")
|
include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}Macros.cmake\")
|
||||||
!!ENDIF
|
!!ENDIF
|
||||||
|
|
||||||
|
endif()
|
||||||
|
@ -25,7 +25,7 @@ qml1_target: \
|
|||||||
else: \
|
else: \
|
||||||
instbase = $$[QT_INSTALL_QML]
|
instbase = $$[QT_INSTALL_QML]
|
||||||
|
|
||||||
exists($$[QT_HOST_PREFIX]/.qmake.cache) {
|
!prefix_build {
|
||||||
# These bizarre rules copy the files to the qtbase build directory
|
# These bizarre rules copy the files to the qtbase build directory
|
||||||
|
|
||||||
defineReplace(qmlModStripSrcDir) {
|
defineReplace(qmlModStripSrcDir) {
|
||||||
|
@ -89,3 +89,12 @@ load(qt_targets)
|
|||||||
}
|
}
|
||||||
|
|
||||||
load(qml_module)
|
load(qml_module)
|
||||||
|
|
||||||
|
unix|win32-g++* {
|
||||||
|
!isEmpty(_QMAKE_SUPER_CACHE_): \
|
||||||
|
lib_replace.match = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*/lib
|
||||||
|
else: \
|
||||||
|
lib_replace.match = $$eval(QT.$${CXX_MODULE}.libs)
|
||||||
|
lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
|
||||||
|
QMAKE_PRL_INSTALL_REPLACE += lib_replace
|
||||||
|
}
|
||||||
|
@ -67,6 +67,7 @@ qtAddModules(QT_PRIVATE, LIBS_PRIVATE)
|
|||||||
message("Running this project against other versions of the Qt modules may crash at any arbitrary point.")
|
message("Running this project against other versions of the Qt modules may crash at any arbitrary point.")
|
||||||
message("This is not a bug, but a result of using Qt internals. You have been warned!")
|
message("This is not a bug, but a result of using Qt internals. You have been warned!")
|
||||||
}
|
}
|
||||||
|
qtAddRpathLink($$QT $$QT_PRIVATE)
|
||||||
|
|
||||||
wince*:static:gui {
|
wince*:static:gui {
|
||||||
QTLIB += qmenu_wce.res
|
QTLIB += qmenu_wce.res
|
||||||
|
@ -20,7 +20,10 @@
|
|||||||
debug(1, "Not loading qmodule.pri twice")
|
debug(1, "Not loading qmodule.pri twice")
|
||||||
}
|
}
|
||||||
|
|
||||||
!build_pass:!isEmpty(_QMAKE_SUPER_CACHE_):!exists($$[QT_HOST_DATA]/.qmake.cache) {
|
!exists($$[QT_HOST_DATA]/.qmake.cache): \
|
||||||
|
CONFIG += prefix_build
|
||||||
|
|
||||||
|
!build_pass:!isEmpty(_QMAKE_SUPER_CACHE_):prefix_build {
|
||||||
# When doing a -prefix build of top-level qt5/qt.pro, we need to announce
|
# When doing a -prefix build of top-level qt5/qt.pro, we need to announce
|
||||||
# this repo's module pris' location to the other repos.
|
# this repo's module pris' location to the other repos.
|
||||||
isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$shadowed($$dirname(_QMAKE_CONF_))
|
isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$shadowed($$dirname(_QMAKE_CONF_))
|
||||||
|
@ -16,8 +16,8 @@ isEmpty(MODULE_BASE_DIR): MODULE_BASE_DIR = $$MODULE_PROFILE_DIR
|
|||||||
isEmpty(MODULE_BASE_OUTDIR): MODULE_BASE_OUTDIR = $$shadowed($$MODULE_BASE_DIR)
|
isEmpty(MODULE_BASE_OUTDIR): MODULE_BASE_OUTDIR = $$shadowed($$MODULE_BASE_DIR)
|
||||||
isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$MODULE_BASE_OUTDIR
|
isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$MODULE_BASE_OUTDIR
|
||||||
|
|
||||||
QTDIR = $$[QT_HOST_PREFIX]
|
!prefix_build {
|
||||||
exists($$QTDIR/.qmake.cache) {
|
QTDIR = $$[QT_HOST_PREFIX]
|
||||||
# Permit modules to enforce being built outside QTDIR ...
|
# Permit modules to enforce being built outside QTDIR ...
|
||||||
!force_independent: MODULE_BASE_OUTDIR = $$QTDIR
|
!force_independent: MODULE_BASE_OUTDIR = $$QTDIR
|
||||||
# ... though this sort of breaks the idea.
|
# ... though this sort of breaks the idea.
|
||||||
|
@ -24,6 +24,13 @@ for(qmod, QMAKEMODULES): \
|
|||||||
QDOC += -outputdir $$QMAKE_DOCS_OUTPUTDIR
|
QDOC += -outputdir $$QMAKE_DOCS_OUTPUTDIR
|
||||||
!build_online_docs: \
|
!build_online_docs: \
|
||||||
QDOC += -installdir $$[QT_INSTALL_DOCS]
|
QDOC += -installdir $$[QT_INSTALL_DOCS]
|
||||||
|
qtver.name = QT_VERSION
|
||||||
|
qtver.value = $$QT_VERSION
|
||||||
|
qtmver.name = QT_VER
|
||||||
|
qtmver.value = $${QT_MAJOR_VERSION}.$${QT_MINOR_VERSION}
|
||||||
|
qtvertag.name = QT_VERSION_TAG
|
||||||
|
qtvertag.value = $$replace(QT_VERSION, \.,)
|
||||||
|
qtAddToolEnv(QDOC, qtver qtmver qtvertag)
|
||||||
doc_command = $$QDOC $$QMAKE_DOCS
|
doc_command = $$QDOC $$QMAKE_DOCS
|
||||||
prepare_docs {
|
prepare_docs {
|
||||||
prepare_docs.commands += $$doc_command -prepare -no-link-errors
|
prepare_docs.commands += $$doc_command -prepare -no-link-errors
|
||||||
|
@ -9,6 +9,22 @@
|
|||||||
# We mean it.
|
# We mean it.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
defineTest(addInstallFiles) {
|
||||||
|
for(sf, 2) {
|
||||||
|
sf = $$relative_path($$sf, $$_PRO_FILE_PWD_)
|
||||||
|
contains(sf, \\..*) {
|
||||||
|
check_examples: message("Notice: $$_PRO_FILE_ refers to $$sf")
|
||||||
|
} else {
|
||||||
|
sfp = $$replace(sf, /.*, )
|
||||||
|
!equals(sfp, $$sf): \
|
||||||
|
$$1 *= $$sfp
|
||||||
|
else: \
|
||||||
|
$$1 += $$sf
|
||||||
|
}
|
||||||
|
}
|
||||||
|
export($$1)
|
||||||
|
}
|
||||||
|
|
||||||
probase = $$relative_path($$_PRO_FILE_PWD_, $$dirname(_QMAKE_CONF_)/examples)
|
probase = $$relative_path($$_PRO_FILE_PWD_, $$dirname(_QMAKE_CONF_)/examples)
|
||||||
!isEmpty(probase):!contains(probase, ^\\..*) {
|
!isEmpty(probase):!contains(probase, ^\\..*) {
|
||||||
for(ex, EXAMPLE_FILES): \
|
for(ex, EXAMPLE_FILES): \
|
||||||
@ -42,34 +58,26 @@ probase = $$relative_path($$_PRO_FILE_PWD_, $$dirname(_QMAKE_CONF_)/examples)
|
|||||||
# Just for Qt Creator
|
# Just for Qt Creator
|
||||||
OTHER_FILES += $$sourcefiles
|
OTHER_FILES += $$sourcefiles
|
||||||
|
|
||||||
for(inst, INSTALLS): \
|
|
||||||
!equals(inst, target):!contains($${inst}.CONFIG, no_check_exist): \
|
|
||||||
for(file, $${inst}.files): \
|
|
||||||
sourcefiles += $$files($$absolute_path($$file, $$_PRO_FILE_PWD_))
|
|
||||||
sourcefiles += \
|
sourcefiles += \
|
||||||
$$_PRO_FILE_ $$RC_FILE $$DEF_FILE \
|
$$_PRO_FILE_ $$RC_FILE $$DEF_FILE \
|
||||||
$$SOURCES $$HEADERS $$FORMS $$RESOURCES $$TRANSLATIONS \
|
$$SOURCES $$HEADERS $$FORMS $$RESOURCES $$TRANSLATIONS \
|
||||||
$$DBUS_ADAPTORS $$DBUS_INTERFACES
|
$$DBUS_ADAPTORS $$DBUS_INTERFACES
|
||||||
for(sf, sourcefiles) {
|
addInstallFiles(sources.files, $$sourcefiles)
|
||||||
sf = $$relative_path($$sf, $$_PRO_FILE_PWD_)
|
|
||||||
contains(sf, \\..*) {
|
|
||||||
check_examples: message("Notice: $$_PRO_FILE_ refers to $$sf")
|
|
||||||
} else {
|
|
||||||
sfp = $$replace(sf, /.*, )
|
|
||||||
!equals(sfp, $$sf): \
|
|
||||||
sources.files *= $$sfp
|
|
||||||
else: \
|
|
||||||
sources.files += $$sf
|
|
||||||
}
|
|
||||||
}
|
|
||||||
sources.path = $$[QT_INSTALL_EXAMPLES]/$$probase
|
sources.path = $$[QT_INSTALL_EXAMPLES]/$$probase
|
||||||
INSTALLS += sources
|
INSTALLS += sources
|
||||||
|
|
||||||
check_examples {
|
check_examples {
|
||||||
|
srcfiles = $$sources.files
|
||||||
|
for(inst, INSTALLS): \
|
||||||
|
!equals(inst, target):!contains($${inst}.CONFIG, no_check_exist): \
|
||||||
|
for(file, $${inst}.files): \
|
||||||
|
instfiles += $$files($$absolute_path($$file, $$_PRO_FILE_PWD_))
|
||||||
|
addInstallFiles(srcfiles, $$instfiles)
|
||||||
|
|
||||||
thefiles = $$files($$_PRO_FILE_PWD_/*)
|
thefiles = $$files($$_PRO_FILE_PWD_/*)
|
||||||
for(i, thefiles): \
|
for(i, thefiles): \
|
||||||
allfiles += $$relative_path($$i, $$_PRO_FILE_PWD_)
|
allfiles += $$relative_path($$i, $$_PRO_FILE_PWD_)
|
||||||
for(i, sources.files): \
|
for(i, srcfiles): \
|
||||||
allfiles -= $$relative_path($$i, $$_PRO_FILE_PWD_)
|
allfiles -= $$relative_path($$i, $$_PRO_FILE_PWD_)
|
||||||
for(i, SUBDIRS) {
|
for(i, SUBDIRS) {
|
||||||
sd = $$eval($${i}.file)
|
sd = $$eval($${i}.file)
|
||||||
@ -84,4 +92,12 @@ probase = $$relative_path($$_PRO_FILE_PWD_, $$dirname(_QMAKE_CONF_)/examples)
|
|||||||
allfiles -= doc
|
allfiles -= doc
|
||||||
!isEmpty(allfiles): warning("remaining files in $$_PRO_FILE_PWD_: $$allfiles")
|
!isEmpty(allfiles): warning("remaining files in $$_PRO_FILE_PWD_: $$allfiles")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Do not actually build the examples in production builds
|
||||||
|
!equals(TEMPLATE, subdirs):!contains(QT_CONFIG, private_tests) {
|
||||||
|
TEMPLATE = aux
|
||||||
|
CONFIG -= have_target qt staticlib dll
|
||||||
|
SOURCES =
|
||||||
|
INSTALLS -= target
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -121,15 +121,6 @@ defineTest(qtAddModule) {
|
|||||||
|
|
||||||
contains(MODULE_CONFIG, staticlib): \
|
contains(MODULE_CONFIG, staticlib): \
|
||||||
PRE_TARGETDEPS *= $$MODULE_LIBS/$${QMAKE_PREFIX_STATICLIB}$${lib}.$${QMAKE_EXTENSION_STATICLIB}
|
PRE_TARGETDEPS *= $$MODULE_LIBS/$${QMAKE_PREFIX_STATICLIB}$${lib}.$${QMAKE_EXTENSION_STATICLIB}
|
||||||
|
|
||||||
# Make sure we can link to uninstalled libraries
|
|
||||||
!isEmpty(MODULE_LIBS) {
|
|
||||||
for(rpl, QT.$${1}.rpath_link): \
|
|
||||||
QMAKE_RPATHLINKDIR *= $$rpl
|
|
||||||
!auto_use_privates:!isEqual(2, UsePrivate): \
|
|
||||||
for(rpl, QT.$${1}.rpath_link_private): \
|
|
||||||
QMAKE_RPATHLINKDIR *= $$rpl
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
# Only link to this module if a libs directory is set, else this is just a module
|
# Only link to this module if a libs directory is set, else this is just a module
|
||||||
# to give access to sources or include files, and not for linking.
|
# to give access to sources or include files, and not for linking.
|
||||||
@ -190,11 +181,28 @@ defineTest(qtAddModules) {
|
|||||||
export(using_privates)
|
export(using_privates)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defineTest(qtAddRpathLink) {
|
||||||
|
# -rpath-link is used by the linker to find dependencies of dynamic
|
||||||
|
# libraries which were NOT specified on the command line.
|
||||||
|
# This means that paths of direct dependencies (QT & QT_PRIVATE)
|
||||||
|
# don't need to appear here. However, their private dependencies'
|
||||||
|
# paths OTOH need to be put there.
|
||||||
|
pubqt = $$replace(1, -private$, )
|
||||||
|
pubdep = $$resolve_depends(pubqt, "QT.")
|
||||||
|
privdep = $$resolve_depends(pubqt, "QT.", ".depends" ".private_depends" ".run_depends")
|
||||||
|
privdep -= $$pubdep
|
||||||
|
rpaths =
|
||||||
|
for(dep, privdep): \
|
||||||
|
rpaths += $$eval(QT.$${dep}.libs)
|
||||||
|
QMAKE_RPATHLINKDIR *= $$unique(rpaths)
|
||||||
|
export(QMAKE_RPATHLINKDIR)
|
||||||
|
}
|
||||||
|
|
||||||
# variable, default
|
# variable, default
|
||||||
defineTest(qtPrepareTool) {
|
defineTest(qtPrepareTool) {
|
||||||
$$1 = $$eval(QT_TOOL.$${2}.command)
|
$$1 = $$eval(QT_TOOL.$${2}.command)
|
||||||
isEmpty($$1) {
|
isEmpty($$1) {
|
||||||
$$1 = $$[QT_HOST_BINS/get]/$$2
|
$$1 = $$[QT_HOST_BINS]/$$2
|
||||||
contains(QMAKE_HOST.os, Windows):!contains($$1, .*\\.(exe|bat)$) {
|
contains(QMAKE_HOST.os, Windows):!contains($$1, .*\\.(exe|bat)$) {
|
||||||
exists($$eval($$1).bat) {
|
exists($$eval($$1).bat) {
|
||||||
$$1 = $$eval($$1).bat
|
$$1 = $$eval($$1).bat
|
||||||
|
@ -45,65 +45,7 @@ else: \
|
|||||||
MODULE_DEFINE = QT_$${ucmodule}_LIB
|
MODULE_DEFINE = QT_$${ucmodule}_LIB
|
||||||
MODULE_DEFINES = $$MODULE_DEFINE $$MODULE_DEFINES
|
MODULE_DEFINES = $$MODULE_DEFINE $$MODULE_DEFINES
|
||||||
|
|
||||||
load(qt_build_paths)
|
load(qt_module_pris)
|
||||||
MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules-inst/qt_lib_$${MODULE}.pri
|
|
||||||
|
|
||||||
!build_pass {
|
|
||||||
|
|
||||||
# Create a module .pri file
|
|
||||||
unix:!static: \
|
|
||||||
module_rpath = "QT.$${MODULE}.rpath = $$[QT_INSTALL_LIBS/raw]"
|
|
||||||
else: \
|
|
||||||
module_rpath =
|
|
||||||
!isEmpty(QT_FOR_PRIVATE) {
|
|
||||||
contains(QT_FOR_PRIVATE, .*-private$):error("QT_FOR_PRIVATE may not contain *-private.")
|
|
||||||
module_privdep = "QT.$${MODULE}.private_depends = $$QT_FOR_PRIVATE"
|
|
||||||
} else {
|
|
||||||
module_privdep =
|
|
||||||
}
|
|
||||||
static: \
|
|
||||||
module_build_type = "QT.$${MODULE}.module_config = staticlib"
|
|
||||||
else:mac:contains(QT_CONFIG, qt_framework): \
|
|
||||||
module_build_type = "QT.$${MODULE}.module_config = lib_bundle"
|
|
||||||
else: \
|
|
||||||
module_build_type =
|
|
||||||
!isEmpty(MODULE_CONFIG): \
|
|
||||||
module_config = "QT.$${MODULE}.CONFIG = $$MODULE_CONFIG"
|
|
||||||
else: \
|
|
||||||
module_config =
|
|
||||||
!no_module_headers {
|
|
||||||
MODULE_INCLUDES = "\$\$QT_MODULE_INCLUDE_BASE \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME"
|
|
||||||
MODULE_PRIVATE_INCLUDES = "\$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION \
|
|
||||||
\$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME"
|
|
||||||
}
|
|
||||||
MODULE_PRI_CONT = \
|
|
||||||
"QT.$${MODULE}.VERSION = $${VERSION}" \
|
|
||||||
"QT.$${MODULE}.MAJOR_VERSION = $$section(VERSION, ., 0, 0)" \
|
|
||||||
"QT.$${MODULE}.MINOR_VERSION = $$section(VERSION, ., 1, 1)" \
|
|
||||||
"QT.$${MODULE}.PATCH_VERSION = $$section(VERSION, ., 2, 2)" \
|
|
||||||
"" \
|
|
||||||
"QT.$${MODULE}.name = $$TARGET" \
|
|
||||||
"QT.$${MODULE}.bins = \$\$QT_MODULE_BIN_BASE" \
|
|
||||||
"QT.$${MODULE}.includes = $$MODULE_INCLUDES" \
|
|
||||||
"QT.$${MODULE}.private_includes = $$MODULE_PRIVATE_INCLUDES" \
|
|
||||||
"QT.$${MODULE}.libs = \$\$QT_MODULE_LIB_BASE" \
|
|
||||||
"QT.$${MODULE}.libexecs = \$\$QT_MODULE_LIBEXEC_BASE" \
|
|
||||||
$$module_rpath \
|
|
||||||
"QT.$${MODULE}.plugins = \$\$QT_MODULE_PLUGIN_BASE" \
|
|
||||||
"QT.$${MODULE}.imports = \$\$QT_MODULE_IMPORT_BASE" \
|
|
||||||
"QT.$${MODULE}.qml = \$\$QT_MODULE_QML_BASE" \
|
|
||||||
"QT.$${MODULE}.depends =$$join(MODULE_DEPENDS, " ", " ")" \
|
|
||||||
$$module_privdep \
|
|
||||||
$$module_build_type \
|
|
||||||
$$module_config \
|
|
||||||
"QT.$${MODULE}.DEFINES = $$MODULE_DEFINES" \ # assume sufficient quoting
|
|
||||||
"" \
|
|
||||||
"QT_CONFIG += $$MODULE" # this is obsolete, but some code still depends on it
|
|
||||||
write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.")
|
|
||||||
|
|
||||||
} # !build_pass
|
|
||||||
|
|
||||||
load(qt_module_fwdpri)
|
|
||||||
|
|
||||||
INCLUDEPATH *= $$eval(QT.$${MODULE}.includes) $$eval(QT.$${MODULE}.private_includes)
|
INCLUDEPATH *= $$eval(QT.$${MODULE}.includes) $$eval(QT.$${MODULE}.private_includes)
|
||||||
|
|
||||||
@ -112,7 +54,7 @@ INCLUDEPATH *= $$eval(QT.$${MODULE}.includes) $$eval(QT.$${MODULE}.private_inclu
|
|||||||
#other
|
#other
|
||||||
TEMPLATE = lib
|
TEMPLATE = lib
|
||||||
DESTDIR = $$eval(QT.$${MODULE}.libs)
|
DESTDIR = $$eval(QT.$${MODULE}.libs)
|
||||||
win32:!wince*:exists($$[QT_INSTALL_PREFIX]/.qmake.cache): DLLDESTDIR = $$eval(QT.$${MODULE}.bins)
|
win32:!wince*:!prefix_build: DLLDESTDIR = $$eval(QT.$${MODULE}.bins)
|
||||||
|
|
||||||
CONFIG += qmake_cache target_qt
|
CONFIG += qmake_cache target_qt
|
||||||
|
|
||||||
@ -190,23 +132,26 @@ unix|win32-g++* {
|
|||||||
!isEmpty(_QMAKE_SUPER_CACHE_): \
|
!isEmpty(_QMAKE_SUPER_CACHE_): \
|
||||||
rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
|
rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
|
||||||
else: \
|
else: \
|
||||||
rplbase = $$[QT_INSTALL_PREFIX/get]
|
rplbase = $$MODULE_QMAKE_OUTDIR
|
||||||
include_replace.match = $$rplbase/include
|
include_replace.match = $$rplbase/include
|
||||||
include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
|
include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
|
||||||
lib_replace.match = $$rplbase/lib
|
lib_replace.match = $$rplbase/lib
|
||||||
lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
|
lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
|
||||||
QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace
|
QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace
|
||||||
|
QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
|
||||||
}
|
}
|
||||||
|
|
||||||
unix {
|
unix {
|
||||||
CONFIG += create_libtool explicitlib
|
CONFIG += create_libtool explicitlib
|
||||||
QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
|
|
||||||
QMAKE_LIBTOOL_LIBDIR = $$[QT_INSTALL_LIBS/raw]
|
QMAKE_LIBTOOL_LIBDIR = $$[QT_INSTALL_LIBS/raw]
|
||||||
QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
|
QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
|
||||||
}
|
}
|
||||||
|
|
||||||
unix|win32-g++* {
|
unix|win32-g++* {
|
||||||
for(i, QT):QMAKE_PKGCONFIG_REQUIRES += $$eval(QT.$${i}.name)
|
QMAKE_PKGCONFIG_NAME = $$replace(TARGET, ^Qt, "Qt$$section(VERSION, ., 0, 0) ")
|
||||||
|
QMAKE_PKGCONFIG_FILE = $$replace(TARGET, ^Qt, Qt$$section(VERSION, ., 0, 0))
|
||||||
|
for(i, MODULE_DEPENDS): \
|
||||||
|
QMAKE_PKGCONFIG_REQUIRES += $$replace(QT.$${i}.name, ^Qt, Qt$$eval(QT.$${i}.MAJOR_VERSION))
|
||||||
isEmpty(QMAKE_PKGCONFIG_DESCRIPTION): \
|
isEmpty(QMAKE_PKGCONFIG_DESCRIPTION): \
|
||||||
QMAKE_PKGCONFIG_DESCRIPTION = $$replace(TARGET, ^Qt, "Qt ") module
|
QMAKE_PKGCONFIG_DESCRIPTION = $$replace(TARGET, ^Qt, "Qt ") module
|
||||||
}
|
}
|
||||||
@ -228,11 +173,6 @@ win32 {
|
|||||||
|
|
||||||
TARGET = $$qtLibraryTarget($$TARGET$$QT_LIBINFIX) #do this towards the end
|
TARGET = $$qtLibraryTarget($$TARGET$$QT_LIBINFIX) #do this towards the end
|
||||||
|
|
||||||
# Provides useful info normally only contained in the internal .qmake.cache file
|
|
||||||
qt_conf.name = qt_config
|
|
||||||
qt_conf.variable = CONFIG
|
|
||||||
QMAKE_PKGCONFIG_VARIABLES += qt_conf
|
|
||||||
|
|
||||||
load(qt_targets)
|
load(qt_targets)
|
||||||
|
|
||||||
win32:DEFINES+=_USE_MATH_DEFINES
|
win32:DEFINES+=_USE_MATH_DEFINES
|
||||||
|
@ -1,92 +0,0 @@
|
|||||||
#
|
|
||||||
# W A R N I N G
|
|
||||||
# -------------
|
|
||||||
#
|
|
||||||
# This file is not part of the Qt API. It exists purely as an
|
|
||||||
# implementation detail. It may change from version to version
|
|
||||||
# without notice, or even be removed.
|
|
||||||
#
|
|
||||||
# We mean it.
|
|
||||||
#
|
|
||||||
|
|
||||||
!build_pass {
|
|
||||||
|
|
||||||
load(qt_build_paths)
|
|
||||||
|
|
||||||
MODULE_FWD_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_lib_$${MODULE}.pri
|
|
||||||
|
|
||||||
# -rpath-link is used by the linker to find depedencies of dynamic
|
|
||||||
# libraries which were NOT specified on the command line.
|
|
||||||
# This means that .libs of each module's regular .depends (QT) don't
|
|
||||||
# need to be put there, as they appear on the linker line anyway.
|
|
||||||
# A module's QT_PRIVATE's .libs OTOH need to be put there.
|
|
||||||
# .depends_private (QT_FOR_PRIVATE) is somewhat special: if the privates
|
|
||||||
# are used, the libraries are explicitly linked. If not, their locations
|
|
||||||
# need to be put into -rpath-link. As QT_FOR_PRIVATE cannot in turn
|
|
||||||
# contain privates, they always end up in -rpath-link of dependant
|
|
||||||
# modules.
|
|
||||||
# For simplicity of use, each module's rpath list has all dependencies
|
|
||||||
# transitively resolved already.
|
|
||||||
pubqt = $$MODULE_DEPENDS $$QT_FOR_PRIVATE
|
|
||||||
pubdep = $$resolve_depends(pubqt, "QT.")
|
|
||||||
privqt = $$replace(QT_PRIVATE, -private$, )
|
|
||||||
privdep = $$resolve_depends(privqt, "QT.")
|
|
||||||
rpaths =
|
|
||||||
alldep = $$pubdep $$privdep
|
|
||||||
for(dep, alldep) { # Inherit link-rpaths from all our dependencies
|
|
||||||
rpaths += $$eval(QT.$${dep}.rpath_link) $$eval(QT.$${dep}.rpath_link_private)
|
|
||||||
}
|
|
||||||
privdep -= $$pubdep
|
|
||||||
for(dep, privdep): \ # Add our private dependencies' lib paths as new link-rpaths
|
|
||||||
rpaths += $$eval(QT.$${dep}.libs)
|
|
||||||
!isEmpty(rpaths) {
|
|
||||||
rpaths = $$unique(rpaths)
|
|
||||||
module_rpathlink = "QT.$${MODULE}.rpath_link = $$val_escape(rpaths)"
|
|
||||||
} else {
|
|
||||||
module_rpathlink =
|
|
||||||
}
|
|
||||||
rpaths_priv =
|
|
||||||
xtradep = $$resolve_depends(QT_FOR_PRIVATE, "QT.")
|
|
||||||
for(dep, xtradep): \ # Add our private API's dependencies' lib paths as new link-rpaths
|
|
||||||
rpaths_priv += $$eval(QT.$${dep}.libs)
|
|
||||||
rpaths_priv = $$unique(rpaths_priv)
|
|
||||||
rpaths_priv -= $$rpaths
|
|
||||||
!isEmpty(rpaths_priv) {
|
|
||||||
module_rpathlink_priv = "QT.$${MODULE}.rpath_link_private = $$val_escape(rpaths_priv)"
|
|
||||||
} else {
|
|
||||||
module_rpathlink_priv =
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create a forwarding module .pri file
|
|
||||||
MODULE_FWD_PRI_CONT = \
|
|
||||||
"QT_MODULE_BIN_BASE = $$MODULE_BASE_OUTDIR/bin" \
|
|
||||||
"QT_MODULE_INCLUDE_BASE = $$MODULE_BASE_OUTDIR/include" \
|
|
||||||
"QT_MODULE_IMPORT_BASE = $$MODULE_BASE_OUTDIR/imports" \
|
|
||||||
"QT_MODULE_QML_BASE = $$MODULE_BASE_OUTDIR/qml" \
|
|
||||||
"QT_MODULE_LIB_BASE = $$MODULE_BASE_OUTDIR/lib" \
|
|
||||||
"QT_MODULE_LIBEXEC_BASE = $$MODULE_BASE_OUTDIR/libexec" \
|
|
||||||
"QT_MODULE_PLUGIN_BASE = $$MODULE_BASE_OUTDIR/plugins" \
|
|
||||||
$$module_rpathlink \
|
|
||||||
$$module_rpathlink_priv \
|
|
||||||
"include($$MODULE_PRI)"
|
|
||||||
write_file($$MODULE_FWD_PRI, MODULE_FWD_PRI_CONT)|error("Aborting.")
|
|
||||||
touch($$MODULE_FWD_PRI, $$MODULE_PRI)
|
|
||||||
|
|
||||||
# Then, inject the new module into the current cache state
|
|
||||||
!contains(QMAKE_INTERNAL_INCLUDED_FILES, $$MODULE_PRI) { # before the actual include()!
|
|
||||||
added = $$MODULE_PRI $$MODULE_FWD_PRI
|
|
||||||
cache(QMAKE_INTERNAL_INCLUDED_FILES, add transient, added)
|
|
||||||
unset(added)
|
|
||||||
}
|
|
||||||
include($$MODULE_FWD_PRI)
|
|
||||||
for(var, $$list(VERSION MAJOR_VERSION MINOR_VERSION PATCH_VERSION \
|
|
||||||
name depends private_depends module_config CONFIG DEFINES sources \
|
|
||||||
includes private_includes bins libs libexecs plugins imports qml \
|
|
||||||
rpath_link rpath_link_private \
|
|
||||||
)):defined(QT.$${MODULE}.$$var, var):cache(QT.$${MODULE}.$$var, transient)
|
|
||||||
cache(QT_CONFIG, transient)
|
|
||||||
|
|
||||||
} # !build_pass
|
|
||||||
|
|
||||||
# Schedule the regular .pri file for installation
|
|
||||||
CONFIG += qt_install_module
|
|
121
mkspecs/features/qt_module_pris.prf
Normal file
121
mkspecs/features/qt_module_pris.prf
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
#
|
||||||
|
# W A R N I N G
|
||||||
|
# -------------
|
||||||
|
#
|
||||||
|
# This file is not part of the Qt API. It exists purely as an
|
||||||
|
# implementation detail. It may change from version to version
|
||||||
|
# without notice, or even be removed.
|
||||||
|
#
|
||||||
|
# We mean it.
|
||||||
|
#
|
||||||
|
|
||||||
|
load(qt_build_paths)
|
||||||
|
MODULE_FWD_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_lib_$${MODULE}.pri
|
||||||
|
prefix_build: \
|
||||||
|
MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules-inst/qt_lib_$${MODULE}.pri
|
||||||
|
else: \
|
||||||
|
MODULE_PRI = $$MODULE_FWD_PRI
|
||||||
|
|
||||||
|
!build_pass {
|
||||||
|
|
||||||
|
# Create a module .pri file
|
||||||
|
unix:!static: \
|
||||||
|
module_rpath = "QT.$${MODULE}.rpath = $$[QT_INSTALL_LIBS/raw]"
|
||||||
|
else: \
|
||||||
|
module_rpath =
|
||||||
|
!isEmpty(QT_FOR_PRIVATE) {
|
||||||
|
contains(QT_FOR_PRIVATE, .*-private$):error("QT_FOR_PRIVATE may not contain *-private.")
|
||||||
|
module_privdep = "QT.$${MODULE}.private_depends = $$QT_FOR_PRIVATE"
|
||||||
|
} else {
|
||||||
|
module_privdep =
|
||||||
|
}
|
||||||
|
!isEmpty(QT_PRIVATE): \
|
||||||
|
module_rundep = "QT.$${MODULE}.run_depends = $$unique($$list($$replace(QT_PRIVATE, -private$, )))"
|
||||||
|
else: \
|
||||||
|
module_rundep =
|
||||||
|
static: \
|
||||||
|
module_build_type = "QT.$${MODULE}.module_config = staticlib"
|
||||||
|
else:mac:contains(QT_CONFIG, qt_framework): \
|
||||||
|
module_build_type = "QT.$${MODULE}.module_config = lib_bundle"
|
||||||
|
else: \
|
||||||
|
module_build_type =
|
||||||
|
!isEmpty(MODULE_CONFIG): \
|
||||||
|
module_config = "QT.$${MODULE}.CONFIG = $$MODULE_CONFIG"
|
||||||
|
else: \
|
||||||
|
module_config =
|
||||||
|
!no_module_headers {
|
||||||
|
MODULE_INCLUDES = "\$\$QT_MODULE_INCLUDE_BASE \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME"
|
||||||
|
MODULE_PRIVATE_INCLUDES = "\$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION \
|
||||||
|
\$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME"
|
||||||
|
}
|
||||||
|
MODULE_PRI_CONT = \
|
||||||
|
"QT.$${MODULE}.VERSION = $${VERSION}" \
|
||||||
|
"QT.$${MODULE}.MAJOR_VERSION = $$section(VERSION, ., 0, 0)" \
|
||||||
|
"QT.$${MODULE}.MINOR_VERSION = $$section(VERSION, ., 1, 1)" \
|
||||||
|
"QT.$${MODULE}.PATCH_VERSION = $$section(VERSION, ., 2, 2)" \
|
||||||
|
"" \
|
||||||
|
"QT.$${MODULE}.name = $$TARGET" \
|
||||||
|
"QT.$${MODULE}.bins = \$\$QT_MODULE_BIN_BASE" \
|
||||||
|
"QT.$${MODULE}.includes = $$MODULE_INCLUDES" \
|
||||||
|
"QT.$${MODULE}.private_includes = $$MODULE_PRIVATE_INCLUDES" \
|
||||||
|
"QT.$${MODULE}.libs = \$\$QT_MODULE_LIB_BASE" \
|
||||||
|
"QT.$${MODULE}.libexecs = \$\$QT_MODULE_LIBEXEC_BASE" \
|
||||||
|
$$module_rpath \
|
||||||
|
"QT.$${MODULE}.plugins = \$\$QT_MODULE_PLUGIN_BASE" \
|
||||||
|
"QT.$${MODULE}.imports = \$\$QT_MODULE_IMPORT_BASE" \
|
||||||
|
"QT.$${MODULE}.qml = \$\$QT_MODULE_QML_BASE" \
|
||||||
|
"QT.$${MODULE}.depends =$$join(MODULE_DEPENDS, " ", " ")" \
|
||||||
|
$$module_privdep \
|
||||||
|
$$module_rundep \
|
||||||
|
$$module_build_type \
|
||||||
|
$$module_config \
|
||||||
|
"QT.$${MODULE}.DEFINES = $$MODULE_DEFINES" \ # assume sufficient quoting
|
||||||
|
"" \
|
||||||
|
"QT_CONFIG += $$MODULE" # this is obsolete, but some code still depends on it
|
||||||
|
write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.")
|
||||||
|
MODULE_PRI_FILES = $$MODULE_PRI
|
||||||
|
|
||||||
|
prefix_build {
|
||||||
|
|
||||||
|
# Create a forwarding module .pri file
|
||||||
|
MODULE_FWD_PRI_CONT = \
|
||||||
|
"QT_MODULE_BIN_BASE = $$MODULE_BASE_OUTDIR/bin" \
|
||||||
|
"QT_MODULE_INCLUDE_BASE = $$MODULE_BASE_OUTDIR/include" \
|
||||||
|
"QT_MODULE_IMPORT_BASE = $$MODULE_BASE_OUTDIR/imports" \
|
||||||
|
"QT_MODULE_QML_BASE = $$MODULE_BASE_OUTDIR/qml" \
|
||||||
|
"QT_MODULE_LIB_BASE = $$MODULE_BASE_OUTDIR/lib" \
|
||||||
|
"QT_MODULE_LIBEXEC_BASE = $$MODULE_BASE_OUTDIR/libexec" \
|
||||||
|
"QT_MODULE_PLUGIN_BASE = $$MODULE_BASE_OUTDIR/plugins" \
|
||||||
|
"include($$MODULE_PRI)"
|
||||||
|
write_file($$MODULE_FWD_PRI, MODULE_FWD_PRI_CONT)|error("Aborting.")
|
||||||
|
touch($$MODULE_FWD_PRI, $$MODULE_PRI)
|
||||||
|
MODULE_PRI_FILES += $$MODULE_FWD_PRI
|
||||||
|
|
||||||
|
} else { # prefix_build
|
||||||
|
|
||||||
|
# This is needed for the direct include() below.
|
||||||
|
QT_MODULE_BIN_BASE = $$[QT_INSTALL_BINS]
|
||||||
|
QT_MODULE_INCLUDE_BASE = $$[QT_INSTALL_HEADERS]
|
||||||
|
QT_MODULE_IMPORT_BASE = $$[QT_INSTALL_IMPORTS]
|
||||||
|
QT_MODULE_QML_BASE = $$[QT_INSTALL_QML]
|
||||||
|
QT_MODULE_LIB_BASE = $$[QT_INSTALL_LIBS]
|
||||||
|
QT_MODULE_LIBEXEC_BASE = $$[QT_INSTALL_LIBEXECS]
|
||||||
|
QT_MODULE_PLUGIN_BASE = $$[QT_INSTALL_PLUGINS]
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# Then, inject the new module into the current cache state
|
||||||
|
!contains(QMAKE_INTERNAL_INCLUDED_FILES, $$MODULE_PRI): \ # before the actual include()!
|
||||||
|
cache(QMAKE_INTERNAL_INCLUDED_FILES, add transient, MODULE_PRI_FILES)
|
||||||
|
include($$MODULE_FWD_PRI)
|
||||||
|
for(var, $$list(VERSION MAJOR_VERSION MINOR_VERSION PATCH_VERSION \
|
||||||
|
name depends private_depends module_config CONFIG DEFINES sources \
|
||||||
|
includes private_includes bins libs libexecs plugins imports qml \
|
||||||
|
rpath_link rpath_link_private \
|
||||||
|
)):defined(QT.$${MODULE}.$$var, var):cache(QT.$${MODULE}.$$var, transient)
|
||||||
|
cache(QT_CONFIG, transient)
|
||||||
|
|
||||||
|
} # !build_pass
|
||||||
|
|
||||||
|
# Schedule the regular .pri file for installation
|
||||||
|
CONFIG += qt_install_module
|
@ -58,3 +58,13 @@ load(qt_targets)
|
|||||||
|
|
||||||
wince*:LIBS += $$QMAKE_LIBS_GUI
|
wince*:LIBS += $$QMAKE_LIBS_GUI
|
||||||
QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
|
QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
|
||||||
|
|
||||||
|
unix|win32-g++* {
|
||||||
|
!isEmpty(_QMAKE_SUPER_CACHE_): \
|
||||||
|
rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
|
||||||
|
else: \
|
||||||
|
rplbase = $$MODULE_QMAKE_OUTDIR
|
||||||
|
lib_replace.match = $$rplbase/lib
|
||||||
|
lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
|
||||||
|
QMAKE_PRL_INSTALL_REPLACE += lib_replace
|
||||||
|
}
|
||||||
|
@ -31,7 +31,7 @@ load(qt_targets)
|
|||||||
|
|
||||||
# If we are doing a prefix build, create a "module" pri which enables
|
# If we are doing a prefix build, create a "module" pri which enables
|
||||||
# qtPrepareTool() to work with the non-installed build.
|
# qtPrepareTool() to work with the non-installed build.
|
||||||
!build_pass:!exists($$[QT_INSTALL_PREFIX]/.qmake.cache) {
|
!build_pass:prefix_build {
|
||||||
|
|
||||||
isEmpty(MODULE):MODULE = $$TARGET
|
isEmpty(MODULE):MODULE = $$TARGET
|
||||||
|
|
||||||
|
@ -3110,15 +3110,18 @@ MakefileGenerator::openOutput(QFile &file, const QString &build) const
|
|||||||
QString
|
QString
|
||||||
MakefileGenerator::pkgConfigFileName(bool fixify)
|
MakefileGenerator::pkgConfigFileName(bool fixify)
|
||||||
{
|
{
|
||||||
QString ret = var("TARGET");
|
QString ret = project->first("QMAKE_PKGCONFIG_FILE").toQString();
|
||||||
|
if (ret.isEmpty()) {
|
||||||
|
ret = project->first("TARGET").toQString();
|
||||||
int slsh = ret.lastIndexOf(Option::dir_sep);
|
int slsh = ret.lastIndexOf(Option::dir_sep);
|
||||||
if(slsh != -1)
|
if (slsh != -1)
|
||||||
ret = ret.right(ret.length() - slsh - 1);
|
ret = ret.right(ret.length() - slsh - 1);
|
||||||
if(ret.startsWith("lib"))
|
if (ret.startsWith("lib"))
|
||||||
ret = ret.mid(3);
|
ret = ret.mid(3);
|
||||||
int dot = ret.indexOf('.');
|
int dot = ret.indexOf('.');
|
||||||
if(dot != -1)
|
if (dot != -1)
|
||||||
ret = ret.left(dot);
|
ret = ret.left(dot);
|
||||||
|
}
|
||||||
ret += Option::pkgcfg_ext;
|
ret += Option::pkgcfg_ext;
|
||||||
QString subdir = project->first("QMAKE_PKGCONFIG_DESTDIR").toQString();
|
QString subdir = project->first("QMAKE_PKGCONFIG_DESTDIR").toQString();
|
||||||
if(!subdir.isEmpty()) {
|
if(!subdir.isEmpty()) {
|
||||||
|
@ -311,7 +311,7 @@ VCCLCompilerTool::VCCLCompilerTool()
|
|||||||
: AssemblerOutput(asmListingNone),
|
: AssemblerOutput(asmListingNone),
|
||||||
BasicRuntimeChecks(runtimeBasicCheckNone),
|
BasicRuntimeChecks(runtimeBasicCheckNone),
|
||||||
BrowseInformation(brInfoNone),
|
BrowseInformation(brInfoNone),
|
||||||
BufferSecurityCheck(_False),
|
BufferSecurityCheck(unset),
|
||||||
CallingConvention(callConventionDefault),
|
CallingConvention(callConventionDefault),
|
||||||
CompileAs(compileAsDefault),
|
CompileAs(compileAsDefault),
|
||||||
CompileAsManaged(managedDefault),
|
CompileAsManaged(managedDefault),
|
||||||
@ -603,9 +603,7 @@ bool VCCLCompilerTool::parseOption(const char* option)
|
|||||||
CallingConvention = callConventionFastCall;
|
CallingConvention = callConventionFastCall;
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
// Warning: following [num] is not used,
|
AdditionalOptions += option;
|
||||||
// were should we put it?
|
|
||||||
BufferSecurityCheck = _True;
|
|
||||||
break;
|
break;
|
||||||
case 'y':
|
case 'y':
|
||||||
EnableFunctionLevelLinking = _True;
|
EnableFunctionLevelLinking = _True;
|
||||||
@ -1080,11 +1078,20 @@ bool VCCLCompilerTool::parseOption(const char* option)
|
|||||||
}
|
}
|
||||||
found = false; break;
|
found = false; break;
|
||||||
case 'o':
|
case 'o':
|
||||||
if (second == 'p' && third == 'e' && fourth == 'n') {
|
{
|
||||||
|
const char *str = option + 2;
|
||||||
|
const size_t len = strlen(str);
|
||||||
|
if (len >= 5 && len <= 6 && strncmp(str, "penmp", 5) == 0) {
|
||||||
|
if (len == 5) {
|
||||||
OpenMP = _True;
|
OpenMP = _True;
|
||||||
break;
|
break;
|
||||||
|
} else if (str[5] == '-') {
|
||||||
|
OpenMP = _False;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
found = false; break;
|
found = false; break;
|
||||||
|
}
|
||||||
case 's':
|
case 's':
|
||||||
if(second == 'h' && third == 'o' && fourth == 'w') {
|
if(second == 'h' && third == 'o' && fourth == 'w') {
|
||||||
ShowIncludes = _True;
|
ShowIncludes = _True;
|
||||||
|
@ -834,7 +834,7 @@ QString Win32MakefileGenerator::defaultInstall(const QString &t)
|
|||||||
if(slsh != -1)
|
if(slsh != -1)
|
||||||
dst_prl = dst_prl.right(dst_prl.length() - slsh - 1);
|
dst_prl = dst_prl.right(dst_prl.length() - slsh - 1);
|
||||||
dst_prl = filePrefixRoot(root, targetdir + dst_prl);
|
dst_prl = filePrefixRoot(root, targetdir + dst_prl);
|
||||||
ret += "-$(INSTALL_FILE) \"" + project->first("QMAKE_INTERNAL_PRL_FILE") + "\" \"" + dst_prl + "\"";
|
ret += installMetaFile(ProKey("QMAKE_PRL_INSTALL_REPLACE"), project->first("QMAKE_INTERNAL_PRL_FILE").toQString(), dst_prl);
|
||||||
if(!uninst.isEmpty())
|
if(!uninst.isEmpty())
|
||||||
uninst.append("\n\t");
|
uninst.append("\n\t");
|
||||||
uninst.append("-$(DEL_FILE) \"" + dst_prl + "\"");
|
uninst.append("-$(DEL_FILE) \"" + dst_prl + "\"");
|
||||||
|
@ -382,14 +382,16 @@ QByteArray QMakeEvaluator::getCommandOutput(const QString &args) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
void QMakeEvaluator::populateDeps(
|
void QMakeEvaluator::populateDeps(
|
||||||
const ProStringList &deps, const ProString &prefix,
|
const ProStringList &deps, const ProString &prefix, const ProStringList &suffixes,
|
||||||
QHash<ProKey, QSet<ProKey> > &dependencies, ProValueMap &dependees,
|
QHash<ProKey, QSet<ProKey> > &dependencies, ProValueMap &dependees,
|
||||||
ProStringList &rootSet) const
|
ProStringList &rootSet) const
|
||||||
{
|
{
|
||||||
foreach (const ProString &item, deps)
|
foreach (const ProString &item, deps)
|
||||||
if (!dependencies.contains(item.toKey())) {
|
if (!dependencies.contains(item.toKey())) {
|
||||||
QSet<ProKey> &dset = dependencies[item.toKey()]; // Always create entry
|
QSet<ProKey> &dset = dependencies[item.toKey()]; // Always create entry
|
||||||
ProStringList depends = values(ProKey(prefix + item + QString::fromLatin1(".depends")));
|
ProStringList depends;
|
||||||
|
foreach (const ProString &suffix, suffixes)
|
||||||
|
depends += values(ProKey(prefix + item + suffix));
|
||||||
if (depends.isEmpty()) {
|
if (depends.isEmpty()) {
|
||||||
rootSet << item;
|
rootSet << item;
|
||||||
} else {
|
} else {
|
||||||
@ -397,7 +399,7 @@ void QMakeEvaluator::populateDeps(
|
|||||||
dset.insert(dep.toKey());
|
dset.insert(dep.toKey());
|
||||||
dependees[dep.toKey()] << item;
|
dependees[dep.toKey()] << item;
|
||||||
}
|
}
|
||||||
populateDeps(depends, prefix, dependencies, dependees, rootSet);
|
populateDeps(depends, prefix, suffixes, dependencies, dependees, rootSet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -692,11 +694,10 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case E_EVAL:
|
case E_EVAL:
|
||||||
if (args.count() != 1) {
|
if (args.count() != 1)
|
||||||
evalError(fL1S("eval(variable) requires one argument."));
|
evalError(fL1S("eval(variable) requires one argument."));
|
||||||
} else {
|
else
|
||||||
ret += values(map(args.at(0)));
|
ret += values(map(args.at(0)));
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case E_LIST: {
|
case E_LIST: {
|
||||||
QString tmp;
|
QString tmp;
|
||||||
@ -913,14 +914,17 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
|
|||||||
break;
|
break;
|
||||||
case E_SORT_DEPENDS:
|
case E_SORT_DEPENDS:
|
||||||
case E_RESOLVE_DEPENDS:
|
case E_RESOLVE_DEPENDS:
|
||||||
if (args.count() < 1 || args.count() > 2) {
|
if (args.count() < 1 || args.count() > 3) {
|
||||||
evalError(fL1S("%1(var, prefix) requires one or two arguments.").arg(func.toQString(m_tmp1)));
|
evalError(fL1S("%1(var, [prefix, [suffixes]]) requires one to three arguments.")
|
||||||
|
.arg(func.toQString(m_tmp1)));
|
||||||
} else {
|
} else {
|
||||||
QHash<ProKey, QSet<ProKey> > dependencies;
|
QHash<ProKey, QSet<ProKey> > dependencies;
|
||||||
ProValueMap dependees;
|
ProValueMap dependees;
|
||||||
ProStringList rootSet;
|
ProStringList rootSet;
|
||||||
ProStringList orgList = values(args.at(0).toKey());
|
ProStringList orgList = values(args.at(0).toKey());
|
||||||
populateDeps(orgList, (args.count() < 2 ? ProString() : args.at(1)),
|
populateDeps(orgList, (args.count() < 2 ? ProString() : args.at(1)),
|
||||||
|
args.count() < 3 ? ProStringList(ProString(".depends"))
|
||||||
|
: split_value_list(args.at(2).toQString(m_tmp2)),
|
||||||
dependencies, dependees, rootSet);
|
dependencies, dependees, rootSet);
|
||||||
for (int i = 0; i < rootSet.size(); ++i) {
|
for (int i = 0; i < rootSet.size(); ++i) {
|
||||||
const ProString &item = rootSet.at(i);
|
const ProString &item = rootSet.at(i);
|
||||||
@ -1155,11 +1159,10 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
|
|||||||
|
|
||||||
for (int i = configs.size() - 1; i >= 0; i--) {
|
for (int i = configs.size() - 1; i >= 0; i--) {
|
||||||
for (int mut = 0; mut < mutuals.count(); mut++) {
|
for (int mut = 0; mut < mutuals.count(); mut++) {
|
||||||
if (configs[i] == mutuals[mut].trimmed()) {
|
if (configs[i] == mutuals[mut].trimmed())
|
||||||
return returnBool(configs[i] == args[0]);
|
return returnBool(configs[i] == args[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return ReturnFalse;
|
return ReturnFalse;
|
||||||
}
|
}
|
||||||
case T_CONTAINS: {
|
case T_CONTAINS: {
|
||||||
@ -1421,9 +1424,8 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional(
|
|||||||
}
|
}
|
||||||
const QString &file = resolvePath(m_option->expandEnvVars(args.at(0).toQString(m_tmp1)));
|
const QString &file = resolvePath(m_option->expandEnvVars(args.at(0).toQString(m_tmp1)));
|
||||||
|
|
||||||
if (IoUtils::exists(file)) {
|
if (IoUtils::exists(file))
|
||||||
return ReturnTrue;
|
return ReturnTrue;
|
||||||
}
|
|
||||||
int slsh = file.lastIndexOf(QLatin1Char('/'));
|
int slsh = file.lastIndexOf(QLatin1Char('/'));
|
||||||
QString fn = file.mid(slsh+1);
|
QString fn = file.mid(slsh+1);
|
||||||
if (fn.contains(QLatin1Char('*')) || fn.contains(QLatin1Char('?'))) {
|
if (fn.contains(QLatin1Char('*')) || fn.contains(QLatin1Char('?'))) {
|
||||||
|
@ -219,7 +219,7 @@ public:
|
|||||||
bool isActiveConfig(const QString &config, bool regex = false);
|
bool isActiveConfig(const QString &config, bool regex = false);
|
||||||
|
|
||||||
void populateDeps(
|
void populateDeps(
|
||||||
const ProStringList &deps, const ProString &prefix,
|
const ProStringList &deps, const ProString &prefix, const ProStringList &suffixes,
|
||||||
QHash<ProKey, QSet<ProKey> > &dependencies,
|
QHash<ProKey, QSet<ProKey> > &dependencies,
|
||||||
ProValueMap &dependees, ProStringList &rootSet) const;
|
ProValueMap &dependees, ProStringList &rootSet) const;
|
||||||
|
|
||||||
|
@ -164,29 +164,28 @@ QMakeGlobals::ArgumentReturn QMakeGlobals::addCommandLineArguments(
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (arg.startsWith(QLatin1Char('-'))) {
|
if (arg.startsWith(QLatin1Char('-'))) {
|
||||||
if (arg == QLatin1String("-after")) {
|
if (arg == QLatin1String("-after"))
|
||||||
state.after = true;
|
state.after = true;
|
||||||
} else if (arg == QLatin1String("-config")) {
|
else if (arg == QLatin1String("-config"))
|
||||||
argState = ArgConfig;
|
argState = ArgConfig;
|
||||||
} else if (arg == QLatin1String("-nocache")) {
|
else if (arg == QLatin1String("-nocache"))
|
||||||
do_cache = false;
|
do_cache = false;
|
||||||
} else if (arg == QLatin1String("-cache")) {
|
else if (arg == QLatin1String("-cache"))
|
||||||
argState = ArgCache;
|
argState = ArgCache;
|
||||||
} else if (arg == QLatin1String("-platform") || arg == QLatin1String("-spec")) {
|
else if (arg == QLatin1String("-platform") || arg == QLatin1String("-spec"))
|
||||||
argState = ArgSpec;
|
argState = ArgSpec;
|
||||||
} else if (arg == QLatin1String("-xplatform") || arg == QLatin1String("-xspec")) {
|
else if (arg == QLatin1String("-xplatform") || arg == QLatin1String("-xspec"))
|
||||||
argState = ArgXSpec;
|
argState = ArgXSpec;
|
||||||
} else if (arg == QLatin1String("-template") || arg == QLatin1String("-t")) {
|
else if (arg == QLatin1String("-template") || arg == QLatin1String("-t"))
|
||||||
argState = ArgTmpl;
|
argState = ArgTmpl;
|
||||||
} else if (arg == QLatin1String("-template_prefix") || arg == QLatin1String("-tp")) {
|
else if (arg == QLatin1String("-template_prefix") || arg == QLatin1String("-tp"))
|
||||||
argState = ArgTmplPfx;
|
argState = ArgTmplPfx;
|
||||||
} else if (arg == QLatin1String("-win32")) {
|
else if (arg == QLatin1String("-win32"))
|
||||||
dir_sep = QLatin1Char('\\');
|
dir_sep = QLatin1Char('\\');
|
||||||
} else if (arg == QLatin1String("-unix")) {
|
else if (arg == QLatin1String("-unix"))
|
||||||
dir_sep = QLatin1Char('/');
|
dir_sep = QLatin1Char('/');
|
||||||
} else {
|
else
|
||||||
return ArgumentUnknown;
|
return ArgumentUnknown;
|
||||||
}
|
|
||||||
} else if (arg.contains(QLatin1Char('='))) {
|
} else if (arg.contains(QLatin1Char('='))) {
|
||||||
if (state.after)
|
if (state.after)
|
||||||
state.postcmds << arg;
|
state.postcmds << arg;
|
||||||
|
@ -99,6 +99,8 @@ public:
|
|||||||
QString pwd;
|
QString pwd;
|
||||||
QStringList precmds, preconfigs, postcmds, postconfigs;
|
QStringList precmds, preconfigs, postcmds, postconfigs;
|
||||||
bool after;
|
bool after;
|
||||||
|
|
||||||
|
void flush() { after = false; }
|
||||||
};
|
};
|
||||||
|
|
||||||
class QMAKE_EXPORT QMakeGlobals
|
class QMAKE_EXPORT QMakeGlobals
|
||||||
|
@ -239,7 +239,7 @@ bool QMakeParser::read(ProFile *pro)
|
|||||||
}
|
}
|
||||||
|
|
||||||
QByteArray bcont = file.readAll();
|
QByteArray bcont = file.readAll();
|
||||||
if (bcont.startsWith(QByteArray("\xef\xbb\xbf"))) {
|
if (bcont.startsWith("\xef\xbb\xbf")) {
|
||||||
// UTF-8 BOM will cause subtle errors
|
// UTF-8 BOM will cause subtle errors
|
||||||
m_handler->message(QMakeParserHandler::ParserIoError,
|
m_handler->message(QMakeParserHandler::ParserIoError,
|
||||||
fL1S("Unexpected UTF-8 BOM in %1").arg(pro->fileName()));
|
fL1S("Unexpected UTF-8 BOM in %1").arg(pro->fileName()));
|
||||||
@ -1147,11 +1147,10 @@ void QMakeParser::finalizeCall(ushort *&tokPtr, ushort *uc, ushort *ptr, int arg
|
|||||||
uint nlen = uce[1];
|
uint nlen = uce[1];
|
||||||
if (uce[nlen + 2] == TokFuncTerminator) {
|
if (uce[nlen + 2] == TokFuncTerminator) {
|
||||||
m_tmp.setRawData((QChar *)uce + 2, nlen);
|
m_tmp.setRawData((QChar *)uce + 2, nlen);
|
||||||
if (m_tmp == statics.strhost_build) {
|
if (m_tmp == statics.strhost_build)
|
||||||
m_proFile->setHostBuild(true);
|
m_proFile->setHostBuild(true);
|
||||||
} else {
|
else
|
||||||
parseError(fL1S("Unknown option() %1.").arg(m_tmp));
|
parseError(fL1S("Unknown option() %1.").arg(m_tmp));
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -193,9 +193,8 @@ bool usage(const char *a0)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
Option::parseCommandLine(QStringList &args)
|
Option::parseCommandLine(QStringList &args, QMakeCmdLineParserState &state)
|
||||||
{
|
{
|
||||||
QMakeCmdLineParserState state(QDir::currentPath());
|
|
||||||
enum { ArgNone, ArgOutput } argState = ArgNone;
|
enum { ArgNone, ArgOutput } argState = ArgNone;
|
||||||
int x = 0;
|
int x = 0;
|
||||||
while (x < args.count()) {
|
while (x < args.count()) {
|
||||||
@ -313,8 +312,6 @@ Option::parseCommandLine(QStringList &args)
|
|||||||
fprintf(stderr, "***Option %s requires a parameter\n", qPrintable(args.at(x - 1)));
|
fprintf(stderr, "***Option %s requires a parameter\n", qPrintable(args.at(x - 1)));
|
||||||
return Option::QMAKE_CMDLINE_SHOW_USAGE | Option::QMAKE_CMDLINE_ERROR;
|
return Option::QMAKE_CMDLINE_SHOW_USAGE | Option::QMAKE_CMDLINE_ERROR;
|
||||||
}
|
}
|
||||||
globals->commitCommandLineArguments(state);
|
|
||||||
globals->debugLevel = Option::debug_level;
|
|
||||||
return Option::QMAKE_CMDLINE_SUCCESS;
|
return Option::QMAKE_CMDLINE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -374,6 +371,7 @@ Option::init(int argc, char **argv)
|
|||||||
Option::qmake_mode = Option::QMAKE_GENERATE_MAKEFILE;
|
Option::qmake_mode = Option::QMAKE_GENERATE_MAKEFILE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QMakeCmdLineParserState cmdstate(QDir::currentPath());
|
||||||
const QByteArray envflags = qgetenv("QMAKEFLAGS");
|
const QByteArray envflags = qgetenv("QMAKEFLAGS");
|
||||||
if (!envflags.isNull()) {
|
if (!envflags.isNull()) {
|
||||||
QStringList args;
|
QStringList args;
|
||||||
@ -399,7 +397,8 @@ Option::init(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
if (hasWord)
|
if (hasWord)
|
||||||
args << QString::fromLocal8Bit(buf);
|
args << QString::fromLocal8Bit(buf);
|
||||||
parseCommandLine(args);
|
parseCommandLine(args, cmdstate);
|
||||||
|
cmdstate.flush();
|
||||||
}
|
}
|
||||||
if(argc && argv) {
|
if(argc && argv) {
|
||||||
QStringList args;
|
QStringList args;
|
||||||
@ -430,7 +429,7 @@ Option::init(int argc, char **argv)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ret = parseCommandLine(args);
|
int ret = parseCommandLine(args, cmdstate);
|
||||||
if(ret != Option::QMAKE_CMDLINE_SUCCESS) {
|
if(ret != Option::QMAKE_CMDLINE_SUCCESS) {
|
||||||
if ((ret & Option::QMAKE_CMDLINE_SHOW_USAGE) != 0)
|
if ((ret & Option::QMAKE_CMDLINE_SHOW_USAGE) != 0)
|
||||||
usage(argv[0]);
|
usage(argv[0]);
|
||||||
@ -439,6 +438,8 @@ Option::init(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
Option::qmake_args = args;
|
Option::qmake_args = args;
|
||||||
}
|
}
|
||||||
|
globals->commitCommandLineArguments(cmdstate);
|
||||||
|
globals->debugLevel = Option::debug_level;
|
||||||
|
|
||||||
//last chance for defaults
|
//last chance for defaults
|
||||||
if(Option::qmake_mode == Option::QMAKE_GENERATE_MAKEFILE ||
|
if(Option::qmake_mode == Option::QMAKE_GENERATE_MAKEFILE ||
|
||||||
|
@ -207,7 +207,7 @@ struct Option
|
|||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static int parseCommandLine(QStringList &args);
|
static int parseCommandLine(QStringList &args, QMakeCmdLineParserState &state);
|
||||||
};
|
};
|
||||||
|
|
||||||
inline QString fixEnvVariables(const QString &x) { return Option::fixString(x, Option::FixEnvVars); }
|
inline QString fixEnvVariables(const QString &x) { return Option::fixString(x, Option::FixEnvVars); }
|
||||||
|
@ -118,10 +118,7 @@ QMakeProperty::value(const ProKey &vk)
|
|||||||
return val;
|
return val;
|
||||||
|
|
||||||
initSettings();
|
initSettings();
|
||||||
QString v = vk.toQString();
|
return settings->value(vk.toQString()).toString();
|
||||||
if (!settings->contains(v))
|
|
||||||
return settings->value("2.01a/" + v).toString(); // Backwards compat
|
|
||||||
return settings->value(v).toString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
@ -135,7 +132,6 @@ QMakeProperty::setValue(QString var, const QString &val)
|
|||||||
{
|
{
|
||||||
initSettings();
|
initSettings();
|
||||||
settings->setValue(var, val);
|
settings->setValue(var, val);
|
||||||
settings->remove("2.01a/" + var); // Backwards compat
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -143,7 +139,6 @@ QMakeProperty::remove(const QString &var)
|
|||||||
{
|
{
|
||||||
initSettings();
|
initSettings();
|
||||||
settings->remove(var);
|
settings->remove(var);
|
||||||
settings->remove("2.01a/" + var); // Backwards compat
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
@ -153,13 +148,8 @@ QMakeProperty::exec()
|
|||||||
if(Option::qmake_mode == Option::QMAKE_QUERY_PROPERTY) {
|
if(Option::qmake_mode == Option::QMAKE_QUERY_PROPERTY) {
|
||||||
if(Option::prop::properties.isEmpty()) {
|
if(Option::prop::properties.isEmpty()) {
|
||||||
initSettings();
|
initSettings();
|
||||||
QStringList keys = settings->childKeys();
|
foreach (const QString &key, settings->childKeys()) {
|
||||||
settings->beginGroup("2.01a");
|
QString val = settings->value(key).toString();
|
||||||
keys += settings->childKeys();
|
|
||||||
settings->endGroup();
|
|
||||||
keys.removeDuplicates();
|
|
||||||
foreach (const QString &key, keys) {
|
|
||||||
QString val = settings->value(settings->contains(key) ? key : "2.01a/" + key).toString();
|
|
||||||
fprintf(stdout, "%s:%s\n", qPrintable(key), qPrintable(val));
|
fprintf(stdout, "%s:%s\n", qPrintable(key), qPrintable(val));
|
||||||
}
|
}
|
||||||
QStringList specialProps;
|
QStringList specialProps;
|
||||||
|
23
qtbase.pro
23
qtbase.pro
@ -81,6 +81,29 @@ syncqt.files = $$PWD/bin/syncqt
|
|||||||
equals(QMAKE_HOST.os, Windows):syncqt.files += $$PWD/bin/syncqt.bat
|
equals(QMAKE_HOST.os, Windows):syncqt.files += $$PWD/bin/syncqt.bat
|
||||||
INSTALLS += syncqt
|
INSTALLS += syncqt
|
||||||
|
|
||||||
|
# If we are doing a prefix build, create a "module" pri which enables
|
||||||
|
# qtPrepareTool() to find the non-installed syncqt.
|
||||||
|
prefix_build {
|
||||||
|
|
||||||
|
cmd = $$shell_path($$OUT_PWD/bin/syncqt)
|
||||||
|
contains(QMAKE_HOST.os, Windows): \
|
||||||
|
cmd = $${cmd}.bat
|
||||||
|
|
||||||
|
TOOL_PRI = $$OUT_PWD/mkspecs/modules/qt_tool_syncqt.pri
|
||||||
|
|
||||||
|
TOOL_PRI_CONT = "QT_TOOL.syncqt.command = $$val_escape(cmd)"
|
||||||
|
write_file($$TOOL_PRI, TOOL_PRI_CONT)|error("Aborting.")
|
||||||
|
|
||||||
|
# Then, inject the new tool into the current cache state
|
||||||
|
!contains(QMAKE_INTERNAL_INCLUDED_FILES, $$TOOL_PRI) { # before the actual include()!
|
||||||
|
added = $$TOOL_PRI
|
||||||
|
cache(QMAKE_INTERNAL_INCLUDED_FILES, add transient, added)
|
||||||
|
}
|
||||||
|
include($$TOOL_PRI)
|
||||||
|
cache(QT_TOOL.syncqt.command, transient)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#mkspecs
|
#mkspecs
|
||||||
mkspecs.path = $$[QT_HOST_DATA]/mkspecs
|
mkspecs.path = $$[QT_HOST_DATA]/mkspecs
|
||||||
mkspecs.files = \
|
mkspecs.files = \
|
||||||
|
@ -15,7 +15,8 @@ isEmpty(ANGLE_DIR) {
|
|||||||
win32 {
|
win32 {
|
||||||
GNUTOOLS_DIR=$$PWD/../../../../gnuwin32/bin
|
GNUTOOLS_DIR=$$PWD/../../../../gnuwin32/bin
|
||||||
exists($$GNUTOOLS_DIR/gperf.exe) {
|
exists($$GNUTOOLS_DIR/gperf.exe) {
|
||||||
GNUTOOLS = "(set $$escape_expand(\\\")PATH=$$replace(GNUTOOLS_DIR, [/\\\\], $${QMAKE_DIR_SEP});%PATH%$$escape_expand(\\\"))"
|
# Escape closing parens when expanding the variable, otherwise cmd confuses itself.
|
||||||
|
GNUTOOLS = "(set PATH=$$replace(GNUTOOLS_DIR, [/\\\\], $${QMAKE_DIR_SEP});%PATH:)=^)%)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,22 +2,22 @@ include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
|
|||||||
|
|
||||||
project = QtConcurrent
|
project = QtConcurrent
|
||||||
description = Qt Concurrent Reference Documentation
|
description = Qt Concurrent Reference Documentation
|
||||||
url = http://qt-project.org/doc/qtconcurrent
|
url = http://qt-project.org/doc/qt-$QT_VER/qtconcurrent
|
||||||
version = 5.1.0
|
version = $QT_VERSION
|
||||||
|
|
||||||
examplesinstallpath = qtconcurrent
|
examplesinstallpath = qtconcurrent
|
||||||
|
|
||||||
qhp.projects = QtConcurrent
|
qhp.projects = QtConcurrent
|
||||||
|
|
||||||
qhp.QtConcurrent.file = qtconcurrent.qhp
|
qhp.QtConcurrent.file = qtconcurrent.qhp
|
||||||
qhp.QtConcurrent.namespace = org.qt-project.qtconcurrent.510
|
qhp.QtConcurrent.namespace = org.qt-project.qtconcurrent.$QT_VERSION_TAG
|
||||||
qhp.QtConcurrent.virtualFolder = qtconcurrent
|
qhp.QtConcurrent.virtualFolder = qtconcurrent
|
||||||
qhp.QtConcurrent.indexTitle = Qt Concurrent
|
qhp.QtConcurrent.indexTitle = Qt Concurrent
|
||||||
qhp.QtConcurrent.indexRoot =
|
qhp.QtConcurrent.indexRoot =
|
||||||
|
|
||||||
qhp.QtConcurrent.filterAttributes = qtconcurrent 5.1.0 qtrefdoc
|
qhp.QtConcurrent.filterAttributes = qtconcurrent $QT_VERSION qtrefdoc
|
||||||
qhp.QtConcurrent.customFilters.Qt.name = QtConcurrent 5.1.0
|
qhp.QtConcurrent.customFilters.Qt.name = QtConcurrent $QT_VERSION
|
||||||
qhp.QtConcurrent.customFilters.Qt.filterAttributes = qtconcurrent 5.1.0
|
qhp.QtConcurrent.customFilters.Qt.filterAttributes = qtconcurrent $QT_VERSION
|
||||||
|
|
||||||
qhp.QtConcurrent.subprojects = classes
|
qhp.QtConcurrent.subprojects = classes
|
||||||
qhp.QtConcurrent.subprojects.classes.title = C++ Classes
|
qhp.QtConcurrent.subprojects.classes.title = C++ Classes
|
||||||
|
@ -94,6 +94,18 @@ function(test_module_includes)
|
|||||||
include_directories(\${Qt5${qtmodule}_INCLUDE_DIRS})
|
include_directories(\${Qt5${qtmodule}_INCLUDE_DIRS})
|
||||||
add_definitions(\${Qt5${qtmodule}_DEFINITIONS})\n"
|
add_definitions(\${Qt5${qtmodule}_DEFINITIONS})\n"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Because the CI system tests built packages before installation,
|
||||||
|
# the include dir allowing module-includes for the new module is not
|
||||||
|
# the same as the dir for QtCore (because that is at the installation
|
||||||
|
# location). The CI system is untypical here in that it attempts to use
|
||||||
|
# packages while they are in an intermediate state, so we work around
|
||||||
|
# that in the test system.
|
||||||
|
set(packages_string
|
||||||
|
"${packages_string}
|
||||||
|
include_directories(\"\${Qt5${qtmodule}_DIR}/../../../include\")\n"
|
||||||
|
)
|
||||||
|
|
||||||
set(libraries_string "${libraries_string} Qt5::${qtmodule}")
|
set(libraries_string "${libraries_string} Qt5::${qtmodule}")
|
||||||
endwhile()
|
endwhile()
|
||||||
|
|
||||||
|
@ -1,12 +1,10 @@
|
|||||||
|
|
||||||
get_filename_component(_qt5_corelib_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
|
|
||||||
|
|
||||||
if (NOT TARGET Qt5::qmake)
|
if (NOT TARGET Qt5::qmake)
|
||||||
add_executable(Qt5::qmake IMPORTED)
|
add_executable(Qt5::qmake IMPORTED)
|
||||||
|
|
||||||
set_target_properties(Qt5::qmake PROPERTIES
|
set_target_properties(Qt5::qmake PROPERTIES
|
||||||
!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
|
!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
|
||||||
IMPORTED_LOCATION \"${_qt5_corelib_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\"
|
IMPORTED_LOCATION \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\"
|
||||||
!!ELSE
|
!!ELSE
|
||||||
IMPORTED_LOCATION \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\"
|
IMPORTED_LOCATION \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\"
|
||||||
!!ENDIF
|
!!ENDIF
|
||||||
@ -18,7 +16,7 @@ if (NOT TARGET Qt5::moc)
|
|||||||
|
|
||||||
set_target_properties(Qt5::moc PROPERTIES
|
set_target_properties(Qt5::moc PROPERTIES
|
||||||
!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
|
!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
|
||||||
IMPORTED_LOCATION \"${_qt5_corelib_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\"
|
IMPORTED_LOCATION \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\"
|
||||||
!!ELSE
|
!!ELSE
|
||||||
IMPORTED_LOCATION \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\"
|
IMPORTED_LOCATION \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\"
|
||||||
!!ENDIF
|
!!ENDIF
|
||||||
@ -32,7 +30,7 @@ if (NOT TARGET Qt5::rcc)
|
|||||||
|
|
||||||
set_target_properties(Qt5::rcc PROPERTIES
|
set_target_properties(Qt5::rcc PROPERTIES
|
||||||
!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
|
!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
|
||||||
IMPORTED_LOCATION \"${_qt5_corelib_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\"
|
IMPORTED_LOCATION \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\"
|
||||||
!!ELSE
|
!!ELSE
|
||||||
IMPORTED_LOCATION \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\"
|
IMPORTED_LOCATION \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\"
|
||||||
!!ENDIF
|
!!ENDIF
|
||||||
@ -44,9 +42,9 @@ set(Qt5Core_MOC_EXECUTABLE Qt5::moc)
|
|||||||
set(Qt5Core_RCC_EXECUTABLE Qt5::rcc)
|
set(Qt5Core_RCC_EXECUTABLE Qt5::rcc)
|
||||||
|
|
||||||
!!IF isEmpty(CMAKE_ARCHDATA_DIR_IS_ABSOLUTE)
|
!!IF isEmpty(CMAKE_ARCHDATA_DIR_IS_ABSOLUTE)
|
||||||
list(APPEND Qt5Core_INCLUDE_DIRS \"${_qt5_corelib_install_prefix}/$${CMAKE_ARCHDATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
|
list(APPEND Qt5Core_INCLUDE_DIRS \"${_qt5Core_install_prefix}/$$CMAKE_INCLUDE_DIR\" \"${_qt5Core_install_prefix}/$${CMAKE_ARCHDATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
|
||||||
!!ELSE
|
!!ELSE
|
||||||
list(APPEND Qt5Core_INCLUDE_DIRS \"$${CMAKE_ARCHDATA_DIR}mkspecs/$${CMAKE_MKSPEC}\")
|
list(APPEND Qt5Core_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR\" \"$${CMAKE_ARCHDATA_DIR}mkspecs/$${CMAKE_MKSPEC}\")
|
||||||
!!ENDIF
|
!!ENDIF
|
||||||
|
|
||||||
!!IF !isEmpty(CMAKE_ADD_FPIE_FLAGS)
|
!!IF !isEmpty(CMAKE_ADD_FPIE_FLAGS)
|
||||||
@ -80,7 +78,7 @@ if (NOT TARGET Qt5::WinMain)
|
|||||||
set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
|
set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
|
||||||
set_target_properties(Qt5::WinMain PROPERTIES
|
set_target_properties(Qt5::WinMain PROPERTIES
|
||||||
!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
|
!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
|
||||||
IMPORTED_LOCATION_DEBUG \"${_qt5_corelib_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\"
|
IMPORTED_LOCATION_DEBUG \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\"
|
||||||
!!ELSE
|
!!ELSE
|
||||||
IMPORTED_LOCATION_DEBUG \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\"
|
IMPORTED_LOCATION_DEBUG \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\"
|
||||||
!!ENDIF
|
!!ENDIF
|
||||||
@ -91,7 +89,7 @@ if (NOT TARGET Qt5::WinMain)
|
|||||||
set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
set_target_properties(Qt5::WinMain PROPERTIES
|
set_target_properties(Qt5::WinMain PROPERTIES
|
||||||
!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
|
!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
|
||||||
IMPORTED_LOCATION_RELEASE \"${_qt5_corelib_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\"
|
IMPORTED_LOCATION_RELEASE \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\"
|
||||||
!!ELSE
|
!!ELSE
|
||||||
IMPORTED_LOCATION_RELEASE \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\"
|
IMPORTED_LOCATION_RELEASE \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\"
|
||||||
!!ENDIF
|
!!ENDIF
|
||||||
|
@ -234,7 +234,7 @@ if (NOT CMAKE_VERSION VERSION_LESS 2.8.9)
|
|||||||
|
|
||||||
foreach(_module ${_qt5_modules})
|
foreach(_module ${_qt5_modules})
|
||||||
if (NOT Qt5${_module}_FOUND)
|
if (NOT Qt5${_module}_FOUND)
|
||||||
find_package(Qt5${_module} PATHS ${_qt5_corelib_install_prefix} NO_DEFAULT_PATH)
|
find_package(Qt5${_module} PATHS ${_qt5Core_install_prefix} NO_DEFAULT_PATH)
|
||||||
if (NOT Qt5${_module}_FOUND)
|
if (NOT Qt5${_module}_FOUND)
|
||||||
message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
|
message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
|
||||||
endif()
|
endif()
|
||||||
|
@ -54,7 +54,10 @@ HOST_BINS = $$[QT_HOST_BINS/raw]
|
|||||||
host_bins.name = host_bins
|
host_bins.name = host_bins
|
||||||
host_bins.variable = HOST_BINS
|
host_bins.variable = HOST_BINS
|
||||||
|
|
||||||
QMAKE_PKGCONFIG_VARIABLES += host_bins
|
qt_conf.name = qt_config
|
||||||
|
qt_conf.variable = QT_CONFIG
|
||||||
|
|
||||||
|
QMAKE_PKGCONFIG_VARIABLES += host_bins qt_conf
|
||||||
|
|
||||||
ctest_macros_file.input = $$PWD/Qt5CTestMacros.cmake
|
ctest_macros_file.input = $$PWD/Qt5CTestMacros.cmake
|
||||||
ctest_macros_file.output = $$DESTDIR/cmake/Qt5Core/Qt5CTestMacros.cmake
|
ctest_macros_file.output = $$DESTDIR/cmake/Qt5Core/Qt5CTestMacros.cmake
|
||||||
|
@ -2,22 +2,22 @@ include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
|
|||||||
|
|
||||||
project = QtCore
|
project = QtCore
|
||||||
description = Qt Core Reference Documentation
|
description = Qt Core Reference Documentation
|
||||||
url = http://qt-project.org/doc/qtcore
|
url = http://qt-project.org/doc/qt-$QT_VER/qtcore
|
||||||
version = 5.1.0
|
version = $QT_VERSION
|
||||||
|
|
||||||
examplesinstallpath = core
|
examplesinstallpath = core
|
||||||
|
|
||||||
qhp.projects = QtCore
|
qhp.projects = QtCore
|
||||||
|
|
||||||
qhp.QtCore.file = qtcore.qhp
|
qhp.QtCore.file = qtcore.qhp
|
||||||
qhp.QtCore.namespace = org.qt-project.qtcore.510
|
qhp.QtCore.namespace = org.qt-project.qtcore.$QT_VERSION_TAG
|
||||||
qhp.QtCore.virtualFolder = qtcore
|
qhp.QtCore.virtualFolder = qtcore
|
||||||
qhp.QtCore.indexTitle = Qt Core
|
qhp.QtCore.indexTitle = Qt Core
|
||||||
qhp.QtCore.indexRoot =
|
qhp.QtCore.indexRoot =
|
||||||
|
|
||||||
qhp.QtCore.filterAttributes = qtcore 5.1.0 qtrefdoc
|
qhp.QtCore.filterAttributes = qtcore $QT_VERSION qtrefdoc
|
||||||
qhp.QtCore.customFilters.Qt.name = QtCore 5.1.0
|
qhp.QtCore.customFilters.Qt.name = QtCore $QT_VERSION
|
||||||
qhp.QtCore.customFilters.Qt.filterAttributes = qtcore 5.1.0
|
qhp.QtCore.customFilters.Qt.filterAttributes = qtcore $QT_VERSION
|
||||||
qhp.QtCore.subprojects = classes
|
qhp.QtCore.subprojects = classes
|
||||||
qhp.QtCore.subprojects.classes.title = C++ Classes
|
qhp.QtCore.subprojects.classes.title = C++ Classes
|
||||||
qhp.QtCore.subprojects.classes.indexTitle = Qt Core C++ Classes
|
qhp.QtCore.subprojects.classes.indexTitle = Qt Core C++ Classes
|
||||||
@ -36,7 +36,6 @@ exampledirs += \
|
|||||||
../ \
|
../ \
|
||||||
snippets \
|
snippets \
|
||||||
../../../examples/threads/ \
|
../../../examples/threads/ \
|
||||||
../../../examples/tools/ \
|
../../../examples/tools/
|
||||||
../../../examples/widgets/
|
|
||||||
|
|
||||||
imagedirs += images
|
imagedirs += images
|
||||||
|
@ -535,7 +535,7 @@ CApaApplication *myApplicationFactory();
|
|||||||
|
|
||||||
|
|
||||||
//! [49]
|
//! [49]
|
||||||
void myMessageHandler(QtMsgType, const QMessageLogContext &, const char *);
|
void myMessageHandler(QtMsgType, const QMessageLogContext &, const QString &);
|
||||||
//! [49]
|
//! [49]
|
||||||
|
|
||||||
//! [50]
|
//! [50]
|
||||||
|
@ -45,7 +45,7 @@ QUrl url("http://www.example.com/List of holidays.xml");
|
|||||||
|
|
||||||
|
|
||||||
//! [1]
|
//! [1]
|
||||||
QUrl url = QUrl::fromEncoded("http://qt.nokia.com/List%20of%20holidays.xml");
|
QUrl url = QUrl::fromEncoded("http://qt-project.org/List%20of%20holidays.xml");
|
||||||
//! [1]
|
//! [1]
|
||||||
|
|
||||||
|
|
||||||
@ -73,10 +73,10 @@ http://www.example.com/cgi-bin/drawgraph.cgi?type(pie)color(green)
|
|||||||
|
|
||||||
|
|
||||||
//! [5]
|
//! [5]
|
||||||
QUrl baseUrl("http://qt.nokia.com/support");
|
QUrl baseUrl("http://qt.digia.com/Support/");
|
||||||
QUrl relativeUrl("../products/solutions");
|
QUrl relativeUrl("../Product/Library/");
|
||||||
qDebug(baseUrl.resolved(relativeUrl).toString());
|
qDebug(baseUrl.resolved(relativeUrl).toString());
|
||||||
// prints "http://qt.nokia.com/products/solutions"
|
// prints "http://qt.digia.com/Product/Library/"
|
||||||
//! [5]
|
//! [5]
|
||||||
|
|
||||||
|
|
||||||
|
@ -480,7 +480,8 @@ QObject::disconnect(lineEdit, &QLineEdit::textChanged,
|
|||||||
//! [48]
|
//! [48]
|
||||||
|
|
||||||
//! [49]
|
//! [49]
|
||||||
if (isSignalConnected(QMetaMethod::fromSignal(&MyObject::valueChanged))) {
|
static const QMetaMethod valueChangedSignal = QMetaMethod::fromSignal(&MyObject::valueChanged);
|
||||||
|
if (isSignalConnected(valueChangedSignal)) {
|
||||||
QByteArray data;
|
QByteArray data;
|
||||||
data = get_the_value(); // expensive operation
|
data = get_the_value(); // expensive operation
|
||||||
emit valueChanged(data);
|
emit valueChanged(data);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
** Copyright (C) 2013 Olivier Goffart <ogoffart@woboq.com>
|
||||||
** Contact: http://www.qt-project.org/legal
|
** Contact: http://www.qt-project.org/legal
|
||||||
**
|
**
|
||||||
** This file is part of the documentation of the Qt Toolkit.
|
** This file is part of the documentation of the Qt Toolkit.
|
||||||
@ -38,41 +38,68 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
//! [0]
|
#include <QtCore/QThread>
|
||||||
|
class MyObject;
|
||||||
|
|
||||||
|
//! [reimpl-run]
|
||||||
|
class WorkerThread : public QThread
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
void run() Q_DECL_OVERRIDE {
|
||||||
|
QString result;
|
||||||
|
/* expensive or blocking operation */
|
||||||
|
emit resultReady(result);
|
||||||
|
}
|
||||||
|
signals:
|
||||||
|
void resultReady(const QString &s);
|
||||||
|
};
|
||||||
|
|
||||||
|
void MyObject::startWorkInAThread()
|
||||||
|
{
|
||||||
|
WorkerThread *workerThread = new WorkerThread(this);
|
||||||
|
connect(workerThread, &WorkerThread::resultReady, this, &MyObject::handleResults);
|
||||||
|
connect(workerThread, &WorkerThread::finished, workerThread, &QObject::deleteLater);
|
||||||
|
workerThread->start();
|
||||||
|
}
|
||||||
|
//! [reimpl-run]
|
||||||
|
|
||||||
|
|
||||||
|
//! [worker]
|
||||||
class Worker : public QObject
|
class Worker : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
QThread workerThread;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void doWork() {
|
void doWork(const QString ¶meter) {
|
||||||
...
|
// ...
|
||||||
|
emit resultReady(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void resultReady(const QString &result);
|
||||||
};
|
};
|
||||||
|
|
||||||
void MyObject::putWorkerInAThread()
|
class Controller : public QObject
|
||||||
{
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
QThread workerThread;
|
||||||
|
public:
|
||||||
|
Controller() {
|
||||||
Worker *worker = new Worker;
|
Worker *worker = new Worker;
|
||||||
QThread *workerThread = new QThread(this);
|
worker->moveToThread(&workerThread);
|
||||||
|
connect(workerThread, &QThread::finished, worker, &QObject::deleteLater);
|
||||||
connect(workerThread, &QThread::started, worker, &Worker::doWork);
|
connect(this, &Controller::operate, worker, &Worker::doWork);
|
||||||
connect(workerThread, &QThread::finished, worker, &Worker::deleteLater);
|
connect(worker, &Worker::resultReady, this, &Controller::handleResults);
|
||||||
worker->moveToThread(workerThread);
|
workerThread.start();
|
||||||
|
|
||||||
// Starts an event loop, and emits workerThread->started()
|
|
||||||
workerThread->start();
|
|
||||||
}
|
|
||||||
//! [0]
|
|
||||||
|
|
||||||
//! [1]
|
|
||||||
class AdvancedThreadManager : public QThread
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
void run()
|
|
||||||
{
|
|
||||||
/* ... other code to initialize thread... */
|
|
||||||
|
|
||||||
// Begin event handling
|
|
||||||
exec();
|
|
||||||
}
|
}
|
||||||
|
~Controller() {
|
||||||
|
workerThread.quit();
|
||||||
|
workerThread.wait();
|
||||||
|
}
|
||||||
|
public slots:
|
||||||
|
void handleResults(const QString &);
|
||||||
|
signals:
|
||||||
|
void operate(const QString &);
|
||||||
};
|
};
|
||||||
//! [1]
|
//! [worker]
|
||||||
|
@ -258,7 +258,7 @@ if (url.startsWith("ftp:"))
|
|||||||
|
|
||||||
|
|
||||||
//! [26]
|
//! [26]
|
||||||
QByteArray url("http://qt.nokia.com/index.html");
|
QByteArray url("http://qt-project.org/doc/qt-5.0/qtdoc/index.html");
|
||||||
if (url.endsWith(".html"))
|
if (url.endsWith(".html"))
|
||||||
...
|
...
|
||||||
//! [26]
|
//! [26]
|
||||||
@ -286,16 +286,16 @@ QByteArray z = x.mid(5); // z == "pineapples"
|
|||||||
|
|
||||||
|
|
||||||
//! [30]
|
//! [30]
|
||||||
QByteArray x("Qt by NOKIA");
|
QByteArray x("Qt by DIGIA");
|
||||||
QByteArray y = x.toLower();
|
QByteArray y = x.toLower();
|
||||||
// y == "qt by nokia"
|
// y == "qt by digia"
|
||||||
//! [30]
|
//! [30]
|
||||||
|
|
||||||
|
|
||||||
//! [31]
|
//! [31]
|
||||||
QByteArray x("Qt by NOKIA");
|
QByteArray x("Qt by DIGIA");
|
||||||
QByteArray y = x.toUpper();
|
QByteArray y = x.toUpper();
|
||||||
// y == "QT BY NOKIA"
|
// y == "QT BY DIGIA"
|
||||||
//! [31]
|
//! [31]
|
||||||
|
|
||||||
|
|
||||||
|
@ -856,8 +856,8 @@ void Widget::toLongLongFunction()
|
|||||||
void Widget::toLowerFunction()
|
void Widget::toLowerFunction()
|
||||||
{
|
{
|
||||||
//! [75]
|
//! [75]
|
||||||
QString str = "Qt by NOKIA";
|
QString str = "The Qt PROJECT";
|
||||||
str = str.toLower(); // str == "qt by nokia"
|
str = str.toLower(); // str == "the qt project"
|
||||||
//! [75]
|
//! [75]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,8 +61,8 @@ int main(int argc, char *argv[])
|
|||||||
stream.writeAttribute("folded", "no");
|
stream.writeAttribute("folded", "no");
|
||||||
//! [write element]
|
//! [write element]
|
||||||
stream.writeStartElement("bookmark");
|
stream.writeStartElement("bookmark");
|
||||||
stream.writeAttribute("href", "http://qt.nokia.com/");
|
stream.writeAttribute("href", "http://qt-project.org/");
|
||||||
stream.writeTextElement("title", "Qt Home");
|
stream.writeTextElement("title", "Qt Project");
|
||||||
stream.writeEndElement(); // bookmark
|
stream.writeEndElement(); // bookmark
|
||||||
//! [write element]
|
//! [write element]
|
||||||
stream.writeEndElement(); // folder
|
stream.writeEndElement(); // folder
|
||||||
|
14
src/corelib/doc/snippets/resource-system/application.pro
Normal file
14
src/corelib/doc/snippets/resource-system/application.pro
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
QT += widgets
|
||||||
|
|
||||||
|
HEADERS = mainwindow.h
|
||||||
|
SOURCES = main.cpp \
|
||||||
|
mainwindow.cpp
|
||||||
|
#! [0]
|
||||||
|
RESOURCES = application.qrc
|
||||||
|
#! [0]
|
||||||
|
|
||||||
|
# install
|
||||||
|
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/mainwindows/application
|
||||||
|
INSTALLS += target
|
||||||
|
|
||||||
|
simulator: warning(This example might not fully work on Simulator platform)
|
10
src/corelib/doc/snippets/resource-system/application.qrc
Normal file
10
src/corelib/doc/snippets/resource-system/application.qrc
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<!DOCTYPE RCC><RCC version="1.0">
|
||||||
|
<qresource>
|
||||||
|
<file>images/copy.png</file>
|
||||||
|
<file>images/cut.png</file>
|
||||||
|
<file>images/new.png</file>
|
||||||
|
<file>images/open.png</file>
|
||||||
|
<file>images/paste.png</file>
|
||||||
|
<file>images/save.png</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user