aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix SOFT ASSERT for parametrized dependencies in Export/Module itemsv1.10.11.10Joerg Bornemann2018-01-314-8/+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-313-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Add failing test for QBS-1287Joerg Bornemann2018-01-315-9/+42
| | | | | Change-Id: I6a3222228f822b88d860b5036f459f1a732dc6ac Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Clean up the list of file dependencies before buildingChristian Kandeler2018-01-308-9/+88
| | | | | | | | | | | | | | | | 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>
* Fix detection of Android SDK on WindowsJake Petroules2018-01-251-9/+13
| | | | | | | Task-number: QBS-1282 Change-Id: If15e1ad616c6ffcdc03f62d872c512fd52c844d3 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add better module validation for Android SDK and NDKJake Petroules2018-01-254-7/+29
| | | | | | | | Users now get more friendly error messages when the SDK and/or NDK are not installed. Change-Id: Icfc438ed16b88aea190bf766ddc58b26b0512121 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Do not use Qt's documentation macrosEike Ziller2018-01-252-1/+54
| | | | | | | | | | | Qt 5.10.1 makes changes that would require changes in the Qbs documentation build. Since it doesn't make sense that changes in Qt documentation configuration files affect Qbs documentation, stop using Qt's macros file. Change-Id: I12bad221dec7204eb2bbabced2cda2af9941315e Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ModuleLoader: Fix order of module mergingChristian Kandeler2018-01-176-19/+104
| | | | | | | | | | 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>
* 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>
* GCC: Reorder prefixHeaders and precompiled headersArrigo Zanette2018-01-087-6/+113
| | | | | | | | Prefix headers should follow precompiled headers on the gcc command line. Testcase added. Change-Id: I3dfba8cae9c894932acce5c0a67f16d7d072c94b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Don't crash when calling methods on empty IMultiplexableContainersJake Petroules2018-01-051-0/+2
| | | | | | | | | | | Default-constructed GeneratableProjectData objects may be passed to generator methods as placeholders (in the case of the Visual Studio generator) and calling methods on such objects must not dereference invalid iterators. Task-number: QBS-1257 Change-Id: I1c2bfff015efc98cbfb66d02b497320429b6c6da Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix build with Qt 5.6Christian Kandeler2018-01-031-1/+1
| | | | | Change-Id: I6a8ff3557bbaa5e38f3df0f4334e5d0331349565 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* lexyacc test: explicitly declare yylvalJake Petroules2018-01-021-0/+1
| | | | | | | | Apparently this is not declared in y.tab.h on all platforms (such as Fedora). Change-Id: I1ae92a8cd415afaa623a34ac7765eb44e5235320 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix possible false negative in reproducibleBuild autotestJake Petroules2018-01-021-4/+6
| | | | | | | | | | | We only need to guarantee that the object file contents are equivalent if we explicitly requested a reproducible build. This does NOT imply that a non-reproducible build is *guaranteed* to produce different object files. This is the case on Fedora systems as uncovered by that platform's Qbs packagers. Change-Id: I8e46610f08a8b0c2b59ff84da94e9529c030baba Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix convenience command-line override syntax for qbs propertiesChristian Kandeler2017-12-234-0/+28
| | | | | | | | | | | | Users can write "qbs.xyz" instead of "modules.qbs.xyz", but we only applied that during module prototype loading, meaning that using that syntax (and only that syntax) would not override values set in project files, which was obviously quite confusing to users. Now the two variants behave exactly the same. Task-number: QBS-1244 Change-Id: Ie9c5de1ac42e33205b80335566e0721d61718947 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix scopes of dependency parametersChristian Kandeler2017-12-234-24/+17
| | | | | | | | | | | Only the values in Depends items of products had a scope, and that one did not allow to access module instances. Now the scope always is the surrounding item, which should be a sensible one in all contexts. Task-number: QBS-1253 Change-Id: Iedca2d98f82f71887373579f8e4dc91f057eded3 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* qbs.Environment: Normalize key values on WindowsChristian Kandeler2017-12-224-2/+30
| | | | | | | | | The names of environment variables are case-insensitive on Windows. Convert them to upper case when handing out the environment, so that users can count on the names being canonical. Change-Id: Iba2ce768b7cd22270dd2d240d15fc1a78915e3a7 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* 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-203-5/+5
| | | | | | | | | | | | 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>
* cpp module: Init all suffix and prefix properties to the empty stringChristian Kandeler2017-12-195-21/+13
| | | | | | | | | | | | | | ...rather than leaving them undefined. This way, the string "undefined" will not end up in file names. It's safer to do it this way compared to checking for "undefined" in all the places that could make use of the properties. Due to the semantics of these properties, there is also no value in treating "undefined" in a special way. Task-number: QBS-1265 Change-Id: I6ce7626485baa284a6c782b513740f9d150e18c3 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Fix spurious "unknown property" error on loading module candidatesChristian Kandeler2017-12-159-21/+93
| | | | | | | | | | | | | | | | | | When loading a module file, we apply property overrides from profiles and throw an error if ther profile sets a non-existing property on the module. This should only be done if that module file actually gets chosen to represent the module. In the past, it was enough to check the item condition, but this is no longer enough, because since commit 885bd2ec92 even module files with a matching condition might not get chosen because another one has a higher priority. This patch fixes the problem by delaying the check until we know the chosen candidate and applying it only on that one. We also improve the error message: There was no context given, so users had no clue where the problem came from. Change-Id: I9cb1b8ab118072e6be612c466552d9dd97796e8a Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix Android builds in release mode with NDK r12 and aboveJake Petroules2017-12-153-1/+4
| | | | | | Task-number: QBS-1256 Change-Id: I286327f8b33ecb72851551bbbf2108717a116b1a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ModuleLoader: Copy id when setting up module instance child itemsChristian Kandeler2017-12-156-2/+15
| | | | | | | | | | Problem was uncovered by d08ce8f643, after which the Depends item used for loading a module is no longer the original one from the prototype (i.e. the one that got the id assigned by the AST visitor). Task-number: QBS-1264 Change-Id: Id8bdf0cc903aaabfb3eaafc56445064ed49d1cd7 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix qtquickcompiler support for QML files in subdirectoriesChristian Kandeler2017-12-158-3/+68
| | | | | | | | | 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>
* Fix regression resolving exported paths defined in the exporting productChristian Kandeler2017-12-134-2/+16
| | | | | | | | | | | | | | | Commit aa1c500411 inadvertently changed the behavior for cases like this: DynamicLibrary { property path inclPath: "." Export { cpp.includePaths: [product.inclPath] } } Before that patch, the base dir for resolving the include path was the exporting product, afterwards it was the importing one. This patch restores the original behavior, which is the intended one. Change-Id: I8a56cff1163e7fc87361b5ab5e9cbd527b53b79b Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix visual glitch in CppApplication documentationChristian Kandeler2017-12-131-1/+2
| | | | | Change-Id: Id9ec3f24a80a684b73aadaabd785488490c1feab Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Adapt chocolatey spec file to new repository URLChristian Kandeler2017-12-121-2/+2
| | | | | Change-Id: If9d17164d623ff389b5b0a6b042f67dc70daf1ae Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Allow running multiplexed iOS application bundles via `qbs run`Jake Petroules2017-12-123-4/+11
| | | | | | | | | | | This does not solve the whole problem of multiplex instance selection generically, but at least solves the immediate issue of correctly selecting the default instance for iOS apps, which is the application instance which also has a bundle.content tag (if it is bundled). Task-number: QBS-1207 Change-Id: Ibdefc85679be292c1f9c518ce1e8b15b689a13b5 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Update changelog fileChristian Kandeler2017-12-121-2/+4
| | | | | Change-Id: I7b8a3f0a05a4af793c8ded6de9642184c15fc331 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix GCC support for "bare metal" systems againChristian Kandeler2017-12-1112-42/+84
| | | | | | | | | This was fixed before in 8176a4d419 and broken again in 72eedbb0a4. Fix it for good this time using module priorities. Task-number: QBS-1263 Change-Id: Ib1702299ef6c51b19a9082da96485ef5387dc1bb Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix crash when "original" is being misusedChristian Kandeler2017-12-083-0/+15
| | | | | | | | We simply assumed the value would be a module property. Task-number: QBS-1255 Change-Id: I3994f6db62f64ed44cb4d01f0938bc2d536fb3f3 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Update changelog filesChristian Kandeler2017-12-082-1/+2
| | | | | | | Move over one change that did not make it into 1.10.0. Change-Id: Id960525fd829da133b61c1c3cfed782b50a5273c Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Doc: Update the sidebar in online docs to show the current TOCLeena Miettinen2017-12-071-0/+4
| | | | | Change-Id: Ia328393ef2914cac0a3952bce69049b18ea9fdfa Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Bump version numberChristian Kandeler2017-12-072-4/+4
| | | | | | | 1.10.0 -> 1.10.1 Change-Id: I302620919fffb7cb0021711adcd9446ebf2b9d8f Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix imports in Inno Setup, NSIS, and WiX autotestsJake Petroules2017-11-303-2/+3
| | | | | | | Amends 7f6ec1c Change-Id: Icc0777c62163daa9b0cb2e42cc4743d96282e0c2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Installer modules: add a "helper" file tag to pull in dependent inputsJake Petroules2017-11-3022-6/+405
| | | | | | | | | | | | | | | | | Use case: building an Inno Setup, NSIS, or WiX project often depends on artifacts created by other products (executables, shared libraries, etc.). This allows the rules which create these installer files to depend on relevant installable artifacts. [ChangeLog] The Inno Setup, NSIS, and WiX modules' rules now have a dependency on installable artifacts of dependencies by default, via the default item templates InnoSetup, NSISSetup, and WindowsInstallerPackage. This can be explicitly controlled via the dependsOnInstallables boolean property of those item templates. Change-Id: Ia12f7d9965091c06ab83ba86836ec989c899f765 Reviewed-by: Thorbjørn Lindeijer <bjorn@lindeijer.nl> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix inadvertant module prototype sharingv1.10.0Christian Kandeler2017-11-235-5/+33
| | | | | | | | | | A product that is not multiplexed in the sense that additional instances of it are created can still alter prototype values. Take this into account when deciding whether to re-use an existing module prototype. Task-number: QBS-1243 Change-Id: I017fc0dc9d6080d622b030e97796d254d17b3468 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix bogus error message about conflicting module filesChristian Kandeler2017-11-232-0/+12
| | | | | | | | This could happen if the same location appeared in the search path in different forms. We now canonicalize the paths. Change-Id: Ide20886e88469fbbabc74f2814754b85983e6780 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Ignore property assignments in Export items of disabled productsChristian Kandeler2017-11-2312-1/+138
| | | | | | | | | Ideally, we would also ignore Depends items in such Export items, but that task seems to be a bit more involved. Task-number: QBS-1250 Change-Id: Iab74873f74d5b8f0b8771c3c1866c7a1a5fa78aa Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix default deployment target of storyboard in assetcatalog testJake Petroules2017-11-131-1/+1
| | | | | | | It should be set to 'default deployment target'. Change-Id: I0022317044c72a5f1d27fe5a1cc902fb3901d2ce Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix assetcatalog test with newer versions of macOSJake Petroules2017-11-132-6/+19
| | | | | | | | | The default deployment target handling has since changed in a way such that we cannot assume the 'default' target is the current host version. Therefore, make the test explicit about the required deployment target. Change-Id: I2547c6051def619dba8b9e6f18b26942fc6707cd Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Make the teapot test a little less strictJake Petroules2017-11-131-6/+11
| | | | | | | | | | | | | Make 'unexpected files encountered' only a warning instead of an error; it's possible and has historical precedent in the Android samples. Further, remove th ic_launcher.png files from the list of required files of the teapot example. These became mipmaps instead of drawables at some point and it is not worth the effort to try to create a proper conditional to select the right list of files. Change-Id: If71bc394e64c19448c152b905ecff29dd436d190 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Only include one of gl3stub.cpp or gl3stub.c in the Android teapot testJake Petroules2017-11-131-1/+2
| | | | | | | | | The .c file was renamed to .cpp at some point, but both copies remain in the samples repository. Listing both will result in duplicate gl3stubInit symbols during linking. Change-Id: Ifb9bbbdb9b955bc3811aa5d0bb5ce722bf6c3565 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Rename CoreUtils in install-bundle exampleJake Petroules2017-11-131-3/+3
| | | | | | | That name conflicts with an Apple system framework. Change-Id: I9d8c1f3fdff813341e433578e4e48aac607a1e39 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix the outer value for Properties itemsJoerg Bornemann2017-11-104-28/+74
| | | | | | | | | | | | | The outerItem we created contained just one property and was quite fragile when the 'outer' source code contained references to other properties, especially whenever item inheritance was involved. We now directly obtain the value of outer as soon an alternative requests it. Task-number: QBS-1239 Change-Id: I07f9ff85f33b445515b97f7c6f3d4f917fe3ccc8 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix check for the "same file as different artifact" case in connect()Christian Kandeler2017-11-095-2/+89
| | | | | | | | | That can legally happen if the child artifact is a source file present in different products. Task-number: QBS-1241 Change-Id: Ideba1321072deee5c01b8915f32a747b45864793 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix evaluation of Properties.conditionJoerg Bornemann2017-11-084-111/+124
| | | | | | | | | Use the same code path for the evaluation of Properties.condition and the actual values. Task-number: QBS-1240 Change-Id: I1cfb2e13349d73bf347bf90ee5aef4b0835630f6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* SVConverter: Bail out early if the importScope is erroneousJoerg Bornemann2017-11-081-8/+7
| | | | | | | This simplifies the code quite a bit. Change-Id: I07a6667276650c4b4d17bd667dd9f8f1c0f753aa Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* SVConverter: Factor out the creation of the extra scopeJoerg Bornemann2017-11-081-33/+47
| | | | | | | Clean up the handler function for JSSourceValue objects. Change-Id: I04fd79c8c03016c5656f7f392e0e27388215e928 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>