Filter out module QML import paths that point to
nonexistent file system paths.
Change-Id: I897ef50593eeb46c6c9eaec27313ec12e6113cb6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Some modules, such as Qt Multimedia, needs special permissions
to avoid getting exceptions at run-time. We should apply these
by default to the AndroidManifest.xml so that an application
using e.g. the camera will work out of the box.
Task-number: QTBUG-33953
Change-Id: Ibc1f086d249197b63e7ed1075ae7d54bdd1212f2
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
The qtAddModules functions resolves deps internally, but doesn't affect
the original QT and QT_PRIVATE variables. We need to pick up situations
such as the user adding QT += quick, which implies QT += qml through
the QtQuick module's dependecies.
Change-Id: I14411dbea3e4f7402be404073a3fe8f18dbb165f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
We need to add the correct suffix to the libs we add when
running qmlimportscanner. Otherwise we will always add
release versions of the libs instead of debug versions
when generating debug builds. This in turn will confuse the
xcode generator that will try to convert the libs in
LIBS to native Xcode build variables.
Change-Id: I4d9fab49ad9e644e9bfd06caf79fc084bde2a3b7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Winmd is not used, so there is no reason to embed it.
Change-Id: I0820256aecd9c3c71b0b0c8afa53941b03f97363
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
In most cases, _S_IFLNK isn't defined, but ensure that we still have a
QT_STAT_LNK that works, for example for use around archive files
(zip/tar) that can contain symlinks
Change-Id: I9881e524b79845ce6b474b9a86e5fb25aaa31820
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: David Faure <david.faure@kdab.com>
this makes it possible to properly exclude entire subprojects based on the
availability of features, rather than stuffing every single source file
with #ifdefs.
the defines are aggregated from the -qconfig <profile>,
-no-feature-<foo> and some other configure flags.
usage:
load(qfeatures)
!contains(QT_DISABLED_FEATURES, textarea): SUBDIRS += textstuff
Task-number: QTBUG-28102
Change-Id: I83400632d64312fa4b907e1318dddfe27c432387
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Tasuku Suzuki <stasuku@gmail.com>
But still fall back to 'com.yourcompany', just like Xcode does for the
initial launch.
Change-Id: I89afadefafc254a0014aca197741d42a0199943e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
When building under Xcode we can limit the object files search to the
current SDK and debug/release configuration.
Change-Id: Ic405f13f46a594e3ed20d82ca6b84e7e67edebfc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
I had the -fPIE option in my personalised "linux-icc-optimised" spec,
so I never noticed it was missing in the standard one.
I have no idea when -rpath-link is necessary. It isn't for me.
Task-number: QTBUG-34425
Change-Id: I54b2fb8cda10b9197d81b5630b1d29b8c338d96a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Make already the creation of the generated cpp file depend on the
creation of the generated h file, which transitively ensures that
the cpp won't be compiled before the h is there.
Change-Id: Idd3aec8d72dac341e835a3d1ef8f2986dbc1ab9f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Conceptually a Qt for iOS SDK or source build should support building
for both simulator and device, based on the same qmake binary and Qt
libraries. Qt Creator or Xcode should then be able to use the same Qt
version while still building for a single target at a time. This
applies to user libraries as well, which shouldn't require switching
to a different Qt when changing target platform from simulator to
device.
We achieve this by using Qt's exclusive_build feature, where we build
for the two targets in parallel, and then teach Xcode how to choose
the right library dynamically at build time.
Change-Id: I06d60e120d986085fb8686ced98f22f7047c4f23
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Makes it possible to join two separate builds, and opens up for using
exclusive builds to do this.
Change-Id: I87ccbdd55511fdfbef3fe8b581f40525ebf077ed
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Removes the need to pass ARCHS to xcodebuild for simulator builds.
Change-Id: If15e9d387c416c5c9f83c50f5903ae0cd517ff34
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
We used to compute the default exclusive build directory, eg 'debug', at
configure time, and then set OBJECTS_DIR, MOC_DIR, etc to include this
hard-coded default exclusive build directory. We then had to run a post-
process step where we replaced the 'debug' part with the current actual
exclusive build pass, eg 'release', resulting in long-standing bugs such
as QTBUG-491 where we end up replacing parts of the build output dirs
that were not part of the original exclusive build directory.
We now set the OBJECTS_DIR, MOC_DIR, etc defaults in configure like
before, but they do not include any exclusive-build information. The
exclusive build directory is handled as a separate step in default_post
where we adjust all entries in QMAKE_DIR_REPLACE to be exclusive
directories.
For backwards compatibility the new exclusive build behavior is only
enabled for variables named by QMAKE_DIR_REPLACE_SANE, which for Qt
itself applies globally to everything but DESTDIR, and for libs and
tools also applies to DESTDIR. The reason for leaving out DESTDIR in
the general case is because many tests and examples assume the old
behavior for DESTDIR. A side effect of including all the other
variables for Qt libs and tools is that the PCH output dir will be
uniformly set, which has been an issue on Windows in the past.
The addExclusiveBuilds function now takes two or more arguments,
each argument being the key for an exclusive build, which can be
customized eg. using $$key.{name,target,dir_affix}. Passing more
than two arguments results in three/four/etc-way exclusive builds,
eg debug/release/profile. Exclusive builds can also be combined, eg
static/shared + debug/release by making two calls to the function.
We also handle individual targets of combined exclusive builds,
eg static/shared + debug/release, meaning it is possible to run
'make debug' to build both static-debug and shared-debug.
Task-number: QTBUG-491
Change-Id: I02841dbbd065ac07d413dfb45cfcfe4c013674ac
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Otherwise we won't pick up CONFIG+= changes on the command line or
from the project file.
Change-Id: I6f7e9380f971e6271de5659534e9565024fe041d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
module names use dashes, but the internal module representation uses
underscores, so we must translate.
Change-Id: Ib6983d3731e7dae2a4d6232f8a5202390fd425e9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Before this patch, we would copy "$QTDIR/qml"
directly into the bundle as "qml". This would cause problems
if the user also tried to deploy qml files to a "qml" folder, or
if any other file in the bundle ended up with the name "qml" (which is the
case for QtDeclarative/tools/qml, where the executable is called "qml").
This patch will instead copy the contents of each import folder
into QMAKE_QML_BUNDLE_PATH, which will default to "qt_qml" on iOS
and "Resources/qt_qml" on OSX.
We also change the implementation to use a post script rather
then QMAKE_BUNDLE_DATA for two reasons:
1. Xcode does not like "copy build phases" to copy folders, only
files (You cannot even create such a phase from Xcode, although
it is possible to force it the way we create project.pbx. But
this was error prone)
2. We need to strip away unneeded files from the bundle, like
archives (which are linked in statically, not dlopened run-time).
Using rsync lets us copy and strip in one operation.
Change-Id: I7c2117f6cfbe11efdc272dff71adb0b1e619a5ff
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Synchronize .pdb file writing, otherwise parallel builds
will fail, when different compiler instances try to access
the same .pdb file.
See also
http://msdn.microsoft.com/en-us/library/vstudio/dn502518.aspx
Change-Id: I4998f10458d320fd98d633eded02d90bf25ed884
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
the module project files declare what plugins they need, as that is
necessary for automatic android deployment.
enable wider usage of this by making the information available from the
module .pri files.
caveat: the variable is called "types", but is in fact paths, so there
can be particular plugins named.
use this new facility to replace the egregious hard-coded list of
plugin-to-module mappings from create_cmake.
possible todo: automate populating DEPLOYMENT (for wince, and whatever
else).
Change-Id: Ibb9c07cfe2b0008905204cbeb81e9c8e2ae4dc69
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
instead of being magic attributes of the main modules, the privates
are now proper modules of their own.
this cleans up some code paths, is more mappable to other build tools,
and enables private modules to depend on other private modules.
note that the library path is needed even in the "empty" private
modules, as in the framework case that's where headers are found.
consequently, the modules need to be explicitly marked with the new
"no_link" flag. this required some reorganization of qtAddModule().
Change-Id: I8e4f44a609f8d639cc01bcb658256870a627eb63
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This is needed to ensure that list(REMOVE_DUPLICATES) can work.
Change-Id: I3d992aa244fcdfbda7e3b48ce416e0ba5ffcde96
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
This is necessary so that list(REMOVE_DUPLICATES) works properly.
Change-Id: Id268637d76b1a8785c9ff0c6e09e9ad8a62bbfb6
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Allows project files or mkspecs to call qmake recursively using system()
with the right arguments, which we use to fix the ios default_post.prf.
Change-Id: I90d69e2b156bb0f0af1279188b11f81c84c24fb8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
it was introduced as a hack to simplify writing tests, but the change to
make use of it was backed out of testlib and nobody seems to care.
Change-Id: Icc86621b865276e86593afdb923247bbdca19d49
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
The current NDK 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 blackberry-armv7le-qcc to blackberry-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.
Change-Id: Ia7feeeabe16eda48140a65178af28cbb9bd085a9
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
it's wasteful, given that exactly one add-on module (and most probably
nobody else) needs it.
i'd do the same with yacc and lex, but i suspect this would cause quite
an uproar.
Change-Id: Ic2a6ca19e829393835f824e31cd0893e78c3fd39
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Otherwise, make would upon distclean first remove the xcode
project, then try to do xcodebuild distclean. xcodebuild would
then complain about a missing project.
Change-Id: I0a9a6af6d86d1a95e37f4bbafa38c63d892bf1cc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
the variable may contain a complex command, so an exists() check is
doomed to failure if the tool is built dynamically.
also, the check is not really necessary: it failing indicates a bug in
the qt build system, and we don't really need to complicate the code to
deal with such corner cases.
Change-Id: I2e6087dcc6dd4a4f70bdf739550276f364c880dd
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
if the user knows that no additional imports need to be linked, this
can be used to optimize the build time.
as it happens, it can also be used to fix the build of the qml tools
themselves ...
Change-Id: Id77aea1f20cabdc2e831540c61d8a4b8e85c040b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This was created for the iOS port and intended to be cross-platform,
but since then they got cold feet and never added the support.
It makes no sense to only support this on Android. We need to
remove it again and hold off until we can find a proper solution.
Editing the AndroidManifest.xml is the non-cross-platform
solution for this.
Task-number: QTBUG-34166
Change-Id: I51d53b82a3412a9016de01612dd8df9ae12c6633
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Setting QT_ARCH when empty is a workaround for a missing qconfig.pri,
since it hasn't been written yet by configure. As qconfig.pri is
loaded by the generic qt_config.prf, putting our workaround in
our own wrapper for qt_config makes sense, as it keeps the logic
close to where the original QT_ARCH is resolved.
Change-Id: I49ffc21cf5dea5ca5b6254ca8084a4dcdc359a72
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This approach is similar to the earlier apprach of defining main=qt_main
when building the user's sources, but uses the linker to rename the
symbol instead, which is less fragile than using the preprocessor.
To keep the hybrid usecase unaffected by our wrapper logic we declare
both our main wrapper and a fallback qt_main as weak symbols, which
ensures that when the user's application links in our plugin the
real main/qt_main provided by the user is preferred over our weak
symbols.
Change-Id: Ic76f3ba8932430c4b13a1d3a40b8ed2322fe5eea
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Run qmlimportscanner, add found plugins to the LIBS
line, generate qml_plugin_import.cpp.
Change-Id: I6c6b927cceb36fa2dc405ad698f26d20398b33c8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
This code was added as an optimization for showing a mouse cursor on
the Raspberry Pi. What happens though is while the mouse cursor does
move more smoothly, the actual application becomes less smooth when the
mouse cursor is moved. By removing the custom cursor code, performance
will no longer be effected by rendering a moving mouse cursor.
Change-Id: I9f8ac6c236cd4ff6d8e1d999a461c3e6db75d7e3
Reviewed-by: Samuli Piippo <samuli.piippo@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Non-framework builds would automatically link to whatever Qt library
matched the config at the time of running qmake, eg hard-coded to
libQtCore_debug, while Xcode itself allowed the user to switch between
release and debug configurations.
We now append an Xcode settings variable to the library path, which gets
resolved at build time depending on the current config in Xcode.
Change-Id: I12873e38a28d9595ef3fd0ae0ad849e6744833a9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Change-Id: I2e874af4f5bf22a3028b7099c39436c400136386
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
When building for x86, the prefix for the tools is not equal
to the prefix for the toolchain directory, so we need a separate
option for this.
Task-number: QTBUG-34110
Change-Id: Iefe8c37892eb6c31fc8762bfb7bc7c6c23cd8b1e
Reviewed-by: BogDan Vatra <bogdan@kde.org>
The source includes shouldn't be used by installations, so
don't install the extra file, but only use it if the package
is used from the build-dir.
Task-number: QTBUG-33970
Change-Id: I08f91b8a716e935cb04d1233d44cf5c092e240ce
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
The DLLDESTDIR is not related to the install location and is not
populated for prefix_build configurations.
That resulted in the CMake files attempting to find the dlls in the lib/
directory instead of the bin/ directory.
Change-Id: Iec6a7c9b6dd656278b70ab128f3df9e8c45bbe4a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* The explicitly linked support libraries like gnustl_shared, etc. can be
linked as private libs, there's no need for them to show up in the .prl files of our libraries.
* Removed the explicit linkage against libsupc++, which is a static library whos symbols
are also available in libgnustl_shared. It is only needed when linking against gnustl_static,
which we fortunately don't do.
For QtQml on Android this is more than just cleanup. Without the first change, the libgnustl_shared
comes early on in the link line, because it is a dependency of for example Qt5Network. Anything that
qml.pro itself adds to LIBS comes afterwards. That is not intended, we want libgnustl_shared to come
at the end of the link line, in order to make sure that the linker finds an overriding symbol from
another library earlier in the link line first.
The explicit linkage against libsupc++ affects the same, as that's the library
that contains the symbol we want to override locally (__cxa_end_cleanup).
(needed for QTBUG-33892)
Change-Id: Id6dff733d6610ae8b15aa72f9cf60ae2c7834194
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
We assume new Xcode versions and toolchains won't break anything, just
like for toolchains on other platforms.
Change-Id: Idb723dbcdbc82e85db1c55b19cd5fe863ca90933
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
As they are closely tied to the macx-ios-clang mkspec and can't be shared.
Change-Id: Icb59304cc1e4be12732f50175f3f84be289300c2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The allows us to remove the custom logic in default_post for finding
the plist files, and also fixes issues when the wrapped mkspec had
its own feature files.
Change-Id: I4c26cf6a7809f527e170c51c57f59aaf6088774c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
the problem is that there is no sed command on windows ... so build it
into qmake and invoke that from the generated makefiles. cmake does the
same, after all. ^^
Task-number: QTBUG-33794
Change-Id: Ib7077e18acbc5edd79f714c5779a5ed31ea6c093
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
When we build qml plugins, we now depend on embedding
the uri of the plugin into its meta-data using the new
-M switch to moc for static builds.
This patch will let this happen automatically whenever you
call load(qml_plugin) from your pro file.
With this patch, you only need to rebuild your plugin
to support static applications.
Task-number: QTBUG-28357
Change-Id: I99e2fc80688fa43cf734551553f4fa0cb5ed47ed
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Shared between UNIX and Win generators, and allows prfs after
default_post to rely on sane TARGET and DESTDIR values.
This allows us to clean up the DESTDIR logic in testcase.prf,
which was completely busted. Doing the two in separate commits
is unfortunately not possible as the old testcase.prf logic
was so broken it would barf if only looked at.
Change-Id: Ibf21216195c760ee46ae679c162b207b77a9d813
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Enabling vsync and double buffering improves the overall impression.
Enabling by default helps to get the best "out of the box"
If not desired, one can disable this behavior via:
export QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=1
Change-Id: I21ce5366ea5829140d8103cf2dbd8c487d079db6
Reviewed-by: Donald Carr <sirspudd@gmail.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
When outputting the deployment settings on Windows, the paths might
have backslashes. These need to be escaped, otherwise they will simply
be removed by the JSON parser (or converted into whatever they happen
to represent given the neighbouring character.)
Task-number: QTBUG-33926
Change-Id: I11f1bc7d1f8082c73329bdc02fb8d653a0b5c0ee
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Whenever the SDK updates the build tools it's put inside a new
subdirectory with the version number, so with every new version
we would have to update the java.prf feature. Instead, we iterate
over the available revisions and pick the lexicographically highest
one (which is sufficient as long as the major version is
double digits.)
Change-Id: I2392ef6261ef36ed741c80fa6f981486e7844e0a
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Without that define here moc cannot handle qsystemdetection
properly. While having to touch the mkspecs I also removed
the no longer needed WINRT define.
Change-Id: I0609bd173c7bc14ccdd862afc777d7793dda02b8
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Without bash's pipefail option we would end up with the exit code of
grep. Since we don't know which shell the user is running, we have
to explicitly call bash.
Change-Id: Ic3f6db0af9bb90a58001ccfbf9d6d21b6c9c9634
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Using the same approach as, wince qfunctions_winrt
is introduced to replace functions not available
on Windows Runtime by their successor functions/
equivalents.
Additionally this functionality is used for implementing
a fake environment because WinRT does not support
getting/setting of environment variables. The approach
here is also the same that is used for wince.
Change-Id: Ifc3b6b796ab8e8ea41456f4c929f9c3f65f24a0e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
A common problem is that examples and other apps are unusable on
Android when they are inside the Qt directory. There doesn't
really seem to be any good reason for having a special case in
place, since this will only affect applications which are not built
with the host toolchain, and we aren't building any command line
apps for the target devices. So the only thing this will affect are
the examples and we want those to be installed into the correct
path.
Change-Id: Ibae365e06eb77944f11e596c16c3c5baf798848c
Reviewed-by: BogDan Vatra <bogdan@kde.org>
We need to output integers here, since these are interpreted
as integers when reading the json.
Change-Id: I4206b3ac347b61a357bd2658f146979e06690141
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
By referring to crt.o by $(SDK) we allow Xcode to switch between the
iPhoneSimulator and the iPhoneOS SDKs.
Change-Id: I33d9f30b2f5a8f085dc4ddfc6e2ef228d02d639c
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
When warnings are treated as errors, no Android code will
compile, since one of the platform headers in the NDK triggers
the literal-suffix warning. So we need to mark this as no-error.
Change-Id: Icabf1c2f2d32f76ee157d04e62a28f83abeed8f1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
If you specify ANDROID_API_VERSION to override the default
API versions used for building the jar files, this should
take precedence even when the .pro files specify a different
default API version (like QtAccessibility does when it sets
the default to android-16.) Otherwise it's impossible to
override these defaults.
Change-Id: Idef98aaf3b51490bd7ced8c53770ee2f5680b1db
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Various global changes, primarily preprocessor flow, to support the
WinRT platform.
Change-Id: I3fa9cf91d5fb24019362e88fcf205e31b4f810b5
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
This outputs a json file with the necessary settings from qmake
so that an external build tool can easily get the settings without
having to parse the entire .pro source. Used by the androiddeployqt
tool.
Task-number: QTBUG-32856
Change-Id: I5d3ac0ab6a0350162d06b0a0bf0c9bcbd90d8b5a
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Remove the extern prototype as it's now defined in latest
firmware headers correctly. Moreover, the signature of the function
changed. This patch fixes both issues.
Change-Id: I0114b436dbaf5a171e6429a1e3760e292c7152cf
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
WinRT passes the executable and Appx server info to the CRT main, and
supports several additional activation arguments as well. This handles the
arguments passed to main as well as the case where a modern app is
launched from an external application (e.g. Qt Creator).
Task-number: QTBUG-30198
Change-Id: Ia843e98c7843d5705f5f6d1c809de0b6bcdb5d26
Done-with: Kamil Trzcinski
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Warnings 654 and 411 appear to have disappeared by ICC 14.
Change-Id: Ic200f239a4a4377015d13b2f4ae85595ce864ace
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Apple only provides simulators for 5.0+, and we now rely on 5.0+ APIs.
Change-Id: I9ec047767b5f5e1b33aeef186ec6aff2b9c70a05
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
It's a supported platform from 5.2, and we want build-scripts/CI/etc to
adapt to the change as soon as possible.
Change-Id: I8c78351191f59a6ecab33acc0829d2535379c787
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Simo Fält <simo.falt@digia.com>
Instead of using a define to rename the user's main() function during
compilation, we leave the user code alone, and inject our wrapper one
step earlier in the process, at the application entry point 'start'.
This entry point is provided by crt1.o, which is normally linked into
the application automatically. The start() function sets up some state
and then calls main(), but we change the start() function to instead
call our main wrapper.
Instead of shipping our own crt1 binary/sources, we make a copy of
the appropriate crt1.o at build time, and modify its symbol table in
place. This is unproblematic as long as we keep the same length for
the wrapper function name, as the symbol names are just entries in
the global string table of the object file.
The result is that for the regular Qt use-case the user won't see
any changes to their main function, and we have more control over
the startup sequence. For the hybrid use-case, we no longer rely
on the fragile solution of having our back-up 'main' symbol in
a single translation unit, which would break eg with --load_all,
and we don't need to provide a dummy 'qt_user_main' symbol.
OSX 10.8 and iOS 6.0 introduced a new load command called LC_MAIN,
which places the state setup in the shared dyld, and then just
calls main() directly. Once we bump the minimum deployment target
to iOS 6.0 we can start using this loader instead of LC_UNIXTHREAD,
but for now we force the classic loader using the -no_new_main flag.
There's also a bug in the ld64 linker provided by the current Xcode
toolchains that results in the -e linker flag (to set the entry
point) having no effect, but hopefully this bug has been fixed
(or Apple has switched to the LLVM lld linker) by the time we
bump our deployment target.
Change-Id: Ie0ba869c13ddc5277dc95c539aebaeb60e949dc2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The cmake directory may not be $PREFIX/lib/cmake, but
instead $PREFIX/lib/<arch>/cmake. Getting the PATH of such a
directory will not lead us to $PREFIX/, but to $PREFIX/lib.
Use a relative calculation instead.
Task-number: QTBUG-33223
Change-Id: Ice4e0f859ab1df238bad4eb942f073e84dd86cc3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Commit a7ba0ad93e introduced the -Wno-
language. The warning about deprecated functions, variables or types is
-Wdeprecated-declarations.
Change-Id: I6d269851afefc6a3fc3bf6599c3c702eb164245e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
the redundancy is entirely unnecessary at this point.
the cmake problem that prompted the revert has been fixed long since by
commit 4f5f9331d9.
This reverts commit 215f137e29,
thus restoring 6d61dfdbb74a2055438b999c6962f89cc3388eea..
Change-Id: I94749dc18d924163e9c9add500078d88ccd00ffc
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>