summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/resolve_target.prf
Commit message (Collapse)AuthorAgeFilesLines
* Rewrite qmake's exclusive-build featureTor Arne Vestbø2013-10-251-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We used to compute the default exclusive build directory, eg 'debug', at configure time, and then set OBJECTS_DIR, MOC_DIR, etc to include this hard-coded default exclusive build directory. We then had to run a post- process step where we replaced the 'debug' part with the current actual exclusive build pass, eg 'release', resulting in long-standing bugs such as QTBUG-491 where we end up replacing parts of the build output dirs that were not part of the original exclusive build directory. We now set the OBJECTS_DIR, MOC_DIR, etc defaults in configure like before, but they do not include any exclusive-build information. The exclusive build directory is handled as a separate step in default_post where we adjust all entries in QMAKE_DIR_REPLACE to be exclusive directories. For backwards compatibility the new exclusive build behavior is only enabled for variables named by QMAKE_DIR_REPLACE_SANE, which for Qt itself applies globally to everything but DESTDIR, and for libs and tools also applies to DESTDIR. The reason for leaving out DESTDIR in the general case is because many tests and examples assume the old behavior for DESTDIR. A side effect of including all the other variables for Qt libs and tools is that the PCH output dir will be uniformly set, which has been an issue on Windows in the past. The addExclusiveBuilds function now takes two or more arguments, each argument being the key for an exclusive build, which can be customized eg. using $$key.{name,target,dir_affix}. Passing more than two arguments results in three/four/etc-way exclusive builds, eg debug/release/profile. Exclusive builds can also be combined, eg static/shared + debug/release by making two calls to the function. We also handle individual targets of combined exclusive builds, eg static/shared + debug/release, meaning it is possible to run 'make debug' to build both static-debug and shared-debug. Task-number: QTBUG-491 Change-Id: I02841dbbd065ac07d413dfb45cfcfe4c013674ac Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Distinguish between 'mac' and 'macx' qmake scopesTor Arne Vestbø2013-03-051-1/+1
| | | | | | | | | | | | | | The former applies both on Mac OS X and iOS, but 'macx' is specific to Mac OS X. ios.conf and macx.conf now share most of their settings in the common mac.conf. We set the default QMAKE_MAC_SDK before loading mac.conf, so that any overrides in the device config will apply afterwards. This means configure's mkspec parsing will be able to read the QMAKE_MAC_SDK. Change-Id: I0c7e26a6a0103e19b23ef152aa9e4ab461cee632 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* refactor build config resolutionOswald Buddenhagen2013-02-181-0/+2
| | | | | | | | | | | | | | the current approach of having "free-flying" prf files for such a core issue is rather insane. this was noticed early on, as evidenced by the forcible loading of debug/release/debug_and_release in default_post. however, things remained a mess, in particular static vs. shared. consequently, the commit merges all related feature files. the actual config resolution is put in a separate feature file, so it can be loaded by resolve_target if that happens to be loaded early on. Change-Id: Ie30e7c63cabe9409a3263ca1650e323a870926f2 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* mark a bunch of features as internalOswald Buddenhagen2012-12-121-0/+11
| | | | | Change-Id: I5ad28827ff317985414e859263af85ceec31207c Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Make it possible to suppress the automatic version number in DLLsThiago Macieira2012-11-061-1/+1
| | | | | | | | | | | | qmake automatically appends the library's major version number to the DLL file name on Windows, as DLL naming doesn't include the version number on a suffix like on Unix systems. This flag makes it so qmake skips adding. This will allow us to insert Qt's major version number at a different position. Change-Id: I25d471038841fb0c5a34ef6b3bd6266aa33cebd1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* don't unset TARGET_VERSION_EXTOswald Buddenhagen2012-11-021-1/+0
| | | | | | | otherwise we may remove a user-provided setting. Change-Id: If3217a3d92938fe2f3ac3740a645d3ace0ce9ab0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* make QMAKE_RESOLVED_TARGET use normalized path separatorsOswald Buddenhagen2012-07-161-1/+0
| | | | | Change-Id: I23433a67364a9d09fa239b2c7f2cae495d3cc6df Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* make use of new functionsOswald Buddenhagen2012-07-161-2/+1
| | | | | | | makes for cleaner code Change-Id: I1a86bc4cac3778a1df37aa3307e5a8edac246961 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Add missing naming for libraries built statically.Caroline Chao2011-11-111-3/+7
| | | | | | | Extension .a for Mac and Linux and .lib for Windows. Change-Id: I1e979b2a6b29eeab35620aa0bbabb27f10cdda68 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Split TARGET_BASEPATH from breakpad.Caroline Chao2011-11-111-0/+58
TARGET_BASEPATH becomes QMAKE_RESOLVED_TARGET. QMAKE_RESOLVED_TARGET will be reused for future implementation of code coverage tool TestCocoon. Creating of resolve_target.prf. Clean unused "unset(SYMBOLFILENAME)" in default_post.prf. Change-Id: I054efb0065fa06697b60ac60a9ddf364f2f40366 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>