Remove the -cmake-makefiles configure argument as its meaning was in
essence "do not pass a -G argument to CMake".
Instead, we add the following arguments:
-cmake-generator <name> to pass -G <name> to CMake
-cmake-use-default-generator to pass no -G argument to CMake
If none of those arguments is given, we try to autodetect the
generator. If a ninja executable is found, we prefer the Ninja
generator. On Unix we fall back to "Unix Makefiles".
On Windows, we do a poor man's compiler detection and select one of
"NMake Makefiles", "NMake Makefiles JOM" and "MinGW Makefiles".
Change-Id: Ic36669bd50956d15fbc71cee73720732cd4bfab8
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
The configure scripts need to translate configure options to CMake
arguments. It is not sensible to implement this translation twice, in
sh and Windows batch language, so we're doing this once, in CMake
language.
The configure scripts write their options into config.opt and call a
CMake script that reads config.opt, does the translation to CMake
arguments and calls CMake to generate the build system.
While we're at it, implement some more translations than the sh
configure provided, like -extprefix, -top-level and -skip.
Fixes: QTBUG-85349
Fixes: QTBUG-85350
Task-number: QTBUG-85373
Change-Id: Ida5d8b2a3c178b9349d41ec76d190c69a9456e74
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
It is only used by default on Windows, but can be enabled by setting
QMAKE_LINK_OBJECT_MAX.
The current file name is .project_name.
Use a sensible file name on this case.
Change-Id: Ic250d024e5feca739027c79a6e285d616234c4ea
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
It was added in 2011 and has not seen any development since, and was
never included in the build system.
The OpenWFD use-case is covered by EGLFS, which has a dedicated
OpenWFD backend.
Change-Id: Id08c505e2d869a96255163cae2ede51b9efeb73f
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
When the default format has letter and word spacing set then these
should be exported in the HTML's body tag. This also adds support
for the reading of letter-spacing and word-spacing set too, so that
the same html outputted can be read back in.
Fixes: QTBUG-83718
Change-Id: Ic4afca21eb05efb779dbf99c6b3c13373e851f15
Pick-to: 5.15
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
CFURLStringByAddingXXX was deprecated, so we use QUrl combined
with existing QString-based converters (from/to CFStringRef).
Pick-to: 5.15
Task-number: QTBUG-83992
Change-Id: I6f1a3fdafa9532bb7816a1262169df3421169cb7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
The original expression seems to have been accidentally
changed during the port.
Amends a1947aeffe.
Change-Id: I87821e1e025621a5efaf7a1e4f946fd3109fb256
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
The test runner re-runs failing tests up to 5 times. We did not do this
for the CMake build, and now we're getting lots of flaky tests failing.
Fix this by passing the -repeat until-pass:5 parameter to ctest.
Change-Id: I6ff3c1e7901bc22cafec87b15d087eab2a565c65
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This property tells what part of the virtual desktop the input device
can access.
This is not a one-to-one mapping with a QScreen, because a Wacom tablet
might be configured to access a whole desktop, a whole screen, or an
area corresponding to the drawing area of one window; a mouse normally
can access the whole desktop (so QScreen::virtualGeometry() would be
identical to QInputDevice::availableVirtualGeometry()); a touchscreen
normally is mapped to one screen but could be mapped differently; etc.
It's possible to find the intersection of the rectangular area with the
screen(s) that it overlaps, though.
Task-number: QTBUG-78839
Change-Id: I9040e20fb5a3dec8a9a0dd827735826c4c1eea38
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
The APIs will be reintroduced as part of the new platform interface
API where appropriate.
Clients that still depend on the platform headers can include it
via QT += platformheaders-private.
Change-Id: Ifbd836d833d19f3cf48cd4f933d7fe754c06d2d9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This improves the readability and avoids code duplication
in tst_Collections::forwardDeclared. Also some warnings
are fixed:
* qSort is deprecated.
* The = operator for LargeStatic needs to be implemented
explicitly when a copy constructor is given.
* QMap::insertMulti is deprecated, a MultiMap is required.
Task-number: QTBUG-82978
Change-Id: I577f851394edfaa30154bd3417ce391635cc546d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Properly use the new QStringConverter API and not an internal
qFromUtfEncoded method that was buggy after the changes.
Take the oppportunity to clean up and remove qFromUtfEncoded, as
QClipboard was its only user.
Fixes: QTBUG-85417
Change-Id: I8540d12056bf3f448c1f628ce0bd0ad462a6447d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
This change is motivated by the comment from bc087db59:
Qt 6: remove everything except QSpontaneKeyEvent::setSpontaneous()
Task-number: QTBUG-82978
Change-Id: I5f46ca366c193c06235f88022ec22c6848fbb7b0
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Change some too-generic file names.
Task-number: QTBUG-83255
Change-Id: I4497ee2508bc323566f4061d4547707b7bda7a77
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Interface libraries like our Qt header modules should not propagated
private defines which are meant only for building a specific Qt
module, and in the case of a header module there is nothing to build.
Exclude the usual private defines we set in qt_add_module for header
modules. This also fixes the content of header module .pri files.
Change-Id: I0791ebdb73e8b020ddb8116433ed36c7b3d71303
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Task-number: QTBUG-83255
Change-Id: Ia1c6a49af6be4aaa6b988537c38db3a2c0a646a5
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Amends dcdfb6908d which failed to take the
workaround in destroy_current_thread_data into account.
Since pthread_getspecific was completely replaced with the thread_local variable
currentThreadData, the workaround has no effect anymore. Therefore we need to
replace it with a workaround that makes sure currentThreadData is set inside of
the destructor function.
This prevents a leak, where QThreadPrivate::finish() tries to access the
thread data, but since it already is null, recreates it without ever deleting it.
Pick-to: 5.15
Change-Id: I3811d262a411a6bde9d6eb90f8d17e0bbc5de657
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Put bit fields together, and generally order by size to maximize the
compiler's ability to pack data. Initialize in declaration where
possible.
Change-Id: I49d4a3d2271229d671aeaf3eb17e6b7ecdc5099e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
This change only happens to files touched
by the commit to add missing ; to Q_UNUSED.
Task-number: QTBUG-82978
Change-Id: I10e6993a2bb3952cf9a262708b8573550e0dbe63
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Any failing tests in CMake configurations will now prevent
integrations to go through in the qtbase repository.
Task-number: QTBUG-84886
Change-Id: I8c963cb2540a29a9c8702acd3d282da82fb521e7
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Create a new test instructions yaml template that does not ignore the
exit code of running tests. This template can be included by
repositories where tests pass in all configurations tested by the CI.
The template should be included in module_config.yaml via
Test:
- !include "{{qt/qtbase}}/coin_module_test_template_v3.yaml"
This allows us to opt into enforcing test runs per repository,
rather than waiting to fix all tests in all qt5.git repositories.
Implementation notes
Try to extract the common parts of the instructions as much as
possible to avoid duplication. Unfortunately some duplication still
remains due to the restricted yaml language supported by Coin.
Add a short README.md file that describes the differences between the
existing templates.
The v2 non-enforcing test template should probably be removed in
the future.
Task-number: QTBUG-84886
Task-number: QTBUG-85364
Change-Id: I718fc3cb44d6aefdbebc2fd2088a910a8095a375
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
The macOS platform plugin function toCarbonModifiers is based on a
mapping table with already swapped modifiers, where Qt::MetaModifier
maps to controlKey.
We were using the Carbon fooKeyBit constants instead of the fooKey
constants, so the logic for mapping from Qt to Carbon modifiers
when AA_MacDontSwapCtrlAndMeta was set to true would fail to reverse
the swap from the mapping table.
Since the command and control modifiers rarely produce different
unicode characters from the base keyboard layout, at least not in
the tested key layouts, and the AA_MacDontSwapCtrlAndMeta is not
commonly used, this bug was not that visible.
The logic maintains the behavior of mapping a single Qt modifier
to multiple Carbon modifiers (both left and right command e.g.).
This is a bit weird, but existing behavior that should be looked
at in a followup.
Change-Id: I8b30854770d1230a47f5144bf3245d0ac1493b51
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Also add a ; where it is missing.
Task-number: QTBUG-82978
Change-Id: Ic5d2a07363c25ab641d234baca89bc62238458cb
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
There was duplicated code in QWindowsMouseHandler::ensureTouchDevice() and
QWindowsPointerHandler::ensureTouchDevice() which caused deprecation
warnings since the setters of QInputDevice were deprecated.
Join the 2 functions into a single creation function and add simple getters
and setters.
Fix deprecation warnings:
qwindowscontext.cpp:357:108: warning: 'void
QPointingDevice::setCapabilities(QInputDevice::Capabilities)' is deprecated: Use the constructor
qwindowsmousehandler.cpp:132:97: warning: 'void QPointingDevice::setType(QInputDevice::DeviceType)' is deprecated: Use the constructor
qwindowsmousehandler.cpp:136:41: warning: 'void QPointingDevice::setCapabilities(QInputDevice::Capabilities)' is deprecated: Use the constructor
qwindowsmousehandler.cpp:137:49: warning: 'void QPointingDevice::setMaximumTouchPoints(int)' is deprecated: Use the constructor
Change-Id: Iab5385e84d600e45b60f38225175f25ef043c3eb
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Get rid of call to QGuiApplication::mouseButtons
Task-number: QTBUG-73829
Change-Id: I7cc706b5e037c68ecf3c778b824ae8c93e5cfe38
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Gets rid of calls to QGuiApplication::keyboardModifiers. Need to handle
key and mouse events, since the spin buttons may be clicked on without
the spinbox having focus.
Task-number: QTBUG-73829
Change-Id: I455c42987f19bb5b7997dc8d61272863d7bc394e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
QT_WILL_INSTALL was set to ON, because an incorrect comparison was
done.
Amends 062318feb2
Change-Id: I201aa2a183563ce05077c36ac2ba3bd61cc827c0
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Gets rid of a call to QApplication::keyboardModifiers, at the expense
of some more bytes in QPlainTextEditPrivate.
Task-number: QTBUG-73829
Change-Id: I0394cb773034e832cffe5fa643ac308493f815b4
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>