summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/qt_functions.prf
Commit message (Collapse)AuthorAgeFilesLines
* add and use qtHaveModule() functionOswald Buddenhagen2012-12-211-0/+7
| | | | | | | | | | | this is much more elegant than the so far propagated !isEmpty(QT.foo.name). also replace feature-specific tests (no-gui and no-widgets) and the obsolete contains(QT_CONFIG, foo) syntax. Change-Id: Ia4b3c8febcabf9eeca67b1f9173a523820b1038b Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com> Reviewed-by: Tasuku Suzuki <stasuku@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* fix static lib dep additionOswald Buddenhagen2012-12-111-5/+6
| | | | | | | | | | leave MODULE_LIBS unmodified - MODULE_LIBS_ADD takes the role of the filtered variable. Change-Id: I2a67078bbc453eccc08317a1ca8e3228cbc3a8f7 Reviewed-by: Davide Pesavento <davidepesa@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* introduce QMAKE_RPATHLINKDIR (and QMAKE_LFLAGS_RPATHLINK)Oswald Buddenhagen2012-12-031-3/+4
| | | | | | | | | complementary to QMAKE_RPATHDIR. this avoids that we need to sprinkle linux/gcc specific code all over the place. Task-number: QTBUG-27427 Change-Id: Iebafd1749d1a0d803704902473df8c743f074ddc Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* resolve private dependencies of tools as wellOswald Buddenhagen2012-12-021-1/+2
| | | | | | Change-Id: I25c73661489f0a6e6ecf3bb423cdae6435221e25 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* packagesExist(): always return false if QT_CONFIG contains no-pkg-configMilian Wolff2012-11-211-1/+2
| | | | | | | | | | | | | On QNX e.g. you'll end up with a Qt configured without pkg-config support by default. Once you try to compile e.g. QtWebKit which contains a check like packagesExist(libudev) the system pkg-config (see default branch of pkgConfigExecutable) will be called without any special config sysroot or libdir. Thus libudev will be found in your system host, even though it is not available for the cross compile target. This leads to compile errors as described in https://bugs.webkit.org/show_bug.cgi?id=98032 . Change-Id: If1474cb3b3f3b71fad7269e4aedd4e10f70a9b2a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* qtAddModule(): define PRE_TARGETDEPS for static modulesJ-P Nurmi2012-11-141-4/+8
| | | | | | | | This ensures that for example the platform plugins get properly re-linked when the static platform-support lib changes. Change-Id: Iad493d4de30d6f6977f80aa56d0b27d05e9e3770 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* define the module rpath in the installed module pri fileOswald Buddenhagen2012-11-131-5/+1
| | | | | | | | | | | the fallback path wouldn't account for a sysroot. as there is no clean way to implement that, rather remove the fallback alltogether and make the rpath a mandatory part of modules. Change-Id: I6f2bd6e36889be2f61e17a579174380aa3c6622d Reviewed-by: Romain Pokrzywka <romain.pokrzywka@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Insert the Qt major version (5) in the library namesThiago Macieira2012-11-101-3/+13
| | | | | | | | | | | As discussed on the mailing list, insert the Qt major library version in the library name, so even the development files can be co-installed with Qt 4. Discussed-on: http://lists.qt-project.org/pipermail/development/2012-September/006545.html Discussed-on: http://lists.qt-project.org/pipermail/development/2012-September/006551.html Change-Id: If0be11ebf9454a9fb6d96cda161790dfd53c00f5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* make it possible to put removals into modules' .CONFIG and .DEFINESOswald Buddenhagen2012-11-081-4/+13
| | | | | | | the respective flags/defines need to be prefixed with a minus sign. Change-Id: I8a3a46254f90d4ecdbd692a0eca635038691d078 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix tool invocation for -prefix + -framework builds on macxOswald Buddenhagen2012-10-291-5/+9
| | | | | | | | set DYLD_FRAMEWORK_PATH instead of DYLD_LIBRARY_PATH Change-Id: I9849f12063b8c7a45d040c087f4611c3a48180b8 Reviewed-by: Johanna Äijälä <johanna.aijala@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* redo QT_PLUGIN_PATH assembly for non-installed executionOswald Buddenhagen2012-10-291-7/+7
| | | | | | | | | it is a bad idea to extract plugin paths from library modules. instead, just collect plugin paths from all known repositories. Change-Id: I527325f20e9cf98ae974997530af1b2893537e5d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* escape constructed command for makefilesOswald Buddenhagen2012-10-261-2/+5
| | | | | Change-Id: Iec7f2bd7b02d03bf6a99dde363a41578924e523c Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Refactor recursive target logic out of default_post into functionTor Arne Vestbø2012-10-181-0/+26
| | | | | | | | | The qmake function prepareRecursiveTarget can now be used both by the existing logic in default_post, as well as future recursive targets that will be needed as part of the modularization of documentation builds. Change-Id: Ibc72c3e224cb57c9f1796de3b04fda9de663dbb4 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fix accessing the rpath dir from included modulesRomain Pokrzywka2012-09-281-1/+1
| | | | | | | The wrong variable was used when reading the module settings Change-Id: If35dc9694240a68393b24d7dba72520108cb9ac3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* factor out qtAddTargetEnv()Oswald Buddenhagen2012-09-191-0/+31
| | | | | Change-Id: Ib0517da54da98de4b1f2ee7d80bee22316231091 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* factor out qtAddToolEnv()Oswald Buddenhagen2012-09-181-0/+20
| | | | | | | so it's available for other users as well Change-Id: I2d5a14ae427575c07321ac532b13ee03308b837f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* remove 3rd parameter from qtPrepareTool()Oswald Buddenhagen2012-09-181-6/+1
| | | | | | | it's been superseded by the QTTOOL.* module stuff. Change-Id: I01c9fc3ebbb22111bfb03f82693c7cf08b5fc9d4 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* use each module's lib_bundle settingOswald Buddenhagen2012-09-071-1/+1
| | | | | | | | | ... instead of relying on the global qt_framework flag. Change-Id: Ie23f55788c26d732ada87aab7284c0a1fe0bfa28 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* make .private_includes in module pri files "self-contained"Oswald Buddenhagen2012-08-151-7/+1
| | | | | | | | this puts the whole logic of assembling those paths into qt_module. Change-Id: Iafbe3969e3092e294bdb8243b2dffa7a899a7eb8 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* support -rpath for modules which are not installed to QT_INSTALL_PREFIXOswald Buddenhagen2012-08-111-0/+7
| | | | | | | | | | | | | a module's project file may set MODULE_INSTALL_LIBS before loading qt_module.prf to have an alternative RPATH linked into the users of that module. this is relevant only for linking against non-installed -prefix builds of that module, as otherwise .libs from the module's pri file is used for rpath. Change-Id: Ib240e748cf130a71a5991dc643c368a983092ead Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* fix -rpath-link handling for non-installed prefix buildsOswald Buddenhagen2012-08-111-7/+10
| | | | | | | | | forwarding module pris get rpath_link{,_private} fields, which are used accordingly by qtAddModule(). Change-Id: I0abc2dc8b1e8744dbf7f439aa7fed9ae159c2c74 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* qtAddModule(): put search paths directly into LIBS{,_PRIVATE}Oswald Buddenhagen2012-08-111-7/+12
| | | | | | | | | QMAKE_LIBDIR and QMAKE_FRAMEWORKPATH have the downside that they always effectively end up in LIBS, which makes for weird prl files. Change-Id: Iaf61b0038504ff91ae5ec7f9b1255fe3a2d134f1 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* assemble the complete tool commands already in qt_tool.prfOswald Buddenhagen2012-08-111-24/+2
| | | | | | | | this saves some repeated calculations. also, it's nicer to have most logic in one place. Change-Id: Iea362d40f5e6203709ced94d29ca61a4163b8e69 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* fix error message about bad qt modulesOswald Buddenhagen2012-08-111-1/+1
| | | | | | | the variable name is a function parameter now Change-Id: I46f3ce37c157312e7f70291a0cef2d666d50664c Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* adjust qtAddLibrary() to new qtAddModule() parametersOswald Buddenhagen2012-08-081-1/+1
| | | | | Change-Id: Ib5918fa83e78d16fd318590c33b280d9054b2cd6 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* add support for QT_PRIVATEOswald Buddenhagen2012-08-071-2/+41
| | | | | | | | | | | | | | | | this is handled the same way as the QT variable, only that the actual libraries end up in LIBS_PRIVATE, not LIBS, which means they don't end up in prl files. the handling of the two variables is entirely independent, including independent dependency resolution, so some libraries will typically end up twice on the linker command line. this is not a problem. Change-Id: I257ad0d414bf273c08a7bd6a874fe9ddb7356009 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com> Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
* use QMAKE_LIBDIR for passing LSB library pathOswald Buddenhagen2012-08-041-1/+1
| | | | | | | -L in QMAKE_LFLAGS is just wrong Change-Id: I05eae0bb5e5e3dc8f8234616cb2ccdfba1d517fb Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* fix host vs. makefile directory separator messOswald Buddenhagen2012-07-281-2/+2
| | | | | | | | | | | | | | | | | 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>
* make the prl lookup search in standard locationsOswald Buddenhagen2012-07-121-4/+2
| | | | | | | | | | | | 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>
* fix linking against installations in /usr/libOswald Buddenhagen2012-07-101-2/+2
| | | | | Change-Id: I17a6a2e058f039e525461d459477329fd7090417 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* deal with %PATH% containing parenthesesOswald Buddenhagen2012-07-091-1/+2
| | | | | | | | 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>
* make non-bootstrapped non-installed prefix-built executables runnableOswald Buddenhagen2012-07-051-15/+38
| | | | | | | | | 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>
* Fix FRAMEWORK_INCLUDE for MacIikka Eklund2012-07-051-1/+1
| | | | | | | | | | | | 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>
* make using testlib automatically "promote" all modules to -privateOswald Buddenhagen2012-06-261-1/+1
| | | | | | | | | | | | 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>
* remove detection-based usage of modules which are frameworksOswald Buddenhagen2012-06-191-11/+0
| | | | | | | | 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>
* fix direct includes from modules which are frameworksOswald Buddenhagen2012-06-191-1/+1
| | | | | Change-Id: I1f2c1e5ebdb2fa258500a08b32dcafb4150ee424 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* always add library path from moduleOswald Buddenhagen2012-06-191-3/+3
| | | | | | | | 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>
* make module includepath addition less convolutedOswald Buddenhagen2012-06-191-12/+11
| | | | | | | | | | | | | | | | | | 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>
* make qtAddLibrary() a noisy compat wrapper for qtAddModule()Oswald Buddenhagen2012-06-191-46/+10
| | | | | | | | 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>
* make use of $$[FOO/get] propertiesOswald Buddenhagen2012-06-191-2/+1
| | | | | | | | 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>
* let qtPrepareTool give right path for app_bundleBai Jing2012-03-261-0/+6
| | | | | Change-Id: Ieb4979244d741c9d9d0c11a035c18ced87ea28f5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Do not add -rpath-link directives with no library pathSean Harmer2012-03-121-3/+5
| | | | | | | | 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>
* replace uses of QMAKE_INCDIR_QT and QMAKE_LIBDIR_QT with module-specific ↵Oswald Buddenhagen2012-03-081-1/+1
| | | | | | | variables Change-Id: Id410887fa97f345a229e0cbf395633ccf303fa2f Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* revamp -sysroot and -hostprefix handlingOswald Buddenhagen2012-03-011-2/+2
| | | | | | | | | | | | | | | | | 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>
* Set QMAKE_*_VERSION_OVERRIDE for all modules.Rohan McGovern2011-12-071-0/+11
| | | | | | | | | | | | | | | | | | | 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>
* Make v8 snapshots work in debug-and-release modeKent Hansen2011-11-241-8/+14
| | | | | | | | | | | | | 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>
* qmake: remove symbian supportJoerg Bornemann2011-11-071-27/+0
| | | | | Change-Id: I1db834500921681676a6f46e7750bdd81bf0093d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Make pkg-config cross-compile awareHarald Fernengel2011-10-191-2/+21
| | | | | | | | Introduce PKG_CONFIG_SYSROOT_DIR and PKG_CONFIG_LIBDIR for cross-compilation environments Change-Id: I859d55f125b18d6bdef0f1dfaeb43721b85d22f5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Mac: fix linking with Qt frameworks which don't exist at qmake timeRohan McGovern2011-09-171-3/+14
| | | | | | | | | | | | | | This restores the forced-vs-detection logic for Qt frameworks which was removed by commit ceed409b40fd5b8fe5c62ac33144e66f50b28ede. The problem of linking against Qt modules compiled as a static library is solved a different way: the module must explicitly state in the module .pri file that it is built as a static lib. Change-Id: Ie3d726f7b3933e5b5d27f15c6112ec1c7dee1ea2 Reviewed-on: http://codereview.qt-project.org/5034 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Mac: make platformsupport a static libMorten Sorvig2011-09-011-16/+7
| | | | | | | | | | | | | | | The "force framework/no-framework" logic does not really work, since Qt is now a mix of frameworks and statics libs. Remove this code path and use the "detection" path instead. Also remove the exports from platformsupport. Change-Id: I0a308666480445eb47c4f443ff7529addecad10d Reviewed-on: http://codereview.qt.nokia.com/3464 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>