Commit Graph

750 Commits

Author SHA1 Message Date
Oswald Buddenhagen
e07372ff50 fix host vs. makefile directory separator mess
the system path separator and shell are bound to the host system
(system() will use cmd even on mingw with sh.exe in path).
the makefiles otoh may depend on what the qmakespec defines.

consequently, add $$system_path() and $$system_quote() (for use with
system() & $$system()). $$native_path() is renamed to $$shell_path() and
should be used with $$shell_quote() to produce command lines in
makefiles.
$$QMAKE_DIR_SEP needs to be applied to Option::dir_sep right after
parsing the spec, so it is available to $$shell_{path,quote}().

Change-Id: If3db4849e7f96068cf03a32348a24f3a72d6292c
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-07-28 00:09:45 +02:00
Andreas Holzammer
563875bf29 Fix debug and release build for Windows CE
Change-Id: Idc3faa2c65f3e87aadf75c0c79f1581a24aff8ca
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-25 17:32:21 +02:00
Oswald Buddenhagen
d25aad6039 fix syntax error in static plugin assembly code
Change-Id: Ib7662c5529432663df06eea509dc3479cea01050
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-25 15:17:16 +02:00
Oswald Buddenhagen
520100abcf fix syntax error in breakpad support
Change-Id: I7964615814377ae4fd9c7da897978100c9294835
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-25 15:17:09 +02:00
Stephen Kelly
a5b0290497 Don't make the CMake file generation dependent on DESTDIR.
It is expected to be well defined for the CMake files to be generated
correctly, but if that stops being the case, it should fail loudly. All
of the generated CMake packages are CI tested.

Change-Id: I67c7fa6ef1fe0a019c40936cb12db282669e9ee8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-25 00:48:10 +02:00
Stephen Kelly
73d127397d Quote the SONAME properly.
It does not make a big difference, but it is what was intended
initially.

Change-Id: Idd7e06c857533030b000726ff87b48bb2619df06
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-07-23 17:48:51 +02:00
Stephen Kelly
58b3dd71d8 Create CMake files conditionally on the internal_module CONFIG option.
This includes a revert of 195df6e8e0
so that the solution scales better to other Qt modules, and other
logic related to 'internal' modules.

Change-Id: Ie4c1f10d20953aeb15438273081a810ab8bc9ec9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-23 17:39:39 +02:00
Stephen Kelly
1e3a986de7 Check if we are creating a static library before a framework.
Even if we are building frameworks, we still build some static
libraries (eg QtUiTools). Static libraries are never in frameworks
so we need to ensure that we don't generate a path to a framework
in the CMake config file in that case.

Change-Id: I533e30874a653695cb0e262617e71bbd3d4c954b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-20 20:44:06 +02:00
Montel Laurent
981ea7a1aa TYPO: Fix typo in warning message
Change-Id: I322f97257210f123695e386670a9a4eea2ccfe0e
Reviewed-by: David Faure <faure@kde.org>
2012-07-20 18:28:38 +02:00
Stephen Kelly
301538cf01 Add another directory to the private INCLUDE_DIRS list.
It should be possible to include both:

* <QtGui/private/qfoo.h>
* <private/qfoo.h>

Change-Id: I83ed5bba633b4a6b9bd38e315c987d78beecfb1b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-19 12:03:27 +02:00
Oswald Buddenhagen
5f0b52ea26 put the include/ of all modules into qtbase when doing non-prefix build
all other build artifacts go into qtbase's build directory anyway. this
asymmetry was confusing and causes cmake users some grief.

Change-Id: I4d7f7b2318f6c5300eb00360664785cb2c8217b7
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-07-18 19:48:59 +02:00
Oswald Buddenhagen
311fe0e811 remove support for forwarding module pri creation via syncqt
now that all modules have migrated, this dead code can be removed.

Change-Id: I5e9c7dd3fb271346d1b5f0e2930874da3e4d2d57
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-07-16 18:34:06 +02:00
Stephen Kelly
e6abbe68a2 Create imported targets if the library files exist
Handle the cases where the user does

  ./configure -debug
  make
  make install
  make release
  make release_install

Thereby making the installed configuration different to the
'configured' configuration.

Change-Id: Ib351d8a84c4333ebcbd305d68a37c16f86869559
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Brad King <brad.king@kitware.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-16 16:30:55 +02:00
Stephen Kelly
0518a569c7 Fix the use of if() inside of macro().
if() seems to behave differently with macro parameters compared to
variables set with set().

Change-Id: Ieb9544b8c3187579fd4cfe25e2c2afa3f349eba6
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-16 14:22:55 +02:00
Oswald Buddenhagen
034b5fd02e make QMAKE_RESOLVED_TARGET use normalized path separators
Change-Id: I23433a67364a9d09fa239b2c7f2cae495d3cc6df
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-07-16 01:06:55 +02:00
Oswald Buddenhagen
61d67ace5f make use of new functions
makes for cleaner code

Change-Id: I1a86bc4cac3778a1df37aa3307e5a8edac246961
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-07-16 01:06:53 +02:00
Oswald Buddenhagen
9651738f2d automatically fix separators in QMAKE_{DIST,}CLEAN
it's a tad insane to expect the user to do that

Change-Id: I75c68f2a28656c9ba2e3fabcc79718b899b29ce7
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-07-16 01:06:51 +02:00
Rafael Roquetto
c589ce1917 [QNX] Force UNIX-style separators on Windows hosts
The QNX toolchain, even on Windows, uses UNIX-style directory separators
('/').

Change-Id: I78575c9856b1700438c05ec0da81149688d85522
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-07-13 17:06:39 +02:00
Oswald Buddenhagen
89a558d6b0 fix splitting of $PATH when looking for sh.exe
Change-Id: I1ec0a48879d6ba7c0e2e7fdc0939980d0f817a68
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-07-12 17:19:17 +02:00
Oswald Buddenhagen
fd87383c41 remove pointless checking/fallback code for $$TARGET
qmake always sets that variable, so unless somebody pro-actively screws
it up (which doesn't seem like being worth checking for), it will just
work.

Change-Id: I3c4ada47cbd34ac68695d8efbf09c605392616f5
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-07-12 17:19:06 +02:00
Oswald Buddenhagen
b175e7b7c9 remove support for syncqt-based config tests
now that all modules have migrated, dispose of the clutter.

Change-Id: Ib8937c1452536f645b76c0097b927df1108afc1a
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-07-12 17:18:36 +02:00
Oswald Buddenhagen
328e7d9684 don't unnecessarily normalize $$[QT_INSTALL_*] any more
they are always normalized nowadays

Change-Id: I2d6d00639a4838da1a4def93a3416b000b8cd589
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-12 13:51:00 +02:00
Oswald Buddenhagen
079a87fec1 make the prl lookup search in standard locations
qtAddModule() skips adding standard library paths to LIBS. however, as
processPrlFiles() didn't know anything about that, it would not find the
prl files of qt libraries in these paths.
so centralize the definition of these default paths (we should actually
ask the linker for them) and use it in both places.
do the same for the include paths for symmetry.

Change-Id: I7e3692dc2d1c2d0c97a9151d15887b1263de137a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-12 10:40:50 +02:00
Oswald Buddenhagen
2f43511eb6 fix QT.<module>.*_VERSION references
Change-Id: I448de417d86f2500015b967581dbe7aab58e894a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-11 18:59:48 +02:00
Oswald Buddenhagen
e3124c4963 do not mess with VERSION
the import version is not supposed to determine the plugin version -
it's only used by the qmltypes target.

Change-Id: I0cb072cb0ee469bd96830262dbf4971a2bf3134f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-11 18:59:48 +02:00
Oswald Buddenhagen
503530a8fd support building tools as application bundles
qmlplugindump needs that

Change-Id: I3b6b6689a32744262184fa781fda465460a87640
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-07-11 05:50:55 +02:00
Oswald Buddenhagen
faac4c0a3c add feature file for centralized qml plugin project handling
Change-Id: I7cdce31d7ac458656cf8e8490fd7f7e5c04ca106
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-07-11 02:47:16 +02:00
Stephen Kelly
1e469bac11 Set the IMPORTED_SONAME for imported targets.
On windows this doesn't need to be set. On Mac I'm not sure yet on
the various configurations.

Change-Id: I31f191711a2ae0a1bb7221ae6e1fef377d62f1dc
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-11 02:47:14 +02:00
Stephen Kelly
8ce0ac8d0d Fix the name of _debug libraries on APPLE.
Change-Id: Id3ae730c0ce0630f8ccc222fe09e5d3da23d124d
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-11 02:47:10 +02:00
Oswald Buddenhagen
a15d674406 fix linking against installations in /usr/lib
Change-Id: I17a6a2e058f039e525461d459477329fd7090417
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-07-10 23:06:25 +02:00
Oswald Buddenhagen
9d1f44b9ce make sure that building tests implies building other parts
some tests have runtime deps on the other parts

Change-Id: Ieb2925e762e94b3c0b16884be0f59e10ce8e4878
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-10 22:44:30 +02:00
Thomas Senyk
84792b5ad5 Adding iMX6-device-files
Change-Id: Ifdfacf7201c9ee47783ae782d1f9042fe529a039
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-10 03:23:39 +02:00
Oswald Buddenhagen
48b01da4d3 deal with %PATH% containing parentheses
we need to make cmd escape the expanded output, so it doesn't confuse
its own command line parsing (which happens later!).

Change-Id: I0c2c71d276c0aebe3c2163f7f08db8050a14d7ce
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-09 15:14:44 +02:00
Rohan McGovern
d815043b11 qt_parts.prf: fixed handling of demos
Subdir for demos/demos.pro is 'demos', not 'examples'.

Change-Id: Ic4d80501e5d910891b0436ecd9881b79a4a99090
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
Reviewed-by: Kalle Lehtonen <kalle.ju.lehtonen@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-06 13:58:05 +02:00
Rohan McGovern
e17c87df9c qt_parts.prf: fixed examples, tests, tools always disabled
exists() resolves the path relative to qmake's current working
directory, which is mkspecs/features.  Explicitly refer to the full
path.

Change-Id: I04e9f377528bffc1ebeeed69c86d73b85a117423
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
2012-07-06 01:41:53 +02:00
Oswald Buddenhagen
918fd56324 centralize handling of QT_BUILD_PARTS
Change-Id: I33b8c3958a102d87461ad887fa5749bd9a6dc037
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-07-05 21:11:27 +02:00
Oswald Buddenhagen
8d2c59774d make non-bootstrapped non-installed prefix-built executables runnable
tools like idc and lrelease are outside qtbase/bin and depend on libraries
which are not in any search path, so we need some way to let the modules
announce the locations (qt_tool.prf) and use it (in qtPrepareTool()).

Change-Id: I98d5109cbee5e745d86dde94e3dc791d42edc3ec
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-07-05 21:11:08 +02:00
Oswald Buddenhagen
9c3b83437a set DLLDESTDIR only for non-prefix builds
a prefix build needs to be installed first anyway

Change-Id: I798861fddad2be289e9e4f182d0373e389b57437
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-07-05 21:10:52 +02:00
Oswald Buddenhagen
5863103385 set DLLDESTDIR to the build dir, not the install dir
Change-Id: I0aa3b512e5d633c5628c4bb285f96a41cda858d9
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-07-05 21:10:45 +02:00
Iikka Eklund
400813f585 Fix FRAMEWORK_INCLUDE for Mac
On Mac the framework include paths were generated wrong.
The $${MODULE_NAME} was missing.
This patch fixes the framework include path generation.

Change-Id: Ic0e8d69ac7ac63be755302dc822c28240c9bc3d2
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-05 13:13:58 +02:00
Stephen Kelly
5c5eb92419 Skip (re-)creation of cmake files during build passes.
Change-Id: I03973220c17c065bc6ea391300b677e27f48a46f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 15:52:06 +02:00
Stephen Kelly
6bd4be9436 Uppercase the CONFIG for verbatim mode.
Change-Id: Iec883e0218af80fc329d866affb2b95db72c54d3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-04 15:52:00 +02:00
Stephen Kelly
e3a9ac4f36 Set the language of a STATIC library.
This is used as a hint for the linker.

Change-Id: I869039c1ea50f1926809ead4064317628ebbb2e7
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-07-04 15:51:36 +02:00
Rohan McGovern
bcf20e122a Avoid load(testcase) for installing test helper apps
Make test projects declare TEST_HELPER_INSTALLS rather than calling a
function exported by testcase.prf.  load(testcase) may be unsafe, as
testcase.prf should be processed after default_post.prf.

Fixes silent disabling of various autotests.

Change-Id: I56b35ffd653a637ad5ab18d64dd1a1edadfac59f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Kurt Korbatits  <kurt.korbatits@nokia.com>
2012-07-04 02:46:27 +02:00
Stephen Kelly
acf9220374 Use qmake dirname function correctly.
It takes a variable name apparently.

Change-Id: I9e2e2a0f6f5c42ecf9d07e4ac45954f14676d559
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-07-03 14:54:52 +02:00
Marc Mutz
f4c9797d5b QNX: set QMAKE_CXXFLAGS_CXX11
Rationale:
  QCC is a wrapper around GCC, but it doesn't understand -std,
  so we need to pass it via -Wc.

  The underlying GCC is v4.4, which doesn't know -std=c++11
  yet, only c++0x.

  We can't use -std=c++0x here, because the QNX headers
  depend on some GNU extensions (nanosleep() was one that I
  saw), so it has to be gnu++0x, ie. STD C++ + GNU extensions.

Change-Id: Ia5caf68f558b1638224e4876f1bbec84a0a93f67
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-07-03 14:37:36 +02:00
Konstantin Ritt
d53f5db953 qmake: improve the .pc files generator
Don't hardcode the "qt_config" EXTRA variable and use QMAKE_PKGCONFIG_VARIABLES instead.
This allows qmake create the .pc files that are unrelated to Qt.

Change-Id: Ic72005e8819a15f6c50f3aaf79424a247fba20af
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-03 01:08:44 +02:00
Stephen Kelly
7327ae8c17 Look for CMake config files in the same prefixes as mkspecs.
This will allow tests of modules outside of qtbase to find their
CMake config files.

Change-Id: I68036908d0fd2ec640530b57d0f572d211ef44f0
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-03 01:08:18 +02:00
Stephen Kelly
a8ec5e912f Simplify logic for paths to CMake modules in tests.
Use a command line argument instead of an environment variable.

Change-Id: I518b21d1fb9567d182384885a308c76e108598d8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-03 01:08:13 +02:00
Robin Burchell
ab2fb14b46 android: remove QT_NO_QWS_TRANSFORMED from mkspecs
this does nothing anymore

Change-Id: If8798335dea935d1df9f085a7b4e1658f426809b
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-03 00:03:36 +02:00
Robin Burchell
43a22ee83e android: fix stupid thinko where cflags were set before the common include
this meant that the common mkspec was unable to do 'sensible' things with the
cflags (hence -Wno-psabi not being applied to C++ code), and probably explains a
lot of other weird things.

Change-Id: I77079027dc1b2691c53212893eb90c7b935d00a2
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-03 00:03:31 +02:00
Donald Carr
82ca0936ed Remove stale qws related mkspecs
Should be be reintroduced with intent if there is sufficient interest, outside of the QWS context.

Change-Id: I598f47b5cf0c10dd66534294d0f27cf0b4e5069a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-30 04:29:44 +02:00
Donald Carr
0bfa3569e2 Migrate linux-clang mkspec out of unsupported
Change-Id: I84abc4c305c28e46dd514d3fb78d27c051dc6048
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-30 04:29:40 +02:00
Mark Brand
f4f0c8b99b Merge "Merge branch 'buildsystem' (second round)" into refs/staging/master 2012-06-29 21:26:11 +02:00
Robin Burchell
ddf7233125 Add mkspecs for android cross compilation.
Using these requires setting two environment variables, e.g, for me:

export ANDROID_NDK_ROOT=/Users/burchr/android-ndk-r7c
export ANDROID_NDK_HOST=darwin-x86
./configure -opensource -confirm-license -xplatform unsupported/linux-android-armeabi-v7a-g++ -nomake examples -nomake demos -nomake tests -v

These mkspecs are somewhat based on the work of the Necessitas crew, kudos to
them for their work in getting the NDK integration into qmake.

Change-Id: I591e423ed8dc70616009f681c81890c696110e62
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-29 21:15:46 +02:00
Oswald Buddenhagen
1491065506 Merge branch 'buildsystem' (second round)
refactoring and cleanup. fixes x-builds between different os families.

Conflicts:
	mkspecs/features/qt.prf

Change-Id: I0205e6f07f77c9b015cf055dd87a471883949a91
2012-06-29 09:06:37 +02:00
Thiago Macieira
96166fa56a Update the macros for shared/DLL and static builds
Up until now, we had a mess of different macros used for building
DLLs, for building shared libraries on Unix systems and for building
static libraries. Some of the macros were contradictory and did not
work. From now on, there shall be only:

 - QT_STATIC: indicates that it's a static Qt build and the export
   macros should expand to empty
 - QT_SHARED: indicates that it's a shared / dynamic Qt build and the
   export macros should expand to Q_DECL_EXPORT or Q_DECL_IMPORT,
   depending on whether the macro corresponds to the current module
   being built (the QT_BUILD_XXXX_LIB macro comes from the module's
   .pro file)

QT_BOOTSTRAPPED implies QT_STATIC since the bootstrapped tools link
statically to some source code.

QT_STATIC is recorded in qconfig.h by configure when Qt is configured
for static builds. Nothing is recorded for a shared / dynamic build,
so QT_SHARED is implied if nothing is defined. This allows for the
existence of a static_and_shared build: with nothing recorded,
defining QT_STATIC before qglobal.h causes the export macros to be
that of the static form. Linking to the static libraries is out of the
scope of this change (something for the buildsystem and linker to
figure out).

From this commit on, the proper way of declaring the export macros for
a module called QtFoo is:

    #ifndef QT_STATIC
    #  ifdef QT_BUILD_FOO_LIB
    #    define Q_FOO_EXPORT Q_DECL_EXPORT
    #  else
    #    define Q_FOO_EXPORT Q_DECL_IMPORT
    #  endif
    #else
    #  define Q_FOO_EXPORT
    #endif

The type of the Qt build is recorded in QT_CONFIG (in qconfig.pri) so
all Qt modules build by default the same type of library. The keywords
are "static" and "shared", used in both QT_CONFIG and CONFIG. The
previous keyword of "staticlib" is deprecated and should not be used.

Discussed-on: http://lists.qt-project.org/pipermail/development/2012-April/003172.html
Change-Id: I127896607794795b681c98d08467efd8af49bcf3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-28 06:21:48 +02:00
Stephen Kelly
c4a05f5e3a Refactor the creation of imported targets into a macro.
This will make it easier to handle cases where the Qt installation
and the build do not match exactly. For example, on Windows, it
would be possible to do:

  ./configure -debug
  make
  make install
  make release
  make release_install

In which case, both debug and release libraries would be installed
even though it was only configured with -debug. On non-Windows, the
debug and release libraries would overwrite each other, so it is
not necessary to support it.

Similarly, we want to handle cases in the future where (on
non-Windows) both static and shared libraries would be
installed (again, not described with a single build configuration).

Change-Id: Ib7916c9664a0f72e40156a03bdfc79a4a6c24350
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-06-27 14:43:00 +02:00
Oswald Buddenhagen
a2382f7f15 unset QT_MODULE_* after loading the module pris
abuses have been observed in the wild, so make sure these variables are
not available.

Change-Id: I502c3f5db7d341cf6a8bd2ec09e87f129da2fca6
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-06-27 14:35:31 +02:00
Oswald Buddenhagen
b40b91cb39 move initialization of numerous variables to spec_pre.prf
this is cleaner by design and allows removing some hacks.

Change-Id: I3270195b5d62caa476ffde7c1e1ef43cec99c565
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-06-27 14:35:25 +02:00
Oswald Buddenhagen
dafc4a884c don't put QMAKESPEC_ORIGINAL into INCLUDEPATH any more
the spec does that itself, given that the real spec is just included
nowadays, instead of copied (which never worked without side effects).

Change-Id: Ibf655b9a943dadb949d3c7a58d8fe50fcd62cef7
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-27 14:35:24 +02:00
Oswald Buddenhagen
caa2263051 use real qmakespec as basis for finding features
doesn't make much of a difference on unix (as the default specs are just
symlinks).
on windows, it makes the gross hack used for finding spec-specific wince
default_post.prfs unnecessary.

