aboutsummaryrefslogtreecommitdiffstats
path: root/doc
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* Doc: Update the copyright year in the page footer to 2016Leena Miettinen2016-11-101-1/+1
| | | | | | | Change-Id: If2e0e7c455359b4124a5fa5de63f0f553610ed92 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Topi Reiniƶ <topi.reinio@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Assume UTF-8 encoding for qbs project filesChristian Kandeler2016-11-081-0/+1
| | | | | | | | Like QML has been doing forever. Task-number: QBS-941 Change-Id: I0e46003740b68f2172c623043a0861910c1fe29d 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-2957-951/+820
| | | | | | | | | | | | | | | | | | | | 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>
* | Qt.core: Add property for setting extra plugin metadataChristian Kandeler2016-08-011-0/+10
| | | | | | | | | | | | | | Task-number: QBS-998 Change-Id: I8f3999078bc3fec2001b5ffec9b1f51ba9848b56 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Merge 1.6 into masterChristian Kandeler2016-07-293-0/+135
|\| | | | | | | Change-Id: I645e4b1dfe6fada1f3ff8a56be07ef5d6647b453
| * Qt.core module: Add property for passing extra options to mocChristian Kandeler2016-07-271-0/+5
| | | | | | | | | | | | | | | | This is needed sometimes. Task-number: QBS-998 Change-Id: Idd15f79ec8996b4df5311425727e38ea8d6eebae Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| * Add module for lex & yacc supportChristian Kandeler2016-07-261-0/+119
| | | | | | | | | | | | | | | | | | | | | | These tools are popular enough to warrant seamless integration out of the box. [ChangeLog] Added lex_yacc module. Change-Id: I2b31f0e527b1d467e9daa0e239eb58d2aea83f69 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| * Introduce cpp.linkerModeJake Petroules2016-07-221-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This property allows qbs to automatically select an appropriate linker based on the objects being linked. The new behavior is to automatically use the C++ compiler driver for linking if any of the objects being linked were compiled from C++ or Objective-C++ sources, otherwise the C compiler driver if any of the objects being linked were compiled from C or Objective-C sources, otherwise the system linker. To retain the old behavior, cpp.linkerName can be set to cpp.cxxCompilerName, and cpp.linkerMode to "manual". Qbs will also avoid passing the -stdlib option or linking c++abi on Linux unless any of the objects being linked were compiled from C++ or Objective-C++ sources. As a result the default behavior for building a pure C application or pure ASM application with Qbs is to NOT link to the C++ standard library or any other supporting C++ libraries. [ChangeLog] Introduced cpp.linkerMode property to allow selection of the correct linker (C driver, C++ driver, or system linker) based on the objects being linked Change-Id: Ic16e31a3072c9e296c348783a21717902c15bff6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Allow nested group itemsChristian Kandeler2016-07-281-3/+15
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This serves two use cases. Use case 1: Groups with overlapping conditions can be structured more naturally, possibly getting rid of redundant property assignments. Consider this: Group { condition: qbs.targetOS.contains("unix") cpp.dynamicLibraries: ["pthread"] files: ["unix_all.cpp"] } Group { condition: qbs.targetOS.contains("linux") cpp.dynamicLibraries: ["pthread", "dl"] files: ["linux.cpp"] } Group { condition: qbs.targetOS.contains("unix") && !qbs.targetOS.contains("linux") cpp.dynamicLibraries: ["pthread"] files: ["unix_nonlinux.cpp"] } Whereas now we can write: Group { condition: qbs.targetOS.contains("unix") cpp.dynamicLibraries: ["pthread"] files: ["unix_all.cpp"] Group { condition: qbs.targetOS.contains("linux") cpp.dynamicLibraries: outer.concat(["dl"]) files: ["linux.cpp"] } Group { condition: !qbs.targetOS.contains("linux") files: ["unix_nonlinux.cpp"] } } Use case 2: Putting source files into a dedicated project file which can be instantiated from different products (similar to pri files in qmake) becomes much more useful when these files can actually contain more than one group. In this context, the top-level Group item will often act purely as a structural element, satisfying the QML syntax' requirement of a single root item. [ChangeLog] Made the Group item nestable. Change-Id: Ie1d7bed7bca33f6f023b625e8726d2e8db08e45d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Allow to check for module versionChristian Kandeler2016-07-072-0/+21
| | | | | | | | | | | | | Introduce a "version" property to the Module item and corresponding properties to the Depends item to set constraints on that version. [ChangeLog] Introduced the ability to check a module's version in a Depends item. Change-Id: I583b40216fb91af21f4e79ad403a7e327215ff79 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Merge 1.5 into 1.6Jake Petroules2016-06-2812-20/+26
|\ | | | | | | Change-Id: If1a2c368170d89d5e6e11b08a32b37901d51eb1d
| * Do the OS X to macOS rename.v1.5.2Jake Petroules2016-06-2712-22/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog] The "osx" value in qbs.hostOS and qbs.targetOS has been replaced with "macos". For backwards compatibility, qbs.hostOS will still contain "osx" in addition to "macos", and an error will be printed if qbs.targetOS contains "osx" but not "macos". Specifying "macos" without "osx" is allowed. These checks are subject to be removed in a future version of qbs, so update your hostOS and targetOS checks accordingly. [ChangeLog] cpp.minimumOsxVersion has been deprecated and replaced with cpp.minimumMacosVersion. cpp.minimumOsxVersion is subject to be removed in a future version of qbs, so update your projects accordingly. Change-Id: I479891829dff6eb6750cb2a04e1395f085896f63 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Merge 1.5 into master.Christian Kandeler2016-06-271-0/+42
|\| | | | | | | Change-Id: I0d15404445ffbadfd5fb2277630650928bb24b05
| * Docs: List the supported property types.Christian Kandeler2016-06-241-0/+42
| | | | | | | | | | | | | | Task-number: QBS-983 Change-Id: Id0bd4a91f6afbe04621cfff28b0ef43dcfeee69b Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Add new cpp property "systemRunPaths".Christian Kandeler2016-06-201-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The concrete use case is to prevent such paths from getting into the list of rpaths, which can mess with the look-up of libraries in the case where we linked against a different version than the one provided by the system. [ChangeLog] Introduced property cpp.systemRunPaths. Task-number: QBS-921 Change-Id: I67a17bbebca22bfadf0932ecc6cc0cfcffea310a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Stop special casing qbs.buildVariant in command line handling.Jake Petroules2016-06-202-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This introduces qbs.configurationName, which takes the place of qbs.buildVariant in the command line and acts as a unique identifier for each build configuration, rather than relying on the combination of qbs.buildVariant and the profile name to do so. No longer special casing qbs.buildVariant allows the variant to be decoupled from the build configuration, and allow scenarios where a project may contain products hardcoded for particular build variants, and in future, special debug-and-release builds which create a single framework product containing multiple build variants. Incidentally, this change allows building multiple configurations of the same build variant and profile name combination, since the build configuration is no longer keyed on the aggregate of those values. Building for different profiles with the same configuration name in parallel is now no longer possible, but this is easily worked around by simply specifying different configuration names for such combinations. For example, the following is now possible: qbs \ static profile:a qbs.buildVariant:release project.useStaticLibraries:true \ dynamic profile:a qbs.buildVariant:release project.useStaticLibraries:false [ChangeLog] Each build configuration now requires a unique name, which is specified on the command line in the same place that qbs.buildVariant used to be specified. This allows building for multiple configurations with the same variant. Change-Id: I96ab9fc96861ab7e6a04a7d291a093115c22010e Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Merge 1.5 into master.Christian Kandeler2016-06-172-2/+38
|\| | | | | | | Change-Id: I93e4943cf8112ce1088c34a43928d2133bc7dca7
| * Docs: Clarify the connection between file tags, rules and product type.Christian Kandeler2016-06-162-2/+32
| | | | | | | | | | | | Task-number: QBS-984 Change-Id: I4324e387ec4124f3f5f638ab8d627fc33f6f21a9 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * Doc: Show syntax for multiple filesKai Koehne2016-06-121-0/+6
| | | | | | | | | | | | Change-Id: I3a2361865036573237f1f87e2967f149bbf218f2 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Cache the results of probes.Christian Kandeler2016-06-151-0/+3
| | | | | | | | | | | | | | | | | | | | | | Probes are often used to call external processes, which can be expensive. We do not want them to be executed every time a project is re-resolved. So cache the results and provide the means to force re- execution if something changes externally. Task-number: QBS-25 Change-Id: I5c48a6f657f5829b72df7677b566177502655c5e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Merge remote-tracking branch 'origin/1.5'Joerg Bornemann2016-06-0856-64/+64
|\| | | | | | | | | | | | | | | Conflicts: doc/reference/items/transformer.qdoc share/qbs/modules/cpp/GenericGCC.qbs Change-Id: I45560834560019b18274c373c45651eb8aadd206
| * Replace 'the Qt build suite' with 'Qbs' in copyright notices.Jake Petroules2016-06-0656-56/+56
| | | | | | | | | | | | Change-Id: I885d94bb14b325dc36767a840ebdb0be1fb59dd2 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * Avoid using the term "Qt Build Suite" in Qbs documentation.Jake Petroules2016-06-042-9/+9
| | | | | | | | | | | | | | | | | | This term is not used by anyone (it's always written as "Qbs" and pronounced "cubes") and it is ultimately confusing to users and detracts from the identity of the product, especially its pronunciation. Change-Id: Ifb76d059cafc33ce3fa686ddb3d7d67f47084faf Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* | Determine the compiler's default include and lib directories.Jake Petroules2016-06-061-7/+42
| | | | | | | | | | | | | | | | This fixes an issue where moc may fail to find some headers when building Qt or projects that use Qt. Change-Id: I52981139a3127539a4d5d9ba6e8d61575f7a0082 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* | Bump required Qt version to 5.4.0Orgad Shaneh2016-06-061-7/+1
| | | | | | | | | | | | | | | | | | | | | | Required for using new functions of QTimer. Get rid of workarounds and helper functions that support previous versions. Change-Id: I13bec075ce3014083120834a402bdc213df10be9 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* | Merge 1.5 into master.Christian Kandeler2016-05-271-1/+1
|\| | | | | | | Change-Id: I85f81532d88798d71cb88552dd150189d72829bd
| * cpp module: enable exceptions by defaultSergey Petrov2016-05-241-1/+1
| | | | | | | | | | Change-Id: Icc4d9f5239ce1dc8fb8dd72bad4bdcfae1f51737 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* | Merge remote-tracking branch 'origin/1.5'Joerg Bornemann2016-05-181-1/+2
|\| | | | | | | | | | | | | | | Conflicts: qbs-resources/imports/QbsFunctions/functions.js qbs_version.pri Change-Id: I24c4c941d825e61ddd2e704c8cea29eaa9943997
| * Doc: Align code snippetsKai Koehne2016-05-181-1/+2
| | | | | | | | | | | | Change-Id: Id543798e8c00840504116d9077288327ab0f6543 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Deprecate the Transformer item.Christian Kandeler2016-05-116-126/+42
| | | | | | | | | | | | | | | | | | | | | | | | When dynamic rules were introduced, transformers became second-class citizens. They do not play well with rules, they introduce annoying additional code paths in the implementation and they are plain broken in several aspects. Now that rules with no inputs are supported, we don't need transformers anymore. Task-number: QBS-885 Change-Id: I316d8cffc91bb529f82350edc0b08358a80ae3fd Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Merge remote-tracking branch 'origin/1.5'Joerg Bornemann2016-05-061-1/+2
|\| | | | | | | Change-Id: Id80f889136961e0353982503c54d88ce6e929e0f
| * Add an "importingProduct" variable to the Export item.Christian Kandeler2016-05-031-1/+2
| | | | | | | | | | | | | | It was an oversight that we did not have this before. Change-Id: I6347be273273da301ca1ee3e23ff2ddda0a1553a Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>