aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/qtprofilesetup
Commit message (Collapse)AuthorAgeFilesLines
* qtprofilesetup: Support platforms where qtmain is called qt5mainChristian Kandeler2018-10-221-13/+28
| | | | | | | Fixes: QBS-767 Change-Id: I5b00c7d13d59cc4f461b0806f22536e595c0a266 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* qtprofilesetup: Call fillEntryPointLibs() only when necessaryChristian Kandeler2018-10-221-2/+8
| | | | | | | | | | This function is parameterized by build variant. It should only be called if libraries for the respective build variant are present in the Qt installation. Change-Id: Ie43958c54e16bdfedf60a8c0339098eb8d694165 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* qmake build: Opt out of qtquickcompiler functionalityChristian Kandeler2018-10-181-0/+2
| | | | | | | | | | | | | | | The qtprofilesetup library contains a resource file with JavaScript sources. Now if "CONFIG += qtquickcompiler" is set globally, as it happens by default in Qt Creator, qmake believes that we want to compile the js files, which leads to disaster. Arguably, Qt should ignore the qtquickcompiler CONFIG value if the product does not pull in QtQml, but until that happens, let's force- disable the qtquickcompiler. Fixes: QTCREATORBUG-21340 Change-Id: If4802277ab66b550b0c88e5678cadf59a32e68d2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* qtprofilesetup: Understand the mkspec prefix "mingw"Christian Kandeler2018-10-183-8/+22
| | | | | | | E.g. Fedora provides "mingw-w64-g++". Change-Id: Ife197baa8ddd1b364025056b1ec7895a0b60d5dc Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* libqtprofilesetup: Try to find the library when .prl file is missingChristian Kandeler2018-10-121-10/+27
| | | | | | | Task-number: QBS-1399 Change-Id: Icf2cf11cf50560cc2229240a592d477a39b69d7a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* libqtprofilesetup: Properly handle quoted paths in .pri filesChristian Kandeler2018-10-111-1/+29
| | | | | | | Fixes: QBS-1399 Change-Id: I52e93a1d80203337c9cedbc09386b0c6c5334f91 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Qt templates: Take sanitizers into accountChristian Kandeler2018-10-091-0/+14
| | | | | | | | | | If Qt was built with e.g. address sanitizing, then code linking against it should also have it enabled. Otherwise applications will not run out of the box. Change-Id: I25360d72073499a10ba84d84a47e539f39baf318 Fixes: QBS-1387 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Properly diagnose invalid module property assignmentsChristian Kandeler2018-06-251-2/+6
| | | | | | | | | ... if the non-existing module name has more than one component. We inadvertantly skipped the check in that case. Task-number: QBS-1362 Change-Id: I1fcababee1ea70c3133bd1b1c8f8f32f8450a0e8 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* qtprofilesetup: Remove unnecessary "product" qualifierChristian Kandeler2018-06-141-1/+1
| | | | | Change-Id: I9e96032baad8519af44e694dcee12cdb149a4991 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix the qmlcachegen functionalityChristian Kandeler2018-06-051-4/+22
| | | | | | | | | | | | | The qmlcache module was broken in an impressive number of ways: - We forgot to adapt the Probe to a5cc49f2c6. - The return value of the validate property is never evaluated; you have to throw an error for it to have an effect. - From 5.11 on, qmlcachegen does not support the --target-architecture option anymore. Task-number: QBS-1353 Change-Id: I770ddc18ad2519c1d5db83bee9634717b1768d67 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add support for system-level settingsChristian Kandeler2018-06-011-1/+2
| | | | | | | | | | | | | In addition to the traditional per-user settings, there is now also a system-wide settings file affecting all users. The file's platform- specific default location can be overridden at build time. The qbs-config tool can write these settings via the new --system option. [ChangeLog] Introduced the concept of system-level qbs settings Change-Id: Ie6f675a74e96ce1fa7b2dd0712f6106071e848a6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Move msvcVersion out of QtEnvironmentJoerg Bornemann2018-05-241-1/+0
| | | | | | | | | This member is only used in qbs-setup-qt and is possibly invalid when used from Qt Creator. The removal stops us from trying to use the member in the qtprofilesetup lib again. Change-Id: Ib356b0f69fe479321aa7c3148acdb95fb805239a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix file tag for Qt libraries in qtprofilesetupJoerg Bornemann2018-05-241-1/+2
| | | | | | | | | The check env.msvcVersion.isValid() doesn't work for Qt Creator, because we never set the MSVC version for a QtEnvironment there. Use the isMsvcQt function instead. Change-Id: I9cfef1bc6383551fc3382408d18a239c4f7d0339 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Move MSVC-related functions to qtprofilesetup libJoerg Bornemann2018-05-244-1/+136
| | | | | | | This will avoid code duplication in the next commit. Change-Id: I90d99860dce04bf56c81d4f363aa6e5bafe1224c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Qt templates: Fix moc ruleChristian Kandeler2018-04-241-3/+9
| | | | | | | Commit 3653385af9 broke moc on macOS. Change-Id: Ie0875a1fcc7b891c241ab1cbd00ce6a908cd04ec Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Qt templates: Make moc rule handle C++ amalgamation correctlyChristian Kandeler2018-04-241-2/+5
| | | | | | | | | In C++ amalgamation mode, the source files need to be moc'ed before merging, because otherwise including .moc files will not work. Task-number: QBS-1252 Change-Id: I6e4bef4b46ec7bc3cf7ce7a950b380d469cc0afd Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Merge 1.11 into masterChristian Kandeler2018-04-051-0/+3
|\ | | | | | | Change-Id: Ia9e19bf1317c55d84602e4e0f54f7a4f412dd600
| * Fix qbsTargetPlatformFromQtMkspec for mkspecs in subdirectoriesv1.11.0Joerg Bornemann2018-03-271-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | The function qbsTargetPlatformFromQtMkspec failed for mkspecs like "devices/linux-oe-generic-g++". Now we only inspect the part after the last slash. Task-number: QBS-1328 Task-number: QTCREATORBUG-20136 Change-Id: I41cf686bd8eff4235ce86de30afa8730d3696abc Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Fix and rename the excludedAuxiliaryInputs propertyChristian Kandeler2018-04-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This property did not only exclude auxiliary inputs, but all kinds of inputs ("inputs", "auxiliaryInputs", "explicitlyDependsOn"), which happens to be what we want, as it does not appear to make any sense to exclude only tags from one of the relevant "input-like" properties. But the behavior was inconsistent: When building the (product-local) rule graph, the property was considered, but not when collecting artifacts from other products during rule application. This is now fixed. [ChangeLog] The excludedAuxiliaryInputs property of the Rule item has been renamed to excludedInputs. The old name is deprecated. Change-Id: Id7eae3461a6e85f53b3d47750d296c3e47a18a95 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* | Merge 1.11 into masterChristian Kandeler2018-03-093-29/+38
|\| | | | | | | Change-Id: Ie416a83940654e21b8872a8c7dc9f56b677ebabd
| * Fix qtquickcompiler support for Qt >= 5.11Joerg Bornemann2018-03-061-14/+27
| | | | | | | | | | | | | | The functionality of qtquickcompiler is now in qmlcachegen. Change-Id: I70c45f9db72895e2146cbf4bb7902b8db294626c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Qt templates: Fix detection of QtQuick compilerChristian Kandeler2018-03-053-17/+13
| | | | | | | | | | | | | | | | | | In Qt 5.11, the features/qtquickcompiler.prf file is always present, even if the QtQuick compiler is not. Task-number: QBS-1299 Change-Id: Ibc7f925f1b1753d870ddad939fd510637c3b7642 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Merge 1.11 into masterChristian Kandeler2018-03-022-2/+2
|\| | | | | | | Change-Id: Ided96fe9c47e59b08efdcc314d97ecd164d12b23
| * Qt modules: Do not disable the arch check for modules with no libraryChristian Kandeler2018-02-281-1/+1
| | | | | | | | | | | | | | | | | | | | Otherwise dependencies on private Qt modules will be ambiguous for e.g. Qt Android profiles with more than one architecture. The architecture property is always set, so this change does not erroneously turn conditions to false. Change-Id: I30de95493943c8d90a76f7b22b65d4d69a19c29b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * Fix Qt.core templateChristian Kandeler2018-02-281-1/+1
| | | | | | | | | | | | | | This module does not have a "hasLibrary" property. Change-Id: I1840f1bb0564009176a31321aa11411449c97043 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Remove CONFIG += depend_includepath from our .pro filesJoerg Bornemann2018-02-281-2/+0
| | | | | | | | | | | | | | | | This is default since quite a while, and we never actively maintained a separate DEPENDPATH anyway. Change-Id: I3f376f0a3b7f4066be800f795ace05b753797461 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | setup-qt: Remove duplicated library entries in Qt modulesJoerg Bornemann2018-02-281-0/+106
| | | | | | | | | | | | | | | | | | | | Do not specify {dynamic|static}Libraries that are already specified in dependencies of the current Qt module. This avoids having e.g. -lpthread multiple times in the linker's command line. Task-number: QBS-1273 Change-Id: I1328a19efc968cbd70f6cfcc882fb2c27f08e049 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | setup-qt: Fix for static QtChristian Kandeler2018-02-211-1/+1
| | | | | | | | | | | | | | The Qt.core template does not have the "isStaticLibrary" property. Change-Id: I0305a96c7c8a3ba962283392ad613c2f466c8fc9 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Fix syntax error in module files generated by setup-qtChristian Kandeler2018-02-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | After 3bc71587c9, private modules with libraries would no longer work, due to constructs like this: Group { files: [product.Qt.designercomponents-private.libFilePath] // boom filesAreTargets: true fileTags: ["dynamiclibrary"] } Change-Id: I9a3394033f48dc9284ce1ed92e3d9e11e0eaf080 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | setup-qt: Avoid cpp.{dynamic|static}LibrariesJoerg Bornemann2018-02-163-12/+27
| | | | | | | | | | | | | | | | | | | | | | Export library artifacts instead of using the library list properties of the cpp module. This avoids duplication of library arguments on the linker command line due to proper dependency resolution when exporting artifacts. Task-number: QBS-1273 Change-Id: I63baef22b863928c5a617f6f51cb73a9901bc081 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Qt templates: Rename special_properties to additionalContentJoerg Bornemann2018-02-168-13/+13
| | | | | | | | | | | | | | We will add non-property content in a subsequent commit. Change-Id: I1321b20de7af11e76201a5ffdb8a8e389102eeba Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Make replaceSpecialValues data-drivenJoerg Bornemann2018-02-161-52/+81
| | | | | | | | | | | | | | | | Do not call QByteArray::replace over and over again, but encode the replacement data in a dictionary, and scan the input once. Change-Id: I6de75599eb0a92f63817097b5a5633cfc62678b1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge 1.11 into masterChristian Kandeler2018-02-121-0/+9
|\| | | | | | | Change-Id: I29c7a8b8b4a566ccb6f06a258ea1f98f96e118b9
| * Qt.scxml: Add support for the --statemethods optionChristian Kandeler2018-02-121-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | Also add an undocumented property to add arbitrary options. This one acts as an emergency fallback in case we miss a new option in the future. Task-number: QBS-1295 Change-Id: I0ba81325d6975d8bb25cbd397c9daaaa12f685c2 Reviewed-by: Andy Shaw <andy.shaw@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Andreas Bacher <andreas.bacher@meon-medical.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Remove the qtcore id from Qt.coreJoerg Bornemann2018-01-191-2/+0
|/ | | | | | | This id isn't used since ages. Change-Id: I620faa2cc064e0a65b30e52f9b87c9e35d33e709 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Qt templates: Remove phonon.qbsChristian Kandeler2018-01-173-31/+0
| | | | | | | This is just a generic module with no special contents. Change-Id: Ifa123d0c3ab07bdaab3252cd96ce6d68f2d74034 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Merge remote-tracking branch 'origin/1.10'Joerg Bornemann2018-01-175-3/+33
|\ | | | | | | | | | | | | | | | | Conflicts: src/lib/qtprofilesetup/qtprofilesetup.cpp src/lib/qtprofilesetup/templates/QtModule.qbs src/lib/qtprofilesetup/templates/core.qbs Change-Id: I342608a47f1a90b53eb12cc14fc3ff116063d15f
| * Qt module templates: Fix for Qt 4Christian Kandeler2018-01-155-3/+30
| | | | | | | | | | | | | | | | - Qt.phonon is special. - QT_ARCH has bogus value on Windows. Change-Id: I2f429463acb70a0871f9557c8124e980639e4698 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Merge 1.10 into masterChristian Kandeler2017-12-223-6/+5
|\| | | | | | | Change-Id: Iecddc2722d22d7c15d4b32efd676fa8e7c00e99f
| * Fix invalid property assignments in Qt.core templateChristian Kandeler2017-12-211-2/+1
| | | | | | | | | | Change-Id: I2de622c33e579b5d4a075aeb832ea0fec250a88a Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| * Fix qtquickcompiler support properlyChristian Kandeler2017-12-202-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | This partially reverts 193f3f02aa. The findOutput() function was really supposed to take a file name. The fact that file paths could come in was due to a subtle mis-use of JavaScript's String.replace() function, of which you (absurdly) have to use the regex variant if you want to replace more than one occurrence. Task-number: QBS-1261 Change-Id: I8aa90e2c008c1acd7c4a9e445954d7a4d8f2234a Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Merge 1.10 into masterChristian Kandeler2017-12-152-4/+4
|\| | | | | | | Change-Id: Iab942ed25d06038cf8c172eb70dcd8e9a720e1c8
| * Fix qtquickcompiler support for QML files in subdirectoriesChristian Kandeler2017-12-151-3/+3
| | | | | | | | | | | | | | | | | | The input to the look-up function is a relative file path, not necessarily just a file name as the code assumed. Task-number: QBS-1261 Change-Id: Iaad4629ea92f327edc3dca7f012d82a00669994f Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| * Fix copy-paste error in Qt.core templateChristian Kandeler2017-12-141-1/+1
| | | | | | | | | | Change-Id: I7a67b030c53badb8de86464a8392efdc7010dfed Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Make Version a public classJake Petroules2017-12-011-1/+1
| | | | | | | | | | | | | | It's already exposed in public API; i.e. via qtprofilesetup headers. Change-Id: I56950ce3163e6c5bd2c3fd08cc885b35723be5a7 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Turn Qt.core.architecture into Qt.core.architecturesJake Petroules2017-11-3010-14/+250
| | | | | | | | | | | | | | | | | | This allows us to properly support the Apple platforms (which are capable of storing multiple architectures in a single library file) via multiplexing. Change-Id: I68702d58d8c3644d923dc1fbfd9a8dad3d69bba6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Constrain Qt modules also to qbs.targetPlatformJake Petroules2017-11-2911-3/+71
| | | | | | | | | | | | | | | | | | | | | | This makes it possible to have multiple Qt versions for different platforms in the same module search path (much like multiple Android archs are present in the same module search path). This enables scenarios like building a Qt-based iOS and watchOS project in the same build configuration without messing with profiles. Change-Id: I448d7a768e8576373ff91d5283d46dbd7b8969ca Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Qt.core: Let the qch rule take all qdoc output as auxiliary inputsChristian Kandeler2017-11-281-0/+2
| | | | | | | | | | | | | | This allows to provide additional content not directly produced by qdoc. Change-Id: I15fc1a315d1e568ea99491c19a13d86f43e5da8d Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Replace more loops with range-forJake Petroules2017-11-271-15/+10
| | | | | | | | | | | | | | | | ...or raw iterators for reverse iterations. Change-Id: I62a110ceeefaf70aaa41f6fb09d811f0eac05657 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Replace 'foreach' macro with range-based 'for'Denis Shienkov2017-11-242-9/+12
| | | | | | | | | | Change-Id: I34479bc9673d0202363aeba5c7919efc8f0d7287 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>