Change-Id: Id403dce5be487e1ae22c1f54b8095a6afdd98bc8
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-27 09:39:51 +02:00
Oswald Buddenhagen
4753958db7 revamp handling of qmake target mode
the project evaluator becomes oblivious of the target mode.
the mode is set up in spec_post.prf according to the spec.
$$QMAKE_TARGET contains the feature suffixes to search, and is also
contained in $$CONFIG.
the target_mode variable itself becomes private to the Makefile class.

Change-Id: I3c06d9dab536b753343cec6c5c491d3203e50bd8
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-06-27 09:39:50 +02:00
Holger Hans Peter Freyther
8e5b6647a9 mkspecs: Use the right variable name to find the qdevice.pri
Commit 8b822825c5 introduced the
/get version but used the wrong variable name. Fix it by using
QT_HOST_DATA.

Change-Id: Ia4759b8c6ff2de9726f3aebae2f2f39c6644d4ec
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-26 20:02:55 +02:00
Oswald Buddenhagen
34cb86d46b make using testlib automatically "promote" all modules to -private
autotests often need private headers (especially with qpa headers now
being private) and have no compatibility requirements, so it makes sense
to just use the privates of requested modules.

this also suppresses the useless warning about using privates, in case
they are still explicitly specified.

Change-Id: I9e499bedcf6ef25777283ff1432cef7254e9093a
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-26 11:51:34 +02:00
Stephen Kelly
c42a0a7729 Factorize the cmake test infrastructure to be reusable.
This makes it easy to add cmake module tests for all modules.

Change-Id: I303bf7674ca6ae7a8544488f96e8e02afbaa6ff0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-06-26 11:49:52 +02:00
Konstantin Ritt
a9ba927406 Avoid macro re-definition after 1838a6c2fb
Change-Id: I2631ff687881278ba42edacd237a2130c103b69f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2012-06-26 11:37:57 +02:00
Stephen Kelly
fa6ca58b8b Don't re-evaluate the lib location.
Rely on the DESTDIR variable being set correctly by qt_module_config.

Change-Id: I1a166124024722ec5a189a7402b38646179aa890
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-26 04:18:29 +02:00
Stephen Kelly
70c981f973 Fix the DEFINITIONS for Qt modules.
As the DEFINITIONS to be used for QtAddOns is different to essential
modules, rely on the logic in qt_module_config setting this variable
correctly.

Change-Id: I64485ccd6df093216cac4a97fb1cfaac0122a218
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-26 04:18:25 +02:00
Oswald Buddenhagen
d921182310 add possibility to set $$MODULE_IMPORT_SUFFIX in module .pri files
quick1 got a suffix, so we need a way to set it

Change-Id: I099b868106abd4d3040047703472faa65f694f31
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-24 15:26:34 +02:00
Donald Carr
e6ccfe40eb Set Wayland as default platform on Raspberry-Pi
Update Raspberry-Pi mkspec to indicate that wayland is the default platform
for the Raspberry-Pi.

Change-Id: I10b30ecfb16faed6027137225d9e95409faa7e87
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-24 05:26:10 +02:00
Stephen Kelly
3d2a8d09d1 Add a variable for the private includes for modules.
This is required to use QPA for example in 5.0.

Change-Id: I44bfc6987d778370e55c05c591f63ff84c482d0a
Reviewed-by: David Faure <faure@kde.org>
2012-06-23 14:16:24 +02:00
Girish Ramakrishnan
7042de0894 eglfs: move m_pos into Cursor
Change-Id: I51e92d265e7ea6372ae58b357f75362e2d9a2df9
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-22 15:42:44 +02:00
Girish Ramakrishnan
57ca02b1d2 embedded doesn't exist anymore
Change-Id: Ib56895defb72f51bb790994b9fd72fc81ef25af5
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-06-22 07:41:31 +02:00
Bradley T. Hughes
1618ef236b mkspecs: Add macx-clang-libc++ and macx-clang-libc++-32
Use these mkspecs to switch to the new libc++ C++ runtime library, which
in turn makes it possible to enable C++11 support with clang.

Change-Id: If92908592f8bee4829a1bad747fe396f527d26c7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-20 15:45:07 +02:00
Oswald Buddenhagen
2f1762535b make missing qt modules fatal
there is no point in continuing; it will error out later (in more
cryptic ways) anyway.

Change-Id: I2562eadc2d91bfaa6e85368dc3774da31409a141
2012-06-19 16:46:09 +02:00
Oswald Buddenhagen
0fdf7c3a43 less confusing wording
Change-Id: Ia509fe1a28de803673623d425f5949b35404598c
2012-06-19 16:46:09 +02:00
Oswald Buddenhagen
1ee462604b fix misnomer: qt_module.prf => qt_build_config.prf
qt_module suggests to be congruent to qt_plugin.

Change-Id: I629530bcbe2ba6c0adbdc11a275119c8aff0c953
2012-06-19 16:46:08 +02:00
Oswald Buddenhagen
b3a497d781 fix regexp in qmodule.pri inclusion check
this also allows us removing the redundant flag variable

Change-Id: If26d22280ce7bc2ef3514c7c11ce7cd9baec1293
2012-06-19 16:46:08 +02:00
Oswald Buddenhagen
575a516630 revamp automatic makefile generation for sub-projects
instead of making the "real" targets depend on the makefiles, add
conditional makefile generation to the targets themselves.
this causes makefile generation to follow the recursion order determined
by the project, which is important when dealing with prl and module pri
files.
a side effect of this is that qmake and make calls are interleaved now,
which is entirely different from a 'qmake -r' run.

on the downside, calling make with multiple targets which operate on the
same subprojects without prior makefile generation will make a mess, as
the qmake calls will be racing. this should be no problem, as qmake does
not generate recursive targets where this would be useful - at least by
default.

it is not sufficient to just order the creation of the makefiles
non-recursively (e.g., by using gnu-specific order-only-prerequisites),
as an interrupted and subsequently resumed build would happily skip the
nested makefiles.
workable alternative approaches would be walking the entire tree in a
pre-pass to ensure makefile presence (which is incredibly slow) or
creating additional stamp files only after recursing and having the
makefiles depend on them (which is ugly).

Task-number: QTBUG-23376
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Change-Id: I88d3e7610215677d362026de316513d3bea04b06
2012-06-19 16:46:08 +02:00
Oswald Buddenhagen
e6d97f3f77 support for private depends in modules
if a module's private headers add additional dependencies, QT_PRIVATE is
now the place to declare them. note however, that this may not contain
other private headers in turn - that would be much harder to implement,
and we want the explicitness anyway.

Change-Id: Ic516fcf1a003c95798df4fbe216f92016afaf47e
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-19 16:46:08 +02:00
Oswald Buddenhagen
5290f6df89 introduce $$QMAKE_CHK_EXISTS_GLUE
instead of hard-coding platform differences, use a variable.

Change-Id: I20e98811ad5f07429148c6f88aedbabc3ba58fff
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:46:07 +02:00
Oswald Buddenhagen
45a201b6a3 centralize definitions of shell commands
there are only two types. everything else is duplication.

Change-Id: I87f2bdd3d56b94bb2ecdb60e8861afeb9af3666f
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:46:07 +02:00
Oswald Buddenhagen
3c144b54cf normalize $$QMAKE_QMAKE
everything in the projects should be normalized. only the makefile
generators need to adjust it to the native form.

Change-Id: I06a4e997f32134d13949ec4a9dd1b44367aab7cb
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-19 16:46:07 +02:00
Oswald Buddenhagen
2cfde5d9c3 correctly find idc even for makefiles
this is a qt tool, so it needs appropriate treatment

Change-Id: I0cb30ba07e03c72ee275cd916ca0a39a99fc3705
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-19 16:46:07 +02:00
Oswald Buddenhagen
98470fd9be scan module path backwards
the last read file wins, so reading in inverse order ensures that we
respect the list's sorting by decreasing priority.

Change-Id: I2e6539a52d4195ed6af4c0143b035c39577b8310
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:46:04 +02:00
Oswald Buddenhagen
a56ef02b2d let default_pre add modules to the qmake path
that way qmake is made aware of the forwarding pris which are generated
for this module even when a top-level .qmake.cache prevents the module's
root from being found automatically.
the path is also added to the cache, so that subsequent partial
qmake-ing of the tree will still find the module.

this also makes the -cache-module-fwd parameter of syncqt useless, so
remove it.

Change-Id: I2afbc52a465c0b3260e9bcaf032c43a82ae8061f
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:46:03 +02:00
Oswald Buddenhagen
a943f40483 recognize QMAKEMODULES env var, property and cache variable
the latter allows sub-projects to dynamically extend the qmake search path
specifically for modules. the others are just for congruency with
QMAKEPATH and QMAKEFEATURES.

Change-Id: I0c099035f8dc8ee8645566dbc635644a15ed9da5
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:46:03 +02:00
Oswald Buddenhagen
32042413f2 move generation of module master headers to qt_module_headers
this has the advantage that the %mastercontent assignments in sync.profile
are not necessary any more. as it happens, most modules got them wrong
anyway.

Change-Id: Ibdf689be408f18e1d90c44ef4ecacd7c24b1f1c9
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:46:01 +02:00
Oswald Buddenhagen
eae5135808 remove detection-based usage of modules which are frameworks
each qt module comes properly declared and located, so there is simply
no point in performing a search.

Change-Id: I86fad21bb8e128b85f1000cc116cc44a23642eb4
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:46:01 +02:00
Oswald Buddenhagen
a0374fd490 fix direct includes from modules which are frameworks
Change-Id: I1f2c1e5ebdb2fa258500a08b32dcafb4150ee424
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:46:01 +02:00
Oswald Buddenhagen
5cea63d2f2 let modules which are frameworks remember that fact
this will allow us to not rely on the modules matching the global
qt_framework setting.

Change-Id: Ic1dce757ff63d06af54a2428e23a1bbcf1c81ba1
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:46:00 +02:00
Oswald Buddenhagen
88a07df5e5 remove workarounds for broken syncqt
SYNCQT.HEADER_FILES contains qconfig.h just fine nowadays.

Change-Id: I52b35d2ac41d772acaef06f3931df75742c867cb
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:46:00 +02:00
Oswald Buddenhagen
c595988a58 automatically add QT_BUILD_FOO_LIB to DEFINES
Change-Id: I35d9861e48469eb5cc8824e361450684047e6559
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:46:00 +02:00
Oswald Buddenhagen
0f548b1744 remove backwards compatibility hacks
there won't be terribly many projects relying on it. now's the time to
find out for sure ...

this reverts commit 3279b07302fde0eb14f9b197c9ad2e14d512817e

Change-Id: Id36687ab3bfc7dd5ce35b584621a8f5b3ee00fc9
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:46:00 +02:00
Oswald Buddenhagen
131ba187f2 auto-generate QMAKE_PKGCONFIG_REQUIRES and QMAKE_PKGCONFIG_DESCRIPTION
less boilerplate, more accuracy

