summaryrefslogtreecommitdiffstats
path: root/qmake/generators/unix
Commit message (Collapse)AuthorAgeFilesLines
* Update license headers and add new license filesMatti Paaso2014-09-243-56/+32
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* qmake: Add QMAKE_SONAME_PREFIX variableAdam Strzelecki2014-09-081-0/+7
| | | | | | | | | | | If defined, the value of this variable is prepended to the built shared library's SONAME identifier. For more information, see: qmake/doc/src/qmake-manual.qdoc#qmake-soname-prefix Task-number: QTBUG-31814 Change-Id: I4bceaf0c93162e4fad6bb424af1b82e74d38acdc Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
* qmake: Don't make rpaths starting with @ or $ absoluteAdam Strzelecki2014-08-091-4/+6
| | | | | | | | | | | Defaults qmake behavior is to make all project RPATHDIR paths absolute prior passing them to linker. We need to make an exception for paths starting with @ such as @executable_path (Apple platforms) or $ such as $ORIGIN (Linux). Task-number: QTBUG-31814 Change-Id: Ie9887c0046c5030c4128dda945b491a5d389ba34 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
* Correct the list of files included in "make dist"Thiago Macieira2014-07-302-0/+3
| | | | | | | | | | | | At the very least, include the files named in the sources, like HEADERS. It was quite surprising to send a tarball that included the .pro file and the .cpp sources, but none of the headers. On the other hand, the .qmake.cache file need need not be sent either, despite being include()d in qmake's processing. Change-Id: I8f48ca3e8040f954f321f4643b01c0f36aafe2d7 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Merge remote-tracking branch 'origin/stable' into devJ-P Nurmi2014-06-051-2/+4
|\ | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/qt.prf src/plugins/platforms/xcb/qxcbwindow.h src/tools/qdoc/qdocindexfiles.cpp src/widgets/kernel/qwidget_qpa.cpp Change-Id: I214f57b03bc2ff86cf3b7dfe2966168af93a5a67
| * Remove the need for the dot in OS X/iOS bundle prefixSamuel Gaist2014-05-281-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the need for the user to put a dot at the end of the bundle prefix which makes it's use more consistent and intuitive. The prefix is based on what Xcode calls the "Company Identifier", basically "com.digia" plus the product name. Changing that to "com.digia.prefix-" and the product name to "Foo" results in a bundle identifier of "com.digia.prefix-.Foo" which is in line with Xcode. Change-Id: I9b62fc4dee1df51b523ce890a8896ea58ea2c62d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* | qmake: generate make dist target for subdir projectsJ-P Nurmi2014-06-022-27/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | The original dist target no longer copies files around, but merely does the final packaging. It depends on a new recursive distdir target, which handles copying distfiles to the distdir. [ChangeLog][Tools][qmake] Added 'make dist' target for subdirs projects (unix only) Task-number: QTBUG-21910 Change-Id: Ib59139c3fe196caf832d8dcefab484ab91f1f5ce Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | qmake: share the default variablesJ-P Nurmi2014-05-271-14/+2
|/ | | | | | | | | Eliminate duplicate code => collect the default variables to MakefileGenerator::writeDefaultVariables(). Task-number: QTBUG-21910 Change-Id: Ia03ce0240dd9a101ad9d35db636cd88f38a49320 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* xcode generator: don't modify or copy QMAKE_INFO_PLISTRichard Moe Gustavsen2014-05-211-3/+3
| | | | | | | | | | | | | | | | | | | | | If the project has a custom Info.plist assigned to QMAKE_INFO_PLIST, we should leave it as-is without scanning and replacing contents inside it. Since we always copy the file to the build folder at qmake time, any later attempts to modify the source file will not have any effect. A better solution is to just reference the custom plist directly from the Xcode, without modifying it. This change will also stop unixmake2 from assigning the default plist to QMAKE_INFO_PLIST, since we need to know in the xcode generator if the variable was set in the project or not. Task-number: QTBUG-38260 Change-Id: I3c488b2960170c544d94f9db89d3ca95ee290bdd Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Android: Add "unversioned_libname" configurationEskil Abrahamsen Blomfeldt2014-04-252-25/+49
| | | | | | | | | | | | | | | | | | | | | On Android, there's a limitation set on the names of the libraries you deploy that they must start with "lib" and end with ".so", so Android apps will link against and deploy with the unversioned libQt5FooBar.so libraries. When cross-compiling on Windows however, due to the lack of symbolic links, the only installed library used to be the main library target "libQt5FooBar.so.X.Y.Z" (for version X.Y.Z.) This has been worked around in packaging, but breaks building add-on modules on top of Qt, and is clearly wrong. This patch introduces a new "unversioned_libname" configuration in qmake which is currently only supported for the Unix makefile generator and only enabled for Android builds. When it is enabled, only the unversioned library "libQt5FooBar.so" will be created. Task-number: QTBUG-38347 Change-Id: Ia8897ca7a23a62e2a526d0e02854899b02eb19dc Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* in command line args, escape tabs as wellOswald Buddenhagen2014-04-071-1/+2
| | | | | | Task-number: QTBUG-27154 Change-Id: I4a204b2bf2231027db55a444f304190c3b30878c Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Don't fileFixify PRECOMPILED_HEADER twiceThiago Macieira2014-04-041-1/+1
| | | | | | | | | | fileFixify must not be called twice on the same file path, since it will convert an absolute path from the shadow build to an absolute path in the source dir. The first fileFixify occurs in MakefileGenerator::init, along with the fixifying of INCLUDEPATH. Change-Id: I607870573a80eaf834ea5f540bbe1451ec983114 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Use QMAKE_TARGET_BUNDLE_PREFIX to build bundle identifierSamuel Gaist2014-02-191-1/+4
| | | | | | | | | | | | | Currently the bundle identifier is build using com.yourcompany + QMAKE_BUNDLE. This patch adds the handling of QMAKE_TARGET_BUNDLE_PREFIX to build the bundle prefix. Task-number: QTBUG-19006 Change-Id: I014279da6dbef393b0df36f6d4995e40ab105316 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Liang Qi <liang.qi@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-071-0/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qguiapplication.cpp src/plugins/platforms/android/androidjnimain.cpp src/plugins/platforms/android/qandroidplatformintegration.cpp src/plugins/platforms/android/qandroidplatformintegration.h src/plugins/platforms/android/qandroidplatformopenglcontext.cpp src/plugins/platforms/cocoa/qcocoawindow.h src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/sql/doc/src/sql-driver.qdoc src/widgets/widgets/qtoolbararealayout.cpp Change-Id: Ifd7e58760c3cb6bd8a7d1dd32ef83b7ec190d41e
| * Replace @BUNDLEIDENTIFER@ in Info.plistMorten Johan Sørvig2014-01-221-0/+4
| | | | | | | | | | Change-Id: I34aa77fc51b1ae4d7941f01fcb20236250454d19 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | qmake: Add DISTCLEAN_DEPS variableAndrew Knight2014-01-301-1/+1
| | | | | | | | | | | | | | | | This variable works like CLEAN_DEPS, but applies to the distclean target. Change-Id: Ia30e8932b9acd6529298728dd5d0e038b0208d66 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Don't scan system includes for dependencies and don't list themThiago Macieira2014-01-201-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Assume that C and C++ headers found in system paths will not change, so we don't need to tell Make about them, nor do we need to scan their contents either. The previous qmake behavior matched gcc's -M switch; it now matches the -MM switch: -M Instead of outputting the result of preprocessing, output a rule suitable for make describing the dependencies of the main source file. -MM Like -M but do not mention header files that are found in system header directories, nor header files that are included, directly or indirectly, from such a header. This goes hand-in-hand with our use of -isystem to pass system paths to the compiler. Change-Id: I3346b6da496fe6495ac89c5286d066b343116f0e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Add support for using -isystem in qmakeThiago Macieira2014-01-201-1/+7
| | | | | | | | | | | | | | | | | | This commit will make qmake use -isystem automatically for any compilers that declare support for it for any paths that are listed in QMAKE_DEFAULT_INCDIRS. Change-Id: I36fefc6d5bba61671f65669f0ea42704b3c3cf31 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | qmake: cleanup DISTFILESJ-P Nurmi2014-01-171-3/+5
| | | | | | | | | | | | | | | | | | Do not include the project file twice or other .pr? files outside the project tree. Task-number: QTBUG-21910 Change-Id: I62af842282ccdc5b9099d9227d5395ebe3f0698c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | qmake: prepare TARGET/VERSION/DISTFILES for sub targetsJ-P Nurmi2014-01-172-18/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | This is a preparation step for 'make dist' target for subdir projects. UnixMakefileGenerator needs these variables while extending writeSubTargets() and writeDefaultVariables() for 'make dist'. Partial cherry-pick of https://qt.gitorious.org/qt/jpnurmi-qt/commit/8c4ef19 Task-number: QTBUG-21910 Change-Id: I02a616a98448bc3041ef0f4fd034bfb4c2199e41 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | expand tabs and related whitespace fixes in *.{cpp,h,qdoc}Oswald Buddenhagen2014-01-131-1/+1
| | | | | | | | | | | | | | | | the diff -w for this commit is empty. Started-by: Thiago Macieira <thiago.macieira@intel.com> Change-Id: I77bb84e71c63ce75e0709e5b94bee18e3ce6ab9e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Move the SUBLIBS target from qmake away from between clean/distcleanThiago Macieira2013-12-231-11/+12
| | | | | | | | | | | | | | | | | | | | Right now, the sublib targets, if any, show up between clean and distclean targets. That's silly. I doubt anyone is using sublib targets anyway, but... Change-Id: I2beffc69f68fa7626ff4aa4a7cc1169b2c6c69a7 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | qmake: do not include GENERATED_SOURCES to distJ-P Nurmi2013-12-201-2/+3
| | | | | | | | | | | | Task-number: QTBUG-21910 Change-Id: I4cc3f75f5ee4672f89b0b965055a02ac24c16cc8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | PCH stands for "precompiled header", not "prefix"Thiago Macieira2013-12-131-1/+1
|/ | | | | Change-Id: Ied8148be931992247e446719a0eaeec0dc868330 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* complete implementation of force_debug_infoOswald Buddenhagen2013-12-032-1/+6
| | | | | | | | | that means further detaching the generation and installation of debug info from the thing calling itself A Debug Build. Task-number: QTBUG-32412 Change-Id: I4d79d1ae4806c8e4a2d6a7ccd030fb88385dd7d4 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-11-261-5/+5
|\ | | | | | | Change-Id: I83ff8f4d7dffd7385013a1bd8a1732a89ee20d56
| * fix more cases of mkdir_asstring() argument overquotingOswald Buddenhagen2013-11-211-5/+5
| | | | | | | | | | Change-Id: I7dd4024fb6fceb47431b626b586a471b74789cdc Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | make distclean actually remove the static library targetOswald Buddenhagen2013-11-251-1/+1
|/ | | | | | Task-number: QTBUG-3883 Change-Id: I288d830d6f73c69401ba81a70f35ee511e31bed5 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix overquoting in some mkdir callsOswald Buddenhagen2013-11-201-3/+3
| | | | | Change-Id: I2ed418064d43ab8cdab87af48e03d983c023ccf5 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* xcode generator: warn if QMAKE_INFO_PLIST is not validRichard Moe Gustavsen2013-11-011-0/+2
| | | | | | | | | | | Warn the user if QMAKE_INFO_PLIST is set, but file not found. An iOS application will not run or deploy without an Info.plist present, and the error message given by xcodebuild is not very informative. Change-Id: I54f0e06de320a43c9f3261fe88761c41e3ccd022 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* qmake: Centralize TARGET sanitization in default_post.prfTor Arne Vestbø2013-10-111-13/+1
| | | | | | | | | | | | | | | Shared between UNIX and Win generators, and allows prfs after default_post to rely on sane TARGET and DESTDIR values. This allows us to clean up the DESTDIR logic in testcase.prf, which was completely busted. Doing the two in separate commits is unfortunately not possible as the old testcase.prf logic was so broken it would barf if only looked at. Change-Id: Ibf21216195c760ee46ae679c162b207b77a9d813 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* de-duplicate code for writing dummy makefilesOswald Buddenhagen2013-08-271-12/+1
| | | | | | | | | | as a side effect, this fixes the generators that were more bitrotted (nmake and even more mingw). Task-number: QTBUG-30644 #close Change-Id: Iefa3f07125884412d091aa12b44935e5b1fb858a Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix SONAME handling on androidStephen Kelly2013-08-131-0/+3
| | | | | | | | | | Set the SONAME to the library name without the major version number appended, as android does not have the versioned symlinks. Change-Id: I41c504869019a393a3f112b2f7fc81c7ad5afa1c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: BogDan Vatra <bogdan@kde.org>
* don't install mac bundles atomicallyOswald Buddenhagen2013-07-222-26/+59
| | | | | | | | | | | | | | | ... as that causes debug+release installs to overwrite each other's postprocessed files. introduces CONFIG+=sliced_bundle, which instructs qmake to create file-by-file install commands. we don't know whether people are not putting files outside qmake's knowledge into the bundle build dir, so this mode is not necessarily backwards-compatible, and thus off by default. Task-number: QTBUG-28336 Change-Id: I23e90985ccd3311f0237ed61aadca6d7ed8325b7 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* mac frameworks: link target alias to Current versionOswald Buddenhagen2013-07-221-3/+2
| | | | | | | | | | | by convention, $target.framework/$target links to Versions/Current/$target, not Versions/$version/$target. Versions/Current already links to $version. so this adds one indirection, but is otherwise the same. Change-Id: If3d1a3713712f4221ec31883977e50bce6f91764 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix target strip-ing inside mac bundlesOswald Buddenhagen2013-07-221-8/+13
| | | | | | | | this went unnoticed so far, because the mac qmakespecs don't define a strip command to start with. Change-Id: Iac3e7ffa6f400373552134a44b9713aaf5f44589 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* escape paths coming from prl filesOswald Buddenhagen2013-07-221-1/+1
| | | | | | | | | | | qmake has the rather bizarre logic that QMAKE_LIBS* is escaped rather early (instead of right before being written out the the Makefile). consequently, we need to explicitly escape the paths from the prl files as well. Task-number: QTBUG-32326 Change-Id: Ieaf81113d3ca3cf5d8a1ef87c83c5721d6b473ee Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* merge string literalsOswald Buddenhagen2013-07-041-70/+70
| | | | | | | | makes for less visual noise and a tiny bit more efficient code. Change-Id: I587707fa4e2dc9bead9435bf5caf3a98ab680725 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* qmake: Change two scopes to mac instead of macxTor Arne Vestbø2013-07-021-2/+2
| | | | | | | As they apply to both OSX and iOS. Change-Id: I6ea9c80f9cf3fd593723ae449f16d7905f68545e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Android: Backslash workarounds for Unix Makefile generatorRay Donnelly2013-04-101-10/+14
| | | | | | | | | | | | | | | If mingw32-make.exe encounters a backslash as the last character on a line it interprets this as signifying line continuation. When building Android Qt on Windows via cmd.exe, this happens as backslashes are used on Windows as directory separators. The workarounds are to make sure that a comment appears directly after the definition of DESTDIR and that a space ends such $(MOVE) command lines. Change-Id: I7f93b655e004edaadac41d0d96bca23e1ba3a85c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Android: Split Unix Makefile generator's $(MOVE) commands upRay Donnelly2013-04-081-2/+6
| | | | | | | | Split $(MOVE) commands up into one per file so that cmd.exe's builtin move command can be used. Change-Id: Ife8d7449a2d7718a67082e2d78954964033ce07d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Introduce QMAKE_CC_O_FLAGLaszlo Papp2013-03-251-2/+2
| | | | | | | This makes it possible to properly parametrize alternative compilers. Change-Id: Iaf0961c47875ee16d815356f36acf5652577cdca Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Add an initial TI linker support for the unix qmake generatorLaszlo Papp2013-03-191-0/+3
| | | | | | Task-number: QTBUG-30215 Change-Id: Ica283e6b7f67563504ed81f4db1c2218fe5e8b8c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* make depend_prl more thorough; introduce fast_depend_prlOswald Buddenhagen2013-03-161-3/+8
| | | | | | | | | | | | | | | depend_prl would so far only ensure that the dependency existed, not that it would be up to date. this is of only limited value, so make sure that the dependencies are always updated. as this is somewhat expensive (every dependency's makefile will be entered as many times as it is used, plus one), provide an opt-out by adding fast_depend_prl. Task-number: QTBUG-29486 Change-Id: Ifa2e100bc4c269a403ab620927bfe5c7efe9a435 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Make .prl file generation work for iOS again.Morten Johan Sørvig2013-03-061-8/+8
| | | | | | | | | | | | | 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>
* introduce QMAKE_LINK_O_FLAGOswald Buddenhagen2013-03-021-4/+4
| | | | | | | this makes it possible to properly parametrize alternative linkers. Change-Id: Ia9cf574544a0259975470366d278b6c5dc747906 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* qmake: Resolve QMAKE_INFO_PLIST against current working dirTor Arne Vestbø2013-02-261-1/+1
| | | | | | | | | We're not in the output directory yet, so resolving using vanilla fileFixify will end up failing when we check if the file exists, since QFileInfo resolves relative paths against the current directory. Change-Id: I414c6a2e83b49e3fb30e6153a49f7a90a8e528a0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* consolidate generation of metafile install targetsMark Brand2013-01-251-20/+3
| | | | | | | | | 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-183-3/+3
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* don't overquote deps on .pc and .la filesOswald Buddenhagen2013-01-081-6/+2
| | | | | | Change-Id: I00c268b1c0316b6deb0c4e1b2a0c7428e312c682 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>