Commit Graph

280 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
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