On OpenBSD, the system compiler shipped is still gcc 4.2.1 but for proper
C++11 support in Qt, QtCreator and Qt-based projects we need to use
the compilers provided in ports/packages which have the binaries renamed
to eg++/egcc. Therefore, redefine the variables from g++-base.conf to
use the newer compilers.
Change-Id: Ic8ea1c5d2c2c0263dad5ae85c8c747bcd3985b7d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This was only used to specify XP as a target which is
not supported on 5.8 anymore. Clean up all associated
special handling in the mkspecs and pro files.
This effectively reverts change 10a0ac75.
Change-Id: I420d73002912989f1a5be961a2d09277ec4a4425
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
It's only used in one place, where it's actually not required either.
Change-Id: I5766d2b5f0c1083bbd58a9b9fb07cc67bbd46a94
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This is not a feature that should get propagated to other
configure runs, so simply hardcode support for it.
Change-Id: Ieb1c33243154b3583e91061d3592d7e87c36f402
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Detect host and target architecture from within qmake, and set
QT_ARCH accordingly.
Change-Id: I30255f88c7645d197bd07355a1dff02b377cbbe8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The regexp were capturing too greedy:
$$replace(c, "^--?(.*)", "\\1") changes --developer-build to
-developer-build. Do not accidentally capture the second dash.
Change-Id: I19586a1678fc3bf3f450ec31f5bd7e71e9514b34
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
NetBSD is heavily dependent on using rpath, so we need to add the
lib dir QMAKE_LIBDIR and QMAKE_LIBDIR_X11 to QMAKE_RPATHDIR
explicitly to avoid linker errors. See http://www.netbsd.org/docs/elf.html
for more info.
Change-Id: I225143d5e2d9a125060b14e3a8a7953927d63b33
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
10586 reflects Update 1, which is the mininum supported version for many
months, hence reflext this in the manifest template as well.
There are additional features (like drag and drop) which require and
even later SDK version. However, they do not reflect the minimum.
Change-Id: I6d71dc499c928ed98c8a25283e0b53994317bb00
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
qmake tries to use pkg-config when the config.test contains PKG_CONFIG,
which will of course fail without the sysrooted env vars. and unlike in
the old configure, these don't become automatically available by virtue
of the script simply exporting them.
longer-term, the test programs shouldn't mention pkg-config deps
explicitly, as these are redundant with what is specified in the JSON
file. relevant changes are already pending.
Task-number: QTBUG-54403
Change-Id: Ie9d3bbb2e4febffde5fd122d7d0a8b70b8679fcc
Reviewed-by: Liang Qi <liang.qi@qt.io>
don't have extra spaces in the pkg-config calls when no environment
variables are injected.
Change-Id: Ieb14f775b2a04726e8f62114b69d9be7fa662eb0
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
using the Makefile target separator to determine the host system is of
course not a terribly good idea. the correct variable to query would be
DIR_SEPARATOR, which always reflects the host. however, a direct os
query is less obscure in this case.
Task-number: QTBUG-54346
Change-Id: I6bc1372a7c9a84a241a97f9f767f046b026411c3
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
while the names of the compilers are actually an undocumented internal,
we don't provide an actually working proper way to sequence extra
compiler execution with build-time generated inputs when they are
indirectly listed (as via .qrc files).
Task-number: QTBUG-54299
Change-Id: I269c26512897b72706dc8b769aa47e8157c2a5c5
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This follows up ab599a3931, which did not
take installation into account.
Task-number: QTBUG-54036
Change-Id: Ic1b3acb8984255dd1ca1c288b7b150814ce9e606
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
... for a loooong time.
it was replaced by plugin_with_soname (which is unused so far).
Change-Id: Ifc377d155d6eac41e85f3a0914ed817d55b5648b
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
the tests would inherit MAKEFLAGS, with somewhat predicatble results.
Change-Id: Ia17638f6229d0ae86f5558726850040703d90044
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
libGLES2 (the only user of these libraries) is built dynamically even in
a static qt built when dynamicgl is configured. in this case the static
libraries need not be installed.
amends 2311997.
Change-Id: Ic9bc3937d6ee0d97e0ca7fc96596fa90ebfe8710
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Add x86-64 and aarch64le QNX platforms. These platforms will be
available in QNX 7.0.
Change-Id: Iba1f635ba45fddf1a1caf907415a23a510ba0818
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Command line arguments, configure tests and features are now
defined in a json file and a configure.pri containing some
custom functions.
qmake uses the json file to determine command line arguments,
tests and features to be executed at configuration time.
A new qt_configure.prf contains all the infrastructure to parse
the command line, run the configure tests, determine the set of
available features and create a report about it.
Change-Id: If30ac089dd3e9f8c67ebd642bde10cfa960893bb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
And blacklisted a few tests in tst_QUdpSocket.
Conflicts:
src/android/jar/src/org/qtproject/qt5/android/QtNative.java
src/corelib/global/qglobal.cpp
src/corelib/global/qsystemdetection.h
src/corelib/io/qfileselector.cpp
src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp
tests/auto/network/socket/qudpsocket/BLACKLIST
Task-number: QTBUG-54205
Change-Id: I11dd1c90186eb1b847d45be87a26041f61d89ef6
don't add framework directories (including the respective marker!).
this is consistent with the unix configure code.
Change-Id: I2e187057bc3fe2b35128cd5dc2af57b9f3685d83
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
iphonesimulator_and_iphoneos was renamed to simulator_and_device in 5.7.
Task-number: QTBUG-54163
Change-Id: If4a76f45450edc0f6e8fb3615355613212314300
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
If macx is present, osx AND macos should be required.
Change-Id: I5cd9d41270c741dc314720a1119b163dd17fdfd7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
As common bsd's are using the -ffunction-sections flags from
mkspecs/common/gcc-base.conf, also use the --gc-sections ld flags
like Linux as all are using GNU ld as their linker and all are
capable of using it. The last remaining problems with --gc-sections
removing the .name sections providing the OS tags for distinction of
the execution layer were solved with NetBSD 6.0 and OpenBSD 5.4, see
http://gnats.netbsd.org/40401 and http://www.openbsd.org/plus54.html
so this option can safely be used now to reduce the size of moc and rcc
tools.
Change-Id: I74ccd4f6bc607f6d82d32fc864875f26b26bf167
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
- Adapt to the OS X => macOS rename in Q_OS_ macros/docs, qmake scopes,
file selectors, etc.
- Add new QSysInfo values and MAC_OS_X / __MAC_ / __IPHONE_ values for
macOS 10.12 and iOS 9.1 through 10.0.
- Update prettyProductName with new macOS "Sierra" codename.
Change-Id: Id976530beeafa01b648ebaa16f4a8f0613fcaf75
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Add the strip commands for installation commonly used also on BSD
systems.
Change-Id: I4113ffa559a737ef92afb7c90ab5e1bff902b1bb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
So that it actually compiles with gcc-linaro-arm-linux-gnueabihf-raspbian.
Remove also flags a device spec should not set (like -std and -O).
Change-Id: Ib7a3bc298e60715410d5c00fbc22199ab4711fa7
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
The rpi3 spec added previously is only half of the story now that we
have the option to use another GL driver.
Change-Id: I1b1edde77bcc6d2f382f1021de9c594c27c34d6f
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
BSD OS mkspecs share mainly the same configurations except very few
differences. Merge into a common/bsd/bsd.conf file to be used across all BSD
OSes in their respective qmake.conf and add a qplatformdefs.h that contain
the common defines to be re-used in the BSD mkspecs.
The change includes the usage of <sys/param.h> also on NetBSD through the
common qplatformdefs.h, which is intended for using NetBSD's version defines.
Change-Id: Ibb0ac9e4c8bb5aff7d0febdcab1a4b9600a61117
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
the assumption stated in b67a0836d is actually invalid - configure sets
build_all without debug_and_release there. debug_and_release does
actually imply build_all, though.
to make things less confusing, don't let configure inject
iphonesimulator_and_iphoneos into all projects, but handle it like
debug_and_release instead.
Change-Id: Ib7acdc63308a538862fc603428f81aba60bca08e
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
OpenBSD made the switch from a.out to ELF with release 3.4, published
2003, see http://www.openbsd.org/34.html. In preparation to cleaning
up the mkspecs for OpenBSD, remove the a.out defines as only recent
versions of OpenBSD (5.8 onward) will be supported.
NetBSD switched from a.out to ELF file format with release 1.5, see
https://www.netbsd.org/releases/formal-1.5/NetBSD-1.5.html in the year
2000.
Remove the defines for older a.out systems now as we are at release 7.0
and only 6.0 onwards releases are currently supported anyway.
While cleaning up, remove the old comments for QT_SOCKLEN_T values of
outdated OpenBSD and NetBSD releases as well.
Change-Id: I8519eab7bcd4af19c0e9f628657878f32b2bd602
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The qplatformdefs.h for OpenBSD included an undefine of
_POSIX_THREAD_SAFE_FUNCTIONS because of (at the time) missing
implementations of the required _r() functions. After checking these
functions http://www.unix.org/whitepapers/reentrant.html
against the OpenBSD man pages http://man.openbsd.org/OpenBSD-4.4/cat3/getpwuid_r.0
they are all complete with OpenBSD 4.4 released in 2008. As
OpenBSD only supports the current and the last release before (5.8 and
5.9 now), it is safe to assume that this undefine can go away now
for sure.
Change-Id: I341bcae77d1bd7249ac3fdeaefce9c5eb595eca7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The freebsd-g++46 mkspec was intended to specifically use gcc 4.6 from
FreeBSD ports collection. However, the ports collection moves its
"standard" gcc version and uses symlinks to the standard commands
(e.g. gcc -> gcc48) on installing gcc. The current gcc in ports is
4.8.5, so the mkspec is not useful at all.
Change-Id: I041325d05c7dc3f47f4a774d6f46ba24a601bf3e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
On FreeBSD, the gcc manpages until Release 5.1 mentioned using
the -D_THREAD_SAFE define when using -pthread. This has been obsoleted
and the gcc manpages from Release 5.2 onwards have this removed.
Now we finally remove this historic relic here, too.
Change-Id: I00a5b688c56f46b938c0806fb44b72d5afe5079e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
By using commmon/gcc-base-unix.conf and common/g++-unix.conf most of
the contents of the qmake.conf for OpenBSD can go. The QMAKE_LFLAGS_UNDEF
are reset because the linker can't handle environ in libraries, which is
only added to libc in OpenBSD 6 (http://www.openbsd.org/faq/current.html)
even when explicitly adding -lc to QMAKE_LIBS.
See
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151102/309783.html
for similar questions on using -Wl,-z,defs instead.
Change-Id: I6c725fb3bc7ae63270912b07f230a480c9157dfd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
By using common/gcc-base-unix.conf and common/g++-unix.conf most of the
mkspec details can go, leaving us with a minimized qmake.conf.
Change the default X11 location to point to /usr/X11R7 after NetBSD
switched to X.org in Release 5.0 by default.
Also change the default location for addon software on NetBSD, it uses
pkgsrc as its ports system which installs to /usr/pkg by default (the
default value for $LOCALBASE of pkgsrc on NetBSD), see
https://www.netbsd.org/docs/pkgsrc/using.html chapter 4.1.
These default values mirror the current state of NetBSD usage to get
the prerequisites to compile Qt with a minimum amount of configure
parameters.
Tested with NetBSD 7.0 using gcc 4.8.4-nb2 (system compiler)
Change-Id: Ic50757af9f070c0383c7356302e7e7686f031740
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This allows external integrations to be developed against it.
Also uniforms all class names as QEglFSFoo.
Change-Id: I72ff37c0fcdf1ccd37110b4c36874d6c99b2e743
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
This option hasn't done anything for quite some time, let's
get rid of it.
Change-Id: Ic6f2830aaf69ba2d054ce21f0d144a61ddf5d06b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
LIBGCC_PATH was used before we initialized it, somehow it magically worked ...
Change-Id: I0a9a748ffbfc641f60736b0cf85d23f499b64e66
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This fixes a long-standing issue for Qt packages, where the
paths detected at configure time do not necessarily match the
paths on the user's machine. Hence they have been stripped
manually from qconfig.pri so far, preventing moc from resolving
some includes.
The same logic in configure is left alone for the time being,
since the paths there are also used to filter paths returned
by pg_config and mysql_config. I expect that this will
eventually be removed too in a bigger refactoring going on
right now in dev.
Asking the compiler for implicit paths only works for non-msvc
builds - that is, gcc, clang and icc fortunately have a
compatible way to retrieve the paths. MSVC works
solely on environment variables, which will be taken into
account by a separate patch.
[ChangeLog][qmake] The implicit compiler directories that
moc needs for resolving include files are now determined
when qmake runs. So far QMAKE_DEFAULT_INCDIR was determined
at configure time, which might be wrong for relocated
installations.
Task-number: QTBUG-52687
Change-Id: If0706e8c56a5aca2b6e777e79e90342c498726f3
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Add -lexecinfo for backtrace(3) on NetBSD and OpenBSD. Without,
qlogging.cpp linking will result in undefined references to backtrace
and backtrace_symbols. The behavior required is identical to FreeBSD so
no additional fixes are required (see src/corelib/global/global.pri:41)
Change-Id: I3cfd1d75f1fb5b8505c08a880f91e7b39a5a650d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
FreeBSD 9.3 is still supported and uses gcc as the default
compiler, therefore FreeBSD ports require patching the mkspecs
back. To avoid patching, move the mkspecs back to the right
place and adapt the path in the qmake.conf/qplatformdefs.h
[ChangeLog][FreeBSD] The freebsd-g++ mkspec was moved back and no
longer requires the "unsupported/" prefix, matching the FreeBSD
ports tree, as FreeBSD 9.3 still defaults to using GCC. Users of
GCC that did not previously use the ports patch will need to adapt their
build scripts and drop the "unsupported/" prefix.
Change-Id: Ideda4a33cccf5381000f6f50b6ae92a5c24ba9d4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Having the debug info in separate files is very helpful, especially on
memory constrained 32bit systems. When the debug info is compiled into
the object files, processes can run out of memory when trying to load
them.
Change-Id: I1808a32e855d6a62e17e1b734c511b31db5f03f1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The freebsd-icc mkspec was intended to be used with the Intel
compiler, which nowadays is still only available in version
8.1.038 (https://www.freshports.org/lang/icc/) and for i386 only
while the current version is around 17. On FreeBSD the port
was actually never supported by Intel anyway.
Change-Id: I03b1939be63eef4363bd6b074a6b739365f495ac
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
LIBS_PRIVATE is more correct (these shouldn't be part of the public API),
and additionally, using LIBS_PRIVATE also ensures these libraries come last
on the link command, which fixes builds using -Wl,--as-needed.
Change-Id: I9f2e4e78855a30a53ce9013623597b840a2832bd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
While previous SDKs used the form "CE_SDK (CE_ARCH)" in their
configuration/platform names, this is not true fo the Toradex SDK.
Inside Visual Studio the platform is only called "Toradex_CE800"
instead of "Toradex_CE800 (ARMV7)".
In order not to break other SDKs CE_PLATFORMNAME is introduced and
used in the wince80colibri-armv7-msvc2012 mkspec. If the variable
is set qmake uses it as the platform name in its vcproj generator.
Change-Id: Icb501bf6446a9f617745a0d2c7a80b240680b043
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
so far, each module had to do it in its .qmake.conf. by now, all modules
have been adjusted to the expected structure, so we can enable it
centrally.
Change-Id: I16b4e7581e51bfc54e71d2f7f852858ae0b47281
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Other popular specs have this as well.
Change-Id: I44245f37857d476b9ee53ecad021261b94214b2f
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Louai Al-Khanji <louai.al-khanji@qt.io>
Pass -xplatform macx-tvos-clang to configure to build.
Builds device and simulator by default.
Added ‘uikit’ platform with the common setup.
Also added QT_PLATFORM_UIKIT define (undocumented).
qmake config defines tvos (but not ios).
tvOS is 64bits only (QT_ARCH is arm64) and requires bitcode to be
embedded in the binary. A new ‘bitcode’ configuration was added.
For ReleaseDevice builds (which get archived and push to the store),
bitcode is actually embedded (-fembed-bitcode passed to clang). For all
other configurations, only using bitcode markers to keep file size
down (-fembed-bitcode-marker).
Build disables Widgets in qtbase, and qtscript (unsupported,
would require fixes to JavaScriptCore source code).
Qpa same as on iOS but disables device orientation, status bar, clipboard,
menus, dialogs which are not supported on tvOS.
Change-Id: I645804fd933be0befddeeb43095a74d2c178b2ba
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
don't pretend that these two flags can be set separately - the
configures set them in tandem.
Change-Id: Ib0beae0152de09026d4627fd3ae0feabd9ce1b81
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
When compiling on Windows to for example Android, we may be using the unix
generator, but the make command may be mingw32-make.
Task-number: QTBUG-53038
Change-Id: If8d1e1bea733cf1b4ed837c423a34ecfb3cafd1f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
We don't know why it works, but we've been told that it fixes
some builds and we have no reason to think it will break others.
Task-number: QTBUG-52998
Change-Id: Iacaa1fb3c49e4d7aafd4167e591ff3724489872e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
our zlib header includes qglobal.h, so we need the qtcore include dirs,
and qtcore is also where the actual code is compiled into.
Change-Id: I09f530a1b4e6160438215a6d7223c0771ce94f05
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Right now there are no iMX7 SOCs available with OpenGL capable GPUs
so the mkspec is very basic.
Change-Id: Ia5c83eea72c4d436c774b2955ccd71f2256bfd6b
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
- moved prf files to shared location (uikit, added to QMAKE_PLATFORM)
- prepare some formatting (unconditional blocks mostly) to add conditions later
- make device detection script more generic, passing filter strings
as a parameter and returning non-os specific variables
Change-Id: I61f2b77093304ff985bec9da04fda57ff296b16b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
this makes it fully consistent with INSTALLS.
note that this also removes the file name from the target path when
copying files, also for consistency.
Change-Id: I69042c9aa1e2cc81f8ff982343ba25688a04abfd
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
- QMAKE_FILE_IN_EXT as an alias for QMAKE_FILE_EXT, for consistency with
QMAKE_FILE_IN_BASE
- QMAKE_FILE_IN_NAME to make pairing _EXT/_BASE to get a full name
unnecessary (finally ...), and make use of it
- QMAKE_FILE_OUT_PATH, because i'll need it
Change-Id: I3d91ddb84f9cce52a665d562da11d165c92550c8
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
newer versions of qt creator understand QMAKE_EXTRA_COMPILERS and
INSTALLS, so there is no need to list the files twice.
Change-Id: Iccf3cc3248daf3422b8c366c2eb2d2f46c5f08d1
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
the host compiler's version is not determined, so we cannot make any
assumptions about its capabilities.
Task-number: QTBUG-53017
Change-Id: I939fd7402b5daac73f2195b9d8763b9008bc7ea4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Rolf Eike Beer <eb@emlix.com>
Under Windows, the default paths are not correctly set, hence it's
necessary to explicitly set this.
Change-Id: I9779485115a93bdaf6eb6be87293ca921746bae7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
this adds file_copies.prf, which understands the variable COPIES, which
works analogously to INSTALLS.
i've been holding this off for a long time, as it is not without
caveats. however, similar hacks are proliferating all over the code
base, so it's time we formalized it.
in fact, it's the easiest way to fix some nasty shadow build problems,
which is why i'm adding this on the stable branch.
Task-number: QTBUG-52256
Change-Id: Icbe3b9fbb79c952546aad2d467a438d3a69d749f
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Use non-os specific target names in Makefiles (device as opposed to
iphoneos, simulator as opposed to iphonesimulator)
Change-Id: Ic8441c09a0e9a254e43f31b678025f16e9a1c440
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Qt Creator uses e.g. CONFIG+=iphoneos to make the default build target
be device. Now that the exclusive build is named simulator_and_device
to support e.g. tvOS, we need to handle the old CONFIG names for
backwards compatibility.
Task-number: QTBUG-52970
Change-Id: I0f864bebf11e657eb4225a182753037205f450b8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
To allow reusing the logic which detects the appropriate
Android SDK version to use for building the Java code,
this is now separated into its own .prf file. This is
required by Qt Purchasing to avoid duplicating the logic
there.
Change-Id: Ief5f5e70dab79751ef9e5a9c4a019bfda686cd09
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This makes the -separate-debug-info configure optional functional, which
generates dSYM debug info bundles for Qt libraries on Apple platforms.
Task-number: QTBUG-37952
Done-with: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Change-Id: Ia247674740bf450130a15db926df07fa9007e2ca
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
it doesn't appear to be referenced in any way, either.
Change-Id: Ifd30b435e3e628cd5e48ae24e9aef01c662d6d61
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Incidentally, this introduces QMAKE_RESOLVED_BUNDLE, which can be used
to determine the path of the bundle wrapper itself as well as the
executable target.
This is necessary for a subsequent patch adding support for
-separate-debug-info on Apple platforms.
Change-Id: Ia11430026b8e3f171e5db6677b190b8356832805
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
To make custom builds of Qt possible, we no longer require
the minimum SDK platform to be present on the system.
Instead we will look for any version higher than the
minimum requirement if the minimum is not available.
If the minimum required platform is available, then it
will still be preferred.
Change-Id: I3e804af89aba36e27a7da1e46a25c0c5798aeaf2
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
We should really start using -L=/foo and -I=/foo inside of sysroots,
this test was preventing us from doing so (while arguably buying us
nothing).
Change-Id: If6e67631c585493871231e5d8a9354fa72e07343
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
this flag specifies that the plugin does not track a qt module. this is
entirely unrelated to whether the plugin should be versioned.
amends f54a3d783.
Change-Id: Ibd3e9bedf488dc58e6354ccf7dd33d974e5f52c2
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
According to the Qt 5.6.0 change log, OS X 10.7 is to be REMOVED as a
supported platform in Qt 5.7.
Change-Id: I53313fd34d42757dd35a28cd227fc0dda3389932
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
So far no capabilities (but internetClient for Windows 10) were added by
default, which forced developers to always manually edit the
WINRT_MANIFEST.capabilities(_device) property.
This allowed to leave out non-required capabilities and keep the created
manifest clean, examples being microphone for multimedia.
However, this also breaks first user experience as deeper knowledge
about this topic is required. Furthermore this is inconsistent with
other platforms like Android, where all capabilities are set by default
and developers need to edit the manifest manually in any case.
With this change, modules can define the capability set to enable all
features in the module. If developers want to disable some again, they
need to adapt the generated manifest. From our experience this needs to
be done in any case, latest at publishing stage when the store
manipulates the manifest.
Task-number: QTBUG-38802
Change-Id: I6d522268ee0afbfa00a30dbdd5e6ec9f415bebf3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Cleaning out the workarounds for the discontinued "Embedded Android"
platform of Boot2Qt.
Change-Id: I0ff9d770e82a43457fb7e5da0428f4597ead4038
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Describe the platforms better because right now the only difference
is the "pro" tag which is easy to miss.
Change-Id: Ia3e31ed97799bf7f8b76ee3d0bb95c7ded7692db
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
The platform header defines geteuid(), which is necessary for the SQLite
library. The common platform header is also modified to handle being
included from C, and resolves a typo on the way.
Change-Id: I8ace8a11ceac0f541b9c9b0d8112609579224884
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Using Visual Studio a user very seldom wants to disable the automatic
invocation of windeployqt. Hence switch from opt-in behavior to opt-out.
This also fixes first user experience to invoke qmake –tp vc and then
hit run on examples.
[ChangeLog][Platform Specific Changes][qmake] qmake-generated Visual
Studio projects now automatically invoke windeployqt by default.
Task-number: QTBUG-52008
Change-Id: Iee1607269c38c7f6c726f554978ac05477bebe5e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The plugin builds as a static plugin.
It is based on the Linuxfb plugin.
It uses the INTEGRITY FB API for framebuffer for display, and HID API
for input (mouse, keyboard, touch).
Because this is the only supported plugin and requires to be included
as a static plugin, automatically add the platform to any application
through qmake.conf.
Change-Id: Ic228afb59cb39dd02c2d538de46caf6e6ea7d153
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Adapt the mkspec which was forgotten in change
b0ec05f27b.
Task-number: QTBUG-48431
Task-number: QTBUG-51686
Change-Id: Ie95e650de8b7a7027979ec637fb77c7f0357a598
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Targets (xplatform) include integrity-armv7 and integrity-x86.
[ChangeLog][Platform Specific Changes] Added support for INTEGRITY RTOS.
Change-Id: If7827791e0a977ff198cb99e9dcc684a010bbb81
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
it's likely that these will be wrong, and the bootstrapped tools usually
don't need them anyway. should they turn out necessary after all, we
need to add -H* variants of the flags.
Change-Id: I15c54c5e25d20ebd474073a530f00254842f515d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
it is important that the flags coming from the current qt build appear
first, as otherwise a pre-existing qt installation may interfere with
the build.
the windows configure does not have any of this magic to start with.
Task-number: QTBUG-6351
Change-Id: Iacc1d9b5aa9eed9a5f0513baef9f6c6ffcef0735
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
unlike speculated in 2fe363514, this is not a workaround at all: it
causes that libraries' public link interfaces (LIBS) are exported in the
first place. unlike with staticlib, this does not export LIBS_PRIVATE,
so it wouldn't even be a particularly effective workaround for rpath
brokenness anyway.
the problem was pretty well hidden by the qt module system, which at the
level of libraries is pretty redundant with the .prl file handling,
which shows just how stupid the whole "design" is.
unlike before, we now enable explicitlib for all libraries, not just qt
modules - we enable create_prl for all of them as well, after all.
an immediate effect of this change is that it fixes linking on RaspPI:
the qtcore headers make the user code require linking libatomic, so we
must add it to our public link interface.
Task-number: QTBUG-51621
Change-Id: I5742c88694db8e8a9b79d17222dc6df2b38e5ab2
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
This test was the old way of checking whether to enable
c++11 functionality. That is now anyway required, so there
is no need for this test anymore.
Change-Id: I083e85a4698cac6bd9b573525c7b977f63e14113
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
This change partially reverts 1bfc7f68 about QT_HAS_BUILTIN define
and undef in src/corelib/tools/qsimd_p.h.
This change is also squashed with "Fall back to c++11 standard
compiler flag for host builds" which is done by Peter Seiderer.
Conflicts:
mkspecs/features/default_post.prf
src/3rdparty/sqlite/0001-Fixing-the-SQLite3-build-for-WEC2013-again.patch
src/3rdparty/sqlite/sqlite3.c
src/corelib/tools/qsimd_p.h
src/gui/kernel/qevent.cpp
src/gui/kernel/qwindowsysteminterface.cpp
src/gui/kernel/qwindowsysteminterface_p.h
src/plugins/bearer/blackberry/blackberry.pro
src/plugins/platforms/cocoa/qcocoasystemsettings.mm
src/plugins/platformthemes/gtk2/gtk2.pro
src/plugins/styles/bb10style/bb10style.pro
src/sql/drivers/sqlite2/qsql_sqlite2.cpp
tools/configure/configureapp.cpp
Task-number: QTBUG-51644
Done-with: Peter Seiderer <ps.report@gmx.net>
Change-Id: I6100d6ace31b2e8d41a95f0b5d5ebf8f1fd88b44
The platform has been removed in Qt 5.7.
Change-Id: Ie768b5ffbe60270c27b4a670dcf580ea361cb361
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Despite the very similar name and hardware, the software stack is
completely different compared to the Jetson TK1 Pro we already have
a mkspec for.
Change-Id: I45353ece195035e961ff47df55d6361569aabb04
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
There is no test for c++ standard support for the host build
(only for the target compiler/build) which leads to trouble
in some cross compiling environments (old host compiler, new
cross compiler):
g++: error: unrecognized command line option ‘-std=c++1z’
So disable c++ standard compiler flags unconditionally for host builds.
Task-number: QTBUG-51644
Change-Id: Ifb3042e125fe199a7e081740d1171d26ccacf0c5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
this is necessary for:
- generating -rpath-link arguments when link_prl is not used. link_prl
is enabled by default, so this has no effect on most projects.
- deployment purposes, which is hypothetical as of now.
Change-Id: I9e629f3eef93c4edf12efc016ecc27dbe2186d61
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This header defines "interface" which will break compilation of dbus.
Change-Id: I16fa35f822adca14304aa827b047358409d4a150
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Testcases and benchmarks are rather different entities. You won't usually want
to run benchmarks in the same environment you are wanting to run tests in,
so this feature allows to differentiate between the two.
We also add a "benchmark" make target (similar to check), which runs all
configured benchmarks.
Change-Id: I33759ce44c34e42a6a3a88f34e7b9c4372380721
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
turns out we need forwarding .pris in this case: without them,
QT_MODULE_INCLUDE_BASE points into the build dir, so we fail to find the
pre-generated headers.
an alternative would be writing primary module .pris which already take
that into account, but that would just add even more arcane code paths.
Task-number: QTBUG-51521
Change-Id: I59f2a0d3f2095c9dfa0a8d1cabfc007a30bd2d23
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
`ar' tool from latest binutils shows warning:
ar error: `u' modifier ignored since `D' is the default (see `U')
Warning message includes word "error" so QtCreator processes it as
error in UI.
`ar' command-line option `u' might be dropped safely because it is
unnecessary. Option `c' is added to suppress extra `ar' warnings.
Other build systems are also affected. For example, automake:
https://bugzilla.redhat.com/1155273
Change-Id: Ia378b720503d93b0c0c12ae7a5f38f4d7c32eee5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This solves an issue where header only modules in a simulator build with
frameworks on Apple platforms would result in a module like
"QtZlib_iphonesimulator.framework" being created. This patch removes
the "_iphonesimulator" infix from the name.
Change-Id: I60e818042d776cc6ac430413ccea1be1a1a1e48b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The win32-g++ mkspec is not based on gcc-base, so
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO is not inherited. Therefore,
-release -force-debug-info would build with neither -O2 nor -g.
Change-Id: I4e97cb08f577062dd342fb3e91c02adfd636a310
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
instead of unsetting the flag later on, don't set it in the first place.
Change-Id: Id448500b02b5c3e1dc7c332cc178a84c7fd2cfdc
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
this has multiple consequences:
- we do sane DESTDIR replacement for debug_and_release builds, fixing
QTBUG-47313
- we don't create debug/release subdirectories, fixing QTBUG-47639. this
only makes sense given the complementary call of $$qt5LibraryTarget()
- we patch up the .prl files upon installation
Task-number: QTBUG-47313
Task-number: QTBUG-47639
Change-Id: Id409bbd26781a773409b94835ab6b97e71569322
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This also reverts commit 018e670a26.
The change was introduced in 5.6. After the refactoring, 14960f52,
in 5.7 branch and a merge, it is not needed any more.
Conflicts:
.qmake.conf
src/corelib/io/qstandardpaths_mac.mm
src/corelib/tools/qsharedpointer_impl.h
tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp
Change-Id: If4fdff0ebf2b9b5df9f9db93ea0022d5ee3da2a4
This fixes a regression introduced in
9daeb6fe9d.
Change-Id: I3100b307bb65c90bdc023be4993afaea666e409d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This amends ade8e0fc9b, which missed this
file.
Task-number: QTBUG-32896
Change-Id: I39ef0969c0224349eda4ed82cae3e3b7753fe29f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
This reverts commit c4ecb81d6d.
Hard-coding the library suffix into the linker flags was wrong. The
library suffix is handled at runtime with DYLD_IMAGE_SUFFIX, set
as part of the Xcode scheme or during debugging in .lldbinit.
Change-Id: I11907b2755f7f187fb6fa18202813fde9ada4354
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Preparation for Apple tvOS support, which shares a lot with the iOS
platform.
Change-Id: I543d936b9973a60139889da2a3d4948914e9c2b2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This adds the functionality to build Qt with clang under Windows against
the Microsoft Visual Studio 2015 runtime.
In order to replicate this, a Clang 3.8 build with Visual Studio 2015
Update 1 is needed.
Adds compiler detection to Qt to distinguish correctly the clang compiler
and Windows with Visual Studio.
Clang has some built-in numeric functions, there is no need to use the
Microsoft versions, which also conflict here.
Task-number: QTBUG-50804
Change-Id: Ia4b267a298310ac7d73edf473b12792991249d8a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
This is necessary for combined device and simulator builds on Apple
platforms (iOS, tvOS, watchOS) to link properly.
Change-Id: I21e70806643b10f429945d3020995dc94fa5c612
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Modern FreeBSD doesn't come with GCC by default anymore and doesn't even
provide the "gcc" or "g++" falback that OS X does. So there's no point
in keeping the freebsd-clang mkspec in unsupported/ since it's the only
one that works, or keeping the freebsd-g++* ones outside, as they won't
compile.
I'm not removing the GCC mkspecs because you can still install GCC from
the ports tree.
[ChangeLog][FreeBSD] The "freebsd-clang" mkspec is no longer in the
unsupported/ subdir. If you have scripts you use to build Qt, you'll need to
update them to say -platform freebsd-clang or remove the -platform argument.
Change-Id: I7a9e11d7b64a4cc78e24ffff142dfc11d3aabb1e
Reviewed-by: Raphael Kubo da Costa <rakuco@FreeBSD.org>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The feature is enabled by CONFIG += unsupported/objc_namespace,
but can be easily integrated into other build systems such as
CMake or native Xcode by modifying the LD and LDFLAGS equivalent
for each build system.
This is a less resource-intensive alternative to using multiple
Qt builds with different -qtnamespace settings.
Note: The feature is not supported in any way, and should be
used with care.
Change-Id: Ibb8ba1159db36efd7106c117cc2210c7e2e24784
Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Which is basically same as the Jetson K1 Pro, with SDK and compiler
options adjusted.
Change-Id: Ic0aa8144aad12e832ae440212f6a06f52668415d
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
10240 describes the first official non-preview Windows 10 SDK. 10586 was
the SDK for the first November update.
Change-Id: Ieb61b944295946eab594b3c7bf234155a67b752e
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
This allows users to add mobile specific features. Also it implicitly
enables support for continuum on Windows 10 Mobile.
Change-Id: I965123722f46df6e84fd279c3bfce478c1172632
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Not that we require it, but since The Qt Company did it for all files
they have copyright, even if they haven't touched the file in years
(especially not in 2016), I'm doing the same.
Change-Id: I7a9e11d7b64a4cc78e24ffff142b4c9d53039846
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Commit 6e6f27b6 made it possible to set the PKG_CONFIG variable using
CROSS_COMPILE as a prefix. The problem with that solution is that it makes
pkgConfigExecutable() skip the environment setup for pkg-config as well,
as it expects the pre-set command to be self-contained - which it isn't.
To avoid this problem we need to store the pkg-config define in the
device spec in a separate variable.
Change-Id: Id8ae7fb03d9253be55840e23fe73b30815ee86c3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see
http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/
Updated license headers to use new LGPL header instead of LGPL21 one
(in those files which will be under LGPL v3)
Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
most module project files define two logical modules: a public one and
the corresponding private one. these are really separate modules as far
as qmake is concerned (even though the private one contains just
headers), and consequently have separate dependencies - QT and
QT_FOR_PRIVATE.
as public modules cannot depend on private ones, all private
dependencies would have to go to QT_FOR_PRIVATE, and a dependency on the
respective public module would have to be added to QT. this would be a
bit tedious, so we have a convenience feature which allows putting
private dependencies into QT, but automatically "downgrades" them to
their public counterpart when creating the public module's .pri file.
however, we failed to put verbatim versions of these private
dependencies into the private modules, which meant that these
dependencies were not pulled in transitively by the private modules'
users.
note that this entirely unrelated to QT_PRIVATE - this one defines the
private (non-propagated) dependencies of the module's implementation,
i.e., the libraries (and headers) that are not part of the link
interface. there is no QT_PRIVATE_FOR_PRIVATE, because there is
obviously no point in assigning the dependencies to a particular
logical submodule when neither one inherits them as far as the qt
module system is concerned.
Change-Id: Ib056b47dde3341ef9a52ffff13efaf8ef8e6817b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
save the actual library/framework name and framework paths in the .pri
file instead of computing them again at use time in qt.prf.
qt_no_framework_direct_includes inherently requires a use-time decision,
so this ugliness remains.
Change-Id: I09b2775e7d8e1d52e3af0d663e1babde10ae4814
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Without this, any test executable requiring a plugin path from
the environment's QT_PLUGIN_PATH will fail to run since the path is
overwritten when generating the 'make check' command, for example:
QT_PLUGIN_PATH=/path/to/qt/plugins \
LD_LIBRARY_PATH=/path/to/qt/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} \
./test_foo
A prepend config option is used for *PATH to preserve the envvar
value, so use the same option for QT_PLUGIN_PATH. The command above
then becomes:
QT_PLUGIN_PATH=/path/to/qt/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} \
LD_LIBRARY_PATH=/path/to/qt/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} \
./test_foo
Change-Id: I69b43327974915eae52f299fc4001effe93a491a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
one reason to do that is some users' persistence in destroying their
non-prefix builds by trying an installation.
another reason is the fact that qt.pro's relative_qt_rpath is triggered
by the presence of an install rule for the target, which is of course
not helpful when the install dir is bogus.
Task-number: QTBUG-48406
Change-Id: I75f3940be79fcb5b86e34b975b789692423c92cb
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
the main objective was to fix the bootstrap modules in framework builds.
bootstrapped modules which "borrow" headers from "proper" modules can
specify this in a clean way now.
a side effect of this is that the bootstrap-dbus module now has its own
syncqt call.
most includepath-related setup from qt_module_pris.prf was moved to
qt_module_headers.prf.
Change-Id: Ie0d8192cfac1a8cdae0ddd0bc0cd8c3092b1e85b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
It only needs stdin now, instead of stdin plus a separate file containing
a list of file names.
Change-Id: I9f3db030001e47e4a4e5ffff1425b76884cc7ca0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
qtAddToolEnv() (via qtPrepareTool()) does not write the tool wrapper
scripts during build passes, while qt_docs.prf (which calls it for qdoc
and qhelpgenerator) was loaded only during build passes. the consequence
was that the makefiles tried calling non-existent scripts.
amends 5418d77a1, sort of.
Change-Id: I64ab573495ca339be4c7b5e8c6848b298b6cb605
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
now that we don't create .pc files for private modules any more, the
conditionals cannot be nested.
amends 6c5d227da, partially reverting aa20e7f9d.
Task-number: QTBUG-49763
Change-Id: I2578c83e0c767b6533abdb26bf4e8bcc8c416ef1
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
judging by the history, this was only ever a workaround for poor rpath
handling. we're supposed to be over that.
Change-Id: I85601493a05a76ead999e707a2d2e9a430610981
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
proper prefix builds don't have the redundant .dlls in bin (the copy
step is simply omitted), so this is broken. the change would have to be
done atomically with making DLLDESTDIR sane.
This reverts commit 9b2e98245a.
Task-number: QTBUG-50065
Change-Id: I9ce0a2d1147a1a2d4bd2f22e619d5c737864a637
Reviewed-by: Romain Pokrzywka <romain.pokrzywka@gmail.com>
Reviewed-by: Tim Blechmann <tim@klingt.org>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
this is just an optimization/clarification: variables which are known to
be never empty (like PATH) can be extended with less convoluted code.
Change-Id: Ib365bbec8301673ed1c874979b4de19bc983dab1
Reviewed-by: Romain Pokrzywka <romain.pokrzywka@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
the primary purpose is making env var prepend mode work for unset
variables on windows. this is achieved by using a conditional and delayed
variable expansion. however, the latter is disabled by default and can
be locally enabled only in batch files. therefore, write wrapper scripts
and substitute them for the actual commands. we do this also on unix,
both for consistency and simply because the commands look much less
confusing.
this change is slightly backwards-incompatible, as invoking
qtAddToolEnv() multiple times on the same command will now make a total
mess. also, invoking it on a command that contains 'make' macro
expansions isn't a good idea, so testcase.prf needed an adjustment. the
function is an undocumented internal, so Nobody Should Care (TM).
this also reverts 80ebedecf9, as it's obsolete now.
Change-Id: I8394b77868b495abcf27b688996ca74c40b80994
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
That API has been available for WinRT and Windows
Phone for some time now. By using it to get the
machine name and for hostname resolution we can get
rid of some winrt-only code and use qhostinfo_win.cpp
on WinRT and Windows phone as well.
Additionally the required capability was added to
tst_qhostinfo so that this auto test can be run without
any manual editing.
Change-Id: I63fa5521bf8cdb0c919bd5a0100ea977c865622a
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
CMP0054 changes CMake behavior wrt. interpreting quoted arguments in
if() statements. This change ensures that CMP0054 dev warnings are
never emitted no matter how polluted the environment, e.g. even
if the variable ${5.5.1} is defined and no matter whether CMP0054
is set to OLD, NEW or undefined.
Change-Id: Iee008497b333e2db23fb1adbf8b02252314ffa8a
Reviewed-by: Kevin Funk <kfunk@kde.org>
Reviewed-by: Stephen Kelly <steveire@gmail.com>
Recent versions of Qt have apparently added sufficient numbers of
headers that the command lines used to spawn a custom header-
parsing tool, started overflowing Windows' maximum command-line
length.
This change restructures the mechanism to use a GCC-style command-
line arguments file rather than passing filenames all directly
in the argv[] vector.
Although QNX is the usual ELF target whose cross-build is supported
on Windows, the mechanics introduced in this patch happen to affect
all other ELF Unix systems' builds too.
Change-Id: I5a7383cf9f2ebf9dffde8dbfdcdeca888265e085
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
the variable is later re-used by qtPrepareTool(), so the tools used to
build the tool would get excess variables passed.
Change-Id: Ib1bdd2211b4a8615e2be9ba0310822f373f5efb0
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
qtPrepareTool() does it anyway, so this saves repeated manipulations.
for now, this is just nicer, but soon it will be a requirement.
Change-Id: I5184e0e4597c6d5a4d7dd4cc4d81e7f742a79fc8
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
QFINDTESTDATA is already prepared to find it there.
Change-Id: I467392786ce6bcfbf1bd0b6079f60c9df06834b1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
A minimal device spec that can be used to build for arm devices.
Change-Id: I4c9949d8cc59ad534fc7617034f6beb40d6a987e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
If CROSS_COMPILE is set on a Debian multiarch platform, then PKG_CONFIG
should be set the same way as the other cross compilation tools.
Change-Id: Id359a6bbdcbf8a136a0268a82301fc086a2adcfe
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The qt_poll function calls recv to query whether fds marked by select
as readable should be marked POLLIN or POLLHUP in the pollfd structure.
On many platforms such as QNX this requires extra link-time libraries
which were not previously required by QtCore.
While the qt_poll function is intended as a fallback mechanism only for
those platforms which do not implement poll natively, the function was
compiled unconditionally whenever QT_BUILD_INTERNAL was defined, e.g.
in developer builds.
Additionally the function was included on those systems that define poll
in system headers so that configure determines build-time availability,
but do not define _POSIX_POLL > 0 or indicate POSIX:2008 compliance via
either the _POSIX_VERSION or _XOPEN_VERSION macros. On those systems a
sysconf query for _SC_POLL was performed to determine at runtime whether
to call the system poll or qt_poll.
Both of these cases are in fact counterproductive. In the first case the
sole consumer of the function is a single manual unit test. In the
second, to my knowledge no platform requires the runtime fallback.
Despite that, we were forcing an extra dylib in both cases.
Both cases are fixed by 1) moving the implementation into its own file
for the unit test to include and 2) dropping the dynamic fallback if
configure determines availability of poll at compile-time.
This also reverts commit 1377709711, which
added -lsocket for QtCore on QNX.
Change-Id: I2dd10695c5d4cac81b68d2c2558797f3cdabc153
Reviewed-by: James McDonnell <jmcdonnell@qnx.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
That implies we need to differentiate between a variable set but empty
and an empty variable. GCC, Clang and the Intel compiler accept -msse2
on 64-bit builds without warning (they also accept -mno-sse2), but the
Microsoft compiler does not have that option.
Change-Id: I54233388ba10994996ae3e749fd829085e8fd7b7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This should help improve the cleanliness of our source code, including
compliance with the C++ standards. They apply to all of our code except
examples (they don't load qt_common.prf).
Change-Id: Ia0aac2f09e9245339951ffff13c94663c1901766
Reviewed-by: David Faure <david.faure@kdab.com>
no idea why it was limited to linux. the variable is already empty on
platforms which don't support it anyway. also, for plugins, it's
consistently enforced as well.
Change-Id: I117f4988a2e301ca98cdc088188d6f8c44ea0ba5
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
qt5 qmake is perfectly capable of complex expressions on the LHS.
Change-Id: Ibf8c82a4aa1a419895c6012610269e1cc9ca93ab
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Whenever a qml plugin is made static, the qmldir and other related
files need to be compiled into the resources, so they can be found
in the import path. By using qrc:/qt-project.org/imports, we can
have this taken care of automatically for us via the build system,
leaving us to just ensure that it is initialized in the code.
Task-number: QTBUG-35754
Change-Id: Ifa7e2a66fd78dc6713dd7a8661ea2c155b174d35
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This is needed to be able to use Qt (with dynamic ANGLE) in a plugin
while the host runs a different version of Qt (and ANGLE).
In addition to changing the LIBEGL_NAME and LIBGLESV2_NAME variables
you also need to update the value of the LIBRARY definition in the
.def files for ANGLE:
qtbase/src/3rdparty/angle/src/libGLESv2/libGLESv2[d?].def
qtbase/src/3rdparty/angle/src/libGLESv2/libEGL[d?].def
Task-number: QTBUG-48431
Change-Id: Idd00d039ba3e20cc0ec7496bee36ed1c90383b0d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
[ChangeLog][Platform Specific Changes][OS X] Configure with -no-rpath
will now yield Qt dynamic libraries and frameworks with an absolute
install name (based in -libdir).
OS X package managers like Homebrew install Qt in a fixed location. This
change simplifies deployment for such package managers and is consistent
with the default expectation on Apple platforms for libraries with a
fixed location to also have absolute install names.
While a relocatable installation (the default) also works in this
scenario, it requires all software that depends on Qt to be aware of
this and to embed a suitable RPATH into application binaries (which is
not automatic for non-qmake builds). This might not be true for some
select fallback search locations, but as package managers on OS X tend
not to use those, embedding an RPATH becomes practically mandatory. In a
default Homebrew installation, Qt is configured such that the frameworks
end up in /usr/local/Cellar/qt5/<version>/lib and that will be later
symlinked to /usr/local/opt/qt5/lib, both of which are not searched by
the dynamic linker by default.
Task-number: QTBUG-48958
Change-Id: I4395df98771e06a2ce8a293d11dc755bdc50757f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Visual Studio version specific changes have been added to msvc-
desktop.conf which is not used in WinRT or Windows Phone related builds.
Hence take a similar approach to gcc and introduce msvc-base to be used
by all configurations for common settings.
For WinRT this will only be applied to msvc2015 and later on to not
introduce any regressions or behavior changes for previous versions.
Change-Id: Ib1a4d539d46d788470c00cb5969fee74a803bd67
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
don't install the module .pri file into qtbase even when doing a
non-prefix build.
this has no effect on modules built as part of a top-level build, as
they announce themselves via .qmake.super anyway.
however, modules built separately become unavailable unless QMAKEPATH
or QMAKEMODULES is set. this is deemed not relevant by the original
audience of this feature (the qtwebkit team).
Change-Id: I14c170b2c5dbb99608939aef1a541563d5b755d9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
longer term, the redundant .dlls from the libdir will hopefully
disappear. short term, this is a workaround for CI brokenness.
Change-Id: Ia30173355f3aca222d4ca40e7a38c2cf535bbc03
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
The xcodebuild tool only supports the install action for devices, not
for the iOS simulator platform.
Change-Id: I47e8bb7d44962bd4a433a314fa9d315ed3683ca6
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
The files are automatically generated, so that's where they
belong. This makes a small cosmetic difference when generating
Xcode projects, since then the files will be grouped under
a different folder in the project explorer, separate from user
sources.
Change-Id: Ic2599ccb3008635e76ae467eec80f2b9e5ca838e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
The platform is no longer supported or actively maintained, and is
in the way for improvements to the Unix event dispatcher and QProcess
implementations.
Change-Id: I3935488ca12e2139ea5f46068d7665a453e20526
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
qt_framework and {app,lib}_bundle imply darwin, so there is no point in
testing for it.
Change-Id: I9fe48c26c8e271a5575b17e92df8674d3c3a3204
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
CONFIG+=qt_framework is actually put into qconfig.pri, so it's always
set in framework builds. things (sometimes) worked only by virtue of the
qt_framework checks being in "else" branches of "static" checks. use
lib_bundle instead, which triggers the actual framework build anyway.
amends b72d1db44.
Change-Id: Ib725c43476d9fb38bad940ce09905d29ff3edfa3
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
While all apps need to have internetClient as a capability, the option
to provide further capabilities via qmake has been removed in the
template.
Instead we add the required items inside the prf and keep the manifest
template as generic as possible.
Task-number: QTBUG-49504
Change-Id: If26b9da277a5269a57b34e74c146b40b1b64d091
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
frameworks are currently broken anyway, and we don't create .pc files
for the private part of public modules, so creating them for entirely
private modules is just inconsistent.
Change-Id: I98da8def73d72ac69b9b246687dce6b1fd150f61
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
the projects which use full mode with the named modules have them.
Change-Id: I3b9383d1cc2b43411c25690a5e35e7e84a55aa23
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
the check whether a module depends on itself should be done by the code
which *builds* modules, not which *uses* them.
the check whether a plugin tries to use itself seems kinda pointless in
the first place, so just remove it.
Change-Id: I89b357dae7d7979d131b6824f197e7088047272f
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
that way other modules can use the headers without hacks.
this required making the base directory for paths in headers.pri
configurable in syncqt.
Change-Id: Id35cfe05bcf4c576d3f2d0d8d09590a5e23d21d3
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
there is nothing to link with it anyway.
Change-Id: I2e942d24bb39855b3682f3e8d85cb6abca75cb61
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
instead of building host tools always in debug mode, follow the overall
build type, and provide an option to override it.
this supersedes the pre-existing -optimized-qmake option.
however, that option never existed in the windows configure, and this
legacy continues as far as qmake is concerned (msvc builds of qmake are
always somewhat optimized, but not mingw builds).
Change-Id: I42e7ef1a481840699a8dffff13fec2626af19cc6
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Between the very latest images linking against kernel32.lib has been
forbidden. This is completely undocumented and only throws a "dependent
dll not found" error.
Instead we should link against OneCore for msvc2015, which can be used
for Windows 10 Desktop and Mobile.
Task-number: QTBUG-49349
Change-Id: I21d32a92dfd41548ca563d3e56c623a0cb297588
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
the statement order was wrong since c23a086e - we can't use
MODULE_DEPENDS before we define it.
but actually use a bigger cannon and partially revert the patch, to
include .depends unconditionally again. the idea is that this should
override a possibly included other .pri file from a previous
build/install. (the same argument would sort of apply to .envvars as
well, but we assume that its presence won't vary between builds.)
Change-Id: I95e9743e367a3d1f45d603d1bb5b31c4875f39a2
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Raspbian/Debian require a toolchain with the multiarch patches so we
need to add deb-multi-arch to the DISTRO_OPTS variable for pkgconfig to
work correctly. The Raspberry Pi 1 mkspec has this already and can be
used to build Qt for both versions of the Pi, but the Raspberry Pi 2
mkspec is missing this, and would not be usable in its current state for
building for Raspbian/Debian which is the most popular distro for the
Raspberry Pi.
Change-Id: I6a7a08059f9f91da524b5f51e0697115ef684f30
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
This separation makes it possible to make a
canadian cross build of Qt on a linux build machine.
The canadian cross build requires an external Qt that
runs on the build system.
Change-Id: Ifd83a4c6376d3299647e74bb349a3452a6f433fc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Somehow qmake doesn't add the correct rules for the Android makefiles,
so the build fails when cross-compiling from Windows. The reason for
that is unknown (could be related to that "qt_android_deps" config, but
that isn't used anywhere in qmake or the buildsystem).
This isn't likely to be a problem, since there are no global installs of
Qt on Android.
Change-Id: I1d0f78915b5942aab07cffff140f95ce32324030
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
qgltf is a tool provided by the Qt3D module that enables 3D assets to
be defined in qmake project files, and have them converted to an
efficient binary format at build time. The qmake feature will convert
all 3D assets specified by the QT3D_MODELS variable to the qgltf
format and add the new model asset to the project as a Qt resource
file.
Change-Id: If7250d6f23a06254b1ed0e408057723763aad8c8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This way, it's possible to tell which applications and libraries depend
on the Qt private API and of which Qt library. Linux distributions can
use this information to decide which applications need to be recompiled
every time Qt itself is rebuilt.
This is done by scanning all class and struct definitions in the private
headers (we've already got the list from syncqt). I opted to add a new
script instead of modifying syncqt because then this can run in parallel
with the rest of the compilation, as opposed to during qmake
time. Another advantage is that it catches modifications to the headers
in between qmake executions.
Since this is already Unix specific, it should be no problem to use Perl.
This solution is limited to use of non-inline symbols of classes
declared in private headers. It will not catch free variables (such as
qsimd_p.h's qt_cpu_features), use of inlined functions or just plain use
of a class/struct for accessing its data members. However, this is
already better than nothing and should help Linux distributions quite a
lot. And there's no way to catch the latter issue anyway.
Change-Id: I049a653beeb5454c9539ffff13e3fff36400ebbd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>