summaryrefslogtreecommitdiffstats
path: root/qmake/generators/makefile.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* support installs with target dirOswald Buddenhagen2012-08-081-8/+42
| | | | | | | | | this adds a .base "member" to the install "structure". if specified, only this much is stripped from the front of each element of .files, rather than the entire path, to obtain the target filename. Change-Id: Ic39fcf71c4ad874ffabbbad113be9cdc6e3f7260 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* reshuffle assembly of install commands as wellOswald Buddenhagen2012-08-081-24/+16
| | | | | | | | don't make a single string, but a string list which is join()ed in the end. this is a tad slower, but the code is way easier to work with. Change-Id: I1ff7168c2770998761a6081be8080c743ddc94a1 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* reshuffle assembly of uninstall commandsOswald Buddenhagen2012-08-081-12/+9
| | | | | | | | | make a proper stringlist of commands, and join it in reverse order only at the end. the reversal ensures that we can cleanly fold up directory hierarchies we may build. Change-Id: I9a241361588a6965283aec5258e1d622b35514e0 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove pointless appending of trailing dir separator under unixOswald Buddenhagen2012-08-081-2/+0
| | | | | Change-Id: Ia9b181db57ac2ee93cd412d58fe6ecbc5637a2f0 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* respect copy_dir_files with manually flagged directories as wellOswald Buddenhagen2012-08-071-3/+5
| | | | | | | otherwise the second installation on unix would be bogus. Change-Id: I162533ee262c6820e7e2d4710b5342cafecd9d59 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove not particularly useful branchOswald Buddenhagen2012-08-071-4/+1
| | | | | | | | | we just determined that the file does not exist, so it's entirely pointless to query its type from the file system. consequently, the respective fallback branch would assume a regular file anyway. Change-Id: I42590ffc2a5f650fb430a9398cb1859217ed4350 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove clearly bogus escapeFilePath() callOswald Buddenhagen2012-08-071-1/+0
| | | | | | | | the value is still re-processed numerous times, end each "exit path" does own escaping, while not every path can deal with an escaped path. Change-Id: I0bf4a043809bf4b7877d02e5d8dfe8f794a7dd00 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Remove references to Borland and bmakeAndy Shaw2012-08-011-103/+36
| | | | | | | | | Remove references to an old compiler that has not been supported for a long time. Also remove Borland specific configuration flags which have no meaning elsewhere. Change-Id: I3634a52b78f737ea972073e14c2b6669dcd0ae63 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* inline MakefileGenerator::processPrlVariable()Oswald Buddenhagen2012-07-311-18/+6
| | | | | | | | the visitor-pattern like approach is not needed any more Change-Id: I990db681cbeee91d89ecba97745a8104595247e7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* make the windows prl processing more like the unix variantOswald Buddenhagen2012-07-311-5/+1
| | | | | | | | it's more elegant, and more similar code is better. Change-Id: I2b8b036cb70a932fd171e23cf7d3389188401924 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* stub out MakefileGenerator::processPrlFiles()Oswald Buddenhagen2012-07-311-19/+1
| | | | | | | | | | the unix and windows variants don't rely on it. not making it purely virtual only because the project generator inherits MakefileGenerator as well but does not need an implementation. Change-Id: I80099b3f5d07cd037b408cf1099c58ff3a2904cd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* dispose of MSVCPROJ_LIBSOswald Buddenhagen2012-07-241-8/+2
| | | | | | | | | | | | | | | this way QMAKE_LIBS{,_PRIVATE} can be treated the same as in all other generators, which allows us to: - make the windows generators' findLibraries() be more like the unix version - dispose of QMAKE_INTERNAL_PRL_LIBS handling while reading prl files (because the output always goes to QMAKE_LIBS) - as a side effect, QMAKE_LIBS_PRIVATE are not subjected to prl file resolution any more, which is again consistent with unix - the correctness of that needs to be assessed separately. Change-Id: Ie9bc04d117eff6a7cde846677f98acf3c64aa6ee Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* automatically fix separators in QMAKE_{DIST,}CLEANOswald Buddenhagen2012-07-161-2/+11
| | | | | | | it's a tad insane to expect the user to do that Change-Id: I75c68f2a28656c9ba2e3fabcc79718b899b29ce7 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Uppercase the CONFIG for verbatim mode.Stephen Kelly2012-07-041-1/+1
| | | | | Change-Id: Iec883e0218af80fc329d866affb2b95db72c54d3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* qmake: improve the .pc files generatorKonstantin Ritt2012-07-031-3/+1
| | | | | | | | 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>
* const correctness for variables()Oswald Buddenhagen2012-06-271-1/+1
| | | | | Change-Id: Id11453ccbae3ffa32580badadada945d342d727a Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* don't overuse variables()Oswald Buddenhagen2012-06-271-10/+10
| | | | | Change-Id: Ib2da88e5e29c0bfecc39a9c06e82a34a4bd0b1e6 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* const correctness for values() callsOswald Buddenhagen2012-06-271-43/+43
| | | | | Change-Id: I1476ae8d3fb7364686398c5650729dee94a8e933 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* fix specdir()Oswald Buddenhagen2012-06-271-2/+1
| | | | | | | | get the actual spec path directly from the project - the specs in Option are not necessarily resolved. Change-Id: Ia2bf2199c5269aa5b5a9d4c38de36171f25d448b Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* revamp handling of qmake target modeOswald Buddenhagen2012-06-271-1/+7
| | | | | | | | | | | 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>
* repurpose -unix/-macx/-win32 optionsOswald Buddenhagen2012-06-271-8/+0
| | | | | | | | | | they have been deprecated long enough, so we can mess with them now. don't make them set the target mode any more; the makespec can do that autoritatively. instead, they can be used to override the host mode for debugging purposes. Change-Id: Ife5fdcf4f1b6b926901a80896ac92b7d821278d1 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* clean up specdir()Oswald Buddenhagen2012-06-261-7/+4
| | | | | | | | | the only callers which used non-default arguments are gone now, so remove the arguments entirely. this also enables us to re-enable result caching. Change-Id: I62f76e17e531a4eeafddb9b29716ca0a0eb3dbea Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* fix -spec/-xspec argument re-assemblyOswald Buddenhagen2012-06-261-2/+9
| | | | | | | | | | the specs in Option are now only fixifiable absolute paths if an actual path was passed on the command line - otherwise these are just names, and we should pass them on verbatim. Change-Id: I5b3535dadf2d6b2b3116331e6636f6e363a5361f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* revamp automatic makefile generation for sub-projectsOswald Buddenhagen2012-06-191-32/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* introduce $$QMAKE_CHK_EXISTS_GLUEOswald Buddenhagen2012-06-191-6/+4
| | | | | | | instead of hard-coding platform differences, use a variable. Change-Id: I20e98811ad5f07429148c6f88aedbabc3ba58fff Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* normalize $$QMAKE_QMAKEOswald Buddenhagen2012-06-191-2/+2
| | | | | | | | | 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>
* fix in-/out-dir mixupOswald Buddenhagen2012-06-191-4/+4
| | | | | | | | | no point in entering the outdir and leaving the indir. this doesn't really matter except for the obsolete borland generator, but whatever. Change-Id: Ieb4e4c549ebd65f99e4d00819c52822968b060a4 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove unnecessary conditionalOswald Buddenhagen2012-06-191-6/+2
| | | | | | | the code above already deals with the differences Change-Id: Ifb799e46f5187e7bd3d0f0169e868ad267bcfe23 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove duplicate assignments of MKDIR & CHK_DIR_EXISTSOswald Buddenhagen2012-06-191-2/+0
| | | | | Change-Id: I314659a1ba25227380176dc65a9c81e3c6df28c1 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* unobfuscate makefiles re $(CHK_DIR_EXISTS)Oswald Buddenhagen2012-06-191-1/+4
| | | | | | | | no need to define an obscure variable for it. just inline it. the assignments are left in for compatibility with hand-written commands. Change-Id: I9bc3914e2c4116f3b8fe00a421ca0f036bb7e214 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* make 'qmake_all' targets respect .depends and CONFIG+=orderedOswald Buddenhagen2012-06-191-0/+7
| | | | | | Change-Id: I010a9886ee0d40e4319cb6bd873b038336a42111 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* make 'qmake_all' target of SUBDIRS projects properly recursiveOswald Buddenhagen2012-06-191-6/+20
| | | | | | | | | so far it would rebuild the makefiles one level down only, which is somewhat arbitrary and not really helpful. Change-Id: I5fe01f379ecc4b210610a674d7df7dfc18131eef Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* make 'qmake' target of SUBDIRS projects non-recursiveOswald Buddenhagen2012-06-191-5/+1
| | | | | | | | | that's consistent with other projects. 'qmake_all' can be used for recursion. Change-Id: Ie6d620f7a3e0e28d3f2f82f01ca94c2f46137c68 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* don't use $(MAKEFILE) to refer to SUBDIRS' makefilesOswald Buddenhagen2012-06-191-1/+1
| | | | | | | | $(MAKEFILE) is our own file, and using it would wreak havoc if it was named anything but Makefile. Change-Id: I51cae2014a85399b409f18788f864ff2a82e493e Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* look for .qmake.conf filesOswald Buddenhagen2012-06-191-2/+6
| | | | | | | | | this is the source dir equivalent of .qmake.cache and can be checked into the repository. it can be used to make project-wide settings, or just to signal the presence of an mkspecs/ directory. Change-Id: I5f1cebad2aa2a89e78089341b2051613b6b7a613 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* find .qmake.cache for subprojects independentlyOswald Buddenhagen2012-06-191-3/+3
| | | | | | | | | | this allows the creation of aggregator projects, like, say, qt5. this is not expected to have a negative impact, as no project could reasonably expect a nested .qmake.cache to *not* take effect - in fact, if the project was processed stand-alone, it would already use it. Change-Id: I33f2935d309baba7e95465f2fefb8231c4f03eda Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove some symbian cruftOswald Buddenhagen2012-06-191-11/+0
| | | | | | | | - Option::mmp_ext - references to dead QMAKE_INTERNAL_ET_PARSED_* variables Change-Id: I863605b23798cbca3f6c8ab5a154fd432f1f4dcc Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* introduce /get property variantsOswald Buddenhagen2012-06-191-1/+1
| | | | | | | | | | | | | | | properties are now split into a write location $$[FOO] and a read location $$[FOO/get]. the write locations are hard-coded and configurable via qt.conf/Paths as before, while the read locations are configured via qt.conf/EffectivePaths. this finally provides a clean solution to the problem that during the qt build itself tools and libraries need to be taken from somewhere else than they are installed to. Change-Id: I956c43bd082afd465e690fe75d0bee3c2c0f7c25 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* don't generate make_default targetsOswald Buddenhagen2012-06-191-5/+3
| | | | | | | | | | | | make_first really means the same, as the default target is 'first' which immediately invokes make_first. as a nice side effect, this fixes ALL_DEPS not being used by the subdirs template's default target - make_default wasn't special-cased in the right place, while make_first is. Change-Id: I946cea3b2dae198eda61d31dbd19c6ccd15deac7 Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
* introduce ability to build projects for the host systemOswald Buddenhagen2012-06-191-3/+6
| | | | | | | | | | | | | | | | | when qmake runs into the new option(host_build) command, it will restart the project evaluation with a host spec. the new default host spec is called default-host (gasp!). it is overridden with the pre-exising -spec / -platform option, while the new -xspec / -xplatform option overrides the pre-existing default spec. specifying -spec but not -xspec will set the xspec, too, so the behavior is backwards-compatible. same for the XQMAKESPEC override read from .qmake.cache and the environment variable. the cleaner solution would be adding -hostspec, to be symmetrical with the override semantics, but that would deviate from configure in turn. Change-Id: I4297c873780af16ab7928421b434ce0f1d3820da Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* fix static library names when generating .pc files for pkgconfigMark Brand2012-04-191-1/+2
| | | | | | | | | 219a688ac17052e4bb3aac9ff8a813e3f4d8da01 added the version extension which only occurs on the DLL import library. Change-Id: Ie913adf039d7f3a9aadf43f4af014289a8aeacbe Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Hib Eris <hib@hiberis.nl>
* remove support for QMAKE_PLATFORM_DIROswald Buddenhagen2012-03-081-32/+0
| | | | | | | | | | this was a somewhat magic support for sysroots, automatically rewriting a number of path-holding variables. this was (as usual) completely undocumented, extremely fragile, and we are coming up with something better now anyway. Change-Id: I045910f532cb3efc839ea81c7a48f8db695e4092 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Merge remote-tracking branch 'origin/api_changes'Lars Knoll2012-03-041-1/+1
|\ | | | | | | | | | | | | | | | | | | Conflicts: dist/changes-5.0.0 mkspecs/features/qt_module_config.prf qmake/project.cpp qmake/property.cpp Change-Id: I6e4af40743a9aeff8ed18533a48036e332acc296
| * revamp -sysroot and -hostprefix handlingOswald Buddenhagen2012-03-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | get rid of Option::user_configsOswald Buddenhagen2012-03-021-4/+0
|/ | | | | | | | | merge them into before_user_vars. they are evaluated right after another anyway. Change-Id: I11859284b363fee01233f6e20989444fef711d0d Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
* Add TARGET_VERSION_EXT to pkgConfiglibNameHib Eris2012-02-241-0/+1
| | | | | | | | | | | | | | | | | | | | The libName that is used in pkgConfig files should include the TARGET_VERSION_EXT. This is needed because in Win32MakefileGenerator::fixTargetExt(), the TARGET_VERSION_EXT is added to the library name. In Win32MakefileGenerator::processVars(), if TARGET_VERSION_EXT is empty, it is set to VER_MAJ. On platforms != Windows, TARGET_VERSION_EXT does not seem to be used. We probably got away with this so far because pkgconfig files generation for win32 was just added in 4.8 and nobody uses them yet, and because on platforms != windows the TARGET_VERSION_EXT is not used. Change-Id: I56f239e389f0ef926030e4c2376cadd92c4f673c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Revert "Escape project file name in makefile rebuild rules."Andreas Hartmetz2012-02-231-4/+4
| | | | | | | | | | It was the result of miscoordination between Andreas Holzammer and me, duplicating the functional change of commit ea2c9f764fed654a57972223449f41e208e05863. This reverts commit 8b7a9b4898c85e81d87cf642ec59ce85e917ee35. Change-Id: I9a47746c1c12ca00b2dc5c5d50e99f9bf990e3f7 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Implement QMAKE_SUBSTITUTES.config = verbatim.Stephen Kelly2012-02-111-49/+61
| | | | | Change-Id: Ie0b333fa7fae2283e99e42f9cd7bab4e84991f40 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Escape project file name in makefile rebuild rules.Andreas Holzammer2012-02-111-4/+4
| | | | | Change-Id: I5407c2477613119b5aea2d00eb88cc24d35788ad Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Escape path names in qmake-generated Makefiles.Andreas Hartmetz2012-01-311-1/+1
| | | | | | | | | | | qmake-generated Makefiles since 4.6 (according to bug report) contain recursive qmake invocations with absolute paths to .pro files, where the absolute paths are not escaped. Task-number: QTBUG-11776 Change-Id: I49772c7d9147efea3bb7b9623c61d92aa0bb6857 Reviewed-by: Jonas Gastal <jgastal@profusion.mobi> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>