summaryrefslogtreecommitdiffstats
path: root/qmake/generators/unix/unixmake.cpp
Commit message (Collapse)AuthorAgeFilesLines
* qmake: Don't add dummy empty.lproj localization to macOS bundlesTor Arne Vestbø2023-04-201-1/+0
| | | | | | | | | | | | | | | | The original change from 2008 mentions that this was needed for preventing a crash when searching the native file dialog, but this has since been fixed. Nor is the file needed to get localized native file dialogs, as this is controlled by the combination of the app's supported localization or CFBundleAllowMixedLocalizations. And we don't do this for CMake projects. Pick-to: 6.5 Change-Id: I3c9e5aee4707c019f733920eb088f8d84f8e4ee1 Reviewed-by: Alexandru Croitor <[email protected]>
* Port from qAsConst() to std::as_const()Marc Mutz2022-10-111-5/+5
| | | | | | | | | | | | | | | | We've been requiring C++17 since Qt 6.0, and our qAsConst use finally starts to bother us (QTBUG-99313), so time to port away from it now. Since qAsConst has exactly the same semantics as std::as_const (down to rvalue treatment, constexpr'ness and noexcept'ness), there's really nothing more to it than a global search-and-replace, with manual unstaging of the actual definition and documentation in dist/, src/corelib/doc/ and src/corelib/global/. Task-number: QTBUG-99313 Change-Id: I4c7114444a325ad4e62d0fcbfd347d2bbfb21541 Reviewed-by: Ivan Solovev <[email protected]>
* Port from container.count()/length() to size()Marc Mutz2022-10-041-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is semantic patch using ClangTidyTransformator: auto QtContainerClass = expr(hasType(namedDecl(hasAnyName(<classes>)))).bind(o) makeRule(cxxMemberCallExpr(on(QtContainerClass), callee(cxxMethodDecl(hasAnyName({"count", "length"), parameterCountIs(0))))), changeTo(cat(access(o, cat("size"), "()"))), cat("use 'size()' instead of 'count()/length()'")) a.k.a qt-port-to-std-compatible-api with config Scope: 'Container'. <classes> are: // sequential: "QByteArray", "QList", "QQueue", "QStack", "QString", "QVarLengthArray", "QVector", // associative: "QHash", "QMultiHash", "QMap", "QMultiMap", "QSet", // Qt has no QMultiSet Change-Id: Ibe8837be96e8d30d1846881ecd65180c1bc459af Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Volker Hilsheimer <[email protected]>
* Use SPDX license identifiersLucie Gérard2022-05-161-27/+2
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Lars Knoll <[email protected]> Reviewed-by: Jörg Bornemann <[email protected]>
* Use QList instead of QVector in qmakeJarek Kobus2020-09-051-1/+1
| | | | | | | Task-number: QTBUG-84469 Change-Id: I4a3da94702f1dad1ee10b1ba3c6712b6f40338c9 Reviewed-by: Lars Knoll <[email protected]> Reviewed-by: Friedemann Kleint <[email protected]>
* Fix precompiled headers on macOSJoerg Bornemann2019-11-181-10/+11
| | | | | | | | | | | | | | | Since commit 059172c6 precompiled headers did not work anymore on macOS, because the ${QMAKE_PCH_ARCH} string was suddenly appearing in locations where it was not replaced with the actual architecture, e.g. the directory where the PCH files are written. Fix this by replacing the whole file path and not just portions of it. Fixes: QTBUG-79694 Change-Id: I925d4ee8980a0de3205a0e387a516a5c6f8cfa4b Reviewed-by: Alexandru Croitor <[email protected]> Reviewed-by: BogDan Vatra <[email protected]> Reviewed-by: Kai Koehne <[email protected]>
* Fix precompiled headers for ClangChristian Romberg2019-10-251-4/+2
| | | | | | | | | | | | | | Precompiled headers were put in a directory which had exactly the same name as the binary to be generated. This resulted in a failure with any mkspec that used clang_pch_style. The g++-mkspec avoid this problem by extending the directory name. This change adopts this technique for clang mkspecs. [ChangeLog][qmake] Fixed precompiled headers for the Clang compiler. Fixes: QTBUG-72404 Change-Id: I471462e2bcb1e33f19d277c21acde0c04b1ffcd6 Reviewed-by: BogDan Vatra <[email protected]>
* qmake: Parse -framework link lines the same way the linker doesTor Arne Vestbø2019-10-041-5/+2
| | | | | | | | | | | [ChangeLog][qmake] The syntax 'LIBS += -frameworkFoo', or 'LIBS += "-framework Foo"' is no longer supported. Use the canonical 'LIBS += -framework Foo' instead. Change-Id: I50fd02dbfa155a0b95859734486a92bd448e87c2 Reviewed-by: Edward Welbourne <[email protected]> Reviewed-by: Alexandru Croitor <[email protected]> Reviewed-by: Tor Arne Vestbø <[email protected]>
* qmake: Place prl files under Resources in framework bundlesTor Arne Vestbø2019-10-031-7/+13
| | | | | | | | | | | | The root of the framework bundle shouldn't contain random files, and doing so will prevent the bundle from being signable. We still look up prl files in the root, to keep backwards compatibility. Change-Id: Ifd0bc3c6e7924e89eec54d3ef9368dfc95ed402c Reviewed-by: Simon Hausmann <[email protected]> Reviewed-by: Tor Arne Vestbø <[email protected]>
* Do not use QList<QMakeLocalFileName>Joerg Bornemann2019-08-121-4/+3
| | | | | | | QMakeLocalFileName is not suitable for QList. Use QVector instead. Change-Id: I5a3c4c8da14c0a920b5a57cba148ad68ac0f85a2 Reviewed-by: Edward Welbourne <[email protected]>
* Merge remote-tracking branch 'origin/5.13' into devLiang Qi2019-07-301-10/+9
|\ | | | | | | | | | | | | Conflicts: qmake/generators/win32/mingw_make.cpp Change-Id: I2f790bc8572bd22fea01edf7ca74595b29f063eb
| * qmake: Keep -force_load with library when merging linker flagsTor Arne Vestbø2019-07-291-3/+6
| | | | | | | | | | | | | | | | | | | | | | Without treating -force_load as an option with an argument, we end up leaving stray -force_loads in the linker line, resulting in build failures when the following option is a random library then treated as a file path. Task-number: QTBUG-66091 Change-Id: I352c50ab67e32ef6b2b5c6a4f90455b20034e207 Reviewed-by: Jörg Bornemann <[email protected]>
| * qmake: Don't allow -framework without second argument when merging flagsTor Arne Vestbø2019-07-291-8/+4
| | | | | | | | | | | | | | | | The linker doesn't support -framworkFoo, so neither should we. The correct syntax is -framework Foo. Change-Id: I3f39ffc067871ce058542bf0068274b35f7b51f6 Reviewed-by: Jörg Bornemann <[email protected]>
* | Merge remote-tracking branch 'origin/5.13' into devLiang Qi2019-06-141-1/+1
|\| | | | | | | | | | | | | | | | | | | Conflicts: qmake/generators/makefile.cpp qmake/generators/unix/unixmake2.cpp src/corelib/thread/qthread_unix.cpp tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp Change-Id: I1df0d4ba20685de7f9300bf07458c13376493408
| * Make sure .pc, .prl and .la files are created for header_only modulesJoerg Bornemann2019-06-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Those modules are TEMPLATE=aux, so they weren't triggering the file creation here. To make this work properly we have to: - check for TEMPLATE aux in the right places - add a dummy target to INSTALLS to actually trigger the creation - initialize PRL_TARGET for aux templates Fixes: QTBUG-75901 Started-by: Thiago Macieira <[email protected]> Change-Id: Idce141629dd34287808bfffd159f92ac28c6c8b1 Reviewed-by: Thiago Macieira <[email protected]>
* | Do not ignore exit codes of install commandsJoerg Bornemann2019-05-231-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All calls to QINSTALL or QINSTALL_PROGRAM were written into Makefiles with a preceding dash which lets make ignore the command's exit code. Scripts (and users) calling 'make install' had no way to determine if an installation completely succeeded, unless they inspected make's output or the installation tree. Remove the leading dash from those commands to stop 'make install' on failure. Users who really want to ignore the exit codes can run 'make -k install'. [ChangeLog][qmake] Installation targets do not ignore the exit code of QINSTALL and QINSTALL_PROGRAM anymore. Fixes: QTBUG-18870 Change-Id: I7c072c896e6bd2b2ddba4b9c082c5bf627c90f50 Reviewed-by: Lars Knoll <[email protected]> Reviewed-by: Simon Hausmann <[email protected]>
* | QRegExp include cleanupSamuel Gaist2019-04-191-1/+0
|/ | | | | | | | | | | | | | | | QRegExp includes can be found in several files where there's not even a use of the class. This patch aims to avoid needless includes as well as follow the "include only what you use" moto. This patch removes a QRegExp include from the QStringList header which means that there is likely going to be code breaking since QStringList is used in many places and would get QRegExp in. [ChangeLog][Potentially Source-Incompatible Changes] qstringlist.h no longer includes qregexp.h. Change-Id: I32847532f16e419d4cb735ddc11a26551127e923 Reviewed-by: Thiago Macieira <[email protected]>
* qmake: don't mess up linking order of frameworksOswald Buddenhagen2019-02-141-6/+3
| | | | | | | | | | | | make it "last one wins", consistently with regular libraries. this isn't really relevant in qmake, because the order matters only for static frameworks, which qmake defines out of existence. note that specifying frameworks by full path does not work, so we don't need to amend 9d76beee5 in that regard. Change-Id: Ib027109339e1b5973c577d69906b6daf83ba9611 Reviewed-by: Joerg Bornemann <[email protected]>
* qmake: don't mess up linking order of librariesOswald Buddenhagen2018-12-141-2/+12
| | | | | | | | | | | | | | | | ... which are specified by full filepath, by making the de-duplication consistent with that applied to libs specified with -l, that is, last one wins. the problem existed "forever", but it became more visible after the recent configure changes. fwiw, Win32MakefileGenerator is not affected, because it has the opposite problem: it de-duplicates everything (including object files) in "last one wins mode". it might make sense to change that as well. Change-Id: Id7ef1d394fcc9d444450672c06a6f11af2b19eab Reviewed-by: Robert Griebl <[email protected]>
* qmake: fix the precedence of QMAKE_LIBDIR_POSTv5.12.0-beta2Oswald Buddenhagen2018-10-121-11/+16
| | | | | | | | | | | it must end up in front of QMAKE_LIBS{,_PRIVATE}, but not of LIBS{,_PRIVATE} (which are preceded by QMAKE_LIBDIR). Task-number: QTBUG-61982 Started-by: Liang Qi <[email protected]> Change-Id: Id3de01ee0e9b66af02f79949aeb5a0eabd55363f Reviewed-by: Liang Qi <[email protected]> Reviewed-by: Simon Hausmann <[email protected]>
* qmake: make sure QMAKE_LIBS{,_PRIVATE} comes after LIBS{,_PRIVATE}Oswald Buddenhagen2018-10-121-4/+3
| | | | | | | | | | the early merging of LIBS* into QMAKE_LIBS* meant that we could not interleave them properly. defer the merging until the points of use. Task-number: QTBUG-70779 Started-by: BogDan Vatra <[email protected]> Change-Id: I890f98016c3721396a1f0f6f149a9e2b37d56d8e Reviewed-by: Liang Qi <[email protected]>
* qmake: remove support for static archive splittingOswald Buddenhagen2018-10-121-24/+0
| | | | | | | | | | this was introduced in 2002 supposedly for qnx4, but doesn't appear to have actually been used ever. remove it, as it's in the way now. Change-Id: I54dcabb61e1d3609a1e7a9fa4ff4b25509cfdb7a Reviewed-by: Liang Qi <[email protected]> Reviewed-by: BogDan Vatra <[email protected]> Reviewed-by: Simon Hausmann <[email protected]>
* qmake: Apply modernize-use-nullptrAlessandro Portale2018-08-081-1/+1
| | | | | | | Use nullptr instead of 0. Change-Id: Ib3120b9c424a274a2d4dd4c42ec5d7cd5bdead65 Reviewed-by: Oswald Buddenhagen <[email protected]>
* qmake: slightly optimize processPrlFile() callsOswald Buddenhagen2018-07-161-6/+6
| | | | | | | | | add a parameter that indicates whether the passed filename can be only the basename of a prl file. if so, we can skip the other attempts at interpreting the file name. that's not only faster, but also clearer. Change-Id: I6f6da3f4485216021282a08acaefb53e60e7242a Reviewed-by: Joerg Bornemann <[email protected]>
* qmake: Fix prl lookup for suffixed frameworks on Apple platformsTor Arne Vestbø2018-04-221-2/+16
| | | | | | | We need to take into account the presence of a possible ',_debug' suffix. Change-Id: I5655394b78723bbc6cc32e56849acc2366d288e2 Reviewed-by: Oswald Buddenhagen <[email protected]>
* make mkspecs not mess up -rpath-linkOswald Buddenhagen2017-05-311-0/+2
| | | | | | | | | | | | | | | adding shared install paths via QMAKE_LFLAGS in the spec has the tiny side effect that they are searched _first_, which is generally a really bad idea - they should be _last_. for that purpose, introduce QMAKE_RPATHLINKDIR_POST, and migrate all specs to use it. QMAKE_RPATHDIR_POST is added for consistency, but not actually used. Task-number: QTBUG-59457 Change-Id: Iac6cda5e9111ef8cca454a69861fe8408bb40589 Reviewed-by: Joerg Bornemann <[email protected]>
* make mkspecs not mess up library and include search pathsOswald Buddenhagen2017-05-311-0/+2
| | | | | | | | | | | | | | adding shared install paths to QMAKE_{INCDIR,LIBDIR} in the spec has the tiny side effect that they are searched _first_, which is generally a really bad idea - they should be _last_. for that purpose, make QMAKE_{INCDIR,LIBDIR}_POST live up to their names (i.e., search them actually last) and migrate all affected specs to use them. Task-number: QTBUG-40825 Change-Id: Ie0de81c3cc49e193186d2fedd7d6c77590c8ef79 Reviewed-by: Joerg Bornemann <[email protected]>
* Simplify built-in qmake install commandSimon Hausmann2017-05-041-4/+4
| | | | | | | | As the directory installation command also works with files as a source we can unify the external commands, resulting in simpler command lines. Change-Id: I65013626eedbdb3ce1c77ed230d46edd1603b986 Reviewed-by: Oswald Buddenhagen <[email protected]>
* Preserve last modification timestamps of installed directoriesSimon Hausmann2017-05-021-2/+2
| | | | | | | | | Similar to the two parent commits, this patchs preserves the time stamps of files we install as a result of recursive directory copying. Change-Id: Id5931a467196d5cd67acfa0deffc2488af8a3669 Task-number: QTBUG-59004 Reviewed-by: Oswald Buddenhagen <[email protected]>
* Fix precompiled headers on Apple platforms, with multiple architecturesJake Petroules2017-04-141-4/+20
| | | | | | | | | | The original commit only added support for GCC and Clang, but not ICC. Amends 73331eeb Change-Id: Id7638cf1b538edb1008fb3aa10754c1f517a994f Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Oswald Buddenhagen <[email protected]>
* Preserve last modification timestamps of installed program filesSimon Hausmann2017-04-131-1/+1
| | | | | | | | | | Similar to the parent commit, this patch adds a unified code path in qmake itself for installing program files while preserving their original last modification timestamp. Change-Id: I7b7dcfa6228c2bfd48ea6036549398bb6f90032f Task-number: QTBUG-59004 Reviewed-by: Oswald Buddenhagen <[email protected]>
* Preserve last modification timestamps of installed filesSimon Hausmann2017-04-121-2/+2
| | | | | | | | | | | On non-windows platforms, we use the "-p" parameter of install(1) to preserve the last modification timestamps of files. On Windows the use of copy does not preserve them. As a cross-platform solution, this patch introduces a simple built-in install command in qmake to copy files. Task-number: QTBUG-59004 Change-Id: I3064d29a2b8c7b009a1efbf8f00b84c079ea5417 Reviewed-by: Oswald Buddenhagen <[email protected]>
* Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-09-151-3/+23
|\ | | | | | | | | | | | | | | | | Conflicts: configure.json mkspecs/macx-tvos-clang/qmake.conf mkspecs/macx-watchos-clang/qmake.conf Change-Id: Iaf32339ace59dff9ed344972472744c55d75025c
| * Enable precompiled headers on iOS, tvOS, watchOSJake Petroules2016-09-021-3/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The actual blocker for precompiled headers is not the iOS/tvOS/watchOS platforms, but the way qmake handled multiple-architecture builds on Apple platforms. This patch allows multi-arch builds to be performed while using precompiled headers. Since df91ef3d6c55692a0236f67b6c6b134a3bf84098 (April 2009), Clang has had support for PCH files in the driver, which allows to use the -include flag to automatically translate to -include-pch. We can then take advantage of the fact that the -include option is allowed to not be separate from its argument, which lets us take advantage of -Xarch to specify a per-architecture precompiled header file. This is done through some magic in the qmake Makefile generator which "multiplexes" the PCH creation rule across multiple architectures and replaces a series of tokens with the proper precompiled header paths and architecture flags at usage point. Change-Id: I76c8dc9cda7e218869c2919f023d9b04f311c6fd Reviewed-by: Oswald Buddenhagen <[email protected]>
* | qmake: Add shallow bundle supportJake Petroules2016-08-251-3/+6
|/ | | | | | | | | | | | | | This is a prerequisite for properly constructed framework bundles. On certain Apple platforms (iOS, tvOS, watchOS), bundles are used in "shallow" format, meaning that the directory structures are flattened compared to the one used in macOS bundles. shallow_bundle allows the difference to be expressed independently of the platform. Note that the term "shallow bundle" is used by Apple in Xcode internals. Change-Id: I1189c52b0ea66843c313783176c11cc2af97ad25 Reviewed-by: Oswald Buddenhagen <[email protected]>
* Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-06-201-2/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | And blacklisted a few tests in tst_QUdpSocket. Conflicts: src/android/jar/src/org/qtproject/qt5/android/QtNative.java src/corelib/global/qglobal.cpp src/corelib/global/qsystemdetection.h src/corelib/io/qfileselector.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp tests/auto/network/socket/qudpsocket/BLACKLIST Task-number: QTBUG-54205 Change-Id: I11dd1c90186eb1b847d45be87a26041f61d89ef6
| * Fix an issue causing qmake to generate corrupt Makefiles.Jake Petroules2016-06-151-2/+5
| | | | | | | | | | | | | | | | | | | | This resolves an issue where qmake would generate a Makefile with an install command immediately followed by a test command, with no intermediary newline and tab to separate them. Task-number: QTBUG-54035 Change-Id: I7f9226f25e92b49ce689d252e9c4a58b877f2972 Reviewed-by: Oswald Buddenhagen <[email protected]>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-03-111-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change partially reverts 1bfc7f68 about QT_HAS_BUILTIN define and undef in src/corelib/tools/qsimd_p.h. This change is also squashed with "Fall back to c++11 standard compiler flag for host builds" which is done by Peter Seiderer. Conflicts: mkspecs/features/default_post.prf src/3rdparty/sqlite/0001-Fixing-the-SQLite3-build-for-WEC2013-again.patch src/3rdparty/sqlite/sqlite3.c src/corelib/tools/qsimd_p.h src/gui/kernel/qevent.cpp src/gui/kernel/qwindowsysteminterface.cpp src/gui/kernel/qwindowsysteminterface_p.h src/plugins/bearer/blackberry/blackberry.pro src/plugins/platforms/cocoa/qcocoasystemsettings.mm src/plugins/platformthemes/gtk2/gtk2.pro src/plugins/styles/bb10style/bb10style.pro src/sql/drivers/sqlite2/qsql_sqlite2.cpp tools/configure/configureapp.cpp Task-number: QTBUG-51644 Done-with: Peter Seiderer <[email protected]> Change-Id: I6100d6ace31b2e8d41a95f0b5d5ebf8f1fd88b44
| * fix file separators in target.targets INSTALLSOswald Buddenhagen2016-03-101-1/+1
| | | | | | | | | | | | Task-number: QTBUG-51775 Change-Id: I8d9442bfd5084f1670b79dfdd422638bc62780aa Reviewed-by: Joerg Bornemann <[email protected]>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-02-111-4/+4
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qfilesystemwatcher_win.cpp src/corelib/plugin/plugin.pri src/plugins/platforms/cocoa/qcocoaaccessibility.mm tests/auto/corelib/tools/qlocale/tst_qlocale.cpp Change-Id: Id6824631252609a75eff8b68792e4d10095c8fc1
| * qmake: use QString::replace() overloaded with QLatin1StringAnton Kudryavtsev2016-02-041-4/+4
| | | | | | | | | | | | | | | | | | instead of QStringLiteral, QString, const char*. Results: reduce .rodata, prevent re-creation of QString. Change-Id: Ie2e3089974c42e6733457bbe58521bccd1da3a53 Reviewed-by: Oswald Buddenhagen <[email protected]>
* | qmake: eradicate Q_FOREACH loops [needing qAsConst()]Marc Mutz2016-01-281-1/+1
| | | | | | | | | | | | | | | | | | ... by replacing them with C++11 range-for loops. To avoid detaches of these mutable Qt containers, wrap the container in qAsConst(). Change-Id: If086bea06fe26232a7bb99fad8b09fce4dc74c27 Reviewed-by: Lars Knoll <[email protected]>
* | qmake: eradicate Q_FOREACH loops [const-& returns]Marc Mutz2016-01-281-6/+6
| | | | | | | | | | | | | | | | | | | | | | ... by replacing them with C++11 range-for loops. The functions QMakeProject::values(), QMakeMetaInfo::values() and QHashIterator::value() all return by const-reference, so they can be passed to range-for without further changes. Change-Id: Ic3b39ed8ff8cd7a6f287f1aa9d61a1acd67d7aaa Reviewed-by: Lars Knoll <[email protected]>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-01-261-1/+15
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java src/dbus/qdbusconnection_p.h src/dbus/qdbusintegrator.cpp src/dbus/qdbusintegrator_p.h tests/auto/corelib/io/qdir/qdir.pro tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp Change-Id: I3d3fd07aed015c74b1f545f1327aa73d5f365fcc
| * Work around MinGW-make's magic prefixing of paths.Frederik Gladhorn2016-01-211-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When building QNX on MS-Windows, make magically adds the Msys root as prefix to variables whose values look like paths; this applies to both environment variables and variables given values on the command-line. When we don't actually want to install under the Msys root, this is unwelcome "help". So (for MinGW's make) support a magic prefix of our own, @msyshack@, that'll make a path value for INSTALL_ROOT not look like a path to make; we can then strip it off when we come to use it. Change-Id: I951ad3c8fe3e5cfb49e6e361d7fff779f3a9d716 Reviewed-by: Jędrzej Nowacki <[email protected]> Reviewed-by: Oswald Buddenhagen <[email protected]> Reviewed-by: Frederik Gladhorn <[email protected]>
* | Updated license headersJani Heikkinen2016-01-211-17/+12
|/ | | | | | | | | | | | | From Qt 5.7 -> tools & applications are lisenced under GPL v3 with some exceptions, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one (in those files which will be under GPL 3 with exceptions) Change-Id: I42a473ddc97101492a60b9287d90979d9eb35ae1 Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Lars Knoll <[email protected]>
* support relative paths in QMAKE_RPATHDIROswald Buddenhagen2015-10-201-3/+16
| | | | | | | | | | | | | | | | ... and make use of it in qt.prf. [ChangeLog][qmake][Unix] Added support for relative paths in QMAKE_RPATHDIR. Note that this technically breaks backwards compatibility, as relative paths were previously silently resolved against $$_PRO_FILE_PWD_. This was not documented and seems rather useless, so i'm not worried. Change-Id: I855042a8962ab34ad4617899a5b9825af0087f8a Reviewed-by: Joerg Bornemann <[email protected]> Reviewed-by: Jake Petroules <[email protected]> Reviewed-by: Oswald Buddenhagen <[email protected]>
* Distinguish between Objective-C and Objective-C++ sourcesTor Arne Vestbø2015-10-091-69/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of lumping both Objective-C (.m) and Objective-C++ (.mm) sources into the same pile, passing them on to the same compiler as for C++ (CXX), with the C++ flags (CXXFLAGS), we follow Apple's lead and treat them as variants of the C and C++ languages separately, so that Objective-C sources are built with CC and with CFLAGS, and Objective-C++ sources with CXX, and CXXFLAGS. This lets us remove a lot of duplicated flags and definitions from the QMAKE_OBJECTIVE_CFLAGS variable, which in 99% of the cases just matched the C++ equivalent. The remaining Objective-C/C++ flags are added to CFLAGS/CXXFLAGS, as the compiler will just ignore them when running in C/C++ mode. This matches Xcode, which also doesn't have a separate build setting for Objective-C/C++ flags. The Makefile qmake generator has been rewritten to support Objective-C/C++ fully, by not assuming that we're just iterating over the C and C++ extensions when dealing with compilation rules, precompiled headers, etc. There's some duplicated logic in this code, as inherent by qmake's already duplicated code paths, but this can be cleaned up when C++11 support is mandatory and we can use lambda functions. Task-number: QTBUG-36575 Change-Id: I4f06576d5f49e939333a2e03d965da54119e5e31 Reviewed-by: Tor Arne Vestbø <[email protected]>
* rewrite windows library handlingOswald Buddenhagen2015-10-021-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | first, store the library's full name in the .prl file, like we do on unix. this is not expected to have any side effects, as QMAKE_PRL_TARGET was entirely unused under windows so far. then, rewrite the mingw library handling: instead of letting the linker resolve the actual libraries, do it ourselves like we do for msvc. we could not do that before due to the partial file names in the .prl files: if the library didn't exist at qmake execution time, we'd have to guess the file extension (the msvc generators never had that problem, as they know about only one possible extension for libraries anyway). make use of processPrlFile()'s ability to replace the reference to the .prl file with the actual library. that way we don't need to re-assemble the file name from pieces, which was fragile and inefficient. QMAKE_*_VERSION_OVERRIDE does not affect libraries coming with .prl files any more. additionally, it is now used literally (not numerically), and values less or equal to zero lost their special meaning as "none" - this isn't a problem, because that's the default anyway, and there is no need to override bogus versions from .prl files any more. no changelog for that, as i found no public traces of that feature outside qtbase. [ChangeLog][qmake][Windows] Libraries coming with .prl files can now have non-standard file extensions and a major version of zero. [ChangeLog][qmake][Windows][Important Behavior Changes] The .prl files written by earlier versions of Qt cannot be used any more. This will affect you if you depend on 3rd party libraries which come with .prl files. Patch up QMAKE_PRL_TARGET to contain the complete file name of the library, and replace any /LIBPATH: in QMAKE_PRL_LIBS with -L. (the part about /LIBPATH: actually refers to the next commit.) Change-Id: I07399341bff0609cb6db9660cbc62b141fb2ad96 Reviewed-by: Joerg Bornemann <[email protected]> Reviewed-by: Oswald Buddenhagen <[email protected]>
* merge processPrlFiles() into findLibraries()Oswald Buddenhagen2015-10-021-83/+49
| | | | | | | | seems pointless to tear apart the functions, on the way duplicating some boilerplate. Change-Id: Ide3697ca1c931e8de607ac48c21cecce4781fe13 Reviewed-by: Joerg Bornemann <[email protected]>