Instead of collecting all files from the "fonts" directory to deploy
them to the phone, we only collect files which are mentioned in the
FONTS variable. Otherwise fonts that were copied to the fonts directory
earlier (due to FONTS being unset (default fonts) or set to another set
of fonts) will also be deployed as part of the project.
Change-Id: I24c77e154a9f2ec75e88d487c056b0be46e17e87
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
On Android, there's a limitation set on the names of the libraries
you deploy that they must start with "lib" and end with ".so", so
Android apps will link against and deploy with the unversioned
libQt5FooBar.so libraries. When cross-compiling on Windows however,
due to the lack of symbolic links, the only installed library
used to be the main library target "libQt5FooBar.so.X.Y.Z" (for
version X.Y.Z.) This has been worked around in packaging, but
breaks building add-on modules on top of Qt, and is clearly
wrong.
This patch introduces a new "unversioned_libname" configuration
in qmake which is currently only supported for the Unix makefile
generator and only enabled for Android builds. When it is enabled,
only the unversioned library "libQt5FooBar.so" will be created.
Task-number: QTBUG-38347
Change-Id: Ia8897ca7a23a62e2a526d0e02854899b02eb19dc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
they have been fully superseded by 4255ba40ab.
Change-Id: If7ac14c8b7d3cf00fb0cb916036b62eb86c9cee0
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
It has been fully obsoleted by 4255ba40ab.
This reverts commit 99eecab83d.
Change-Id: Id7b8d3bba27ff43e38e4fe32a4f2950de9ced493
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
neither .prl nor .la files even contain include paths.
in .pc files, we assign the final path to start with, so there is
nothing to replace, either.
Change-Id: I919dfa01e0a1d0ef8ef1220174de1d33c66cedf9
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Enabling check target to run test apps in iPhone simulator.
Task-number: QTBUG-36639
Change-Id: I700d998fe9f1a6c910431789e98e4789d820f3e4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
If D_FLAG_FILTER is set, duplicate name entries are filtered out, so
this flag has to be set along with D_FLAG_STAT in the call to dircntl.
Also releaved dependencies between defines__EXT_QNX__READDIR_R,
__EXT_QNX__READDIR64_R and _POSIX_THREAD_SAFE_FUNCTIONS
Task-number: QTBUG-38189
Change-Id: I4e620cb9967e3d1baf6f2109a7c83703702f805b
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
The default is still DWARF instead of DWARF with dSYM for static builds
of Qt, so that debug builds of the final application don't take forever
to build due to generating the dSYM file.
Change-Id: I370d800d7c959e05c1a8780c4ebf58fff250daa1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
instead of assigning plugins to the first module which claims the whole
type, try to assign it to a module which the plugin claims to extend.
as we are getting stricter in that go, somebody needs to claim the
'generic', 'platformthemes', and 'platforminputcontexts' plugin types.
the natural claimant is QtGui. however, as we don't want to auto-link
any of these plugins, make them all claim that they extend a
non-existing module.
QtGui also claims 'iconengines' plugins.
the 'printsupport' plugins are also claimed by the respective module.
Change-Id: I7af7c16089f137b8d4a4ed93d1577bd85815c87b
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
this means creating forwarding pris also for plugins.
unlike for qt modules, we don't actually populate the .PATH unless it we
are making a prefix build (and thus expecting it to be outside the
regular location).
Change-Id: Id836821cddec8d5f53d0708ae001e8eaa13cc71b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
the plugins already declare which modules they belong to.
additionally, we allow plugins to declare which modules they "extend" -
e.g., while the Quick accessibility plugin belongs to Gui's 'accessiblity'
type, it makes no sense to link it unless Quick is actually linked.
finally, it is possible to manually override the plugins which are linked
for a particular type, by setting QTPLUGIN.<type> (to '-' if no plugins
of this type should be linked at all).
Task-number: QTBUG-35195
Change-Id: I8273d167a046eb3f3c1c584dc6e3798212a2fa31
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
The current SDP uses CPUVARDIR variable to define whether x86 or
armle-v7 is used. Therefore, the whole structure uses these two
definitions to separate simulator and device builds. Renaming
qnx-armv7le-qcc to qnx-armle-v7-qcc allows to directly use CPUVARDIR
during Qt5 builds. For compatibility reasons the old folder is kept
and includes the new qmake.conf.
This change is similar to fe61f2d6b2
where we already aligned the BB10 mkspecs to the NDK structure.
Change-Id: I7e1c0c2d137dc4049549233940e7f9d1c9f671f0
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
To enable windows xp support, we must do two things:
1. linker flag must be /SUBSYSTEM:CONSOLE,5.01 or
/SUBSYSTEM:WINDOWS,5.01. For x64, the version is 5.02.
2. Do not use Windows Kit 8. Win SDK v7.1A is recommended. Prepend the
right include paths and lib paths to INCLUDE and LIB before
building.
The Windows XP target support is enabled by passing "-target xp" to
configure.
Task-number: QTBUG-29939
Change-Id: I84c8439606cc2a9d27d64947702846faa4f1e4a2
Reviewed-by: Lucas Wang <wbsecg1@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This is the right configuration of the platform within the mkspecs.
It enables the usage of additional features like the automatic
detection of platform specific prf files.
Change-Id: I2f19265d283e47c62455128f217bc44ba88cdc98
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
WinRT distinguishes between regular capabilities and device
capabilities. For now the latter section are location, microphone,
proximity and webcam. Hence we must add those properly to the generated
manifest.
However, Windows Phone currently combines all of these into the
Capability section, so add a warning if someone uses devicecapabilities
for Windows Phone.
Task-number: QTBUG-37932
Change-Id: I8e9550f29b6afdea3737cc85bdc68344fc04223d
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
For Visual Studio we can add the fonts we want to deploy to the
project file by using the DEPLOYMENT variable.
Change-Id: Ifc87a12a2bb4ec4ff1c0a8dc8f0b1fbf37e4e513
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
This define causes source incompatibilities in QML applications, as it
results in removal of properties from e.g. MouseArea. The default (null)
cursor implementation which will now be active should cause negligible
overhead with this define removed.
Change-Id: I8ee78e084cb95b4c73782a3a831f0672ba230b19
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
We no longer require this library, so remove it from the linker list.
Change-Id: Ic211f8f6d954eddce8818807619962ad009be117
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
This will enable qmake and its users to make decisions based
on the Visual Studio version without guessing it from the
mkspec's name.
Change-Id: I1bb46161111b109c2b4302bfc8c428b5f63c32d9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
clearly, this was a poor man's implementation of -force-debug-info.
Change-Id: Ib5c7e390bd0e3a6912af8c4027074a114ed33f8a
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Visual Studio does not like empty dependencies block in manifest XML.
At least my Visual Studio 2013 fails to open visual manifest editor for
XML containing the following block:
<Dependencies>
</Dependencies>
If the block is removed or if the block has one or more PackageDependency
entries the editor accepts it.
Moved the <Dependencies> block to prf, so that it is only written when
project really has dependencies. Also <Capabilities> block is moved to prf
for consistency. On Windows Phone, where the <Capabilities> block is
required, it is kept in the output even if it is empty.
Change-Id: I531180d0081e4612f75be54f3813831857f1ed43
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
qmlimportscanner is run as a $$system command (as opposed
to as a makefile command) so specify it as such to
qtPrepareTool and run it as such too.
The distinction is important for MinGW-w64 static
builds where it must be run via cmd.exe and not sh.exe.
Change-Id: I0832d5138bff7f4fa1968646df28d2367ad062c2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
The 4.8 compiler in the Android NDK sometimes produces uncompilable
code for armv5. In change b4252802b3
we reintroduced thumb instructions on armv5 with a work-around for
a particular case of this bug. However, the compiler now breaks
for Qt Script. There's no time to try to find a work-around for
this case, so we need to disable thumb again. It actually also
seems that this is completely broken with this compiler, so it would
probably be best to keep this disabled until the compiler is fixed.
Especially since armv5 will become part of the CI builds now, so the
compiler bug can end up blocking critical changes in the future if it's
re-enabled :/
Task-number: QTBUG-37376
Change-Id: I9e1b050ce596717ba1fa7ec2f5e8a3ce3581a3af
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
testcase.prf cannot be loaded from pro file for various reasons,
see qtbase commit history for details.
Moved runtime testdata logic from pro file to testdata.prf, and
thus made is reusable in other test cases as well.
Change-Id: I500d08dc4951e4eda862071e4ddd3e0f6de8c3d2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
In case of a SUBDIR qmake project, it tried to cd into a directory
that did not exist yet. I needed to run qmake twice to get it working.
This fixes it.
Change-Id: I6d322e9a7c96a9d82df77b9ba5f19711a8180ed0
Task-number: QTBUG-37429
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
QMake always places makefiles, including vcproj files, to OUT_PWD.
BUILD_DIR i.e. QMAKE_RESOLVED_TARGET refers to location where target
is generated. If TARGET is specified in pro file with path, such as:
TARGET = ../../debug/tst_qlocale
The QMAKE_RESOLVED_TARGET refers to that path, and it differs from OUT_PWD.
Because Visual Studio requires a design-mode manifest in the same location
as the vcproj, resolved BUILD_DIR separately based on TEMPLATE.
Change-Id: I8dbaa862a5f53ac168f4643c17baabd7b4f0287d
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Since there was no extension specified for static libraries then it
would end up not being able to build Qt at all.
Change-Id: Iec9040640ba399544b86df27e370fcf23cabb4de
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
It may be much faster through the CI system that way.
Change-Id: Ib5e3a438bd2ac98dd0a3806cedba152f25e219d5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
If one doesn't set CONFIG+=neon in it's mkspec but the compiler enables
it, Qt fails during linking of libQtGui,
because simd.prf isn't executed as needed (doesn't run into neon{..}).
Although a mkspec which enabled neon (-mfpu=neon) without CONFIG+=neon
could be considered broken,
it's still simpler to just 'fix' Qt to not fail unexpected.
Follow-up to e5066a3a2e
Task-number: QTBUG-37264
Change-Id: I3aa0afbe430547971e76c2c988697c133d69796b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This patch adds a new config option to qmake to enable full optimization
where it makes sense. This currently is supported on all gcc like
compilers by exchanging -O2 for -O3.
In qtbase it is used to enable full optimizations on qtcore and qtgui
and in a later patch can be used to replace similar existing logic in
QtWebKit's WTF and JavaScriptCore modules.
This fixes a performance regression from gcc 4.7 to 4.8 in the software
renderer.
An aliasing error in qregion.cpp which was exposed by more aggresive
optimization has been solved as well.
Change-Id: Ic2c6c41b79cb3846212b40e7bcc11ff492beb27f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Instead of checking for dynamicgl in QT_CONFIG, which is apparently
not possible, revert them and do it in opengl.prf instead.
Dynamic GL is Windows-only for the time being so this should be sufficient.
Change-Id: If293ea4c9b024df52257086c8b6250602a44724d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
When this macro is not defined, a number of inline methods in the MSVC
stl will throw exceptions. This in turn generates a warning when
exceptions are not enabled on the compiler command-line.
Change-Id: I5a57ec544bda0c75f04fdea9412b03107f9ff531
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
let the syncqt + qt_module_header.prf pair handle generation of
forwarding headers.
in qtbase this is ineffective to some degree, as the need to create
QtCore's forwarding headers early for QtBootstrap requires qtbase.pro
already doing the real work, but at least we get the verification that
nothing breaks.
Other Modules (TM) will need the full functionality.
Change-Id: Ifd3dfa05c4c8a91698a365160edb6dabc84e553f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
ARM and x86 platform defines are identical, so they can be kept in a
common file.
Change-Id: I6f79cadb2e5ce265e4a5a7a0806379dc8793e539
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Wolfgang Bremer <wbremer@blackberry.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This comment is wrong and should be removed. The manifest is always
generated.
Change-Id: I281737dd6a358380fb557063eadae88909f5078b
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
The index is only helpful if the version of GDB to
create it uses the same version as the GDB version
that consumes it. Outside the "local development"
scenario this happens only by conincidence, still
we add ~3.6% to the debug library size and face
maintenance issues like QTBUG-34950.
We also don't see the same performance benefit anymore
with recent versions as we did when the feature was
added, so it's best to not create the index anymore.
People who need it, still can add it manually, or
by the 'gdb-add-index' tool that comes with recent
versions of GDB, or trust their distributors to
set up indexes matching their runtime environment.
Task-number: QTBUG-34950
Change-Id: Id4c79fa51fea9622b0891bd9b9b395b948ecb157
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
ICC 8 and 9 are positively ancient. I doubt anyone is using them for
Qt, let alone Qt 5. ICC 11 through 13 haven't supported OS X.
ICC now masquerades as Clang, so we need to let qmake and
qcompilerdetection.h know about it.
Change-Id: If0d2bd8b6a4a45250c15c9472c062effc76f17de
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The patch introduces a new build configuration on Windows which
can be requested by passing -opengl dynamic to configure.
Platforms other than Windows (including WinRT) are not affected.
The existing Angle and desktop configurations are not affected.
These continue to function as before and Angle remains the default.
In the future, when all modules have added support for the dynamic
path, as described below, the default configuration could be changed
to be the dynamic one. This would allow providing a single set of
binaries in the official builds instead of the current two.
When requesting dynamic GL, Angle is built but QT_OPENGL_ES[_2] are
never defined. Instead, the code path that has traditionally been
desktop GL only becomes the dynamic path that has to do runtime
checks. Qt modules and applications are not linked to opengl32.dll or
libegl/glesv2.dll in this case. Instead, QtGui exports all necessary
egl/egl/gl functions which will, under the hood, forward all requests
to a dynamically loaded EGL/WGL/GL implementation.
Porting guide (better said, changes needed to prepare your code to
work with dynamic GL builds when the fallback to Angle is utilized):
1. In !QT_OPENGL_ES[_2] code branches use QOpenGLFunctions::isES() to
differentiate between desktop and ES where needed. Keep in mind that
it is the desktop GL header (plus qopenglext.h) that is included,
not the GLES one.
QtGui's proxy will handle some differences, for example calling
glClearDepth will route to glClearDepthf when needed. The built-in
eglGetProcAddress is able to retrieve pointers for standard GLES2
functions too so code resolving OpenGL 2 functions will function
in any case.
2. QT_CONFIG will contain "opengl" and "dynamicgl" in dynamic builds,
but never "angle" or "opengles2".
3. The preprocessor define QT_OPENGL_DYNAMIC is also available in
dynamic builds. The usage of this is strongly discouraged and should
not be needed anywhere except for QtGui and the platform plugin.
4. Code in need of the library handle can use
QOpenGLFunctions::platformGLHandle().
The decision on which library to load is currently based on a simple
test that creates a dummy window/context and tries to resolve an
OpenGL 2 function. If this fails, it goes for Angle. This seems to work
well on Win7 PCs for example that do not have proper graphics drivers
providing OpenGL installed but are D3D9 capable using the default drivers.
Setting QT_OPENGL to desktop or angle skips the test and forces
usage of the given GL. There are also two new application attributes
that could be used for the same purpose.
If Angle is requested but the libraries are not present, desktop is
tried. If desktop is requested, or if angle is requested but nothing
works, the EGL/WGL functions will still be callable but will return 0.
This conveniently means that eglInitialize() and such will report a failure.
Debug messages can be enabled by setting QT_OPENGLPROXY_DEBUG. This will
tell which implementation is chosen.
The textures example application is ported to OpenGL 2, the GL 1
code path is removed.
[ChangeLog][QtGui] Qt builds on Windows can now be configured for
dynamic loading of the OpenGL implementation. This can be requested
by passing -opengl dynamic to configure. In this mode no modules will
link to opengl32.dll or Angle's libegl/libglesv2. Instead, QtGui will
dynamically choose between desktop and Angle during the first GL/EGL/WGL
call. This allows deploying applications with a single set of Qt libraries
with the ability of transparently falling back to Angle in case the
opengl32.dll is not suitable, due to missing graphics drivers for example.
Task-number: QTBUG-36483
Change-Id: I716fdebbf60b355b7d9ef57d1e069eef366b4ab9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
There's a bug found in ICC 14.0 that causes the compiler to assert when
compiling QtDeclarative. Let's leave this here until at least one year
after the fix is released.
Intel task: DPD200253124
Task-number: QTBUG-36577
Change-Id: I76d4b41da7e60397dac65862a3a6ec024b840744
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
windeployqt is a tool that aids in the deployment of Qt libraries and
other files on Windows. This feature (CONFIG+=windeployqt) adds
automatic invocation of windeployqt for qmake projects as a post-link
action. For Visual Studio projects, windeployqt is added as a custom
target which runs after linking, automatically adding the output as
deployment items.
Task-number: QTBUG-35630
Change-Id: I4cdcb1a7f70cedccb4a4e17be5eb9f5de35a4d66
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
For normal #includes, moc simply ignores the missing file, but it could
generate problems later. It's a problem when the file being sought is
the FILE from plugin metadata. A very good example of this is Qt
Creator:
coreplugin.h:49: Error: Plugin Metadata file "Core.json" does not exist.
Change-Id: I16af04b477f52c6bd53c14147ec777b358dfdf50
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Add the required printsupport plugins to the QTPLUGIN variable
as is done for the QPA plugin.
[ChangeLog][QtPrintSupport] Made the Qt buildsystem automatically include the
necessary plugins so that static applications can print.
Task-number: QTBUG-29663
Change-Id: I0e2e3b0f25dd5714bd187711c85893926b0c4e85
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Using the same architecture value in VC Project and manifest
files only makes sense for x64. Instead of doing magic we
just set the correct values inside the mkspecs. VCPROJ_ARCH
is used for Visual Studio, while the manifests use
WINRT_MANIFEST.architecture.
WINRT_MANIFEST.architecture was added to x64 mkspecs for
consistency and phone mkspecs do not use WINRT_MANIFEST.architecture
so it does not have to be set there.
Change-Id: I009473104875b4add8c0530dc6f51177919e997b
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
http://msdn.microsoft.com/en-us/library/b0084kay(v=vs.120).aspx says:
__AVX__ Defined when /arch:AVX is specified.
Now we know what flag it is, we don't need to use our _M_AVX flag
anymore. We're also now assuming that Microsoft will follow the same
pattern for AVX2 (i.e., __AVX2__), so this commit also removes the
check for _M_AVX2.
The other defines that were defined alongside AVX2 are removed because
they have no use currently in Qt.
Change-Id: I64a026b2206dbd0d2dffa7c803bee969c9b94a94
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
this hasn't happened yet at this point of processing, so we'd pass bogus
paths when shadow-building.
Change-Id: I9f9633c0dbc2aadeff1eb555a8e598ddb0837e37
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Otherwise the compiler may choose libc++ based on the deployment target,
and we'll end up with broken builds due to the mismatch between the two
libraries, eg:
Undefined symbols for architecture x86_64:
"std::ios_base::Init::Init()", referenced from:
__GLOBAL__I_a in libQt5Qml.a(qv4object.o)
...
"std::ios_base::Init::~Init()", referenced from:
__GLOBAL__I_a in libQt5Qml.a(qv4object.o)
...
"std::__throw_length_error(char const*)", referenced from:
...
This problem is not iOS specific, which is why the logic is moved
to the more generic mac/default_post.prf.
Change-Id: I28b94e614f9167fc0db84bbf1c88dd97d5629938
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Instead of sprinkling '!ios' all around the various modules. This is
a bit more fine grained than the CFG_NOBUILD_PARTS += "tests" that we
had in configure.
Change-Id: I6ca2e5df118dfc0bb5d7b8495a3543f51dc0fa30
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
This feature (package_manifest) generates a basic application manifest
from a template provided by the mkspec or the developer. It is meant to
deliver an out-of-the-box build experience without attempting to
exhaustively cover all manifest options. It is meant to be a starting
point which allows the developer to customize the manifest further. It
also becomes the default package manifest generator for Windows Phone,
replacing autogen_wmappmanifest.
Common variables, such as the target executable, are populated by qmake
in the newly created manifest. Default icons are also created if needed,
as the build will fail without them. The input manifest can be set by
assigning a file name to WINRT_MANIFEST. Additional options are
documented in the .prf file. If an existing (non-generated) manifest is
already in the directory, it will not be overwritten.
Task-number: QTBUG-35328
Change-Id: I57576a17ff9d2b564c0828f815949cb26d276bfd
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
clang is the default compiler on FreeBSD 10 (if not earlier).
Let's keep it unsupported for now. Can be promoted later.
Change-Id: I909953c986a3da09ce19d8f9f9ee2cc22c417abd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Allows us to sanity check the iOS build in the CI.
Change-Id: I16f9bfafef3988dcab6efd3155503ca0d0b4d1d8
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Dwarf-2 is treated as deprecated (at best) by llvm, and does not support
a lot of C++ language features. Most notably, it does not support
namespaces and template parameters. By not specifying the dwarf version,
the compiler can decide which version to use.
Change-Id: Ic32f9101c4db0f06a8ace8f5e04af9236d01598e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Added a define to suppress MSVC warning “C4996:
This function or variable may be unsafe.”
If the code is really "unsafe" then it is unsafe on
other platforms as well; so fixing these warnings just
for MSVC builds, would clutter the code and wouldn't help
in fixing issues that might exist on other platforms.
Using the same functions across all supported platforms
keeps the code clean and helps in writing code that is
safe across all platforms.
Change-Id: I470072eda4f8174bb911567ef3f061a3582ba449
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
For some reason the Raspberry Pi hook includes qeglfscursor.h even
though it is not necessary. Remove this because the file got moved to
eglconvenience.
Change-Id: Ia65f5a8366d750f93eacee49004219e664b52af2
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
the newly added mac examples use it, so it needs to be grounded.
a more generic solution would be clearing out QMAKE_EXTRA_COMPILERS, but
many prf files will be loaded after us, possibly nullifying our effort.
Task-number: QTBUG-35680
Change-Id: I3aba7595898baac14bd41e9fae2ff24507187c6a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
this makes it possible to compile grammars at build time.
Change-Id: Ia74383c4f29873ee7324bd5f14d72ef14faef460
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit will make qmake use -isystem automatically for any
compilers that declare support for it for any paths that are listed in
QMAKE_DEFAULT_INCDIRS.
Change-Id: I36fefc6d5bba61671f65669f0ea42704b3c3cf31
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Commit 3c375a76a1 enabled SSE2 in Qt,
but we failed to build the files that implemented the SSE2 specific
drawhelpers and image functions. Since we know what the iOS simulator
supports and the platforms it runs on we can safely enable this
ourselves without it being based on a configure test.
Change-Id: I0cfc43de80068b89aa47c34ffa84ee1c1734886c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Commit 773dd01 introduced a general mingw platform scope, which
is cleaner and more flexible than matching the spec name.
Change-Id: Ie3a9cb791a83f7c8a51bc4e23069190c452ab521
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Static builds of Qt will automatically enable C++11 for all projects,
but this happens in mac/default_post which is after our check.
Change-Id: I22a01e5d876242263fa31f8a404a65905c6c1877
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Right now /dev/fb0 is hardcoded. This is not ideal. Therefore
QT_QPA_EGLFS_FB is introduced. This environment variable can be set to
a different framebuffer device. Once it is set, eglfs will use the
specific device. This is similar to linuxfb's fb=... plugin parameter.
The actual behavior depends on the board-specific implementations.
For now only iMX6 has real support. It extracts the index from the
device name as bind the EGL display to the corresponding framebuffer
using the vendor-specific fbGetDisplayByIndex(). Other hooks can
follow suit later on.
With this patch eglfs is at least on par with linuxfb, meaning that,
if the board supports it, different apps can run on different screens.
Task-number: QTBUG-36113
Change-Id: Ia3c88bd06e108bc668433e3c5c3fce34a5a0e73d
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Those paths need not be in INCLUDEPATH: qmake always adds them to the
compiler command-line and we should match the behavior if we expand
INCLUDEPATH here.
Change-Id: I89508d15ac534b54ae873a42c4ad9764408042b5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
...unless the user passed the -no-sse2 option to the compiler.
[ChangeLog][Important Behavior Changes] Qt now automatically generates
code for processors supporting SSE2 on i386 platforms. To disable
this, pass the -no-sse2 option during Qt configuration. Since this
feature has been present on CPUs for 10 years and since Qt no longer
checks for runtime support for SSE2, we strongly encourage users to
leave the default setting on for best performance.
- For Linux distributions that must retain support for CPUs without
SSE2, we recommend doing two builds of Qt and installing the
SSE2-enabled libraries in the LIBDIR/sse2 directory. Tools,
plugins, and examples are not affected.
- See discussion on the Qt development mailing list:
http://lists.qt-project.org/pipermail/development/2013-November/014085.html
Change-Id: I7f9b1f58a9f66b6e5fe295bac15f87d34343695e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Now the only way to enable Neon support is to change the mkspec.
[ChangeLog][Important Behavior Changes] Qt no longer checks for
support for the Neon FPU on ARM platforms at runtime. Code optimized
for Neon must be enabled unconditionally at compile time by ensuring
the compiler supports Neon. You may need to edit your mkspec for that.
Task-number: QTBUG-30440
Change-Id: I4df9b2bf3cd022f8ed70f02f16878cb2cb3fe6fb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This is a partial revert of 39e04b0222.
The original change moved the special make install target path logic
into the logic for the app template to make it possible to remove the
condition that excluded builds inside the Qt directory. This was
to make it possible to build examples in the Qt directory for Android
without moving them. However, this broke user library projects,
specifically when they were part of a subdirs project and should
have been automatically installed into the Android package. This
patch brings back the logic but only enables it for library projects,
meaning that the only examples inside Qt which cannot be built
correctly are library projects (which didn't work anyway).
[ChangeLog][Android] Fixed regression in "make install" on
library projects on Android so they can be used inside subdirs
projects again.
Task-number: QTBUG-34781
Change-Id: Iabf53ed68845b2ddd4ae66656e1372c96185660e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Changed MIPS DSP portion of the mkspecs/features/simd.prf file in order
to fix the corrupted build system for MIPS platforms.
List of the additionally optimized functions
from file src/gui/painting/qdrawhelper.cpp:
- qt_blend_rgb16_on_rgb16
- qt_fetchUntransformed_888
- qt_fetchUntransformed_444
- qt_fetchUntransformed_argb8565
from file src/gui/image/qimage.cpp:
- convert_ARGB_to_ARGB_PM_inplace
from file src/corelib/qstring.cpp:
- ucstrncmp
- toLatin1_helper
- fromLatin1_helper
Change-Id: I5c47a69784917eee29a8dbd2718828a390b27c93
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Get the CXX compiler using $$QMAKE_CXX instead of ${QMAKE_VAR_QMAKE_CXX}
which causes shell syntax errors when combined with the silent flag.
Task-number: QTBUG-36159
Change-Id: I26cdbe788a20bd2df1aa3563694648e41c082a2c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
the diff -w for this commit is empty.
Started-by: Thiago Macieira <thiago.macieira@intel.com>
Change-Id: I77bb84e71c63ce75e0709e5b94bee18e3ce6ab9e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This would mean we don't pass -Werror when under CONFIG += warn_off.
However, that's not the main goal. The main goal of this change is to
have -Werror appear *after* -Wall -Wextra.
With some compilers, like Clang, this is necessary to have the
-Wno-error=foo options work properly. For example, if the -Wfoo
warning gets enabled by -Wall, Clang will treat it as an error if the
arguments appear in the following order:
-Werror -Wno-error=foo -Wall
But not if they appear in this order:
-Wall -Werror -Wno-error=foo
Change-Id: I38c820bffc8277d909391e9bf557db5347836b9c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Base modules already work and produce no warnings.
Change-Id: I932d7aaecbe3404f180e185bf1e9fff4d488a05d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>