Change-Id: I6cc2abd50eafb4901d987c122f10a62ec9ea9da3
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:45:59 +02:00
Oswald Buddenhagen
f3cca88ac4 move QMAKE_PKGCONFIG_VARIABLES stuff out of qt_module_config.prf
this only needs to be set in one module each - the one which provides
the relevant tool.

this is moderately source-incompatible, in that a package which queries
a given variable from the wrong library won't get the path it looks for
any more. as it's likely that everyone was using QtCore as a reference
anyway, this will only affect uic - which is in the new QtWidgets
library, to which people need to adjust anyway.

Change-Id: If05d3c33fda6cd12466e261391b825c59651d3e4
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:45:59 +02:00
Oswald Buddenhagen
19009cde45 remove ACTIVEQT_IDC assignment from QMAKE_IDC
the specs have been cleaned of it

Change-Id: Ica0ab4d5f9d36f1f9566759326f3b3144e34cd67
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:45:59 +02:00
Oswald Buddenhagen
65c1ed6281 remove support for CONFIG+=qt_compat
this is truly prehistoric stuff

Change-Id: Ia781fc03c081bff895f4d2b5325d3624441bdf5f
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:45:58 +02:00
Oswald Buddenhagen
8b75fc7bac don't explicitly inject qt header/library paths
the modules already do that on demand.

Change-Id: I889a5cd7b62631e2551ada4b096f20b3b79b2c75
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:45:58 +02:00
Oswald Buddenhagen
4816ca6c56 always add library path from module
that way we can theoretically support modules outside $QTDIR.
also, it's just cleaner.

Change-Id: I6139ebc7328b64ace8552b3e54f9a8c69248ceec
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:45:58 +02:00
Oswald Buddenhagen
5d1b4c79d2 make module includepath addition less convoluted
don't prepend the paths, as this will only mess up building of
subsequent modules (e.g., building qtdeclarative against an installed
qtbase would pick up the headers from the qtdeclarative previously
installed into the same directory as qtbase).
for frameworks this was a rather pointless exercise in the first place,
as their headers are properly isolated anyway.

however, make sure that we don't add system locations to the search
paths, as this is a) unnecessary and b) messes up subsequent libraries
in non-standard locations which want to shadow versions in standard
locations (pkg-config .pc files which add standard paths are considered
broken as well).

Change-Id: Ie1dc65d4767e98e1df6e49012505141935a6c704
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:45:58 +02:00
Oswald Buddenhagen
46ae5598e5 add qtCompileTest()
this fully replaces qtmodule-configtests.
it is way shorter and it actually integrates reasonably with qmake.

Change-Id: I819cc6807ad3661c419b54fa253894936dd88a64
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:45:57 +02:00
Oswald Buddenhagen
2d8dd9a6c9 do not route qtmodule-configtests invocation through syncqt
there is completely no reason to do it.

Change-Id: Ie186ef4c1bbd12c256acb2fe374d12ebe777d6c9
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:45:57 +02:00
Oswald Buddenhagen
0b76b7ab8a auto-generate module pris
Change-Id: I654428771034221ccf424be34d5d9c7764daf3b4
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:06 +02:00
Oswald Buddenhagen
95b2e051f9 move creation of module version header to qt_module_headers
Change-Id: I650b495ec1789eb03b31d796f9f475ba01aab2d3
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:05 +02:00
Oswald Buddenhagen
e203e42906 automatically add the version header to HEADERS
Change-Id: I7c2e1d852ebdbc5cca7a3a31ab2b4c9ab9faffd9
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:04 +02:00
Oswald Buddenhagen
92c76ffcf1 factor out qt_module_headers.prf
this doesn't make too much sense as such, but the file will grow.

Change-Id: Iceaecdc24f83b3dafb40c8d2f1b6cddafa2d70a1
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:04 +02:00
Oswald Buddenhagen
b2dc56d5cf make headers.pri locality determination less convoluted
the location is determined by syncqt rather precisely. no need to
reverse-engineer config files.
$$HEADERS_PRI doesn't seem used anywhere, so don't set it as a side
effect.

Change-Id: I54a63356c350c0ddae4c880bf374fcd127282429
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:03 +02:00
Oswald Buddenhagen
a8ad1e77ba generate fwd-pris in qt_module_config, not in syncqt
the forwarding pri is loaded even if it was still created by syncqt, so a
top-level qmake -r will still catch it even in the future.

Change-Id: I2e4b556cd06eb88be9ee378662a2e6e1bff67ad7
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:03 +02:00
Oswald Buddenhagen
d31f4a560d bring statements into a somewhat logical order
Change-Id: I7bfbcd414bd2c8ff82e210c075b88f1ca00d3b73
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:03 +02:00
Oswald Buddenhagen
a18bd8203d remove qt from CONFIG for non-artifact templates
there is no point in adding Qt modules to SUBDIRS projects.
as QT contains core and gui by default, the operations are relatively
expensive, so skip them when they are unneeded.

Change-Id: Ibe6447ff452e403cb040fabe245d248edbda0eaa
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:03 +02:00
Oswald Buddenhagen
ffa2e1d007 define have_target CONFIG flag
the check whether we are building a lib or an app (and thus have a target)
is done by quite some feature files (and generally wrongly, as they do not
account for the new aux target), so centralize it in default_post.prf.

Change-Id: I868edbc4185be8a6c23ecd4a2c126024d73cdeb4
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:02 +02:00
Oswald Buddenhagen
e7b9600103 add possibility to install a module with no library
the declarative module is a fake, so there is no library to install.

Change-Id: I0dcd39f3304e38adce9ea34e2268905525abd3d5
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:02 +02:00
Oswald Buddenhagen
c23767bab9 make version fallback code sane
the qt version is always set.
otoh, we need to allow the module to override the own version.

Change-Id: Ic3eb7dae59a5fb011cede09151553b652a0a1d78
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:02 +02:00
Oswald Buddenhagen
0202e15617 remove explicit RCC_DIR addition to INCLUDEPATH
qrc_ files are generally not meant to be included, so there is not much
point in doing this.
qprintsupport was a notable exception - which broke on mac and thus
needed a hack. just remove the qrc_ inclusion.

Change-Id: If5115665f331a280869e800673bf7b81d3ab559a
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:01 +02:00
Oswald Buddenhagen
10075973e2 make qmake module path configurable separately
this is needed by webkit's creative directory layout.

Change-Id: I2317162c11696d2820423d63563b10d3024a6cb6
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:01 +02:00
Oswald Buddenhagen
45711a8b73 write forwarding pris to $outpath/mkspecs/modules
this makes qmake find them automatically now.
consequently, also do not write QMAKE_EXTRA_MODULE_FORWARDS to
.qmake.cache. still write the cache file, though, as otherwise a
top-level cache would mess up the module root detection.

Change-Id: I998b94fcc73ca3f8bf1af09a394ff8d40cf1fb76
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:01 +02:00
Oswald Buddenhagen
4aef57e02c remove useless variable assignment
Change-Id: I3552305473cd0150d83c1e2a3c9fb0c4097244cc
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:00 +02:00
Oswald Buddenhagen
926cf05f80 rename QMAKE_SYNCQT_OUTDIR => MODULE_BASE_OUTDIR
a variable name should not reflect the tool which uses it, but its
purpose - especially, as the scope will be extended soon.

this variable is used by webkit, which has a somewhat creative directory
layout.

Change-Id: Id3d3fad6ed9395cb967aeabc79e47a0ba17f5423
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:00 +02:00
Oswald Buddenhagen
f4b7e33c0b make qt_module_config.prf install the module pri file
absorb module.prf into qt_installs.prf, as that's where it belongs.
add qt_install_module option and automatically set it in
qt_module_config. make qt_installs use that option.

Change-Id: I860616f3a29a456f7b88ddaffa09375400c8911e
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:40:00 +02:00
Oswald Buddenhagen
84fb7be6c1 make qtAddLibrary() a noisy compat wrapper for qtAddModule()
it's used by people (in particular, qt creator), so it would be not nice
to just delete it entirely.

Change-Id: I6bd849d00ebfe3b9b126e01a6d1c6e7c6584d8ac
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:39:59 +02:00
Oswald Buddenhagen
c4eed770be purge QMAKE_INCDIR_QT and QMAKE_LIBDIR_QT
they are equivalent to QT_INSTALL_(HEADERS|LIBS)/get.

Change-Id: Ic4b47f3ca7db55785b96f19020a2fa020a8d25bd
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:39:59 +02:00
Oswald Buddenhagen
9206932105 simplify code which determines how/where to create forwarding pris
the qtbase install dir being a build dir is a necessary and sufficient
condition for detecting a developer build.

Change-Id: I3d98c789ac6fbe570980459edabb9a941bf1e5d6
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:39:59 +02:00
Oswald Buddenhagen
ab9f0e694f move $QTDIR handling out of syncqt
instead, always pass -qtdir (which, btw, is a slight misnomer - it
should be -qtdatadir) with the correct path. this centralizes the
relevant logic in default_pre.prf.

Change-Id: Icc788d3f3e5f7b68b444e63e181efdea3b4ef160
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-06-19 16:39:59 +02:00
Oswald Buddenhagen
8b822825c5 make use of $$[FOO/get] properties
this cleans up a lot of hacks supporting the build of qt, including the
last bits of $QTDIR.

Change-Id: Id119886ed8097967dad6cf86ebd4e71d90c42841
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:39:58 +02:00
Oswald Buddenhagen
107aeb870b move moc, rcc and uic CONFIG additions to the respective qt modules
they don't belong into the global scope

Change-Id: I27a3de5f706392b3c4a84035521bc3b4e4055740
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:39:53 +02:00
Oswald Buddenhagen
4204a8555c remove some DEPENDPATH nonsense
qt is built with depend_includepath anyway

Change-Id: I3967ad0bb52f5a3d88fceaf102c79f6711aaa83a
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:39:52 +02:00
Oswald Buddenhagen
812adb58ba dispose of library-bound feature files
specifically, qtestlib.prf, qdbus.prf, help.prf, designer.prf and
quitools.prf - they have been obsoleted by modularization.
add noisy backwards compat hack to qt.prf.

Change-Id: I26f84fdd51798265471e20dd1f40efec59b1087e
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-06-19 16:39:52 +02:00
Oswald Buddenhagen
528192a78b Revert "make default_pro.prf advertize dynamically created .qmake.cache"
... and followup fixes.
this is not needed any more due to the breaking patch being reverted.

Change-Id: Ia3416fcc16ddece680efbd0322286a601879fa0a
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:37:49 +02:00
Johannes Zellner
60f2abff5e raspberry: remove unused screen size detection code
The fbdev fallback code now resides in the default implemenatation of
the hooks.

Change-Id: Id3d2cd23ab826b90c0e6d442bfb222aa8c291646
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-19 00:38:27 +02:00
Johannes Zellner
11aa64b1a1 eglfs: Pass QSurfaceFormat to createNativeWindow() hook
Change-Id: Ib352d8591360a224359ef218b95cd27cdfaf81aa
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-14 16:12:31 +02:00
Sean Harmer
0346d605e3 Do not add debug/release to QMAKE_CONFIG. Let module system enable them
This solved QTBUG-26111 in which qtjsbackend gets built with an
incomplete framework on Mac OSX. This was traced back to commit
6a6fd56e66 which moved QMAKE_CONFIG
values from .qmake.cache to mkspecs/qmodule.pri. Since qtjsbackend
contains config tests it creates its own .qmake.cache which was
previously masking this issue.

QMAKE_CONFIG incorrectly contained debug for debug_and_release builds
even though debug and release are already present in the CONFIG variable
in mkspecs/qconfig.pri. The changes to configure prevent CONFIG in
qmodule.pri from containing debug and release variables and ensure
that QT_CONFIG contains build_all and debug_and_release if appropriate.
Configure.app is also adjusted to match this behaviour.

The other part of the change is to qt_module_config.prf and
qt_plugin.prf. These changes take care of populating CONFIG with
the appropriate debug_and_release and build_all variables depending
upon what is present in QT_CONFIG. This ensures that the Qt modules
and plugins get built with the same configuration as qtbase.

The special handling for the qcocoa QPA plugin ensures that it is
built in release mode only to preserve the behaviour introduced by
commit 5603f94eaa.

Task-number: QTBUG-26111
Change-Id: I6f65aba50709e1b2431b8b4411ff30a06f7d8aed
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-14 03:03:38 +02:00
Sean Harmer
5eae12ff72 QNX: Enable additional CPU features to be compiled in for QNX
The QNX toolchain can use Neon on ARM and SSE<X> on x86/x86_64.

Change-Id: I36c61fa12b65d806b3cc60a0aefcb63964f9ab7e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-14 03:03:38 +02:00
Girish Ramakrishnan
4b7a4c40d8 eglfs: mark overriden methods with Q_DECL_OVERRIDE
The current cursor implementation can be a bit hard to read
without hints about which methods are overriden.

Change-Id: I3376890a13be46e1ece03d1442dd5a15ccd61382
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-13 23:59:17 +02:00
Andy Shaw
ef459193ec Fix compile issue on AIX
Since local thread storage is used we need to turn this on for the xlc
compiler with the -qtls flag.

Change-Id: Ib40ec87edada56a062b0c72b7d47b38a6d0b5b13
Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-12 22:57:22 +02:00
Mark Brand
76b2d130ae add SSE2/AVX/Neon/etc. flags to mkspec win32-g++-cross
Follow-up to 6a51062e99 which did this
for win32-g++.

Change-Id: I3ba0dd8ffca46853844b55b16dc92270fa8a623a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-12 20:06:39 +02:00
Johannes Zellner
1c86619037 raspberry pi: Dont use the video layer for EGLFS
The OpenmaxIL video_render component uses the dispmanx layer 0, so EGLFS
should use at least z index 1. Otherwise the video_render would conflict
with the UI and thus overpaints it.

Change-Id: I3bed23567fa8c4399207289c6ef952c5a5e0d503
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>
2012-06-12 04:30:12 +02:00
Girish Ramakrishnan
4fd095d242 raspberry pi: add /opt/vc/include/interface/vcos/pthreads to includes
See https://github.com/raspberrypi/firmware/pull/32 for more information.

Change-Id: I51bb532336ed069cde938540cd962721b1a72adb
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-12 04:30:09 +02:00
Thiago Macieira
6a51062e99 Move the SSE2/AVX/Neon/etc. flags into the compiler mkspecs
This allows us to have different flags for the compilers for
supporting the same feature. For example, the official flag in GCC to
support AVX2 is -mavx2, but ICC does not support it (yet), requiring
-march=core-avx2 or -xCORE-AVX2. That flag, instead, enables support
for all the features that the "Core-AVX2" processor (codename Haswell)
will support. And clearly, the MSVC flags are different.

Change-Id: I33b6d8617520925e807747180a8dbaafd79b7a9a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-12 04:29:42 +02:00
Stephen Kelly
77a03ebd8d Expand the 'existing target guard' in generated CMake files.
This way the target will be created and have its properties
populated only one time.

I tried wrapping the whole file in an 'include guard', but that
broke the unit test in tests/auto/cmake/pass1 (and
the qt5_use_module function), because the function causes the
variables in the Config file to not exist outside of the
scope (eg for include directories), and yet, Qt5${Module}_FOUND is
still true even when the find_package was previously called in a
function, so it is not found and processed again.

The change in Qt5CoreConfigExtras.cmake does not need to be guarded
as it is only ever included from Qt5CoreConfig.

Change-Id: Iaa016563db5eb61294360ac9e003c9c923393d8c
Reviewed-by: Brad King <brad.king@kitware.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-06-07 19:08:34 +02:00
Donald Carr
b194575b85 Fix common device spec paths
This fixes breakage in the Raspberry Pi spec introduced in:

https://codereview.qt-project.org/#change,27536

due to incorrect depth assumptions regarding included files.

