aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* Adjust Visual Studio project generator to CLI changesJoerg Bornemann2018-03-221-3/+5
| | | | | | | | Configuration names must be prefixed by "config:". Task-number: QBS-1303 Change-Id: I63636141acdab7cc325378a1696e15842815d003 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Remove top level include path from use_installed_corelib.priKai Koehne2018-03-141-1/+1
| | | | | | | | | | This can confuse e.g. gcc when the top-level include is actually a system directory (/usr/include). Anyway, it is unneeded in the first place: The Qt Creator qbsprojectmanager plugin compiles fine without. Change-Id: I700ae6bad16544726b5a450a6f7a29b67f013219 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add LICENSE.GPL3-EXCEPTKai Koehne2018-03-121-0/+1
| | | | | | | This is used in the tests. Change-Id: I9c88c5cc47e4ea9dde88e726fe8dda997656a81f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix license header in qbs_processlauncherKai Koehne2018-03-091-4/+15
| | | | | | | Use the same LGPL header as in the other files for tools. Change-Id: Iade8d4852685532cea70906c63c1ecfd5da8dbbe Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix exports from multiplexed productsChristian Kandeler2018-03-092-31/+58
| | | | | | | | | | While we did set up the dependencies between multiplexed products correctly, the *module* (i.e. Export item) that we pulled in was always the same one and corresponded to the wrong product variant in most cases. Change-Id: If42cf7e946689259c7433d81fd35d8798919eb15 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove unused SRCDIR defineKai Koehne2018-03-071-2/+0
| | | | | Change-Id: Ie7387d03a4106bbf40e717941ae0b53f8b554311 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix compilation with gcc 4.8Kai Koehne2018-03-071-1/+1
| | | | | Change-Id: Iacfc62b1c5933692f578e2bb365839b69c45f6b0 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* 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>
* Fix exit code for failed multi-config buildsChristian Kandeler2018-03-021-1/+1
| | | | | | | | | If one of the configurations failed and another one succeeded, then we would return with exit code zero if the successful configuration finished after the failed one. Change-Id: If46798d3d145eff45e9e22652fda8e16993794e6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix race condition in MSVC detection codeChristian Kandeler2018-03-011-1/+6
| | | | | | | | Two or more threads could simultaneously call qputenv() when building for several configurations. Change-Id: Ia2edce48d5088018a0ebe650c93c3faabc9d91cd Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* 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>
* Guard QScriptEngine's creation/destruction with a mutexJoerg Bornemann2018-02-284-3/+17
| | | | | | | | | | | | | | | | | | When building multiple configurations in one go we create one QScriptEngine per configuration, each in its own thread, but nearly at the same time. It turns out that QScriptEngine's creation/destruction is not thread-safe, which leads to all kinds of interesting effects in the multiple configurations case. We fix this by guarding creation/destruction of QScriptEngine with a mutex. Task-number: QBS-1308 Change-Id: Ie01733d5943f1fb89e1d25344c4ffa998095e394 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Make the Id class thread-safeChristian Kandeler2018-02-282-22/+13
| | | | | | | | When copying it over from Qt Creator, we forgot to adapt it to a non- threadsafe environment. Change-Id: I83c3dd47627fe01a67042d71b897427f5a7adf2b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add a location to errors in conditions of Properties itemsChristian Kandeler2018-02-233-12/+31
| | | | | | | These can be exceedingly difficult to debug otherwise. Change-Id: Ie3bc42fbd60e11be105fc23624c77a623dc5f1aa Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* RunEnvironment: Add safety check for API mis-useChristian Kandeler2018-02-212-2/+13
| | | | | | | | | It makes no sense to try to run a disabled product. Task-number: QBS-1306 Change-Id: I07e36bc8f787d702ed9caa21972537e588db57e8 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Make ItemDeclaration::properties return an actual objectChristian Kandeler2018-02-191-1/+1
| | | | | | | | | ... rather than a const ref. We often call this function on temporary values, in which case using the returned reference triggers undefined behavior. Change-Id: Iac9d6097c20438084640d9f8e425d2a59a9878ce Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Do not apply file tags filter to target artifacts of modulesChristian Kandeler2018-02-192-1/+5
| | | | | | | These do not conceptually belong to the product. Change-Id: Ic55cf246fe38ba7ad03563b5f67a8622810dad7d Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Pull in the latest dmgbuild patch releasesJake Petroules2018-02-193-42/+146
| | | | | Change-Id: I8b12ce1752a3a470257523255ada26650a33852d Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Check product and project names in command-line property overridesChristian Kandeler2018-02-153-10/+91
| | | | | | | | Users should get feedback if they mistyped a product name, for instance. Task-number: QBS-1288 Change-Id: Icb57490d896d21c5ff9ed3940b53d9b18fe00a30 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix connection to rules of dependenciesChristian Kandeler2018-02-151-1/+3
| | | | | | | | | | | ... for the case that auxiliaryInputs or explicitlyDependsOn contains "installable". They must be considered in addition to inputsFromDependencies, because they also match target artifacts of dependencies. Change-Id: Ib960001a8e67034d6d1382bacc385bdcd9ddfb99 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix ProjectData::isExecutable()Christian Kandeler2018-02-141-4/+3
| | | | | | | | | | When using bundles, the executable has the tag "bundle.application- executable". Task-number: QTCREATORBUG-19794 Change-Id: I5fd635e4105f1b290cf3d5e8f5a96523693e6128 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* 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 defaultValue argument from Evaluator::boolValue()Christian Kandeler2018-02-124-10/+6
| | | | | | | | | | The few usages either made no difference or were plain wrong. In particular, it makes no sense to return a default value if the RHS of the property assignment evaluates to undefined, as "undefined" usually implies "false" for bool properties. Change-Id: I46d563712b2778ef82fa88f49a3229e451782a50 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix FileInfo.{to,from}NativeSeparators()Christian Kandeler2018-02-091-2/+2
| | | | | | | We mapped them to the wrong C++ backend functions. Change-Id: Idb0ed8a74fc8ec2f8489e77d33e76a329af0b276 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* RulesApplicator: Mark project build data as dirtyChristian Kandeler2018-02-011-0/+1
| | | | | | | The RulesApplicator changes data that needs to be stored. Change-Id: Ia9e3b60ca2146f902562335f6265e8e9803dc486 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix build with Qt < 5.8Christian Kandeler2018-02-011-1/+10
| | | | | Change-Id: Ibf99d3d4e3a4c7c1647288c546c2f2e14253b62b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Merge 1.10 into 1.11Christian Kandeler2018-01-315-17/+63
|\ | | | | | | Change-Id: I2d6cac6f24144c2c7e463ef7eed2e2c109f50bbf
| * Fix SOFT ASSERT for parametrized dependencies in Export/Module itemsv1.10.11.10Joerg Bornemann2018-01-313-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | The SOFT ASSERT was triggered, because the Depends items in Export/Module had the type ModuleInstance instead of ModuleParameters. Move the assignment of that item type to ItemReaderASTVisitor instead of adjusting it in the ModuleLoader, because this ensures that we don't have to traverse prototypes in the adjustment procedure. Task-number: QBS-1287 Change-Id: Ie1a1080d40b8bebe5c205f8b34298469cde5bd46 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Fix parameter extraction for Depends items within Export/Module itemsJoerg Bornemann2018-01-311-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Parameters of Depends items within Export items were ignored. Project { Product { name: "foo" Export { Depends { name: "dep"; cpp.link: false } // dep } } Product { name: "bar" Depends { name: "foo" } } } The instance of foo in bar has an Depends child depinst. The item depinst was created by createChildInstances and is an empty item with the prototype dep, which is the Depends item in foo's Export item. Thus, extractParameters must look up properties in the deepest prototype (dep), not in the Depends item itself (depinst). Unfortunately, this fix triggers SOFT ASSERT: varValue in ../../../../1.10/src/lib/corelib/language/evaluatorscriptclass.cpp:574 which will be fixed separately. Task-number: QBS-1287 Change-Id: I56b5464aad2578bb5ddab2e831fc607d6634ac8d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Clean up the list of file dependencies before buildingChristian Kandeler2018-01-302-9/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After adding an external file dependency, we would never remove it from the global list again, meaning the look-up table would contain stale entries if an external header file was moved around. Because we still checked the status of the artifact-local list of dependencies, the result was that in such a situation, the files including such a header would get recompiled on every build. [ChangeLog] Fixed constant rebuilding after moving an external header file. Task-number: QBS-1285 Change-Id: Id764da7485dd540f2ff64bcd890e43723f18e6cd Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Make FileTime::toString() include millisecondsChristian Kandeler2018-01-301-1/+1
| | | | | | | | | | | | | | | | The default resolution of one second is not always sufficient when evaluating debug output. Change-Id: I6adf4acd016d9fc57c3e990e80e992d82791807f Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | qbs build: Make the Qt bundling functionality configurableChristian Kandeler2018-01-301-1/+2
| | | | | | | | | | | | | | We don't want that in Qt Creator. Change-Id: I811eed24fae6cb3f652a89d37138d8cf00992057 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Project loading: Remove unneeded set insertionsChristian Kandeler2018-01-261-1/+1
| | | | | | | | | | | | | | | | | | We would iterate over the (potentially large) global set of file dependencies and try to insert each element into the same set again. Change-Id: Ib83fb0ac66bf75aee3ddc80e4c3abd18a8f77e8b Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Fix MSVC warningsOrgad Shaneh2018-01-244-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | signed/unsigned, cast from size_t to uint, and warning 4251[1]. Warning 4251 is disabled in qglobal.h, which is no longer included by Qbs headers. Disable it in qbs_export.h instead. [1] https://stackoverflow.com/q/32098001/764870 Change-Id: I98c14c4108715c753e3fb2382e9366d9dda0b1de Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge 1.10 into 1.11Christian Kandeler2018-01-192-19/+44
|\| | | | | | | Change-Id: Iae805216e202e582923a70733caa842e8070cc7e
| * ModuleLoader: Fix order of module mergingChristian Kandeler2018-01-172-19/+44
| | | | | | | | | | | | | | | | | | | | Dependencies must be merged before their dependents, because the merging process for the former sets up data to be consumed by the merging process for the latter. Task-number: QBS-1275 Change-Id: Ide9146add79bf2b4fcf80d7ce95ac1d9d4ac20b2 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Add missing <iterator> include in stlutils.hJoerg Bornemann2018-01-181-0/+1
| | | | | | | | | | | | | | | | | | We're using std::begin() and std::end() here. The default implementations are provided by the <iterator> header. Change-Id: I0acf850f5392fa9e1016aa1c87691d674273df80 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Introduce a named constant for the magic "_qbs_procenv" variableChristian Kandeler2018-01-185-9/+8
| | | | | | | | | | Change-Id: I17df1d5465afd3c19f71ab00e361c546ec8bb45d Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Replace some uses of find_if with any_of and none_ofJoerg Bornemann2018-01-174-14/+21
| | | | | | | | | | | | | | | | | | | | Calls to find_if that just compare the result with an end iterator are replaced by calls to any_of or none_of. This leads to shorter, more expressive code. For increased readability, versions of any_of/none_of are provided that operate on whole containers instead of iterators. Change-Id: Ia4ff449176f22f1820635e810724983866d3265e 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>
* | Fix id pointer of base itemsJoerg Bornemann2018-01-173-3/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the following example the name of the derived product should be "derived", but it was "base". ---BaseProduct.qbs--- Product { id: baseProduct property string foo: "base" name: baseProduct.foo } --derived.qbs-- BaseProduct { foo: "derived" } The id baseProduct still pointed to the Product item originally imported from BaseProduct.qbs. Fix the item pointers in the base id scopes when handling item inheritance. Task-number: QBS-1016 Task-number: QBS-1262 Change-Id: Id11b98aa6780f8bbbda86fda5a7d11a0e006d889 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Correct the name of the base item variable in code dealing with inheritanceJoerg Bornemann2018-01-151-9/+8
| | | | | | | | | | | | | | | | We now call the base item baseItem instead of inheritorItem. An "inheritor item" would be the item inheriting from the base item. Change-Id: I10b9246764bb11ec25ddc06d9e0d2d9a3bf2eb0b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Generators: Fix some includesChristian Kandeler2018-01-122-4/+1
| | | | | | | | | | | | | | A public header was including a non-public one. Change-Id: I4ee209248cea04e03f618708f5299699e8cc2e3e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Executor: Add missing check for module target artifactChristian Kandeler2018-01-121-0/+2
| | | | | | | | | | | | | | | | Such files are not to be matched against Rule.inputs. This part was forgotten in 8ca922793f. Change-Id: I0a01b3642f4a16c09d189e8c2228205fd0e9962b Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Properly take the --dry-run option into account in the "run" commandChristian Kandeler2018-01-123-53/+72
| | | | | | | | | | | | | | Do not try to execute the virtual binary. Change-Id: I19b0a9e7600b33cb42c4ab60f689dd4c3329930b Reviewed-by: Jake Petroules <jake.petroules@qt.io>