aboutsummaryrefslogtreecommitdiffstats
path: root/doc/reference
Commit message (Collapse)AuthorAgeFilesLines
* Doc: Extend the documentation for the "outer" valueJoerg Bornemann2017-06-072-1/+17
| | | | | | Change-Id: I6fff3d3cc73bd664c29b67239b88c2e09b5d6fe2 Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix example code in Group item documentationv1.8.0Christian Kandeler2017-05-181-4/+4
| | | | | | | | We mistakenly omitted the module name in some expressions. Change-Id: I7bc29837166ac7bf0bcf921b3f5816112f8e8e6f Reviewed-by: Prashant Vaibhav <prashant.vaibhav@tobyrich.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Doc: Remove profanityJoerg Bornemann2017-05-161-1/+1
| | | | | | Change-Id: I75210b8ab0e5db505aebc5a291ce3b6b1cf75e6d Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Track Java manifest files as artifacts in the build graphJake Petroules2017-05-091-11/+10
| | | | | Change-Id: I4e5df616d49b51286a3df83f11807408b59c4fe3 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Qt.qml: Link against QML plugins when using a static QtChristian Kandeler2017-04-281-1/+41
| | | | | | Task-number: QBS-1121 Change-Id: Id1da9786d4535a350eed72062848c2745cf8a73b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add basic documentation for the qnx moduleJake Petroules2017-04-211-0/+93
| | | | | | Change-Id: I94452d0258857c008941bf6efeec5918403b50a1 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Documentation: Remove duplicated backslash characterChristian Kandeler2017-04-181-1/+1
| | | | | Change-Id: I1baada41c3aaa72f0a042f0d590b925b602ab816 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Introduce cpp.useRPathLinkJoerg Bornemann2017-03-151-0/+6
| | | | | | | | | [ChangeLog] Added the cpp.useRPathLink property to control whether to use the -rpath-link linker option. Change-Id: I4f7ca342285fe51975fed5ff8cbf8d3f0d50fae9 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Revert "Match a rule's input tags against root artifacts of dependencies"Christian Kandeler2017-03-091-4/+3
| | | | | | | | | | This reverts commit 4d22a69b8c82c5f1e4cc746a95afc43be7e66893. It's incompatible with how cpp and bundle rules currently interact. Let's revert it for now to get rid of the regressions and investigate whether the rules can be re-written. Change-Id: I38d059e1ca81ace00cd8f10d38fe8bdd9cecc78d Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Doc: Prevent Product Item property table from overflowingTopi Reinio2017-03-081-2/+6
| | | | | | | | | | | | The online style has limited horizontal space, and code blocks within tables often result in partially hidden content, with a scrollbar at the bottom. To work around this, wrap the comments in the code snippet and reduce its font size. Change-Id: I5ceca23f99b521909f9bf3c869a45f89edb3dd8c Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Match a rule's input tags against root artifacts of dependenciesChristian Kandeler2017-03-071-3/+4
| | | | | | | | | | | | | | | For instance, if you make an object file the target artifact of your product, you want the depending product's linker rule to pick it up, without the need to explicitly add the tag to "inputsFromDependencies". Otherwise, you'd basically have to duplicate the contents of "inputs" in all rules then, which is silly. [ChangeLog] A rule's "inputs" property is now matched against the file tags of target artifacts of products that the current product depends on, in addition to artifacts in the current product. Change-Id: I814cb49f5d8135b7482777dce73f1fa56a44724b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add a convenient replacement for moduleProperty()Joerg Bornemann2017-03-072-9/+7
| | | | | | | | | | | | | | | | | | | | | | | | | In rules we can now write product.cpp.defines instead of product.moduleProperty("cpp", "defines") Before requesting a module's property one must check for module existence: if (product.xcode && product.xcode.sdkName === "TheBestSDK") ... The same syntax also works for artifact objects (e.g. from inputs). The old way of requesting module properties via moduleProperty stays intact for the time being. [ChangeLog] Added a convenient replacement for product.moduleProperty("module", "property"), namely product.module.property. Task-number: QBS-889 Change-Id: Ibf78329b8988b2ad632578848f4606dcc82f551c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix copy/paste error in TemporaryDir documentationChristian Kandeler2017-02-241-1/+1
| | | | | Change-Id: I42ff395753e9e0efd1412e76f9df2ce47b09727a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* lex_yacc: Suppress compiler warnings for the generated C/C++ filesChristian Kandeler2017-02-211-0/+8
| | | | | | | | | | | | | These tools are known to produce sources that trigger compiler warnings, so switch warnings off by default. [ChangeLog] lex_yacc module: Introduced property enableCompilerWarnings. Task-number: QBS-1104 Change-Id: If13535dde5a580cd0cec215da22b8b8d22d7105b Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Cpp module: Allow a set of source files to be combined into oneChristian Kandeler2017-02-172-4/+69
| | | | | | | | | | | We introduce file tags and properties to support the concept of "amalgamation builds" for C, C++, Objective-C and Objective-C++. [ChangeLog] Provided the means to easily combine source files for the C language family in order to support "amalgamation builds". Change-Id: Ia3d248203c29418907178b47dba84ca3a18a0857 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Deprecate loadFile and loadExtension in favor of requireJake Petroules2017-02-152-18/+11
| | | | | | | | | | | | This is more in line with mainstream JavaScript (especially node.js) which uses the CommonJS/RequireJS scheme for loading external modules. [ChangeLog] The loadFile and loadExtension functions are deprecated in favor of the new require function, which accepts arguments of either form accepted by the deprecated functions. Change-Id: Icc00aa3eb7c136a5be787f28ef38435e4ce261bb Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add new tool qbs-create-projectChristian Kandeler2017-02-141-0/+4
| | | | | | | | | | | | It tries to construct a qbs project from an existing source tree, similar to qmake -project. [ChangeLog] Added new tool qbs-create-project to set up a new qbs project from an existing source tree. Change-Id: Id13081a32fa708dd66768c7b647a638db4b41d6e Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Attach the bundle.content file tag to files that are part of a bundleJake Petroules2017-02-081-0/+15
| | | | | | | | | | | | | This simplifies installation for end users, as they only ever have to use this one tag to install an entire bundle, rather than having to remember every possible file tag attached to the output artifacts of rules which install their output to a bundle. Refactor associated rules to handle this new internal workflow. This paves the way for other new functionality like bundle embedding. Change-Id: I76369383ae08d1ff5433b73d517a657dbd329b78 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Qt: Allow to disable keywordsChristian Kandeler2017-02-071-0/+7
| | | | | | | | | | | | Analogous to the "no_keywords" config variable in qmake. [ChangeLog] Introduced Qt.core.enableKeywords for simple disabling of the "signals", "slots" and "emit" symbols. Change-Id: I4618fdda4ea3cf4533665ec2de1049e7f7c52f54 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Reduce overcautious rule connectionsJoerg Bornemann2017-02-061-2/+1
| | | | | | | | | | | | | | Before, we connected all leaf rules of a product with all root rules of its product dependencies. This is not necessary and penalizes parallel builds of dependent products. Now, we connect all rules of a product with all compatible rules of product dependencies. Rules that take "installable" as input still use the old behavior, because "installable" is a magic tag with no corresponding rule. Change-Id: Ib1f8b8854bf9d265c155f0d34d321c0e10607c1d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Allow moc_*.cpp files to be combined into a single C++ sourceChristian Kandeler2017-01-261-0/+8
| | | | | | | | | | | | Compiling only one such file per product can speed up the build considerably. Users can enable this behavior by setting Qt.core.combineMocOutput. [ChangeLog] Introduced property Qt.core.combineMocOutput. Change-Id: Ib6939a2ab194670303abc57e9b24b6f8d243f0a0 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Make it configurable whether system headers become dependenciesChristian Kandeler2017-01-121-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | We spent an inordinate amount of resources on scanning and collecting system headers, of which there are a lot and which typically do not change in a relevant way. Make this behavior opt-in. ========== Performance data for Rule Execution ========== Old instruction count: 4331820265 New instruction count: 2557300533 Relative change: -41 % Old peak memory usage: 18892592 Bytes New peak memory usage: 16887880 Bytes Relative change: -11 % ========== Performance data for Null Build ========== Old instruction count: 521956733 New instruction count: 443021349 Relative change: -16 % Old peak memory usage: 12498888 Bytes New peak memory usage: 11186984 Bytes Relative change: -11 % [ChangeLog] Introduced cpp.treatSystemHeadersAsDependencies Change-Id: Iae9d9ca63852fb38a68e8dd2cc10b512eafe15e1 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Merge 1.7 into masterChristian Kandeler2017-01-061-6/+5
|\ | | | | | | Change-Id: I60317a888384aef68e887a0cd5fd58dd57ea10de
| * Clean up the documentation for the Scanner itemChristian Kandeler2017-01-051-6/+5
| | | | | | | | | | Change-Id: Ie80e267263a59458862cfcfb54394b702e201d28 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Change the default base directory for entries of the "files" listChristian Kandeler2016-12-232-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It used to be the product source directory, but that is unintuitive and usually not what the user wants when groups are pulled in from other files such as modules. Also add documentation for this, which was missing altogether. [ChangeLog] The base directory for source files changed from the product source directory to the parent directory of the file where the files are listed. Task-number: QBS-849 Change-Id: Ia424eab52adba8b3aed1e482a0e081fa35fb6429 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Add distribution-specific properties for include, library, and framework pathsJake Petroules2016-12-191-0/+25
| | | | | | | | | | | | | | | | | | | | This allows to ensure that custom (user) locations come before canonical shared locations of a particular distribution like MacPorts (/opt/local/include) or FreeBSD (/usr/local/include). Change-Id: Ia37b28408312300a42ccc31c7532ffdaf49c1c51 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Allow Probe items inside Project itemsDenis Klychkov2016-12-191-3/+20
|/ | | | | | | | | | | | As long as projects do not have unique names it required to change identification of the restored probes. They used product id before. Now they use combination of item id and file path. This also led to a requirement of non-empty id for all probes. Anyway probes are very rarely used without an id. Task-number: QBS-1034 Change-Id: Ibe462a3c0abfd9925f441d722b19cea1bcde3ee2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Documentation: split list of items into language and convenience itemsJake Petroules2016-12-0731-57/+109
| | | | | Change-Id: Ia2f48518a4a78070a05a494c46debc8903308fa2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Document how to set module properties on generated artifactsChristian Kandeler2016-12-062-1/+16
| | | | | | | Task-number: QBS-1056 Change-Id: Id9c0031c3b8cdbffdb3a67a9545a0e67b9dda508 Reviewed-by: Denis Klychkov <kd.snake@gmail.com> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Doc: Clarify that qbs.installRoot is read-only within project filesChristian Kandeler2016-12-061-1/+2
| | | | | | Task-number: QBS-1063 Change-Id: Ic3ffc3125dac884324c9439861857c56d27a9716 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Add support for building Inno Setup packagesJake Petroules2016-12-052-0/+200
| | | | | | | | [ChangeLog] Add support for building Inno Setup packages Task-number: QBS-936 Change-Id: I4cc8e2b39ad93a7aa307a38d88e3f61687c8d364 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Change the default value and behavior of Qt.core.resourceSourceBaseDenis Klychkov2016-12-021-2/+3
| | | | | | | | | | | | | | | | | | | The default value "undefined" tells the qrc file generator to use only the input file name as a resource alias. The benefits of changing the default value are as follows: 1) It's a bit weird to reset a normal value to undefined in qbs code. 2) This simplifies feature usage for output Artifacts and single files. 3) If one wants to put a hierarchical structure into a qrc file there are a lot of cases in which they have to specify resourceSourceBase manually. 4) When a Group with a wildcard and a prefix is used this makes user's intention a bit clearer. This strongly separates "I want this set of files" from "I want this directory structure". Task-number: QBS-1053 Change-Id: Ib6413643398dca475b4b71ad884202c9e7fb823a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add possibility to specify the base name of the generated qrc fileDenis Klychkov2016-12-021-0/+7
| | | | | | | Task-number: QBS-1043 Change-Id: I5f537f148792b0e2647d08d6e8004d79ae402f07 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Accurate handling of Qt.core.resourcePrefixDenis Klychkov2016-11-281-2/+1
| | | | | | | | | | | Previously the value of this property was taken only from the first input. That value became the only prefix for the whole qrc file. Now every unique value of resourcePrefix generates new <qresource> tag with the corresponding prefix. Change-Id: I2177b3bc38085014c41107225bcb4bd4c51ba58b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix input.fileName for Scanner itemsJoerg Bornemann2016-11-231-1/+1
| | | | | | | | | | | Let fileName contain the file name and filePath the file path like everywhere else. [ChangeLog] In Scanner items input.fileName now contains a file name, and input.filePath contains the file path. Change-Id: I3abc01989c56940df935047db56055936b3ab224 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Make list properties overridableChristian Kandeler2016-11-101-0/+8
| | | | | | | | Users should be able to "opt out" of values inserted by modules outside their control. Change-Id: I4f641b50ea203054759453402fa1e1795f6df4dd Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Let nested groups inherit the parent group's file tagsChristian Kandeler2016-11-101-5/+6
| | | | | | | Tags should behave the same as module properties in that respect. Change-Id: I5cbfde9c2cf90eef93feef0a8ffd894309341577 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Improve the documentation of the Rule itemChristian Kandeler2016-10-282-61/+102
| | | | | | | | | | | We should make it easier for users to find out how to write their own rules. Task-number: QBS-880 Task-number: QBS-1012 Change-Id: I5469a5b17a4f1967db0dd4c281e5292124a2928c Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add support for generating qrc filesChristian Kandeler2016-10-281-0/+18
| | | | | | | | [ChangeLog] Added support for generating qrc files. Change-Id: I9c5d703fcb6f8c14606d5abf66e8edfd4959f364 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Add support for the QtScxml moduleChristian Kandeler2016-10-201-0/+52
| | | | | | | [ChangeLog] Added support for QtScxml module. Change-Id: I1ad8d51a3d9532d4a24270e4cc13f26f51620b07 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Merge 1.6 into masterChristian Kandeler2016-10-171-0/+7
|\ | | | | | | Change-Id: Ie98233d955f3695da0b20069fb2317931e353e4e
| * Introduce property cpp.linkerWrapperThomas Epting2016-10-101-0/+7
| | | | | | | | | | | | | | | | | | | | This allows integration with tools like Bullseye Coverage. Task-number: QBS-1000 Change-Id: I318599a9df0f082a096fb72db7a8878b15e571cc Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* | Cpp Module: Add soVersion propertyChristian Kandeler2016-09-301-0/+6
| | | | | | | | | | | | | | | | | | | | | | People must be able to set the version part of their shared library's soname. So far, we hardcode it to the major part of the product version, but that's not always right. [ChangeLog] Introduced cpp.soVersion. Change-Id: Ie06d5b88d0b3ee62f5924d58407e2a88e9e6f90d Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Update license headersIikka Eklund2016-08-2955-934/+768
| | | | | | | | | | | | | | | | | | | | Patch-set 3 includes rest of the files. Every source file needs to have up-to-date license headers in order to pass ci. Change-Id: I55ed96910b5cb13513f80eb118feafcdaa32e8b0 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* | Merge 1.6 into masterChristian Kandeler2016-08-191-1/+10
|\| | | | | | | Change-Id: Id711e244f207d6c4f08e240ef4c033f344b530fc
| * Automatically escape arguments in cpp.linkerFlags/platformLinkerFlagsJake Petroules2016-08-161-1/+3
| | | | | | | | | | | | | | | | | | | | [ChangeLog] Added automatic escaping of arguments passed to the cpp.linkerFlags and cpp.platformLinkerFlags properties using the -Wl or -Xlinker syntaxes. To revert to the old behavior, Project.minimumQbsVersion can be set to a version lower than 1.6. Change-Id: Ibe9d0fa3c9acf5062428ce1c3bc4d840e1cec4b3 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Introduce cpp.driverFlagsJake Petroules2016-08-151-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | This property allows specifying a set of flags to pass to the compiler driver. Effectively this is similar to specifying flags in both *compilerFlags and linkerFlags, except driverFlags will never be passed to the system linker. [ChangeLog] Introduced cpp.driverFlags, which allows specifying flags to be passed to the compiler driver (in any mode), but never the system linker. Change-Id: I2171246f3b20cbaca74114cf4fa0b6d38c23c621 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge 1.6 into masterChristian Kandeler2016-08-091-6/+0
|\| | | | | | | Change-Id: Ic2903bf480a73ff8644ea6f6af2aadb419af40e4
| * Get rid of Android hard float "ABI"Jake Petroules2016-07-301-6/+0
| | | | | | | | | | | | | | | | | | | | This was never recommended for use, and has been removed in the latest Android NDK r12. See https://github.com/android-ndk/ndk/blob/master/docs/HardFloatAbi.md for full details on the matter. Task-number: QBS-989 Change-Id: I49fd1b7527d43e8b6caa2b905a41a6f0b1e5b4af Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* | Deprecate the "moduleProperties" functionChristian Kandeler2016-08-041-2/+2
| | | | | | | | | | | | | | | | Ever since we introduced module merging, there has been no difference between moduleProperty() and moduleProperties(). Change-Id: I3f9a9df3f24bf971828e774a5f687356509df2ca Reviewed-by: Jake Petroules <jake.petroules@qt.io>