Change-Id: I802b828f1755f299939fed192dd3ca9bf1a83002
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-07 04:16:49 +02:00
Donald Carr
058c8da0f1 Generalize common device properties out of Raspberry Pi spec
Change-Id: I58cc9c9219bf3e9ed8e7401cb66f968306d7bfc9
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-06 02:02:40 +02:00
Bradley T. Hughes
bf84d1a1fe configure: Auto-detect and enable C++11 support if available
Enabling support for C++11 adds CONFIG+=c++11 to the Qt build. Projects
using Qt can check for C++11 support using contains(QT_CONFIG, c++11) in
their .pr[iof] files.

The QMAKE_CXXFLAGS_CXX11 and QMAKE_LFLAGS_CXX11 qmake varibles contain
any arguments the compiler needs to enable C++11. CONFIG+=c++11 adds
these arguments to the build.

Support for clang, g++, and the Intel C++ Compiler for Linux are
included in this commit.

Change-Id: Id77f86d7ad4d5c740b890446a40b105879a0d327
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-05 12:30:13 +02:00
Girish Ramakrishnan
5933205cfc eglfs: implement hardware cursor for the raspberry-pi
The cursor is rendered on a dispmanx layer and moved
around. This approach saves us from having to update the
underlying window each time the cursor moves.

Dispmanx layers cannot be moved to negative coords. As
a result, currently it is not possible to move to a
location less than the hostpot. A future commit will
fix this problem.

Change-Id: Ida5ee961d03a6929860c515e503482756a4913ed
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-01 15:22:49 +02:00
Donald Carr
698e5b376d Remove all references to X11 session management
There is no session management currently implemented for the xcb QPA
backend. Update the build system to reflect this.

Change-Id: I3486de5741f1fb7e09330ca142b8235a84d3b91d
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-01 03:15:55 +02:00
Thiago Macieira
6a6fd56e66 Move the sub-architecture feature to better places in qmake
Instead of saving the ability of the compiler to produce SSE2, AVX,
Neon, etc. code in .qmake.cache (Unix) or qconfig.pri (Windows), move
everything to qmodule.pri. Accordingly, move the DEFINES += settings
to qt_module.prf instead of qt.prf.

This allows us to re-use these settings in other Qt modules (other
than qtbase), if necessary. Though currently the extra compiler
definitions are found only in src/gui/gui.pro. They can be moved
elsewhere when it becomes necessary.

As a side-effect of this change, some other flags are moved from
.qmake.cache to qmodule.pri (on Unix). The flags that are getting
moved should probably be moved anyway.

Change-Id: Ibc3ab0111e148d81870772f9357273660aa93417
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-31 17:55:49 +02:00
Thiago Macieira
398c8513b1 Overhaul the qsimd_p.h: rename macros and update conditionals
The QT_HAVE_xxx macros are replaced with QT_COMPILER_SUPPORTS_xxx.
They indicate that the compiler supports those intrinsics, but not
necessarily that they can be used right now.

ICC and MSVC allow one to use the intrinsics anywhere, but for Qt all
uses of the intrinsics are either in specially-built files, protected
by runtime checks, or they are unconditional (qstring.cpp). So we only
use the intrinsics when the compiler was instructed to generate code
for that instruction set anyway.

Change-Id: Ie58eebbc0518ad1d5420a85174fd84153bb9abaa
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-31 17:55:37 +02:00
Friedemann Kleint
e7f1106edb Windows: Add ANGLE support.
- Add QWindowsEGLContext usable for ANGLE and Windows CE.
- Add QWindowsEGLStaticContext containing the display
  for resource cleanup.
- Add EGLSurface to QWindowsWindow.
- Add a -angle option specifying the path to the external
  ANGLE installation to configure, add libraries to
  the mkspecs.

Initial-patch-by: Jabot Corentin <corentinjabot@gmail.com>

Task-number: QTBUG-24207

Change-Id: I5f80b1efb6996da7c5d70aa3720f7801c9e4c6af
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-31 09:13:01 +02:00
Donald Carr
dce42ebd23 Add hard float-abi support to Raspberry Pi spec
Change-Id: I1bed28bdb5f84e61605972713a20359cc6deeaa6
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
2012-05-30 23:55:35 +02:00
Donald Carr
15fcb229cb Introduce a Snowball mkspec to the device specs
Change-Id: I7aa2f1a719c424079d7f0d7b3410f293cee05fa9
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-25 00:19:37 +02:00
Girish Ramakrishnan
2d990ccba6 -device: remove redundant check for empty CROSS_COMPILE
Remove the check from ST7540 and PNX8473 specs since
it's already checked in deviceSanityCheckCompiler

Change-Id: I2accb12f9e692e253f76194ca68b1f4cc673a833
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-24 14:49:56 +02:00
Holger Hans Peter Freyther
92a61d896e bcm97425: Fix linking the directfbegl QPA plugin
directfbegl requires libQtPlatformSupport to provide some EGL
helper functions. Enable EGL by adding it to the QT_CONFIG variable
in the qmake.conf.

Change-Id: I80d3163d9da4b9eb232aea72ba7d4388453f8247
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-24 07:14:58 +02:00
Jonathan Liu
10cfb08eae Enable extra warnings for win32-g++ mkspecs
Change-Id: I09d6ed18007f29bad84e757f2916c6f7323e5b44
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-05-23 20:09:09 +02:00
Holger Hans Peter Freyther
a6bd4c60e4 devices: Allow to pick up the compiler from the path
Re-enable checking if the compiler is in the path. The previous
commit dealt with a user/spec author not setting CROSS_COMPILE and
then picking up the host g++. Re-add the 'which' check, but put it
after the sanity check for the CROSS_COMPILE variable. This check
assumes that QMAKE_CXX is of the form "${CROSS_COMPILE}g++".

Change-Id: I54f7e058a75d26d73eca5a860946a6854ce91d67
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-23 19:27:41 +02:00
Girish Ramakrishnan
b41028aaf3 device: Check CROSS_COMPILE in deviceSanityCheckCompiler
QMAKE_CXX is initialized by default to gcc. As a result,
'which $QMAKE_CXX' always succeeds.

This change removes the 'which' check and makes it explicit
that CROSS_COMPILE is a mandatory option to -device mkspecs.

Change-Id: Icefa9d14fc24086a60c9108ff7d9d16fd9990995
Done-with: Johannes Zellner
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-23 00:41:35 +02:00
Girish Ramakrishnan
ac16d72214 eglfs/pi: update handles are 'local' variables
Change-Id: Iec687e9cd015ed389a637b50e4e4e332478b6e1f
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
2012-05-22 05:09:11 +02:00
Donald Carr
707fc2bb00 Clean up Raspberry Pi spec
Introduce platform libs hook to handle/allow device specific initialization and the associated symbol resolution

Change-Id: I098b07dcb581390d369d9165c6cedc7ace1e088a
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-22 05:09:04 +02:00
Friedemann Kleint
d340769125 win32/default_pre.prf: Remove exceptions_off, thread_off, stl_off.
- thread_off, stl_off are obsolete.
- exceptions_off causes exceptions to be globally disabled for
  applications using MinGW after
  2b21dd69d6.

Change-Id: Ia109c5806f2a0172efed5680a55ca53a2846d778
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-05-21 16:02:06 +02:00
Romain Pokrzywka
a3d4e0cbb1 Remove optimization flag from QMAKE_CFLAGS
-O2 is already the default optimization level for release builds,
as defined in gcc-base.conf. In addition, it shouldn't be set for
debug builds.

Change-Id: Idd7406b0d135d9579676b389050fd6e5776e722c
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-17 23:56:35 +02:00
Romain Pokrzywka
c70008d13e Apply compiler platform flags to debug builds as well
Compiler flags like CPU architecture and FPU should be set on
QMAKE_CFLAGS instead of QMAKE_CFLAGS_RELEASE, as the latter only
applies to release builds

Change-Id: I2e729a9e413934e904fc2810394e118940b8557f
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-17 23:56:16 +02:00
Lars Knoll
2b21dd69d6 turn off exceptions by default where they aren't required
This significantly reduces the size of the generated code
in places where we don't need exceptions.

The -(no-)exceptions configure flag has been removed in the
process, as there is now a fine grained way to control this
on a per module level, and Qt is being compiled without
exceptions in most places.

Change-Id: I99a15c5d03339db1fbffd4987935d0d671cdbc32
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-17 05:14:26 +02:00
Andreas Holzammer
1a4f58d3e6 Add Visual Studio 11 mkspec
This adds the Visual Studio 11 mkspec
and the corresponding changes to configure
and qmake makesystem.

Change-Id: I3a7e82a6f7f90aa0a94dedd493ebaa66bf100923
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-16 13:34:20 +02:00
Stephen Kelly
a49a92bd9d Properly quote all variables which are paths.
This is required if Qt is installed into a directory with spaces.

Change-Id: I1d6874265558d712ac98a3aef670c2934a632ab1
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-05-16 12:03:54 +02:00
Stephen Kelly
f16a77d783 Use IF(NOT TARGET ...) before creating imported targets.
Initially we didn't do this because someone could accidentally create
another target of a conflicting name, and used a variable to store whether we
have created the target already or not.

That wasn't adequeate to deal with finding the package in a scope
like a function, so we used a directory property. However, the directory
property is not valid in the same scopes as the defined target. For
example, finding a Qt module in both a directory and a subdirectory causes
a conflict.

As it is already unlikely that a target would be accidentally created with
a name like Qt5::Core, we should simply use the IF(TARGET) form.

Change-Id: If64f25d45f51edcd1edb0d4bfb5ed3bb2479bd27
Reviewed-by: David Faure <faure@kde.org>
2012-05-15 23:03:23 +02:00
Marius Storm-Olsen
58ab3a79a0 Set QMAKE_DOCS_INSTALLDIR to $$[QT_INSTALL_DOCS] to allow overriding in .pro
Normally you want to pass -installdir $$[QT_INSTALL_DOCS] to qdoc by
default. However, if you want to force the generation of URL links to
the documentation, the option cannot be specified.

By setting the QMAKE_DOCS_INSTALLDIR variable in default_pre.prf a
project may override it at will, as for example Qt Creator would do.

Change-Id: Ib31f03acf4e8050cf2dd3aa33f3a10ed027f1df7
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-15 14:34:15 +02:00
Donald Carr
1da0db344a device: don't set a default cross compile prefix
qmake -set can be used instead to set a the default cross compile.
device_config.prf already contains code to read this default.

Remove per-spec CROSS_COMPILE checks

Introduce deviceSanityCheckCompiler() usage where appropriate

Done-with: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Change-Id: I07c75c9e933dc1174a1bf8bf523b6b4a6b427408
Reviewed-by: Romain Pokrzywka <romain.pokrzywka@kdab.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-15 04:56:59 +02:00
Stephen Kelly
2b735ac8e6 Use directory property instead of variable to determine target existance.
This is more resilient to calling find_package in a scope such
as a function.

Change-Id: I17e69a416f4aed3102fa6195d239bcf4ce0b306b
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-05-14 04:35:08 +02:00
Stephen Kelly
dd38ad600f Only find dependencies from the same Qt installation.
Add a PATH to search for dependencies in the current prefix, and
disable other CMake searching logic with NO_DEFAULT_PATH.

A Qt installation must all be installed to the same prefix currently.
If that constraint is ever relaxed, we can turn this into a hint instead.

Change-Id: I633cafb7e546dbd102ac0b2ed18db260d26adc51
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-05-13 18:49:10 +02:00
Donald Carr
f1ea4ed3d4 Remove stale udev check
udev headers now ship as part of the base debian reference image

Change-Id: I181c7f48ca59af46fccf8f3204845379d068c023
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-12 01:24:55 +02:00
Bradley T. Hughes
7a67c822e3 configure: Remove the -dwarf2 argument for Mac OS X builds
Modern versions of Xcode properly support dwarf2, and as such dwarf2 is
always enabled. This change removes the ability to turn it off, making
dwarf2 non-optional.

Change-Id: I149daeae6048ee8a1ed116363572173ad219102e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-11 12:52:21 +02:00
Friedemann Kleint
3195b41eb7 Remove declarative from qmltestcase.prf.
Change-Id: Ia4bf45132a74ec7bbbb2a918088c176f87a26e76
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-11 12:52:21 +02:00
Stephen Kelly
4e8c20e97e Add underscore to internal implementation detail variables.
Change-Id: I4c70ed2808396931fff986fbfad5940dd39e74f6
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-05-10 22:46:55 +02:00
Stephen Kelly
bced700e88 Include the VERSION_STRING in CMake config files.
Change-Id: I9f0e9316241b4cb615350876b11ee263f7efd3bf
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-05-10 22:45:54 +02:00
Marius Storm-Olsen
9456528aac Merge branch 'docs-refactoring' into master
Change-Id: Iebd1966abace3cdf7f9428dcfc1ded5b124ab113
2012-05-10 09:11:23 +02:00
Marius Storm-Olsen
9fde9ab167 Properly implement a 'make docs' target for subdirs and apps/libs
Only call qdoc for projects which sets the QMAKE_DOCS variable to
point to a qdocconf file.

Exclude examples/ and tests/ from the qdoc run, by adding
    no_docs_target
to CONFIG for those projects.

Change-Id: Ic856c8f19db59309302d0602b3e99735609e525a
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-09 08:34:42 +02:00
Girish Ramakrishnan
4a58853aea Fix qpa files installation
qpa header files were not installed under qpa/.

Change-Id: I243c3a7e83a342f7485791a1a29b65c9a8f25d6b
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-05-08 20:03:49 +02:00
Stephen Kelly
27ca259fb6 Don't attempt to ask cmake to find the glib dependencies.
Those components are not known to FindGTK2.cmake.

Change-Id: I4a7fe35d7d118168c24285f3ea8f57822b2facff
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-05-08 06:59:19 +02:00
Donald Carr
bcc9c50b50 Introduce Arch Linux specific link line to pi mkspec
Change-Id: I77c99a2f5e25c28ad2d4a13e3b56d3603cd5bb64
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-05 00:52:14 +02:00
Morten Johan Sorvig
fde021c6d7 Add mkspecs for 32-bit Mac OS X builds.
Add mkspecs/macx-clang-32
Add mkspecs/macx-g++-32
Add mkspecs/common/clang-mac.conf

Skip the rest of the Mac mkspecs (icc, llvm, g++40,
g++42, builder, Xcode, xlc) pending a cleanup where
we determine which ones to keep.

Change-Id: I00ceddfcbdb5119cb132433bad43e4aed016eab2
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-04 09:19:23 +02:00
Morten Johan Sorvig
976619bd59 Remove all usages of "arch" CFLAGS on Mac.
Remove all [PPC|PPC64|X86|x86_64] CFLAGS, CXXFLAGS
and OBJECTIVE_CFLAGS. Delete the arch prf files.

32/64 bit arch selection will be made using a different
mechanism in Qt 5. Universal builds are not supported.

Change-Id: I4664f2c31801cec7fb4d240f41c2c5204a109020
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-04 09:19:23 +02:00
Stephen Kelly
b4dabb9e50 Revert "Don't use the pri depends line for link dependencies."
This reverts commit df43b9a06a.

Using the same depends information as QMake provides adds a lot of
convenience for users, and is mostly 'correct' from a CMake
point of view anyway.

Change-Id: I8f2a2f74a687c25a0dedcc491ef72ddb5b136090
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-05-03 16:11:58 +02:00
Raphael Kubo da Costa
f42a61e76a mkspecs: Define compilers and linkers elsewhere for freebsd-g++46.
Commit 996672933a has made the
freebsd-g++46 mkspec use g++-base.conf, which on its turn resets
QMAKE_CC and QMAKE_CXX to other values.

Redefine them to gcc46 and g++46, respectively (and fix the linker
values) after the inclusion of g++-unix.conf so the settings are not
lost.

