summaryrefslogtreecommitdiffstats
path: root/qmake/generators/makefile.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add spaces around the components of a pkg-config Cflags: fieldThiago Macieira2013-04-091-3/+3
| | | | | Change-Id: I91c301adaaf62cf24be0203785282c375c9d01e1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Introduce QMAKE_CC_O_FLAGLaszlo Papp2013-03-251-0/+3
| | | | | | | This makes it possible to properly parametrize alternative compilers. Change-Id: Iaf0961c47875ee16d815356f36acf5652577cdca Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Merge remote-tracking branch 'gerrit/release' into stableSamuel Rødal2013-03-211-21/+15
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure mkspecs/features/qt_module_headers.prf mkspecs/features/qt_tool.prf src/angle/angle.pro src/tools/bootstrap/bootstrap.pro tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp Change-Id: Ide5759fe419a50f1c944211a48f7c66f662684e0
| * fix parallelized "jom install"Oswald Buddenhagen2013-03-151-21/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | unlike unix' mkdir -p, windows' md complains if the directory already exists. the workaround is a quite complex command, so the so far used concept for assembling the command line from pieces was replaced with a single template. for symmetry, adapt the makefile existence check to the new concept as well. QMAKE_CHK_EXISTS and QMAKE_MKDIR_CMD were added, with hard-coded fallbacks (ugly). QMAKE_CHK_FILE_EXISTS and QMAKE_CHK_EXISTS_GLUE (introduced in 5.0.0) are simply deleted again. QMAKE_CHK_DIR_EXISTS and QMAKE_MKDIR remain for legacy reasons, as qmake emits them into the Makefiles, and custom commands may rely on their presence. Task-number: QTBUG-28132 Change-Id: I3d049cb5d26947e5c3d102d0c2da33afb2a95140 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Janne Anttila <janne.anttila@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* | Make .prl file generation work for iOS again.Morten Johan Sørvig2013-03-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | d28073d9 creates a distinction between "mac" and "macx". The latter is not set on iOS, which caused MakefileGenerator::target_mode to be set to TARG_UNIX_MODE. Check for the "mac" active config instead of "macx". Rename TARG_MACX_MODE -> TARG_MAC_MODE. Change-Id: I7192788c33f5723034ba76da2492379dd454f0ab Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-03-051-5/+2
|\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure qmake/generators/mac/pbuilder_pbx.cpp src/corelib/kernel/qtimerinfo_unix.cpp src/plugins/platforms/cocoa/qcocoabackingstore.mm src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/windows/qwindowswindow.cpp src/plugins/platforms/xcb/qglxintegration.cpp Change-Id: I8d125fe498f5304874e6976b53f588d3e98a66ac
| * Fix generated pkg-config files when cross-compilingMatt Fischer2013-02-201-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Libs: line of the pkg-config files is constructed by taking the name of the .pc file itself, and stripping off the path and extension. However, the code which does this does not handle path separators correctly when the target OS and local OS are different. To get around this, the custom string manipulation was replaced with a call to QFileInfo::completeBaseName(), which can handle the different path separators correctly. Task-number: QTBUG-29700 Change-Id: Ia817b415d303b249f56fcc3d1f073cae99c43046 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | introduce QMAKE_LINK_O_FLAGOswald Buddenhagen2013-03-021-0/+3
|/ | | | | | | this makes it possible to properly parametrize alternative linkers. Change-Id: Ia9cf574544a0259975470366d278b6c5dc747906 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* add ability to override the generated pkg-config file nameOswald Buddenhagen2013-02-061-9/+12
| | | | | | | | | introduce the QMAKE_PKGCONFIG_FILE variable for that purpose. this is another feature that is needed for a bugfix ... Change-Id: I08f470e1b2b7dd318af9195330c15d813fcd55ef Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* consolidate generation of metafile install targetsMark Brand2013-01-251-0/+21
| | | | | | | | | Metafiles such as .prl and .pc files contain paths that have to be adjusted during installation. The same code is used for unix and windows so move it into the base class. Change-Id: I82db89ec83820a4fa0214ba15e7cd63438f6dc91 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* do not fixify + create QMAKE_{PKGCONFIG,LIBTOOL}_DESTDIROswald Buddenhagen2013-01-081-2/+2
| | | | | | | | | these variables are somewhat magic: they are relative to DESTDIR, and they also specify the installation location relative to target.path. the actual output directories are created by other code. Change-Id: Iead3006057516f5a49b6fd4bd8996a062c984fce Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* centralize MAKEFILE writeout betterOswald Buddenhagen2012-12-051-9/+4
| | | | | | | | | nmake depends on a variable being assigned before it is referenced, so just write it out to every Makefile as the very first thing. this is nicer than the previous hack anyway. Change-Id: I50f409919352f560f7ef6c848a2f7c51d1878148 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* assign MAKEFILE even in non-subdirs MakefilesOswald Buddenhagen2012-11-271-0/+5
| | | | | | | | | | | | this is necessary for having a clean way to recurse even from leaf makefiles. the location where the variable is written in the makefile is somewhat bizarre, but the code is so convoluted that finding a better place would mean either a lot of duplication or a lot of prior refactoring. Change-Id: I68e4cf7e3814f6c60b2e3421d69775c993dafb23 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* complain about empty $$TARGETOswald Buddenhagen2012-11-131-0/+3
| | | | | | | this should be fatal, but so should be a lot of other conditions. Change-Id: I0c2c0bb9590ea1e4d0eae76e29eda34915914217 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* do not add DEPENDPATH to VPATHOswald Buddenhagen2012-11-021-1/+1
| | | | | | | | | | | | | | DEPENDPATH merely says where to look for impliciit dependencies, not where to find explicit ones. fwiw, the other way round may be considered correct, but DEPENDPATH exists for the sole purpose of limiting which paths should cause recompilations, so it would be counterproductive to extend with with VPATH. Task-number: QTBUG-11912 Change-Id: I86450b5fd5aeb1f1b015b53f0adcd167ff4ce04d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* qmake ExtraCompilerTargets: deal with file name which contains spaceDebao Zhang2012-10-191-1/+1
| | | | | | Task-number: QTBUG-27629 Change-Id: I6d6c3345cc1bb0a866524df3a1534ed50fc00f3e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Remove addition of dependencies for static libraries.Stephen Kelly2012-10-161-7/+0
| | | | | | | | | | | | | | | | | | | | | The content in the prl file is not compatible with what CMake expects in the value of the IMPORTED_LINK_INTERFACE_LIBRARIES property. That property expects a list of IMPORTED targets or full paths to libraries. The prl file gives us a whitespace separated string of content suitable for passing to ld, that is, it contains -L and -l content. As this would take a lot of error prone parsing in cmake code in order to resolve the content to a list of full paths to libraries (which can be processed by any cmake generator), it's better to remove the code until qmake is able to generate a list of full paths. Change-Id: I72fe8e862b7f3bd25a7f9a03db94d2e9b815d08a Reviewed-by: Brad King <brad.king@kitware.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Generate ';' separated libraries in prl files for CMake.Stephen Kelly2012-10-091-0/+7
| | | | | | | | | | | | | | | | | | The generated CMake files need to pass ';' separated libraries to the IMPORTED_LINK_INTERFACE_LIBRARIES property, otherwise we get errors such as this: http://testresults.qt-project.org/ci/QtTools_master_Integration/build_00386/win32-msvc2010_Windows_7/log.txt.gz (grep for QtCore5.lib.lib) Rather than a naive and error prone replacement of whitespace, generate the appropriate ';' separated content directly in the qmake prl file. Change-Id: I8eb5e233a0318b57ec74b86d910583ff99c29415 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> Reviewed-by: Brad King <brad.king@kitware.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-24/+24
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Use QStringList::join(QChar) overload where applicable [qmake]Marc Mutz2012-09-211-24/+24
| | | | | | | | | | This is an automated change performing the following replacements: join\("(.)"\) -> join('\1') join\(QLatin1String\("(.)"\)\) -> join(QLatin1Char('\1')) join\(QStringLiteral\("(.)"\)\) -> join(QLatin1Char('\1')) Change-Id: I9c9964703dedfdab6e7bfac80be22bd5570e2e49 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* replace qmake_version() with a simple string literalOswald Buddenhagen2012-09-131-1/+1
| | | | | | Change-Id: I12e715aab23e01267e8a1434a3a965276c1a6182 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* give location information for QMAKE_SUBSTITUTES conditionalsOswald Buddenhagen2012-09-111-2/+2
| | | | | | Change-Id: I9b6bee252d4ed4bf263394ace29a4fb3b324a8cd Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* port qmake to qt creator's qmake language evaluatorOswald Buddenhagen2012-09-111-3/+3
| | | | | | | | | | | | | | | | | | | | | this is a monster commit which does the following things: - import the evaluator as-is from qt creator into qmake/library/ - integrate it into qmake's makefiles - overwrite proitems.h with actual special types - remove the parts of Option which are redundant with QMakeGlobals - make QMakeProperty a singleton owned by Option::globals. the dynamic handling so far made no sense. - make QMakeProject a subclass of QMakeEvaluator, with relatively few extensions the changes to existing qmake code outside project.* and option.* are minor. implementing the changes gradually would mean changing a lot of code which will be just replaced in the next commit, so i'm not wasting my time on it. Change-Id: I9746650423b8c5b3fbd8c3979a73228982a46195 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Removing duplicate includesSergio Ahumada2012-09-091-1/+0
| | | | | | | Do not include a header more than once Change-Id: Ia2e5d66e72988ad833cf5177a3f8aa988bf510e9 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* introduce qmake variable abstractionsOswald Buddenhagen2012-09-071-406/+531
| | | | | | | | this is preparation for adapting to a new evaluator. Change-Id: I6fc59f5525735754a00afa6629fbfe257e84db97 Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove pretenses of supporting projects on stdinOswald Buddenhagen2012-09-051-6/+3
| | | | | | | | | | this may have worked a decade ago, but now it only produces funny Makefiles (and needs hacking main.cpp). the feature doesn't seem *too* important, so just clean it out. Change-Id: I50a60b0e30341f0b523e4a5731c770c9c1013f8b Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* make QMakeMetaInfo a little less inefficient with libtool .la filesOswald Buddenhagen2012-09-051-1/+1
| | | | | | | | | don't read the spec from scratch for every library just to get QMAKE_LFLAGS_RPATH. we can perfectly use our current project for that purpose. Change-Id: I4e408b3fd5de81652181df032aa53cd8f2f8f806 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* micro-optimize: use POD-initializable lists of variable namesOswald Buddenhagen2012-08-281-10/+10
| | | | | Change-Id: I3732fef509b358949ef90002dbfc1960360afef8 Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
* remove unused checkMultipleDefinition()Oswald Buddenhagen2012-08-281-23/+0
| | | | | Change-Id: I533c2091333942f145063ad04f4420b7a2de0a37 Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
* remove dead variable assignmentsOswald Buddenhagen2012-08-281-2/+0
| | | | | | Change-Id: I032e9116ca1b7250497f56ea26103f2173f0fc09 Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* qmake: object_with_source feature removedJoerg Bornemann2012-08-171-6/+1
| | | | | | | | | | | By putting object_with_source into CONFIG one could force qmake to output each object file into the same directory as its source file came from. This was a rather nasty work-around from Qt 3 times to support source files with the same file name in a project. Unfortunately this doesn't play nicely with shadow builds. Change-Id: Ie79e14d36ba6eac4219edc14ea75ab6a96f9ea96 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* revamp preparation of command line for qmake calls in makefilesOswald Buddenhagen2012-08-141-45/+7
| | | | | | | | | | | | | instead of re-assembling a list from the variables, take the original command line minus some explicitly stripped out options. this is way less code and poses no synchronization problem between the two parts. as a "side effect", variables obtained from $QMAKEFLAGS won't multiply with each makefile nesting level, as the generated command line won't replicate data obtained from the environment. Change-Id: I5d1ce0f11efb338f60405529f9818910103b1b0e Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* 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>