Change-Id: I2d03548fdc492c5e4c4744b636b29df2cefe2acd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-03 05:55:14 +02:00
Kai Koehne
2f105af8de Enable QML debugging of qtquick1 with CONFIG+=quick1
Make the option name align with the name of the module.

Change-Id: I29a822b55b3cb52a51592aa2bd0746a53bfe44b9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Aurindam Jana <aurindam.jana@nokia.com>
2012-05-02 12:21:55 +02:00
Donald Carr
6102ab8d64 Make eglfs hooks functionality namespace cognisant
Change-Id: Ie9f86bd0494c0423f50d0f405922ab169b2431e3
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-02 04:29:15 +02:00
Stephen Kelly
e72a425e13 If a dependency was not found, and we were not called with REQUIRED, we are not found.
This only works with CMake 2.8.8, but it is no harm to earlier versions.

Change-Id: I62c220e4b24f951e83c23eb57d5f833de4d181c5
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-04-29 20:28:00 +02:00
Stephen Kelly
05dddb265c Properly quote the dependencies string.
Change-Id: I319b04cdb21860652658ee8d3e577d41a913ed5a
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-04-29 20:27:39 +02:00
Stephen Kelly
6e8d306ca7 Make sure different modules do not overwrite each others dependencies.
Change-Id: I30ca05d3c692a707cfe829ad5fee099549bab540
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-04-29 14:05:39 +02:00
Stephen Kelly
7fc8edf069 Forward the REQUIRED and QUIET arguments when finding dependencies.
Change-Id: I5d7c26f12a296ac3527575149978b18c5e9a4a67
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-04-29 14:05:39 +02:00
Qt4iOS
f9048b3465 Added mkspecs for iOS.
Modified common MacOS gcc config for iOS compatibility. Added iOS
mkspecs for iOS devices and simulator using G++, LLVM-G++ or CLANG
compilers.

Change-Id: If0a0b1a3ce4e0dc4db319a315e227a9d31549399
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-04-26 03:15:22 +02:00
Romain Pokrzywka
8d406e988c Add makespecs for standard devices in the OMAP3 family
The beagleboard and Archos gen8 tablets are built on the same hardware
and OpenEmbedded platform build system.
The makespecs enable OpenGL/ES2 support and EGLFS as the default
platform.

Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>

Change-Id: I04938676f82f9136efd662ff3ede16221eadf275
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-04-25 19:46:28 +02:00
Thiago Macieira
0df1c9f1fa Warn if we use deprecated methods from Qt modules
This change will cause any use of methods and classes declared with
Q_DECL_DEPRECATED to produce a warning in the compilation
output. Those warnings need to be silenced before the Qt 5.0 release,
preferably before the beta.

Change-Id: I28ce133867cc5918e177c57f6e5f7ab9421989ad
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-04-25 12:43:25 +02:00
Stephen Kelly
5c7e4d302e Fix creation of config files in debug mode.
f88212c22f was not complete.

Change-Id: Ie5b1bb4832176ec8a72ace473f7dbc6c4de10ff2
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-04-24 16:29:40 +02:00
Donald Carr
a5ff60dc96 Add N9 device mkspec to device mkspecs folder
Change-Id: Ie8b0e8a014316b218c86cfdc0c58cad1ae4d3015
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-04-24 12:48:38 +02:00
Friedemann Kleint
8f85b84f4e Revert "Add workaround for projects using 'QT += declarative'"
The workaround should no longer be necessary.
It causes compile errors for MinGW since the command lines
are too long.

This reverts commit 6225e3ba01.

Change-Id: I0288f4621f072b91dc94f25092ef124fa4c1b09e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Matthew Vogt <matthew.vogt@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-04-23 19:20:19 +02:00
Andreas Holzammer
5430d1dea0 Set default Lighthouse plugin for QNX
Change-Id: Id1e51fcd3ce795b2c408d0376679597f6da5c33a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-04-23 17:04:18 +02:00
Stephen Kelly
f88212c22f Don't tell CMake we're making debug libraries if we're not.
The config option debug_and_release is set on Windows and on
mac (unless xcode is used independently of whether Qt is configured
with -release or not.)

We need to check CONFIG(release,debug|release) to see if
-release was set.

Change-Id: Ibf952958874f6b102981526b3397e848c207a3f2
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-04-23 17:03:43 +02:00
Stephen Kelly
47617f68cb Make the QNX QPA plugin work with non blackberry.
Change-Id: Id85d18d9f21711e8d53e8e4bfdf39d10e135f593
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-04-23 07:30:02 +02:00
Donald Carr
408f3fb200 Adjust device mkspecs to use qpa default plugin var
Change-Id: If7be3517a423324e744805e8508eb9277a600ed4
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-04-20 03:39:10 +02:00
Konstantin Ritt
d48f3fc1e7 fix undefined behavior issue on Integrity
in contrast to ::strdup(), qstrdup() allocates memory via new[];
deallocating this memory with free() leads to undefine behavior.

Change-Id: I0692c4bef010c05de547283b00b6c6043ac24c79
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-04-19 15:58:03 +02:00
Raphael Kubo da Costa
c7b52e2a2a mkspecs: Rename freebsd-g++40 to freebsd-g++46.
lang/gcc40 was removed from FreeBSD's ports tree in 2007, and the
lang/gcc port, which provides a stable GCC version newer than the one in
the base system, is currently pointing to the 4.6 series.

Change-Id: Ifd959ef7b9cd122aa606644e97e337ace8742245
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-04-17 16:28:46 +02:00
Raphael Kubo da Costa
996672933a mkspecs: Sync freebsd-g++40 and freebsd-g++.
Make freebsd-g++40 include gcc-base-unix.conf and g++-unix.conf and
eliminate a lot of duplicate definitions.

Change-Id: Ib3fe572ee276645fb03034a08fbc8e06720b6372
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-04-17 16:28:46 +02:00
Raphael Kubo da Costa
874ebef453 Do not define QT_AOUT_UNDERSCORE in freebsd-g++'s mkspec.
According to FreeBSD svn r52802 from 1999 the -aout compiler option and
the QT_AOUT_UNDERSCORE trick were already obsolete.

Since the FreeBSD project itself only supports versions 7 and above
these days, the definition can be safely removed.

Change-Id: I324d5d5b136a6560d9e1b5c81b93efc32d87cdc2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-04-17 16:28:46 +02:00
Raphael Kubo da Costa
0e8aabadf9 Remove the freebsd-g++34 mkspec.
GCC 3.4 is older than the 4.2.1 in the base system, and should be
removed from the ports tree.

Besides, nobody in their sane mind would want to build Qt with such an
old compiler.

Change-Id: Ib40357758058505465a8bfcefbd182b9240591a5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-04-17 16:28:46 +02:00
Raphael Kubo da Costa
1afad60e60 Do not redefine QT_SOCKLEN_T in freebsd-g++'s mkspec.
QT_SOCKLEN_T was being redefined depending on whether FreeBSD was < or
>= 4, branched in early 1999.

FreeBSD < 7 is not supported by the upstream project anymore, so we
can simplify the code and rely on the QT_SOCKLEN_T definition in
common/posix/qplatformdefs.h instead.

Change-Id: I0e06fc37e29158932b95a2619a7442c6068a7d32
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-04-17 16:28:46 +02:00
Lars Knoll
64255ef650 Merge remote-tracking branch 'origin/api_changes'
Change-Id: I964b0a6f5c38351fdfafb8a2a128a349ff8c89d1
2012-04-17 12:58:52 +02:00
Donald Carr
f0c36dd03c Introduce fallback for general cross compilation
The current approach of forcing people to pass the fully qualified prefix
of their toolchain to the configure script is verbose and something of a
chore for people who use the same toolchain to target several devices.

This allows you to set a single toolchain for use with all Qt targets via:

qmake -set CROSS_COMPILE foo

You can still explicitly override this toolchain, as originally mandated,
with the configure time device-option arguments.

Change-Id: Ibd3d940bb08fa09499533f9c661557e337a8421a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-04-16 19:00:04 +02:00
Lars Knoll
9bd0323551 Merge remote-tracking branch 'origin/master' into api_changes
Conflicts:
	configure
	src/corelib/io/qurl.cpp
	src/gui/kernel/qwindow.cpp
	src/tools/moc/generator.cpp
	src/widgets/kernel/qwidget_qpa.cpp
	src/widgets/styles/qstyle.h
	src/widgets/widgets/qtabbar.cpp
	tests/auto/corelib/codecs/utf8/tst_utf8.cpp

Change-Id: Ia457228d6f684ec8184e13e8fcc9d25857b1751e
2012-04-16 12:04:34 +02:00
Thomas McGuire
5f637a190f Fix finding EGL on QNX
A recent change in platformsupport required "egl" to be defined,
otherwise the QNX plugin would fail at runtime with unresolved symbols.

Now the EGL config test passes.

Change-Id: I111eb939abac86885bcdb35d5f5899f515bd8c4e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-04-16 09:45:27 +02:00
Holger Hans Peter Freyther
19524b7499 directfb: Integrate building into configure.
Add DirectFB buildsystem integration by adding a configure target
and adding it as subdirectory to the project file. The default is
to automatically build directfb. Update the Broadcom/9425 build.

Change-Id: I482f865cebd9d5cd4c98c184773f8534f92db9df
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-04-13 18:15:26 +02:00
Holger Hans Peter Freyther
01b54bcd84 device: Introduce hooks for the directfb plugin and use them
The EGL integration is vendor specific, add platform hooks to the
DirectFB plugin and implement them for the Broadcom 97425. The hook
interface is internal and there are no ABI/API gurantees.

Change-Id: I33359830c51f16895e771837fccb71e03c81cf18
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-04-13 08:33:37 +02:00
Bhooshan Supe
e784245238 device: Add device support for Trident's Shiner
Add mkspec for the Trident's Shiner platform to be used in conjunction
with the -device support in configure. This allows you to build Qt

Change-Id: I68d8e8eb78f073e98f72207e9c5de6a0da0ed35d
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-04-12 04:15:28 +02:00
Bhooshan Supe
8730c333ba device: Add device support for STMicroelectronic's ST7108
Add mkspec for the STMicroelectronic's ST7108 platform to be used in
conjunction with the -device support in configure. This allows you
to build Qt with the application libraries provided by STM SDK 35.

Change-Id: I36aa174200f034ccd6ee285e3f8a8ffec99b3e70
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-04-12 04:15:26 +02:00
Bhooshan Supe
0fdd1155e1 device: Add device support for STMicroelectronic's ST7540
Add mkspec for the STMicroelectronic's ST7540 platform to be used in
conjunction with the -device support in configure. This allows you
to build Qt with the application libraries provided by STM SDK 36.

Change-Id: I4369b23b9a0c9063417e5cc71969f65e967e4019
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-04-12 04:15:23 +02:00
Jason Barron
9cdfeb2b84 Change default value of QMAKE_LIBS_OPENGL_ES1 to libGLESv1_CM
The naming convention for these libraries says that libGLES_CM is to be
used when EGL is included while libGLESv1_CM should be used when EGL is
not included. Since we have a seperate variable for libEGL, it
makes sense to have this variable represent the non-EGL version of the
library.

Change-Id: I9147c116da7be4a296a0ebeac39762b46725f10e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-04-11 12:37:34 +02:00
Girish Ramakrishnan
e60ca0de60 eglfs: rework hooks design
There are two problems with the current design:
1. if (hooks) hooks->foo() doesn't work in debug mode when no platform hook
   is defined. The problem doesn't arise in release mode because the compiler
   optimizes away the if (hooks) into a no-op since hooks is NULL when no
   platform hook is defined.
2. Adding a new hook requires changing every platform's hook implementation.

New approach:
1. Define QEglFSHooks as a class with virtual functions. A stub file provides
   the default implementation.
2. Platform hooks derive from above class and reimplement whatever is needed.

The filenames and variables have been changed to be more in line with the
Qt style.

Change-Id: I2eaaa5ad7c8b48a06361c4747d4f210c428c983f
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-04-11 09:24:58 +02:00
Donald Carr
42f3bf772b Extend eglhooks to include hasCapability
Add BufferQueueingOpenGL to Raspberry PI's numerous capabilities

Change-Id: I1197c28a0c82df3ae2f6d5360791010e17373555
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-04-11 09:22:23 +02:00
Thiago Macieira
e6a1675da5 Make plugin linking fail if some references aren't present
It's better to fail at linking time than to try and figure out later why
QPluginLoader refuses to load the plugin.

Change-Id: I439bad9dcdbfff9f76efe40381fd7ccfffe738bc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-04-10 18:22:51 +02:00
Oswald Buddenhagen
143c4d3e13 Merge remote-tracking branch 'origin/master' into api_changes
Conflicts:
	configure
	src/widgets/styles/qwindowsxpstyle.cpp
	tests/auto/gui/kernel/qwindow/qwindow.pro
	tests/auto/gui/kernel/qwindow/tst_qwindow.cpp

Change-Id: I624b6d26abce9874c610c04954c1c45bc074bef3
2012-04-10 15:31:45 +02:00
Sean Harmer
1c20c3f294 Moving stack-smashing protection to the Blackberry mkspecs
It transpires that QNX 6.5.0 does not yet have libc support for the
gcc stack smashing protection.

Change-Id: Ic635662b6aa3ce2fad5f69e236386ae9ace420db
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-04-06 00:02:45 +02:00
Donald Carr
71616d2c7a device: Add device support for the Broadcom Raspberry PI
Add mkspec for the Raspberry PI platform to be used in conjunction with the
-device support in configure. This allows you to build Qt with the
application libraries provided by the Raspberry PI foundation.

The Raspberry PI is described here:

http://en.wikipedia.org/wiki/Raspberry_Pi

and its use with Qt is documented here:

http://wiki.qt-project.org/Devices/RaspberryPi

Change-Id: Ib8d11d0a469edaaf34ccc04cf33a42a725fc2bdb
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-04-04 20:11:09 +02:00
Girish Ramakrishnan
24afb1097d eglfs: Introduce hooks for the eglfs plugin
EGL provides an api to create a rendering context for khronos APIs
on native surfaces. The board initialization and window creation
is platform specific.

This commit adds platform hooks/extensions to the EGLFS plugin and
implements them for the Amlogic 8726M. The hook interface is internal
and there are no ABI/API guarantees.

EGLFS is now linked with -Wl,-no-undefined to make sure that a hook does not
add unresolvable symbols.

Change-Id: I7f4fcdb422aacbf00de468f4d8e85ae5368bfacf
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-04-04 16:05:06 +02:00
Rafael Roquetto
3867641d78 Moved 'qnx' CONFIG definition to common location.
Removed the duplicated 'qnx' CONFIG defition from the mkspecs and declared it
on the common qcc-base-qnx.conf configuration file.

Change-Id: Ie215e3dd794762f20bec9c19afd5936a78a9d963
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-04-04 11:19:01 +02:00
Sean Harmer
657ca81c91 Enable stack smashing protection on QNX and Blackberry platforms
Change-Id: I2610c8e446a74ee584c5b450e1b872b7cda50813
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-04-04 01:03:27 +02:00
Holger Hans Peter Freyther
2340c5d92e device: Add device support for the Broadcom 97425 platform
Add mkspec for the Broadcom 97425 platform using the new device.pri
support. This allows to build Qt with the application libraries provided
by Broadcom.

Change-Id: Icad442be5da071e4f936e41236d4136234c5d16f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-04-02 11:44:14 +02:00
Kai Koehne
0556540b41 Rename the 'declarative debug support' to 'qml debug support'
Since the library and almost everything got renamed to qml, we
should do so for the debugging support, too.

(CONFIG+=declarative_debug will continue to work for some time
being, but prints a deprecated warning).

Change-Id: I295155dce873e2585c1452d2bf0625ea6ce219c4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-31 16:33:04 +02:00
Stephen Kelly
f524470a95 Overwrite the LIB_DEPENDENCIES of modules.
This way if a module is found more than once, the list does not grow
duplicates.

Change-Id: I08e3e2a83453f45a49fe79e803a4b50d115709a3
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-03-31 01:49:26 +02:00
Stephen Kelly
e96a7e0115 Ensure that the variable for the installation prefix is unique.
Using the same variable for multiple config files can lead to
conflicts.

Change-Id: Ie6a22618c4c2e64567874e5c7e8b278e067fedae
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-03-31 01:49:26 +02:00
Girish Ramakrishnan
cb0b3fc34d device: Add device support for Amlogic 8726M board
Add mkspec for the Amlogic 8726M platform using the -device
support in configure. This allows to build Qt with the application
libraries provided by Amlogic.

The 8726M is an ARM Cortex-A9 that support NEON and has a Mali 400-M GPU.

Change-Id: I01ea0c8e7d34dcb165653980a1856f6e22318c4d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
2012-03-30 18:36:12 +02:00
Holger Hans Peter Freyther
dbb9d96bdb device: Introduce a qmake test function
A common issue for our users is that they do not provide the path
to their cross compiler or don't have it in their $PATH. Introduce
a qmake testFunction to sanity check the presence of the compiler.

Change-Id: I7d41db139d2a9c67334908b96e9f5e8f996426f6
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-29 21:21:01 +02:00
Stephen Kelly
df43b9a06a Don't use the pri depends line for link dependencies.
That is not what depends is for.

Change-Id: Iabf93e890f009bd6c8fcc18dde1891bf20a493f1
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-03-28 00:51:32 +02:00
Stephen Kelly
4a6bf9d941 Prefix the variables for debug and release types properly.
Change-Id: I346992effa997f60a4fd20055f0af81d6a084095
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-28 00:51:32 +02:00
Stephen Kelly
878a661e31 Only create the cmake files if DESTDIR is non-empty.
This is the case for the winmain library.

Change-Id: I8f416e81ad8de4a1fb2f70a4ebc31c8351c81605
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-28 00:51:32 +02:00
Kent Hansen
d236fe2214 Merge master into api_changes
Conflicts:
	src/corelib/global/qisenum.h
	src/dbus/qdbusconnection_p.h
	src/widgets/kernel/qwidget.cpp
	tests/auto/other/qaccessibility/tst_qaccessibility.cpp

Change-Id: I85102515d5fec835832cc20ffdc5c1ba578bd01d
2012-03-27 19:22:48 +02:00
Thiago Macieira
cbc883da69 Disable ICC diagnostic 2261 about __assume with side-effects
The warning is presented now that we use __assume in every
Q_ASSERT. It presents itself in code that calls functions, like:

tools/qbitarray.h(128): warning #2261: __assume expression with side effects discarded
  { Q_ASSERT(i >= 0 && i < size());
    ^

Change-Id: I5851b3c35b56c00b9c541c2489233121ef621e04
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-27 05:35:57 +02:00
Girish Ramakrishnan
84e98fd9d2 device: Add -device and -device-option to configure
For some reference platforms and SDKs we will need to pass in
extra paths. Currently users have to modify the mkspec to adjust
paths or set environment variables that will be picked up.

This change introduces the -device <name> and -device-option
<key=value> option. The key value pairs will be written to a
qdevice.pri and can be used by the qmake.conf of the device spec.

The reason to not save the key value pairs in qconfig.pri is
becase of the fact that the device spec loads the qdevice.pri
earlier than the qconfig.pri. qdevice.pri allows the mkspec
to set the compiler flags and qconfig.pri allows configure to
add to those compiler flags.

Done-with: Holger Freyther

Change-Id: I931a197b8be72397e1eedfee09502eefc01c9d4f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>
2012-03-27 05:35:57 +02:00
Bai Jing
de37821c56 let qtPrepareTool give right path for app_bundle
Change-Id: Ieb4979244d741c9d9d0c11a035c18ced87ea28f5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-26 14:06:51 +02:00
Rafael Roquetto
e1c22d426f Blackberry mkspecs
Unlike QNX mkspecs, these mkspecs target more specific, BlackBerry-only
devices. So far, the only difference is the definition of Q_OS_BLACKBERRY
and linking with -lbps, but this will likely change with time. It will also
allow conditional compilation to distinguish between qnx and blackberry
devices.

Change-Id: Ia44e9b4059f720c308240e9dac7e90f7ae7920d0
Reviewed-by: Sean Harmer <sh@theharmers.co.uk>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-26 14:02:07 +02:00
Thiago Macieira
1882cf1c9d Add detection of AVX and AVX2 support in the compiler.
Intel CC 12.1 supports AVX2 but only with -march=core-avx2. The -mavx2
option produces a warning.

GCC 4.6 does not recognise any option.

GCC 4.7 recognises both -mavx2 and -march=core-avx2 so let's use the
latter for now. We may need to change to -mavx2 when there's an AMD
processor that supports AVX2 too.

Change-Id: I529240e6e6c2c0e3942d357e0320212d954fe4de
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-23 19:43:00 +01:00
Thiago Macieira
a1b30b49ef Remove detection for MMX support and related technology
This also removes the check for SSE, but the check for SSE2 and
further technologies is kept. If SSE2 is present, then SSE is too. We
don't have any code that uses the original SSE instructions only.

Remove the CMOV detection, since we don't use that anywhere and we're
not likely to ever use them..

Change-Id: I3faf2c555ad1c007c52a54644138902f716c1fe1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-23 19:43:00 +01:00
Stephen Kelly
b78e355fe5 Only create cmake files if MODULE is set.
WinMain does not set MODULE, though it uses qt_module_config and
generates incomplete cmake files in the wrong locations as a result.

Change-Id: I5081a13a19469ab8cd01970a55684b8451bc79d7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-23 11:45:25 +01:00
Thiago Macieira
160a93bc2f Update the Linux-ICC mkspec
Include linux.conf instead of unix.conf, so it can compile Qt Base
these days (otherwise, we get an error from wayland-scanner.prf).

Remove the outdated information from the header. The mkspec now
matches ICC 12, not 10 and there are more diagnostics we disable.

Change-Id: Ic75593759a4d53f859a9a9e919d77b5c52d01024
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-22 18:59:45 +01:00
Kurt Korbatits
c7093ba874 Changed installTestHelperApp() to use relative paths to build
- Changed installTestHelperApp() to use OUT_PWD path to find files.
  (was looking in source tree instead of build)

Change-Id: If795c17a76aebcfbbe0d4f84c5df784a255ddb19
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-03-22 06:49:06 +01:00
Bradley T. Hughes
497f4fffa2 Remove QT += uilib from designer.prf
No Qt module named uilib exists.

Change-Id: Icb5916c27440257696e5103f0d61dc05e4d7bb9f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-03-20 11:44:09 +01:00
Gareth Stockwell
9ea1d51c48 Include generic ARM qplatformdefs.h in linux-g++-maemo mkspec
qmake.conf already includes the linux-arm-gnueabi-g++ configuration;
this patch does the same for the platformdefs.h header.

Change-Id: I14ee4e406e8c00ae1a57140676f60d030daba18f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-19 20:16:04 +01:00
Sean Harmer
2d5a4a5d3a Silence warnings about va_list mangling for QNX toolchain
Change-Id: I12d8d534c3c5d93e95a03d7b3705f3722501de7d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2012-03-19 17:59:12 +01:00
Girish Ramakrishnan
b84ff8525c Install fonts when not using fontconfig
When built without fontconfig support, the basic unix font database
relies on fonts installed in libs/fonts to populate the database.

Change-Id: Id1e54c5b032095470049210bb831cfe4c79b3569
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-03-16 21:30:59 +01:00
Johannes Zellner
8a79e8b645 Remove unmaintained and broken VNC platform plugin
Change-Id: Ie0a07c3a6822870b095a20d997b63fb1635f20be
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Robert Griebl <robert.griebl@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-03-15 02:45:31 +01:00
Harald Fernengel
cdec3b376f Use the LSB linker to link
Fixes those cases where things would magically link, although they were
everything but LSB compliant.

Also fix a linker error, it seems we need to explicitly link to -lrt,
otherwise, the non-LSB compliant system lib will be taken into account.

Change-Id: I40e278f1c4d2e02084c4c5f15b9bbff8c5901d32
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-03-15 00:50:47 +01:00
Jørgen Lind
10e4904995 Fix the QMAKE_LIBS_WAYLAND variable
This variable is there for documentation, but its not being used anymore.
There are two libraries from wayland, libwayland-client and
libwayland-server. Add two variables that will be picked up in the
QtWayland module.

Change-Id: I16219092a4ed2e48080921ce39f61192b6abb711
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-12 17:33:15 +01:00
Sean Harmer
75218e08ab Do not add -rpath-link directives with no library path
Doing so works fine on Linux as g++ version there silently ignores
this. However, the qcc toolchain for QNX barfs.

Change-Id: Ia236910adc09dc1653e4169e20476b69c2de62ab
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-12 17:33:15 +01:00
Oswald Buddenhagen
12c8909883 sanitize install target names
qmake uses the variable name verbatim, which makes the generated
makefile look "interesting" without this cleanup.

Change-Id: If6c4f12563a0ee6429513fbfac534f40bb7c0b97
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-03-12 11:16:34 +01:00
Oswald Buddenhagen
aed6eaa5b2 QT_RAW_INSTALL_FOO => QT_INSTALL_FOO/raw
this makes the "sysrootable" properties more magic, with the raw
versions being omitted from the qmake -query output and automatically
falling back to the "cooked" variant if there is no sysroot set.

this makes the "normal" qmake -query less noisy. this will become even
more obvious when i add more "overloads" of the properties.

Change-Id: I08000986427264ec6238c8fe0a77f5cecdbf1201
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-03-12 11:01:02 +01:00
Sean Harmer
17659df556 Update qnx mkspecs to not use fixed tool paths
This changeset allows Qt to be built for QNX platforms in light of
commit d59e85d909.

Change-Id: Idf8e89cf1b0a5625ef7ee6397c223137fa151cdc
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-12 10:57:07 +01:00
Oswald Buddenhagen
f744b82344 fix the check for libraries having themselves as dependencies
Change-Id: I6dc56228a068fe9158e989afd1c545a3d69848e6
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-03-09 22:37:18 +01:00
Oswald Buddenhagen
d4db23eb4d another attempt at solving the popping up of .qmake.cache problem
syncqt may generate that file also as a result of configure tests. so
just check for the file's existence instead of trying to reproduce under
which circumstances it should appear.

Change-Id: Ia24f96b05fc70e104f7be19d08cea614ffb505be
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-03-09 20:43:00 +01:00
Mark Brand
65ebf592ba remove assignment of QMAKE_MOC & QMAKE_UIC from mkspecs (part 2)
Follow-up to d13bedb9d8
where the regexp was a bit too tight and missed many specs.

Also cleaned up QMAKE_IDC, QMAKE_RCC and QMAKE_IDL.

Change-Id: Ia15007141739019ef5ccfdda0c856c478f732b85
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-09 18:50:52 +01:00
Oswald Buddenhagen
adfcd98922 replace uses of QMAKE_INCDIR_QT and QMAKE_LIBDIR_QT with module-specific variables
Change-Id: Id410887fa97f345a229e0cbf395633ccf303fa2f
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-03-08 18:57:56 +01:00
Oswald Buddenhagen
d6206075be remove automatic building of moc from moc.prf
the problem this (probably) tried to solve has been solved via ordered
builds a *long* time ago.

Change-Id: I84c58076c864735eea4210ec60aa060fe3e5d97e
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-03-08 18:55:53 +01:00
Oswald Buddenhagen
63511b60a1 delete dumpcpp.prf
it seems to be a no-op. presumably it was meant to be an auto-rebuild
hack like in moc.prf, but it wasn't really "wired".

Change-Id: I914456f5f5a63a06c2004b16edcf2e2ade448270
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-03-08 18:55:01 +01:00
Rafael Roquetto
6e58dd34ac Renaming QNX mkspecs
Renamed from blackberry-* to qnx-* in order to match he <platform>-<compiler>
pattern.

Change-Id: I378151f3d564dd280943c74865a1d2b97215b656
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-07 00:13:16 +01:00
Donald Carr
484e2923b4 Query udev build parameters from pkg-config
Change-Id: Ia3b7329d7359684ee7bf572a7e5fb681105108f4
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Holger Freyther <holger+qt@freyther.de>
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-07 00:10:09 +01:00
Oswald Buddenhagen
1fc0e27b17 transitively resolve module dependencies
otherwise we need the nasty hack for includes, and CONFIGs and DEFINES
from dependencies are not included at all.

Change-Id: I7eaee761161a6e8fbac8e9237d26559aa11a88a1
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-03-06 17:40:44 +01:00
Stephen Kelly
c01ef19e77 List the dependencies of Qt when creating static libraries.
Change-Id: Ib6787f982ff962cfdf3d8a0a26989489619a57b0
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-03-05 11:36:36 +01:00
Lars Knoll
96232be146 Merge remote-tracking branch 'origin/api_changes'
Conflicts:
	dist/changes-5.0.0
	mkspecs/features/qt_module_config.prf
	qmake/project.cpp
	qmake/property.cpp

Change-Id: I6e4af40743a9aeff8ed18533a48036e332acc296
2012-03-04 21:45:05 +01:00
Oswald Buddenhagen
ab05682564 don't announce a dynamic .qmake.cache if we don't actually create one
otherwise we are breaking the "less hacky" configurations. whoops.

Change-Id: Ibb037753fbaf30beae3d30173be77d48b978b60b
Reviewed-by: Caroline Chao <caroline.chao@nokia.com>
2012-03-02 15:56:44 +01:00
Oswald Buddenhagen
012f799254 revamp -sysroot and -hostprefix handling
instead of being a variable added to the makespec (via qconfig.pri),
QT_SYSROOT is now a property.

the QT_INSTALL_... properties are now automatically prefixed with the
sysroot; the raw values are available as QT_RAW_INSTALL_... - this is
expected to cause the least migration effort for existing projects.

-hostprefix and the new -hostbindir & -hostdatadir now feed the new
QT_HOST_... properties.

adapted the qmake feature files and the qtbase build system accordingly.

Change-Id: Iaa9b65bc10d9fe9c4988d620c70a8ce72177f8d4
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-03-01 23:18:23 +01:00
Oswald Buddenhagen
d13bedb9d8 remove assignment of QMAKE_MOC & QMAKE_UIC from mkspecs
there is entirely no point in having it there.

Change-Id: Ie2fc1e94495119725131cbd50564648cbb4a7dc8
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-03-01 21:00:07 +01:00
Oswald Buddenhagen
4494ddfec7 make default_pro.prf advertize dynamically created .qmake.cache
moving the detection of .qmake.cache to the qmake startup had the side
effect that a suddenly popping up cache would not be picked up by
nested projects any more.
this is not supposed to work in the first place, but the syncqt hack for
building against non-installed modules relies on it. until we have
cleaned that up properly, we need a way to notify qmake about the
appearance of the cache file.

Change-Id: I450646b936e3bb2ef2ed3aba05df58e521ccdc61
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-03-01 19:00:15 +01:00
Caroline Chao
8bf2c47080 CodeCoverage: Exclude all header files from intrumentation.
Currently only a small fraction of all the headers are included since only
the headers found in the pro file folder are included.

This is confusing and arbitrary. With this change all the headers are now
excluded from the instrumentation.

Change-Id: If4322421f3b3e5fcd45f006421690eaa6bf645e0
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-03-01 07:52:44 +01:00
Andy Shaw
221fe8776b Add support for XCode 4 into qmake
This adds support for XCode 4 into qmake and also indirectly fixes a
couple of problems that are relevant for XCode 3.2 too

Task-number: QTBUG-17247
Change-Id: I722470ad1854bd740cbbd28ff4956057a0e1906b
Reviewed-by: David Forstenlechner <dforsten@gmail.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
(cherry picked from commit b5871311457ca97816c0abbb8b935570bbfb657c)
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-01 00:09:57 +01:00
Stephen Kelly
56612a555d Fix the include dir used by the CMake config files.
I missed this one in 018e78575c

Change-Id: I194b96d2b1a64025ddb17fe2ed81566838555e13
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-02-29 17:43:00 +01:00
Rohan McGovern
98dd1781d9 Merge master -> api_changes
Includes fixes for tst_qfiledialog2, tst_qtextedit autotests on mac.

Change-Id: I49cac26894d31291a8339ccc1eb80b6a940f0827
2012-02-29 09:23:14 +10:00
Hib Eris
1e3015d8f4 Activate replacements when installing .pc files for win32
Change-Id: Iaacbe8528bdbe1c1fca60ae8c94625e951f14554
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-02-29 00:05:38 +01:00
Hib Eris
525d98725b De-duplicate platform-dependent paths
Change-Id: Ifee9f05fc8d924877f24edfddb0dc5e324a29080
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-02-29 00:05:38 +01:00
Hib Eris
78faefdbb1 Implement missing replacements when installing .pc files for win32
This implements replacements for win32 makefile generators similar
to the replacement functionality in unix makefile generators.

To enable Makefile code generation for replacements in win32 makefile
generators, you must set QMAKE_STREAM_EDITOR to e.g. sed.

When building for win32, sed is normally only available in the
mingw/msys build environment and when cross compiling on unix.
In these cases QMAKE_STREAM_EDITOR is set to sed in qmake.conf.

For other win32 build environments QMAKE_STREAM_EDITOR is not set
in qmake.conf and the replacements Makefile code is not generated.

Change-Id: Ie5de5d517eafaeaa2544f1e972aec3fe11d0a6f1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-02-29 00:05:38 +01:00
Jason Barron
fa1b9070af Add a new qmake feature to support OpenGL ES 1 apps
This is a convenience to make it easy for applications to simply add:
    CONFIG += opengles1
To their .pro file to link against OpenGL ES 1.1 instead of OpenGL ES V2

Change-Id: I48605f5f69f83d99cfb2ad6dbb4b318d41e00128
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-02-28 22:35:24 +01:00
Stephen Kelly
018e78575c Make the CMake files work with directory overrides.
This allows us to create correct CMake config files when Qt is
configured with directories outside of the prefix (which Qt allows),
and also allows us to use correct values when a 'longer' relative
lib directory is used such as lib/x86_64-linux-gnu.

Change-Id: I6f88255a23752dc5b84cb20ce13fdeeee9d5ad51
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-02-28 21:07:16 +01:00
Oswald Buddenhagen
151f17d7e6 simplify loop over modules
the earlier done topological sort already removes duplicates and only
works with lower-cased names anyway, so we can remove the overhead here.

Change-Id: I44fc39af9e94662717e1c8cfb0ddb87d2f597935
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-02-28 12:39:16 +01:00
Oswald Buddenhagen
f4f97555a2 avoid using infile() needlessly
it's rather pointless to first query the variable's presence in the
file. instead, just fetch it and see what is in there.

for this to work cleanly we defer the concatenation of the filename.

Change-Id: I322db8ae897272fae049074d8b7676787286aedd
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-02-27 20:52:45 +01:00
Oswald Buddenhagen
a62dfb7a72 bump version of QMAKE_TARGET_PRODUCT
... whatever that may be good for

Change-Id: I06695a06aae52386236a7a31fe7865cc8389d3b9
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-02-27 20:52:45 +01:00
Matthew Vogt
6225e3ba01 Add workaround for projects using 'QT += declarative'
The code previously exported by the declarative library has been
migrated to the qml and quick libraries, and the symbol names have been
changed accordingly.  To allow existing projects to continue to build,
the declarative module now contains a set of definitions redefining the
deprecated class names to their replacement names.

To make this work, a dependency on the declarative module now
automatically adds a dependency on the qml module in order to make the
new library available for linking.

This is a temporary change to prevent breaking existing projects
that depend on the declarative module. After clients have had an
opportunity to update their code to the use the new interfaces,
it can be removed.

Task-number: QTBUG-23737
Change-Id: Idee6ac627858856802bb1be29e9a4a079da73688
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
2012-02-27 01:55:39 +01:00
Stephen Kelly
c470999329 Fix the library names on MinGW.
Change-Id: I6c2008a0e7a07ca0603b8aa9362d31fa4ef7310a
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-02-24 13:19:44 +01:00
Stephen Kelly
bd5096d012 Add the QtMain windows library to the CMake files.
Change-Id: Iff8b9bdd4b069721103e1cd5854e56b6116d7549
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-02-23 23:46:01 +01:00
Sean Harmer
729a73dfad Use -fPIE on QNX
Change-Id: Iec065f528f5edd848be580807a607488dc2e401f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-02-23 15:07:58 +01:00
Stephen Kelly
4d0d49a92c Use QMAKE_SUBSTITUTIONS conditionals
Instead of generating CMake conditionals.

Change-Id: I3d987cc08666270e618222be9292558e73bc961e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-02-22 19:25:06 +01:00
Stephen Kelly
361cd9f9b2 Give the compile flags an EXECUTABLE_ prefix.
The fPIE flag should only be used with executables.

Change-Id: If799ae4a7fe2492af3aac67651659a52d365024a
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-02-21 22:31:00 +01:00
Jørgen Lind
846f2859b5 Make sure that we pick up xcb from pkg-config
and run the configure checks with the values

Change-Id: Ie8e0072c686c6a7dce1d02e25a9c1abce4679d34
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-02-20 15:17:08 +01:00
Harald Fernengel
ac16892454 Fix LSB mkspec
Use the standard g++ specs, just override the compiler name

Change-Id: I4adacd7204d3880155bdfc3405e20f322ad593ea
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-02-20 13:49:58 +01:00
Miikka Heikkinen
a61f754c92 Fix "check" target when load(testcase) is used in .pro file.
The "check" target always depended on debug-check on projects that
explicitly loaded the testcase.prf, even if Qt was configured with
-release parameter. This obviously caused build failure. Changed the
testcase.prf to check which configuration is preferred using
CONFIG(debug, debug|release) like is done with similar cases in other
.prf files.

Task-number: QTBUG-24332
Change-Id: Ib5140b106e99efe51932bdd5a48914786de23230
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-02-17 11:44:29 +01:00
Bradley T. Hughes
f0f78eb0a9 Remove usages of QT_ARCH and QT_ARCH_* from qtbase
The architecture is detected at compile time based on the predefined
macros from the compiler. Don't use QT_ARCH in .pro, .pri, or .prf
files.  The PNG_NO_ASSEMBLER_CODE define from libpng.pri is not present
in the current copy of src/3rdparty/libpng, so no change in
functionality is expected.

The conditional for the SUPPORT_JIT define in pcre.pri is moved to
src/3rdparty/pcre/config.h, again so that we can use the compiler's
predefined macros to detect the architecture at compile time.

Replace QT_ARCH_ARM, QT_ARCH_MIPS, and QT_ARCH_SPARC with their
Q_PROCESSOR_* equivalents.

Replace QT_ARCH_INTEGRITY, QT_ARCH_VXWORKS, and QT_ARCH_WINDOWSCE with
their Q_OS_* equivalents.

Note that this commit also effectively disables the SPARC atomic
implementation. An inline implementation for SPARC needs to be added,
or we remove the current code and instead rely on the GCC intrinsic or
C++11 std::atomic support on SPARC.

Note also that this commit does not remove QT_ARCH from configure or
qconfig.h. This will continue to be set until all Qt 5 projects can be
moved away from using QT_ARCH.

Change-Id: I5de747cc4436d21941329974cff3016970f497b8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-02-17 08:22:43 +01:00
Tor Arne Vestbø
647aa53d72 Don't hard-code paths to /usr/X11R6 in linux-mkspecs
It was causing issues when cross-compiling with a sysroot, as the paths
were not prefixed with the sysroot. The right include paths should be
taken care of by pkgconfig anyways.

Change-Id: I2cf7bf6377c88e6bf3b015100444d082530337ec
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-02-14 02:48:35 +01:00
Stephen Kelly
46a4a0e8c9 Fix warnings about existing directories during cmake file creation.
Use the new QMAKE_SUBSTITUTES.config = vebatim feature.

Change-Id: I4c08bd4694c11d48434eb225fc6902e69a4cdec2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-02-11 13:30:31 +01:00
Stephen Kelly
1406659948 Add -fPIE to the Qt5Core_COMPILE_FLAGS with reduce-relocations.
Qt requires this since 482d96a0c5

Change-Id: Iba783e283b17654abf46f11b81cc1641c3ce7d83
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-02-10 19:21:24 +01:00
Simon Hausmann
0b9904aab3 Fix Harmattan compile target to be usable outside of Scratchbox
Simply include the generic arm-gnueabi configuration. This should work
from within and outside sbox, but at the same time keeping this mkspec
allows us to enable Harmattan specific features such as the xinput2/touch
support in the xcb back-end.

Change-Id: I5cc0cdc3e222deb6374580392c3e3aadfc3a4bd9
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
2012-02-10 16:11:57 +01:00
Olivier Goffart
482d96a0c5 Force -fPIE on ELF if Qt is built with reduced relocations
Put in qconfig.h whether qt is compiled with reduced relocations.

When using -Bsymbolic-functions (enabled by default on Qt)
but not -fPIE, the comparison of the function pointers fail
because the addresses are different in Qt, and in the executable.

Hence we now enable -fPIE by default on qmake, and force a compilation
error when it is not enabled and built with reduced relocations.

Done-with: Sune Vuorela <sune@vuorela.dk>
Change-Id: Ib3fdba06fab6e8a93b75b4c6cf16cc973ab335db
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-02-10 11:42:31 +01:00
Stephen Kelly
8aeb70ed36 Add special casing for static modules.
QtUITools is a static library, so we need to mark that in its
CMakeConfig.cmake file.

Change-Id: I4e3684f7c62f4af28956a6e8f58edce7724f50dd
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-02-07 17:55:33 +01:00
Miikka Heikkinen
be7c760fb5 Enable basic gesture support for WEC7.
This commit adds basic gesture support to WEC7 Qt builds, which
enables developer to create custom gesture recognizers based on mouse
events.

Note that QTouchEvents are not yet generated in WEC7 Qt builds, so
recognizers based on those cannot be created.

Task-number: QTBUG-22517
Change-Id: Ic6218500b28b78ca8edec3edebd00d84c308a182
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-02-06 05:15:11 +01:00
Joerg Bornemann
f04756f3f5 fix gdb_dwarf_index.prf for applications, take two
Handle the case of an empty DESTDIR.

(cherry picked from commit 122fa6b53c33364a4687919191e55899acb43797)

Change-Id: I0c2eec5736d0944b8ee97abdfa3f1121e7d8db4b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-02-02 11:10:04 +01:00
Joerg Bornemann
87dfd9d78a fix gdb_dwarf_index.prf for executables
Unlike for libraries, $(TARGET) already contains $(DESTDIR).
Changing to $(DESTDIR) does break the command in that case.

Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
(cherry picked from commit 7eb770aed35fee50ff98c12e390dcb02c72b5132)

Change-Id: Idd0f30d52db432062917a1c956c3af73e6c8a6a4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-02-02 11:10:04 +01:00
Friedemann Kleint
b44e67e1ca Windows: Fix inclusion of <windows.h>
- Always use <qt_windows.h> as the last file to be included.
- Remove it from some headers, use Qt::HANDLE instead of HANDLE.
- Clean up #ifdef, use Q_OS_WIN for Windows/Windows CE.
- Add NOMINMAX to qt_windows.h to avoid problems with the
  min/max macros.
- Remove <windows.h> from qplatformdefs.h (VS2005)

Change-Id: Ic44e2cb3eafce38e1ad645c3bf85745439398e50
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-02-01 11:06:19 +01:00
aavit
4fce5d1795 Moving tiff image format support and libtiff out of qtbase
The tiff plugin and bundled libtiff is moving to the qtimageformats
project on Gerrit.

Task-number: QTBUG-23887
Change-Id: I4c848232fdccddd7e7f54215f9eaa78dc4c3a53d
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-31 14:31:04 +01:00
Jason McDonald
e03386945f Update contact address in license headers.
Change-Id: I35bf916087511f26bfeb49ceb3256d9a20fbc1c0
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-31 04:54:56 +01:00
Jason McDonald
5635823e17 Remove "All rights reserved" line from license headers.
As in the past, to avoid rewriting various autotests that contain
line-number information, an extra blank line has been inserted at the
end of the license text to ensure that this commit does not change the
total number of lines in the license header.

Change-Id: I311e001373776812699d6efc045b5f742890c689
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-30 03:54:59 +01:00
Oswald Buddenhagen
a29180a455 update readme to current reality
Change-Id: I330702f197c8b558f0a00b90f5e147dbef731abd
Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-01-27 13:55:27 +01:00
Rafael Roquetto
43a48ad218 Add mkspecs for Blackberry Playbook NDK
mkspecs for QNX qcc, armv7le and x86 targets

Change-Id: Ie4b0ec46a8837ad63f5aea8429cfdd516531e09a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-01-26 20:12:21 +01:00
Morten Johan Sorvig
79ebb1621e Add Native Client port mkspecs.
Support cross-compiling for x86 and x86_64 nacl.

Change-Id: I652702f9671b35963450c42dac5e27bedc698df0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-01-25 03:48:14 +01:00
aavit
48f9ba388b Remove support for the MNG file format and the bundled libmng
The MNG file format is generally abandoned, and libmng has been
unmaintained for several years.

The MNG plugin and bundled libmng has been moved to the
qtimageformats project on Gerrit.

Task-number: QTBUG-21869
Change-Id: I946432347014ffde2b72307a5f8b166ca5553602
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-01-25 02:22:18 +01:00
Holger Hans Peter Freyther
17c13e1e9d mkspecs: Remove qtopia*.prf from the mkspecs
Qtopia was killed some time ago and these files do not have a direct
use. Qt was embedded into the Qtopia sourcetree and it would be in the
hands of the Qt Extended fork to move to Qt5 and update the buildsystem.

It is unlikely that a Qt5 qmake will be used to build the Qt extended fork
as a copy of Qt is embedded in the source tree.

Change-Id: I2ef309c381aaf1d265ef385e85fd5c72d6205765
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-01-24 02:43:03 +01:00
Janne Anttila
be62e8315d Fixed automatic plugin path resolving for predefined Qt plugins.
When Qt is configured for static build, importing static plugins is
supposed to work as described in docs:
http://doc.qt.nokia.com/latest/qtplugin.html#Q_IMPORT_PLUGIN

This commit updates the qmake mapping for predefined Qt plugins, so
that Qt plugins are automatically found when QTPLUGIN keyword is used.

Task-number: QTBUG-18609
Merge-request: 1391
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
(cherry picked from commit 0d0c1082f74888044713d96deca2d510951d018a)
Change-Id: I0d0c1082f74888044713d96deca2d510951d018a
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2012-01-24 02:42:55 +01:00
Tor Arne Vestbø
75583bd605 Move Clang mkspec for Mac OS X out of unsupported
The plan is to make it the default mkspec for Qt 5 on Mac OS X.

Change-Id: I49cf619a06fd7155dfbddc377558327b4be09cef
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-01-23 14:47:10 +01:00
Tor Arne Vestbø
9ce5a0671a Set macosx-version-min in common Mac OS X mkspec instead of configure
When set in configure it would be written to .qmake.cache and would only
apply when building Qt. We then had an override (that was also out of
sync, version-wise) in the g++ mkspec, which would also apply to apps
building agains Qt. This override did howerver not apply when using
the Clang mkspec.

We now move setting macosx-version-min to the common macx mkspec, shared
by both g++ and Clang, which will apply both when building Qt and when
building something against Qt. The latter since an application built
against Qt will not deploy on versions of Mac OS earlier than 10.6
anyways, so we might as well always set the minimum-version.

The modifications to the mkspecs will result in macosx-version-min
being passed twice when compiling qmake, as configure writes its own
makefiles and the mkspec parsing in configure has a bug where it will
lazily evaluate qmake-variables instead of evaluating them inline. This
is not a problem, and can be fixed in a later patch if seen fit.

Change-Id: Ib29503ad00a9dc00e0a50b0dbd9459e89a20dfbd
Reviewed-by: Zeno Albisser <zeno.albisser@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-01-23 14:47:10 +01:00
Jason McDonald
629d6eda5c Update contact information in license headers.
Replace Nokia contact email address with Qt Project website.

Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-23 04:04:33 +01:00
Kent Hansen
f99c1b5f1c Remove warning and automagic for "missing QT += quick"
This reverts commit 613183ff8c
("Automatically add QtQuick module if only QtDeclarative is specified").

The QtQuick module has been around for a while now, and the need to
port to it has been duly announced.

After this commit, projects that use the QtQuick 2 API (QQuickItem
and friends) will explicitly have to add QT += quick.

Change-Id: Ie5e6d438431a0c736e214c28c0d1ba1189b4ee06
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-01-19 23:58:44 +01:00
Janne Anttila
2f20d5f23a Added mkspecs for WEC7 platform builder and armv4i HW.
Task-number: QTBUG-22496

Change-Id: I502e654de7e03fbdbd22b609698d238f90d129a9
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-01-13 13:23:20 +01:00
Kai Koehne
b4d9bca4f0 Fix CONFIG+=declarative_debug if declarative is implicitly added
Change 1fb5600c5e already added
declarative-debug as a way to include declarative, but nowadays
there's also qquick, and qquick-private ...

Just always set the define. The user has choosen to write
CONFIG+=declarative_debug in the first place and an additional
define if declarative isn't used does no harm.

Change-Id: Ica6142e70b12950fc1d9e0bf7b94f747c843a17f
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
2012-01-12 08:31:17 +01:00
Mark Brand
dd22fe636b Windows: Adapt cross mkspec for MinGW / gcc 4.6.
4.6 becomes the minimum required version in Qt 5.

This commit follows f6c61d13a3.

Change-Id: I151cd5ae63f076c4aa766bc5c9b9fb4d8fcd4f79
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-01-12 00:01:20 +01:00
Kurt Korbatits
28bfa8f6cc Changed selftests unittest to work from installation directory.
- All subprograms installed as part of test instead of separate installs
- Added installTestHelperApp() to testcase.prf

Change-Id: I02fbbb299f095054c9216ad0e5f91f574fb0fe3d
Reviewed-by: Kurt Korbatits  <kurt.korbatits@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-11 04:09:26 +01:00
Stephen Kelly
008a1573af Make modules find their own dependencies.
Change-Id: I4a7b96d33417a15d79f3932ced91bee58915c83f
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-01-11 01:11:47 +01:00
Mark Brand
584c9ca120 use "cp -R" instead of "cp -r" for *bsd compatibility
Change-Id: Ib013e2d36645a782249b543ec9301902484a7708
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-01-10 22:15:41 +01:00
Jason McDonald
5313c28b30 Update year in Nokia copyright headers.
The previous change missed some headers from years prior to 2011, and a
few new files were merged after the previous change.

Change-Id: Ib7d1a2b7062228c2a5373da64242b2ee1f0981e1
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-10 07:12:41 +01:00
Jason McDonald
4c66ab91a9 Remove execute permission from files that don't need it.
Change-Id: Ib92875289cdd9831f35301c566fb567acc725bb6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-01-10 01:24:22 +01:00
Sergio Ahumada
c9ee64d8b7 Remove qttest_p4.prf file
qttest_p4.prf was added as a convenience for Qt's own autotests in Qt4.
It enables various crufty undocumented magic, of dubious value.
Stop using it, and explicitly enable the things from it which we want.

Most autotest .pro files should look like this:

  CONFIG += testcase
  TARGET = tst_something
  QT = core testlib
  SOURCES = tst_something.cpp

Change-Id: I051b230c5c4fd56dc6eae2b9b7bdff6c033248fd
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-01-06 09:38:31 +01:00
Jason McDonald
1fdfc2abfe Update copyright year in license headers.
Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-05 06:36:56 +01:00
Stephen Kelly
34ebd0397e Fix cmake files for static builds.
Change-Id: I3864017df6fc0daeb31b389c8883401d344730bf
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2011-12-23 17:35:33 +01:00
Bradley T. Hughes
ae8c61db21 Finish removing Qt3 support
Remove the (-no)-qt3support options from configure, and remove the last
remaining references to Qt3Support, QT3_SUPPORT, and
QEvent::ChildInserted.

The compatibilityChildInsertEvents() tests in tst_QObject and
tst_QWidget have been renamed to childEvents(), which is a more
appropriate name.

Change-Id: Id0b45e9b177efcc8dceee8c9ed8afafedeeace2f
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-12-23 11:59:11 +01:00
Stephen Kelly
5fb4bf8987 Include the extras files after defining the target.
Allows the extras file to contain references to the target.

Change-Id: I47332c4efcb7ba0132509a41fa3040531cd1c81f
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2011-12-19 10:41:50 +01:00
Stephen Kelly
23ab6a726a Add the .exe suffix to executables on Windows.
Change-Id: I257bb7d62ae18ea529df6b10694fcf25eedc83f4
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-12-12 19:10:34 +01:00
Jørgen Lind
cdacf0918e Add a wayland-scanner rule to qmake
Change-Id: I142ca2ba2a817745b818d2740d9ae8e0eaf3b797
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-12-12 17:27:19 +01:00
Rohan McGovern
7e66f6c207 Set QMAKE_*_VERSION_OVERRIDE for all modules.
On Windows, qmake searches for and uses the highest numbered available
version of each requested library, or a version with no number if no
libraries were found.  This meant that qmaking a library's consumer
before qmaking the library itself could result in the consumer
incorrectly attempting to link against $${LIB}.lib rather than the
correct $${LIB}5.lib (for example).

QMAKE_$${LIB}_VERSION_OVERRIDE is the way to work around this.

Previously, a hardcoded list of libraries had version overrides set up
on Windows, but the qmake order issue affects all libraries, not just
these.  Therefore, handle it for all modules.

Change-Id: I83b4646e3819f525193d1fc065b0d0e65b3be99f
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-12-07 12:55:28 +01:00
Bradley T. Hughes
6b889f89dc Remove the QT_THREAD_SUPPORT defines
These are no longer used. Qt 3.x used them to enable thread support
(which was optional at the time), but starting with 4.0, thread support
is always enabled, and these defines were removed from the code.

Change-Id: I4d1c75171c263383fc055d2a7fe52ca0501acd7a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-12-06 18:37:54 +01:00
Stephen Kelly
4d98b83c17 Use plural form for CMake variables.
Change-Id: Idc0cd360e09046a5746c9f7366c7fd4b982058fe
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-12-06 11:57:11 +01:00
Stephen Kelly
3b3531285d Remove CMake variables which are not needed in Config files.
Change-Id: I8f6795f1d40983af0478270f33ab1c06abe67133
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2011-12-06 11:57:11 +01:00
Jyri Tahtela
05044cd982 Add new mkspec for cross-compiling Qt5 for ARM
This mkspec provides default compiler settings for cross-compiling
Qt5 for ARM.

Change-Id: If58a1833141ab305bd57928796f7444e9b7aa2b3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-12-06 00:35:49 +01:00
Stephen Kelly
353c404f04 Quote the path in CMake so that spaces in paths work.
Change-Id: Ie73a4b242ab0bf90e6f292be9a7b7913ae4273a5
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2011-12-03 23:14:33 +01:00
Kent Hansen
613183ff8c Automatically add QtQuick module if only QtDeclarative is specified
QtQuick and related APIs (QQuickItem, SceneGraph, et al), which
used to live in the QtDeclarative module, have moved to a new
module, QtQuick.

Existing projects that use QtQuick-specific APIs should add "quick"
to their project's QT variable, and update their include statements.

E.g.,

QT += declarative

should be changed to

QT += declarative quick

and

 #include <QtDeclarative/qquickitem.h>

should be changed to

 #include <QtQuick/qquickitem.h>

and similarly for the other QtQuick classes.

In order to give existing projects a chance to migrate smoothly, we
should issue a warning and automatically add the QtQuick module if
only the QtDeclarative module was specified. (If a project doesn't
use any QtQuick APIs, the warning can be ignored -- but there is no
way to disable it.)

This change, along with the compatibility headers in QtDeclarative,
make it possible to build existing projects without any modifications
on the project's side.

This change will be removed at a later time; when that happens,
existing projects that did not port to the QtQuick module will no
longer build.

Change-Id: I56abcadc1e5c74490527fc03646310d801bfc084
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-12-02 15:59:58 +01:00
Stephen Kelly
e0593c828b Make the Qt5 part of the target name namespace style.
As it was in Qt4 and discussed on the cmake list.

Change-Id: Ide77c2525a261a5d658d7cb661010a67d3386341
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-12-02 14:17:40 +01:00
Joerg Bornemann
55c3799bd3 mkspec win32-msvc2003 moved to unsupported
Change-Id: Idabdd08a033f3e77dae2de21b6544f57893abd59
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-11-30 11:31:14 +01:00
Stephen Kelly
a482487b9f Install CMake config files from Qt.
This includes a BSD licenced file Qt5CoreMacros.cmake which is
adapted from Qt4Macros.cmake in the CMake source tree.

Change-Id: I54326b808795535490a0489659b351a8da72cdbb
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-11-29 17:08:39 +01:00
Joerg Bornemann
57039e0891 mkspec win32-borland moved to unsupported
Change-Id: Ie34157318733a700214ff68708db8127644f65ba
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-11-29 15:33:01 +01:00
Tor Arne Vestbø
ca572a6144 qmake: Allow extra compilers to have the makefile depend on its inputs
And enable this configuration option for the resource compiler. This
results in a re-run of qmake whenever you touch a qrc file, which is
needed to keep the dependencies up to date. Otherwise you might end
up in the situation where you add a file to a qrc, edit the file some
time later, but a rebuild does not regenerate a cpp file and compile
that, so the final binary is stale.

Technically this dependency problem is present for all source files,
and qrc files are no different than any cpp file that you add a new
header #include to, or adding a Q_OBJECT macro to a header. To pick
up these changes we have to re-run qmake, so that qmake can run its
internal dependency checking, and any extra compiler dependency
commands.

The reason we're making this change for rcc files it that conceptually
people treat them as a "project" files, and expect them to behave similarly
to .pro or .pri files, in that editing the file will invalidate the
makefile. In practice this is often what happens when adding new
headers, as you touch the project file when changing the HEADERS
variable.

Task-number: QTBUG-13334
Change-Id: If69149678e7fba6d812d31dcc17877427f9a6122
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
2011-11-28 13:35:42 +01:00
Rohan McGovern
e759f9580e Improved usage of TESTDATA with relative paths beginning with ".."
Support the common construct of a top-level test directory having
a test/test.pro with:

  TARGET = ../tst_sometest
  TESTDATA = ../data1.txt ../data2.txt

Prior to this change, the ".." in TESTDATA would cause the data to
break out of the test's installation directory.

Change-Id: I22860bf3a148f278b3f4e18b476fd151f7f0f775
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-11-24 23:42:35 +01:00
Kent Hansen
502b5b8178 Make v8 snapshots work in debug-and-release mode
Debug snapshots and release snapshots aren't compatible. Both a
debug version and release version of the mkv8snapshot tool must be
built, and the corresponding executable selected when building v8.

Adopt the library naming convention for naming the mkv8snapshot
executable ("mkv8snapshot" in release, "mkv8snapshot_debug" in debug
on Mac, "mkv8snapshotd" in debug on Windows).

Change-Id: I7a94b09e7db7ed8bbaa293637c092a1d1d1dbaba
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-11-24 16:46:15 +01:00
Rohan McGovern
3b88d4db6e Fixed typo in testcase.prf causing TESTDATA with multiple items to fail
This variable was renamed from `elem' to `file' at some point in
development, but the old name was left at one place.

Change-Id: I2cda42b02a753614176b466e507e8d8d9ed80a6e
Reviewed-by: Kalle Lehtonen <kalle.ju.lehtonen@nokia.com>
2011-11-23 04:14:02 +01:00
Rohan McGovern
9ffd7a339f Added build system support for installing tests.
Tests will install under $$[QT_INSTALL_TESTS].

TESTDATA may be used to install additional testdata required by the
test.

The default install rule may be disabled by
CONFIG+=no_testcase_installs.

Change-Id: I204de60c8e844775906ffd016ca50bffbb414142
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-11-23 00:13:46 +01:00
Friedemann Kleint
3bb247b8d8 mkspecs: Case-insensitive check of paths on Windows.
Change-Id: I2b46bce79774ed9e5b5f6d73cc6e62ae50e35a5e
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-11-18 14:53:19 +01:00
Friedemann Kleint
f6c61d13a3 Windows: Adapt mkspec for MinGW / gcc 4.6.
gcc 4.6 becomes the minimum required version in Qt 5.

See also d4150975af620e2889cc58bd476bac6b4d101db3
in Qt 4.8.

Change-Id: If66ce0be755263c20b0a4371523c6590592d962d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-11-18 14:53:08 +01:00
Rolland Dudemaine
8fd2801a1f Resolve a number of compilation issues with INTEGRITY
First, #ifdef'ed out getpwuid_r() and getpwgid_r() usage since users/groups support is not in in single-process Posix mode.
Also, correct a typo and add missing files to io.pri.
Update documentation to disable libtiff which won't compile until ibtiff itself is updated, and add back -no-exceptions in the sample command line. And add a line to compile host tools.
Add a dummy QT_OPEN_LARGEFILE definition in qplatformdefs.h since there is code that requires it.
Move definition of getGlyph() after the definition of qHash(GlyphAndSubPixelPosition).

Merge-request: 2686
Reviewed-by: ossi
(cherry picked from commit 8fe04a14b1f3688c9ce0933ebec0c28616595d93)
Change-Id: I8fe04a14b1f3688c9ce0933ebec0c28616595d93
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-11-18 12:11:44 +01:00
Tor Arne Vestbø
280f8829b6 Allow overriding the output dir when running syncqt
This feature is only available to advanced qmake clients who have their
own defaults_pre.prf, where QMAKE_SYNCQT_OUTDIR is set before loading
Qt's own default_pre.

This is useful to be able to put the sync.profile file in a different
level in the source tree than where you want the output in the build
tree.

An alternate/complimenting solution would be to allow the output path
to be overriden from within the sync.profile file.

Change-Id: I3cdef82dbe492877507e269e18571456beeb2b7d
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-11-16 16:52:26 +01:00
Bradley T. Hughes
e2628ef943 Make it possible to disable the 'check' target
If subdir.CONFIG contains no_check_target, we do not recurse into
that subdir when generating the 'check' target.

This will be used to selectively disable crashing tests on Mac OS X.
Currently, all autotests are disabled on Mac OS X. The goal is to re-
enable them, but not all at once.  This approach allows us to get each
change through the CI system individually.

The first step is get all tests to build, but not run, then we will
re-enable the tests for each module, possibly disabling individual
tests at the same time.

Change-Id: I69f62c238f381ae0315d414cd71d76bc88b088dd
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2011-11-16 10:32:10 +01:00