qbs-src-1.10.1/000077500000000000000000000000001323434465400131545ustar00rootroot00000000000000qbs-src-1.10.1/.mailmap000066400000000000000000000026601323434465400146010ustar00rootroot00000000000000 qbs-src-1.10.1/LGPL_EXCEPTION.txt000066400000000000000000000022501323434465400160700ustar00rootroot00000000000000The Qt Company LGPL Exception version 1.1 As an additional permission to the GNU Lesser General Public License version 2.1, the object code form of a "work that uses the Library" may incorporate material from a header file that is part of the Library. You may distribute such object code under terms of your choice, provided that: (i) the header files of the Library have not been modified; and (ii) the incorporated material is limited to numerical parameters, data structure layouts, accessors, macros, inline functions and templates; and (iii) you comply with the terms of Section 6 of the GNU Lesser General Public License version 2.1. Moreover, you may apply this exception to a modified version of the Library, provided that such modification does not involve copying material from the Library into the modified Library's header files unless such material is limited to (i) numerical parameters; (ii) data structure layouts; (iii) accessors; and (iv) small macros, templates and inline functions of five lines or less in length. Furthermore, you are not required to apply this additional permission to a modified version of the Library. qbs-src-1.10.1/LICENSE.LGPLv21000066400000000000000000000635021323434465400152550ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! qbs-src-1.10.1/LICENSE.LGPLv3000066400000000000000000000175601323434465400152000ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd. Contact: http://www.qt.io/licensing You may use, distribute and copy the Qt GUI Toolkit under the terms of GNU Lesser General Public License version 3, which is displayed below. ------------------------------------------------------------------------- GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright © 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this licensedocument, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, “this License” refers to version 3 of the GNU Lesser General Public License, and the “GNU GPL” refers to version 3 of the GNU General Public License. “The Library” refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A “Combined Work” is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the “Linked Version”. The “Minimal Corresponding Source” for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The “Corresponding Application Code” for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. qbs-src-1.10.1/README000066400000000000000000000004511323434465400140340ustar00rootroot00000000000000Qbs === Qbs is a cross-platform build tool. The project's homepage is http://wiki.qt.io/qbs Qbs product documentation is available at: http://doc.qt.io/qbs/index.html For more information about building Qbs from sources, see "Appendix A: Building Qbs" at: http://doc.qt.io/qbs/building-qbs.html. qbs-src-1.10.1/VERSION000066400000000000000000000000071323434465400142210ustar00rootroot000000000000001.10.1 qbs-src-1.10.1/bin/000077500000000000000000000000001323434465400137245ustar00rootroot00000000000000qbs-src-1.10.1/bin/ibmsvc.xml000066400000000000000000000011221323434465400157250ustar00rootroot00000000000000 qbs-src-1.10.1/bin/ibqbs.bat000066400000000000000000000000751323434465400155160ustar00rootroot00000000000000@xgConsole /profile=%~dp0\ibmsvc.xml /command="qbs -j 20 %*" qbs-src-1.10.1/changelogs/000077500000000000000000000000001323434465400152665ustar00rootroot00000000000000qbs-src-1.10.1/changelogs/changes-1.10.0.md000066400000000000000000000035371323434465400177430ustar00rootroot00000000000000# General * Added the `vcs` module to provide VCS repository information. Git and Subversion are supported initially. * Added initial support for the Universal Windows Platform. * Improved a lot of error messages. # Language * Profiles can now be defined within a project using the `Profile` item. * Groups without a prefix now inherit the one of the parent group. * Both the `Module` and the `FileTagger` item now have a `priority` property, allowing them to override conflicting instances. * It is now possible to add file tags to generated artifacts by setting the new `fileTags` property in a group that has a `fileTagsFilter`. * Added new open mode `TextFile.Append`. * Added the `filePath` function to the `TextFile` class. * `Process` and `TextFile` objects in rules, commands and configure scripts are now closed automatically after script execution. # C/C++ Support * Added the `cpufeatures` module for abstracting compiler flags related to CPU features such as SSE. * Added property `cpp.discardUnusedData` abstracting linker options that strip unneeded symbols or sections. * Added property `cpp.variantSuffix` for making binary names unique when multiplexing products. * Added property `cpp.compilerDefinesByLanguage` providing the compiler's pre-defined macros. # Android * The deprecated `apkbuilder` tool is no longer used. # Qt * Added support for the Qt Quick compiler. * Added support for `qmlcachegen`. # Command-line interface * Removed some non-applicable options from a number of tools. * The `run` command can now deploy and run Android apps on devices, and deploy and run iOS and tvOS apps on the simulator. * Added new command `list-products`. # Documentation * Added porting guide for qmake projects. * Added in-depth descriptions of all command-line tools. * Added "How-to" for creating modules for third-party libraries. * Added a man page. qbs-src-1.10.1/changelogs/changes-1.10.1.md000066400000000000000000000012351323434465400177350ustar00rootroot00000000000000# Important bugfixes * Fix assertion on project loading (QBS-1275). * Fix crash when the "original" value is misused (QBS-1255). * Fix qtquickcompiler support for qml files in subdirectories (QBS-1261). * Fix constant rebuilding after moving an external header file (QBS-1285). * Fix GCC support for "bare metal" systems (QBS-1263, QBS-1265). * Fix using ids in Depends items (QBS-1264). * Fix access to module instances in dependency parameters (QBS-1253). * Fix race condition when creating Inno Setup, NSIS, or WiX installers. * Fix release builds for Android with NDK r12 and above (QBS-1256). * Fix parametrized dependencies in Export and Module items (QBS-1287). qbs-src-1.10.1/changelogs/changes-1.6.0000066400000000000000000000016311323434465400172620ustar00rootroot00000000000000* Added lex_yacc module. * Introduced property cpp.systemRunPaths. * Introduced the ability to check a module's version in a Depends item. * Introduced cpp.driverFlags, which allows specifying flags to be passed to the compiler driver (in any mode), but never the system linker. * Introduced cpp.linkerMode property to allow selection of the correct linker (C driver, C++ driver, or system linker) based on the objects being linked. * 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. * 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. qbs-src-1.10.1/changelogs/changes-1.6.1000066400000000000000000000004071323434465400172630ustar00rootroot00000000000000Features: * Added cpp.linkerWrapper property. Important bug fixes: * Fixed a number of bugs evaluating module properties (QBS-845, QBS-1005). * Fixed x86_64 > x86 cross compiling (QBS-1028). * Fixed dynamic rules with generated inputs (QBS-1029). qbs-src-1.10.1/changelogs/changes-1.7.0000066400000000000000000000020471323434465400172650ustar00rootroot00000000000000Features: * Added a generator for Visual Studio projects. * The Group item is now nestable. * Stricter type checking for properties. * Added support for generating qrc files. * Added full support for the QtScxml module. * Introduced cpp.soVersion. * Added support for building Inno Setup packages. * Tentative support for Visual Studio 2017. * We now assume UTF-8 encoding for project files. * In Scanner items, input.fileName now contains a filename rather than the full path. * Warnings encountered during project resolving are now stored and re-displayed when the project is loaded. * Documentation was improved in several places, most notably for the Rule item. * Support for the deprecated Transformer item was removed. Important bug fixes: * Long paths on Windows are handled (QBS-1068). * Cyclic module dependencies are detected (QBS-1044). * The libqbscore soname now includes the minor version, so that it will not stay the same across ABI changes (QBS-1002). qbs-src-1.10.1/changelogs/changes-1.7.1000066400000000000000000000003711323434465400172640ustar00rootroot00000000000000Important bug fixes: * Fixed race condition in qmake build (QBS-1091) * Qt Creator no longer leaves empty build directories behind after cancelled project loading (QTCREATORBUG-17543) * Fixed an exception crossing the API boundary qbs-src-1.10.1/changelogs/changes-1.7.2000066400000000000000000000004521323434465400172650ustar00rootroot00000000000000Important bug fixes: * macOS: Fixed App Extension builds on older versions of Xcode/macOS * Windows: Fixed handling of files on network shares * Fixed syntax error in Qt module that occurred with static Qt builds * Several fixes for the Visual Studio generator (QBS-1077, QBS-1100) qbs-src-1.10.1/changelogs/changes-1.8.0000066400000000000000000000031701323434465400172640ustar00rootroot00000000000000Features: * General: * It is no longer strictly required to provide a profile. * Sub-second timestamp resolutions are now supported on Unix systems. * Added a convenient replacement for product.moduleProperty("module", "property"), namely product.module.property. * 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. * Added new tool qbs-create-project to set up a new qbs project from an existing source tree. * FileTagger items can now have conditions. * Probe items can now appear directly under a Project item. * Cpp module: * Added support for QNX and the QCC toolchain * Added the cpp.useRPathLink property to control whether to use the -rpath-link linker option. * Provided the means to easily combine source files for the C language family in order to support "amalgamation builds". * Introduced cpp.treatSystemHeadersAsDependencies. * Qt modules: * Introduced property Qt.core.combineMocOutput. * Introduced Qt.core.enableKeywords for simple disabling of the "signals", "slots" and "emit" symbols. Important bug fixes: * Improved scalability of parallel builds on Linux by starting Process commands via a dedicated launcher process. Behavior changes: * The base directory for source files changed from the product source directory to the parent directory of the file where the files are listed. qbs-src-1.10.1/changelogs/changes-1.8.1000066400000000000000000000007761323434465400172760ustar00rootroot00000000000000Important bug fixes: * Qbs-specific build errors are now correctly linked in Qt Creator's issues pane (QBS-1151). * Fixed automatic base profile assignment for MSVC Qt installations (QBS-1141) * Various QNX fixes (QBS-1136, QBS-1137, QBS-1138, QBS-1139, QBS-1143). Behavior changes: * Users now get early error messages if they forget the "modules", "products" or "projects" prefix in command line property overrides such as "modules.cpp.enableExceptions:false". qbs-src-1.10.1/changelogs/changes-1.9.0.md000066400000000000000000000053121323434465400176640ustar00rootroot00000000000000# General * Setting module property values from the command line can now be done per product. * Introduced new properties `qbs.architectures` and `qbs.buildVariants` to allow product multiplexing by `qbs.architecture` and `qbs.buildVariant`, respectively. * When rebuilding a project, the environment, project file and property values are taken from the existing build graph. # Language * `Depends` items can now be parameterized to set special module parameters for one particular product dependency. The new item type `Parameter` is used to declare such parameters in a module. The new item type `Parameters` is used to allow products to set default values for such parameters in their `Export` item. * The functions `loadExtension` and `loadFile` have been deprecated and will be removed in a future version. Use the `require` function instead. # Custom Rules and Commands * Artifacts corresponding to the `explicitlyDependsOn` property are now available under this name in rules and commands. * A rule's `auxiliaryInputs` and `explicitlyDependsOn` tags are now also matched against rules of dependencies, if these rules are creating target artifacts. * Rules now have a property `requiresInputs`. If it is `false`, the rule will be run even if no artifacts are present that match its input tags. * Added a new property `relevantEnvironmentVariables` to the `Command` class. Use it if the command runs an external tool whose behavior can be influenced by special environment variables. # C/C++ Support * Added the `cpp.link` parameter to enable library dependencies to be excluded from linking. * When pulling in static library products, the new `Depends` parameter `cpp.linkWholeArchive` can now be specified to force all the library's objects into the target binary. * When pulling in library products, the new `Depends` parameter `cpp.symbolLinkMode` can now be specified to control how the library is linked into the target binary on Apple platforms: specifically, whether the library is linked as weak, lazy, reexported, and/or upward (see the `ld64` man page for more information). * The property `cpp.useCxxPrecompiledHeader`, as well as the variants for the other languages, now defaults to true. * The property `cpp.cxxLanguageVersion` now gets mapped to MSVC's `/std` option, if applicable. # Apple * Added support for building macOS disk images. # Android * Product multiplexing is no longer done via profiles, but via architecture, employing the new `qbs.architectures` property (see above). As a result, the `setup-android` command now sets up only one profile, rather than one for each architecture. * Added support for NDK Unified Headers. # Documentation * Added a "How-to" section. qbs-src-1.10.1/changelogs/changes-1.9.1.md000066400000000000000000000003731323434465400176670ustar00rootroot00000000000000# Important bugfixes * Lower the response file threshold on Windows to fix build failures with mingw (QBS-1201). * Fix explicitly specified build variant being ignored for Darwin targets (QBS-1202). * Fix building for the AVR architecture (QBS-1203). qbs-src-1.10.1/dist/000077500000000000000000000000001323434465400141175ustar00rootroot00000000000000qbs-src-1.10.1/dist/.gitignore000066400000000000000000000000021323434465400160770ustar00rootroot00000000000000* qbs-src-1.10.1/doc/000077500000000000000000000000001323434465400137215ustar00rootroot00000000000000qbs-src-1.10.1/doc/appendix/000077500000000000000000000000001323434465400155315ustar00rootroot00000000000000qbs-src-1.10.1/doc/appendix/qbs-porting.qdoc000066400000000000000000000351071323434465400206540ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \previouspage building-qbs.html \page porting-to-qbs.html \nextpage attributions.html \title Appendix B: Migrating from Other Build Systems You can use the \c {qbs create-project} command to automatically generate \QBS project files from an arbitrary directory structure. This is a useful starting point when migrating from other build tools, such as qmake or CMake. To use the tool, switch to the project directory and run the \c {qbs create-project} command, which is located in the \c bin directory of the \QBS installation directory (or the Qt Creator installation directory). After generating the initial .qbs file, add the missing configuration variables and functions to it, as described in the following sections. \section1 Migrating from qmake The following sections describe the \QBS equivalents of qmake variable values. \section2 CONFIG Specify project configuration and compiler options. \section3 console Set the \l{Product Item}{consoleApplication} property to \c true for the \l{Application Item}{Application}, \l{CppApplication Item}{CppApplication}, or \l{QtApplication Item}{QtApplication} item. For example: \code Application { name: "helloworld" files: "main.cpp" Depends { name: "cpp" } consoleApplication: true } \endcode \section3 ordered This qmake variable has no direct equivalent in \QBS. Instead, the build order is determined by implicit and explicit dependencies between products. To add an explicit dependency, add a \l{Depends Item}{Depends item} to a \l{Product Item}{product}: \code CppApplication { name: "myapp" Depends { name: "mylib" } } \endcode The \c myapp product depends on and links to the \c mylib product, and is therefore built after it. \section3 qt In qmake, the Qt dependency is implicit, whereas in \QBS it is not. If \c {CONFIG -= qt}, add a \l{Depends Item}{Depends item} to specify that the \l{Product Item}{product} depends on the \l{Module cpp}{cpp module}: \code Product { Depends { name: "cpp" } } \endcode \section2 DEFINES Set the \l{Module cpp}{cpp.defines} property for the \l{Product Item}{product}. \note To reference \c cpp.defines, you must specify a dependency on the \l{Module cpp}{cpp} module. \code Product { Depends { name: "cpp" } cpp.defines: ["SUPPORT_MY_FEATURES"] } \endcode \section2 DESTDIR We recommend that you use the \l{Installing Files}{installation mechanism} to specify the location of the target file: \code Application { Group { name: "Runtime resources" files: "*.qml" qbs.install: true qbs.installDir: "share/myproject" } Group { name: "The App itself" fileTagsFilter: "application" qbs.install: true qbs.installDir: "bin" } } \endcode If that is not possible, you can use the \c destinationDirectory property: \code DynamicLibrary { name: "mydll" destinationDirectory: "libDir" } \endcode \section2 HEADERS, SOURCES, FORMS, RESOURCES Include header, source, form, and resource files as values of the \c files property of the \l{Product Item}{product}: \code QtApplication { name: "myapp" files: ["myapp.h", "myapp.cpp", "myapp.ui", "myapp.qrc"] } \endcode \QBS uses \l{FileTagger Item}{file taggers} to figure out what kind of file it is dealing with. \section2 ICON There is no direct equivalent in \QBS. If you add a \l{Depends Item} {dependency} to the \l{Module ib}{ib module} and add the \c .xcassets directory as a value of the \c files property of the \l{Product Item} {product}, \QBS takes care of setting the application icon automatically when building for Apple platforms: \code Application { name: "myapp" files [".xcassets"] Depends { name: "ib" } } \endcode Alternatively, you can set the icon name as the value of the \l{Module bundle}{bundle.infoPlist} parameter, specify a dependency to the \c ib module, and add the application \c .icns file as a value of the \c files property: \code Application { name: "myapp" files ["myapp.icns"] Depends { name: "ib" } bundle.infoPlist: ({"CFBundleIconFile": "myapp"}) \endcode \section2 INCLUDEPATH Add the paths to the include files as values of the \l{Module cpp} {cpp.includePaths} property: \code CppApplication { cpp.includePaths: ["..", "some/other/dir"] } \endcode \section2 LIBS For libraries that are part of the project, use \l{Depends Item} {Depends items}. To pull in external libraries, use the \l{Module cpp}{cpp.libraryPaths} property for the Unix \c -L (library path) flags and the \c cpp.dynamicLibraries and \c cpp.staticLibraries properties for the \c -l (library) flags. For example, \c {LIBS += -L/usr/local/lib -lm} would become: \code CppApplication { cpp.libraryPaths: ["/usr/local/lib"] cpp.dynamicLibraries: ["m"] } \endcode \section2 OUT_PWD Use the \c product.buildDirectory property of the \l{Product Item}{product} to refer to the base output directory of the generated artifacts. \section2 PWD Corresponds to the the file-scope variable \c path. \section2 _PRO_FILE_ Corresponds to the file-scope variable \c filePath when used in a \l{Project Item}{project} or \l{Product Item}{product}. \section2 _PRO_FILE_PWD_ Corresponds to the \c sourceDirectory property of a \l{Project Item}{project} or \l{Product Item}{product}. \section2 QMAKE_ASSET_CATALOGS Add a \l{Depends Item}{dependency} to the \l{Module ib}{ib module} and add the \c .xcassets directory as a value of the \c files property of the \l{Product Item}{product}: \code Application { name: "myapp" files [".xcassets"] Depends { name: "ib" } } \endcode \section2 QMAKE_BUNDLE_DATA For the time being, you can manually place files in the appropriate location using the \l{Installing Files}{installation mechanism}. Better solutions are under development. \section2 QMAKE_BUNDLE_EXTENSION Set the \c bundle.extension property for the \l{Module bundle}{bundle}. \note Unlike qmake, \QBS automatically prepends a period (.) to the property value. \section2 QMAKE_{C,CXX,OBJECTIVE}_CFLAGS{_DEBUG,_RELEASE} Use the \c cpp.commonCompilerFlags property of the the \l{Module cpp}{cpp} module or the properties corresponding to each compiler flags variable: \table \header \li qmake Variable \li cpp Module Property \row \li \c QMAKE_CFLAGS_DEBUG \c QMAKE_CFLAGS_RELEASE \li \c cpp.cCompilerFlags \row \li \c QMAKE_CXXFLAGS_DEBUG \c QMAKE_CXXFLAGS_RELEASE \li \c cpp.cxxCompilerFlags \row \li \c QMAKE_OBJECTIVE_CFLAGS \li \c cpp.objcCompilerFlags \c cpp.objcxxCompilerFlags \endtable Use \l{Properties Item}{Properties items} or simple conditionals as values of the \l{Module qbs}{qbs.buildVariant} property to simulate the \c _DEBUG and\c _RELEASE variants of the qmake variables. \section2 QMAKE_FRAMEWORK_BUNDLE_NAME Set the \c bundle.bundleName property (which is derived from \c product.target) combined with \c bundle.extension for the \l{Module bundle}{bundle}. \section2 QMAKE_FRAMEWORK_VERSION Set the \c bundle.frameworkVersion property for the \l{Module bundle} {bundle}. \section2 QMAKE_INFO_PLIST Include the \c info.plist file as a value of the \c files property of the \l{Product Item}{product} and specify a dependency to the \l{Module bundle} {bundle} module: \code Application { name: "myapp" files ["info.plist"] Depends { name: "bundle" } } \endcode \QBS will automatically add any necessary properties to your \c Info.plist file. Typically, it determines the appropriate values from the other properties in the project, and therefore you do not need to use the \c {Info.plist.in > Info.plist} configuration mechanism. Further, you almost never need to embed placeholders into the source \c Info.plist file. Set the \c bundle.processInfoPlist property to \c false to disable this behavior: \code \\ ... bundle.processInfoPlist: false \endcode In addition to, or instead of, using an actual \c Info.plist file, you can add \c Info.plist properties using the \c bundle.infoPlist property. For example: \code \\ ... bundle.infoPlist: ({ "NSHumanReadableCopyright": "Copyright (c) 2017 Bob Inc", "Some other key", "Some other value, & XML special characters are no problem! >;) 非凡!" }) \endcode \section2 QMAKE_LFLAGS Set the \l{Module cpp}{cpp.linkerFlags} property for the \l{Product Item} {product}. \section2 QMAKE_{MACOSX,IOS,TVOS,WATCHOS}_DEPLOYMENT_TARGET For each qmake deployment target variable, use the corresponding property of the \l{Module cpp}{cpp} module: \table \header \li qmake Variable \li cpp Module Property \row \li \c QMAKE_MACOSX_DEPLOYMENT_TARGET \li \c cpp.minimumMacosVersion \row \li \c QMAKE_IOS_DEPLOYMENT_TARGET \li \c cpp.minimumIosVersion \row \li \c QMAKE_TVOS_DEPLOYMENT_TARGET \li \c cpp.minimumTvosVersion \row \li \c QMAKE_WATCHOS_DEPLOYMENT_TARGET \li \c cpp.minimumWatchosVersion \endtable \section2 QMAKE_RPATHDIR Set the \l{Module cpp}{cpp.rpaths} property for the \l{Product Item} {product}. \section2 QMAKE_SONAME_PREFIX Use the \l{Module cpp}{cpp.sonamePrefix} property for the \l{Product Item} {product}. \section2 QML_IMPORT_PATH Used only for Qt Creator QML syntax highlighting. Inside a \l{Product Item} {Product}, \l{Application Item}{Application}, \l{CppApplication Item} {CppApplication}, or \l{QtApplication Item}{QtApplication}, create a \c qmlImportPaths property: \code Product { name: "myProduct" property stringList qmlImportPaths: [sourceDirectory + "/path/to/qml/"] } \endcode \section2 QT Add a \l{Depends Item}{Depends item} to the \l{Product Item}{product} that specifies the dependencies to \l{Qt Modules}{Qt modules}. For example: \code QtApplication { Depends { name: "Qt.widgets" } } \endcode You could also use the following form that is equivalent to the previous one: \code QtApplication { Depends { name: "Qt"; submodules: "widgets" } } \endcode \section2 QTPLUGIN Building static applications often requires linking to static QPA plugins, such as \c qminimal. You can use the following syntax to enable \QBS to link to the required plugins: \code QtApplication { name: "myapp" Depends { name: "Qt"; submodules: ["core", "gui", "widgets"] } Depends { name: "Qt.qminimal"; condition: Qt.core.staticBuild } } \endcode \section2 RC_FILE Add Windows resource files to the value of the \c files property for the \l{Product Item}{product}. \section2 TARGET Use the \c targetName property to specify the base file name of target artifacts of the \l{Product Item}{product}. \section2 TEMPLATE \section3 app Use \l{Application Item}{Application} or \l{CppApplication Item} {CppApplication} as the \l{Product Item}{product}: \code CppApplication { name: "helloworld" files: "main.cpp" } \endcode This is roughly equivalent to: \code Product { name: "helloworld" type: "application" files: "main.cpp" Depends { name: "cpp" } } \endcode \section3 lib Use either \l{DynamicLibrary Item}{DynamicLibrary} or \l{StaticLibrary Item} {StaticLibrary} as the \l{Product Item}{product}, depending on whether the value of \c CONFIG in the .pro file is \c shared or \c static. For example, if the value is \c shared: \code DynamicLibrary { name: "mydll" files: ["mySourceFile.cpp"] Depends { name: "cpp" } } \endcode \section3 subdirs In a \l{Project Item}{Project item}, specify subdirectories as values of the \c references property: \code Project { references: [ "app/app.qbs", "lib/lib.qbs" ] } \endcode \section2 message(), warning(), error(), log() You can use the JavaScript console printing functions (\c console.info, \c console.warn, \c console.error, and \c console.log) to print info, warning, error, and log messages to the console. \code Product { name: { console.info("--> now evaluating the product name"); return "theName"; } Depends { name: "cpp" } cpp.includePath: { throw "An error occurred." } } \endcode */ qbs-src-1.10.1/doc/classic.css000066400000000000000000000103201323434465400160500ustar00rootroot00000000000000BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { font-family: Arial, Geneva, Helvetica, sans-serif; } H1 { text-align: center; font-size: 160%; } H2 { font-size: 120%; } H3 { font-size: 100%; } h3.fn,span.fn { background-color: #eee; border-width: 1px; border-style: solid; border-color: #ddd; font-weight: bold; padding: 6px 0px 6px 10px; margin: 42px 0px 0px 0px; } hr { border: 0; color: #a0a0a0; background-color: #ccc; height: 1px; width: 100%; text-align: left; margin: 34px 0px 34px 0px; } table.valuelist { border-width: 1px 1px 1px 1px; border-style: solid; border-color: #dddddd; border-collapse: collapse; background-color: #f0f0f0; } table.indextable { border-width: 1px 1px 1px 1px; border-collapse: collapse; background-color: #f0f0f0; border-color:#555; font-size: 110%; } table td.largeindex { border-width: 1px 1px 1px 1px; border-collapse: collapse; background-color: #f0f0f0; border-color:#555; font-size: 120%; } table.valuelist th { border-width: 1px 1px 1px 2px; padding: 4px; border-style: solid; border-color: #666; color:white; background-color:#666; } th.titleheader { border-width: 1px 0px 1px 0px; padding: 4px; border-style: solid; border-color: #444; color:white; background-color:#555555; font-size: 110%; } th.largeheader { border-width: 1px 0px 1px 0px; padding: 4px; border-style: solid; border-color: #444; color:white; background-color:#555555; font-size: 120%; } p { margin-left: 4px; margin-top: 8px; margin-bottom: 8px; } a:link { color: #0046ad; text-decoration: none } a:visited { color: #672967; text-decoration: none } a.obsolete { color: #661100; text-decoration: none } a.compat { color: #661100; text-decoration: none } a.obsolete:visited { color: #995500; text-decoration: none } a.compat:visited { color: #995500; text-decoration: none } body { background: #ffffff; color: black } table.generic, table.annotated { border-width: 1px; border-color:#bbb; border-style:solid; border-collapse:collapse; } table td.memItemLeft { width: 180px; padding: 2px 0px 0px 8px; margin: 4px; border-width: 1px; border-color: #E0E0E0; border-style: none; font-size: 100%; white-space: nowrap } table td.memItemRight { padding: 2px 8px 0px 8px; margin: 4px; border-width: 1px; border-color: #E0E0E0; border-style: none; font-size: 100%; } table tr.odd { background: #f0f0f0; color: black; } table tr.even { background: #e4e4e4; color: black; } table.annotated th { padding: 3px; text-align: left } table.annotated td { padding: 3px; } table tr pre { padding-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; border: none; background: none } tr.qt-style { background: #96E066; color: black } body pre { padding: 0.2em; border: #e7e7e7 1px solid; background: #f1f1f1; color: black } table tr.qt-code pre { padding: 0.2em; border: #e7e7e7 1px solid; background: #f1f1f1; color: black } span.preprocessor, span.preprocessor a { color: darkblue; } span.comment { color: darkred; font-style: italic } span.string,span.char { color: darkgreen; } .title { text-align: center } .subtitle { font-size: 0.8em } .small-subtitle { font-size: 0.65em } .qmlitem { padding: 0; } .qmlname { white-space: nowrap; font-weight: bold; font-size: 125%; } .qmltype { font-weight: bold; font-size: 125%; } .qmlproto, .qmldoc { // border-top: 1px solid #84b0c7; } .qmlproto { padding: 0; //background-color: #e4e4e4;//#d5e1e8; //font-weight: bold; //-webkit-border-top-left-radius: 8px; //-webkit-border-top-right-radius: 8px; //-moz-border-radius-topleft: 8px; //-moz-border-radius-topright: 8px; } .qmldoc { border-top: 1px solid #e4e4e4; //padding: 2px 5px; //background-color: #eef3f5; //border-top-width: 0; //-webkit-border-bottom-left-radius: 8px; //-webkit-border-bottom-right-radius: 8px; //-moz-border-radius-bottomleft: 8px; //-moz-border-radius-bottomright: 8px; } .qmldoc p, .qmldoc dl, .qmldoc ul { //margin: 6px 0; } *.qmlitem p { //margin-top: 0px; //margin-bottom: 0px; } qbs-src-1.10.1/doc/codeattributions.qdoc000066400000000000000000000160231323434465400201550ustar00rootroot00000000000000/*! \contentspage attributions.html \ingroup attributions-libs \ingroup attributions-qbs \page qbs-attribution-ds_store.html attribution \target ds_store \title ds_store \brief MIT License Manipulate Finder .DS_Store files from Python Used in the qbs dmg module for building Apple disk images. The sources can be found in src/3rdparty/python/lib/python2.7/site-packages/ds_store. \l{https://github.com/al45tair/ds_store}{Project Homepage}, upstream version: 1.1.2 \badcode Copyright (c) 2014 Alastair Houghton \endcode \l{https://spdx.org/licenses/MIT.html}{MIT License}. \badcode Copyright (c) 2014 Alastair Houghton Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \endcode */ /*! \contentspage attributions.html \ingroup attributions-libs \ingroup attributions-qbs \page qbs-attribution-dmgbuild.html attribution \target dmgbuild \title dmgbuild \brief MIT License macOS command line utility to build disk images Used in the qbs dmg module for building Apple disk images. The sources can be found in src/3rdparty/python/lib/python2.7/site-packages/dmgbuild. \l{https://github.com/al45tair/dmgbuild}{Project Homepage}, upstream version: 1.3.1 \badcode Copyright (c) 2014 Alastair Houghton \endcode \l{https://spdx.org/licenses/MIT.html}{MIT License}. \badcode Copyright (c) 2014 Alastair Houghton Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \endcode */ /*! \contentspage attributions.html \ingroup attributions-libs \ingroup attributions-qbs \page qbs-attribution-mac_alias.html attribution \target mac_alias \title mac_alias \brief MIT License Generate/parse Mac OS Alias records from Python Used in the qbs dmg module for building Apple disk images. The sources can be found in src/3rdparty/python/lib/python2.7/site-packages/mac_alias. \l{https://github.com/al45tair/mac_alias}{Project Homepage}, upstream version: 2.0.6 \badcode Copyright (c) 2014 Alastair Houghton \endcode \l{https://spdx.org/licenses/MIT.html}{MIT License}. \badcode Copyright (c) 2014 Alastair Houghton Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \endcode */ /*! \contentspage attributions.html \ingroup attributions-libs \ingroup attributions-qbs \page qbs-attribution-biplist.html attribution \target biplist \title biplist \brief BSD 3-clause "New" or "Revised" License biplist is a library for reading/writing binary plists. Used in the qbs dmg module for building Apple disk images. The sources can be found in src/3rdparty/python/lib/python2.7/site-packages/biplist. \l{https://bitbucket.org/wooster/biplist}{Project Homepage}, upstream version: 1.0.2 \badcode Copyright (c) 2010, Andrew Wooster \endcode \l{https://spdx.org/licenses/BSD-3-Clause.html}{BSD 3-clause "New" or "Revised" License}. \badcode Copyright (c) 2010, Andrew Wooster All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of biplist nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \endcode */ qbs-src-1.10.1/doc/config/000077500000000000000000000000001323434465400151665ustar00rootroot00000000000000qbs-src-1.10.1/doc/config/macros.qdocconf000066400000000000000000000045071323434465400201760ustar00rootroot00000000000000macro.QBS = "Qbs" macro.qbsversion = $QBS_VERSION macro.aacute.HTML = "á" macro.Aring.HTML = "Å" macro.aring.HTML = "å" macro.Auml.HTML = "Ä" macro.author = "\\b{Author:}" macro.BR.HTML = "
" macro.copyright.HTML = "©" macro.eacute.HTML = "é" macro.gui = "\\b" macro.HR.HTML = "
" macro.iacute.HTML = "í" macro.key = "\\b" macro.macos = "macOS" macro.menu = "\\b" macro.oslash.HTML = "ø" macro.ouml.HTML = "ö" macro.QA = "\\e{Qt Assistant}" macro.QD = "\\e{Qt Designer}" macro.QL = "\\e{Qt Linguist}" macro.QQV = "\\e{Qt QML Viewer}" macro.param = "\\e" macro.raisedaster.HTML = "*" macro.rarrow.HTML = "→" macro.reg.HTML = "®" macro.return = "Returns" macro.starslash = "\\c{*/}" macro.begincomment = "\\c{/*}" macro.endcomment = "\\c{*/}" macro.uuml.HTML = "ü" macro.mdash.HTML = "—" macro.pi.HTML = "Π" macro.beginqdoc.HTML = "/*!" macro.endqdoc.HTML = "*/" macro.borderedimage = "\\div {class=\"border\"} \\image \1\n\\enddiv" macro.beginfloatleft.HTML = "
" macro.beginfloatright.HTML = "
" macro.endfloat.HTML = "
" macro.clearfloat.HTML = "
" macro.emptyspan.HTML = "" # Embed YouTube content by video ID - Example: \youtube dQw4w9WgXcQ # Also requires a .jpg thumbnail for offline docs. In .qdocconf, add: # # HTML.extraimages += images/dQw4w9WgXcQ.jpg # qhp.ProjectName.extraFiles += images/dQw4w9WgXcQ.jpg # macro.youtube.HTML = "
\n\n" \ "
\n" qbs-src-1.10.1/doc/config/qbs-project.qdocconf000066400000000000000000000021111323434465400211300ustar00rootroot00000000000000include($QT_INSTALL_DOCS/global/qt-cpp-defines.qdocconf) include($QT_INSTALL_DOCS/global/compat.qdocconf) include($QT_INSTALL_DOCS/global/fileextensions.qdocconf) project = "Qbs" description = "Qbs Manual" headerdirs = sourcedirs = .. imagedirs = ../images ../templates/images exampledirs = .. include(macros.qdocconf) sources.fileextensions = "*.qdoc" qhp.projects = Qbs qhp.Qbs.file = qbs.qhp qhp.Qbs.namespace = org.qt-project.qbs.$QBS_VERSION_TAG qhp.Qbs.virtualFolder = doc qhp.Qbs.indexTitle = Qbs qhp.Qbs.filterAttributes = qbs $QBS_VERSION qhp.Qbs.customFilters.Qbs.name = Qbs $QBS_VERSION qhp.Qbs.customFilters.Qbs.filterAttributes = qbs $QBS_VERSION qhp.Qbs.indexRoot = qhp.Qbs.subprojects = manual qhp.Qbs.subprojects.manual.title = Qbs Manual qhp.Qbs.subprojects.manual.indexTitle = Qbs Manual qhp.Qbs.subprojects.manual.type = manual # Doxygen compatibility commands macro.see = "\\sa" macro.function = "\\fn" navigation.homepage = "Qbs Manual" buildversion = "Qbs $QBS_VERSION" qbs-src-1.10.1/doc/config/style/000077500000000000000000000000001323434465400163265ustar00rootroot00000000000000qbs-src-1.10.1/doc/config/style/qt5-sidebar.html000066400000000000000000000014071323434465400213360ustar00rootroot00000000000000

Qbs Manual

qbs-src-1.10.1/doc/doc.pri000066400000000000000000000006511323434465400152040ustar00rootroot00000000000000include(../src/install_prefix.pri) include(doc_shared.pri) DOC_OUTDIR_POSTFIX = /html DOC_HTML_INSTALLDIR = $$QBS_INSTALL_PREFIX/share/doc/qbs DOC_QCH_OUTDIR = $$OUT_PWD/doc DOC_QCH_INSTALLDIR = $$QBS_INSTALL_PREFIX/share/doc/qbs include(doc_targets.pri) fixnavi.commands = \ cd $$shell_path($$PWD) && \ perl fixnavi.pl -Dqcmanual -Dqtquick \ qbs.qdoc QMAKE_EXTRA_TARGETS += fixnavi include(man/man.pri) qbs-src-1.10.1/doc/doc.qbs000066400000000000000000000024131323434465400151750ustar00rootroot00000000000000import qbs 1.0 Product { name: "qbs documentation" builtByDefault: false type: "qch" Depends { name: "Qt.core" } Depends { name: "qbsbuildconfig" } Depends { name: "qbsversion" } files: [ "../README", "classic.css", "external-resources.qdoc", "fixnavi.pl", "howtos.qdoc", "qbs.qdoc", "qbs-online.qdocconf", "config/*.qdocconf", "config/style/qt5-sidebar.html", "reference/**/*", "templates/**/*", "images/**", ] Group { name: "main qdocconf file" files: "qbs.qdocconf" fileTags: "qdocconf-main" } property string versionTag: qbsversion.version.replace(/\.|-/g, "") Qt.core.qdocEnvironment: [ "QBS_VERSION=" + qbsversion.version, "SRCDIR=" + path, "QT_INSTALL_DOCS=" + Qt.core.docPath, "QBS_VERSION_TAG=" + versionTag ] Group { fileTagsFilter: ["qdoc-output"] qbs.install: qbsbuildconfig.installHtml qbs.installDir: qbsbuildconfig.docInstallDir qbs.installSourceBase: Qt.core.qdocOutputDir } Group { fileTagsFilter: ["qch"] qbs.install: qbsbuildconfig.installQch qbs.installDir: qbsbuildconfig.docInstallDir } } qbs-src-1.10.1/doc/doc_shared.pri000066400000000000000000000007031323434465400165300ustar00rootroot00000000000000include(../qbs_version.pri) qbsdoc_version.name = QBS_VERSION qbsdoc_version.value = $$QBS_VERSION qbsdoc_versiontag.name = QBS_VERSION_TAG qbsdoc_versiontag.value = $$replace(QBS_VERSION, "[-.]", ) qbsdoc_qtdocs.name = QT_INSTALL_DOCS qbsdoc_qtdocs.value = $$[QT_INSTALL_DOCS/src] QDOC_ENV += qbsdoc_version qbsdoc_versiontag qbsdoc_qtdocs build_online_docs: \ DOC_FILES += $$PWD/qbs-online.qdocconf else: \ DOC_FILES += $$PWD/qbs.qdocconf qbs-src-1.10.1/doc/doc_targets.pri000066400000000000000000000070761323434465400167450ustar00rootroot00000000000000# Creates targets for building documentation # (adapted from qt_docs.prf) # # Usage: Define variables (details below) and include this pri file afterwards. # # QDOC_ENV - environment variables to set for the qdoc call (see example below) # DOC_INDEX_PATHS - list of paths where qdoc should search for index files of dependent # modules (Qt index path is included by default) # DOC_FILES - list of qdocconf files # DOC_OUTDIR_POSTFIX - html is generated in $$OUT_PWD/$$DOC_OUTDIR_POSTFIX # DOC_HTML_INSTALLDIR - path were to install the directory of html files # DOC_QCH_OUTDIR - path where to generated the qch files # DOC_QCH_INSTALLDIR - path where to install the qch files # DOC_TARGET_PREFIX - prefix for generated target names # # Example for QDOC_ENV: # ver.name = VERSION # ver.value = 1.0.2 # foo.name = FOO # foo.value = foo # QDOC_ENV = ver foo isEmpty(DOC_FILES): error("Set DOC_FILES before including doc_targets.pri") isEmpty(DOC_HTML_INSTALLDIR): error("Set DOC_HTML_INSTALLDIR before including doc_targets.pri") isEmpty(DOC_QCH_OUTDIR): error("Set DOC_QCH_OUTDIR before including doc_targets.pri") isEmpty(DOC_QCH_INSTALLDIR): error("Set DOC_QCH_INSTALLDIR before including doc_targets.pri") QT_TOOL_ENV = $$QDOC_ENV qtPrepareTool(QDOC, qdoc) QT_TOOL_ENV = !build_online_docs: qtPrepareTool(QHELPGENERATOR, qhelpgenerator) DOCS_BASE_OUTDIR = $$OUT_PWD/doc DOC_INDEXES += -indexdir $$shell_quote($$[QT_INSTALL_DOCS]) for (index_path, DOC_INDEX_PATHS): \ DOC_INDEXES += -indexdir $$shell_quote($$index_path) DTP = $$DOC_TARGET_PREFIX for (doc_file, DOC_FILES) { !exists($$doc_file): error("Cannot find documentation specification file $$doc_file") DOC_TARGET = $$replace(doc_file, ^(.*/)?(.*)\\.qdocconf$, \\2) DOC_TARGETDIR = $$DOC_TARGET DOC_OUTPUTDIR = $${DOCS_BASE_OUTDIR}/$${DOC_TARGETDIR}$${DOC_OUTDIR_POSTFIX} $${DTP}html_docs_$${DOC_TARGET}.commands = $$QDOC -outputdir $$shell_quote($$DOC_OUTPUTDIR) $$doc_file $$DOC_INDEXES QMAKE_EXTRA_TARGETS += $${DTP}html_docs_$${DOC_TARGET} !isEmpty($${DTP}html_docs.commands): $${DTP}html_docs.commands += && $${DTP}html_docs.commands += $$eval($${DTP}html_docs_$${DOC_TARGET}.commands) $${DTP}inst_html_docs.files += $$DOC_OUTPUTDIR !build_online_docs { $${DTP}qch_docs_$${DOC_TARGET}.commands = $$QHELPGENERATOR $$shell_quote($$DOC_OUTPUTDIR/$${DOC_TARGET}.qhp) -o $$shell_quote($$DOC_QCH_OUTDIR/$${DOC_TARGET}.qch) $${DTP}qch_docs_$${DOC_TARGET}.depends = $${DTP}html_docs_$${DOC_TARGET} QMAKE_EXTRA_TARGETS += $${DTP}qch_docs_$${DOC_TARGET} !isEmpty($${DTP}qch_docs.commands): $${DTP}qch_docs.commands += && $${DTP}qch_docs.commands += $$eval($${DTP}qch_docs_$${DOC_TARGET}.commands) $${DTP}inst_qch_docs.files += $$DOC_QCH_OUTDIR/$${DOC_TARGET}.qch } } !build_online_docs { $${DTP}qch_docs.depends = $${DTP}html_docs $${DTP}inst_qch_docs.path = $$DOC_QCH_INSTALLDIR $${DTP}inst_qch_docs.CONFIG += no_check_exist no_default_install no_build install_$${DTP}docs.depends = install_$${DTP}inst_qch_docs $${DTP}docs.depends = $${DTP}qch_docs INSTALLS += $${DTP}inst_qch_docs QMAKE_EXTRA_TARGETS += $${DTP}qch_docs install_$${DTP}docs } else { $${DTP}docs.depends = $${DTP}html_docs } $${DTP}inst_html_docs.path = $$DOC_HTML_INSTALLDIR $${DTP}inst_html_docs.CONFIG += no_check_exist no_default_install directory INSTALLS += $${DTP}inst_html_docs install_$${DTP}docs.depends += install_$${DTP}inst_html_docs QMAKE_EXTRA_TARGETS += $${DTP}html_docs $${DTP}docs unset(DTP) qbs-src-1.10.1/doc/external-resources.qdoc000066400000000000000000000037031323434465400204260ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \externalpage https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html#//apple_ref/doc/uid/TP40012302-CH7-SW28 \title Adopt the @2x Naming Convention */ /*! \externalpage https://login.qt.io/ \title Qt Account */ /*! \externalpage https://www.qt.io/ide/ \title Qt Creator */ /*! \externalpage https://www.qt.io/download/ \title Qt SDK */ /*! \externalpage https://chocolatey.org/packages/qbs \title Chocolatey */ /*! \externalpage https://www.macports.org/ports.php?by=name&substr=qbs \title MacPorts */ /*! \externalpage https://brew.sh/ \title Homebrew */ /*! \externalpage nolink \title macOS \internal */ qbs-src-1.10.1/doc/fixnavi.pl000066400000000000000000000147361323434465400157350ustar00rootroot00000000000000#! /usr/bin/perl -w ############################################################################# ## ## Copyright (C) 2016 The Qt Company Ltd. ## Contact: https://www.qt.io/licensing/ ## ## This file is part of Qbs. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial License Usage ## Licensees holding valid commercial Qt licenses may use this file in ## accordance with the commercial license agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and The Qt Company. For licensing terms ## and conditions see https://www.qt.io/terms-conditions. For further ## information use the contact form at https://www.qt.io/contact-us. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 3 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL3 included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 3 requirements ## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 2.0 or (at your option) the GNU General ## Public license version 3 or any later version approved by the KDE Free ## Qt Foundation. The licenses are as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 ## included in the packaging of this file. Please review the following ## information to ensure the GNU General Public License requirements will ## be met: https://www.gnu.org/licenses/gpl-2.0.html and ## https://www.gnu.org/licenses/gpl-3.0.html. ## ## $QT_END_LICENSE$ ## ############################################################################# use strict; my @files = (); my %defines = (); for (@ARGV) { if (/^-D(.*)$/) { $defines{$1} = 1; } elsif (/^-/) { printf STDERR "Unknown option '".$_."'\n"; exit 1; } else { push @files, $_; } } int(@files) or die "usage: $0 [-D]... \n"; my @toc = (); my %title2page = (); my $doctitle = ""; my $curpage = ""; my $intoc = 0; my %prev_skips = (); my %next_skips = (); my %define_skips = (); my %polarity_skips = (); my $prev_skip = ""; my $next_skip = ""; my $define_skip = ""; my $polarity_skip = 0; for my $file (@files) { my $skipping = 0; # no nested ifs! open FILE, $file or die "File $file cannot be opened.\n"; while () { if (/^\h*\\if\h+defined\h*\(\h*(\H+)\h*\)/) { $skipping = !defined($defines{$1}); if (!$intoc) { $define_skip = $1; $polarity_skip = $skipping; } } elsif (/^\h*\\else/) { $skipping = 1 - $skipping; } elsif (/^\h*\\endif/) { $skipping = 0; } elsif (keys(%title2page) == 1 && /^\h*\\list/) { $intoc++; } elsif (!$intoc) { if ($skipping && /^\h*\\previouspage\h+(\H+)/) { $prev_skip = $1; } elsif ($skipping && /^\h*\\nextpage\h+(\H+)/) { $next_skip = $1; } elsif (/^\h*\\page\h+(\H+)/) { $curpage = $1; } elsif (/^\h*\\title\h+(.+)$/) { if ($curpage eq "") { die "Title '$1' appears in no \\page.\n"; } if (length($define_skip)) { $define_skips{$1} = $define_skip; $polarity_skips{$1} = $polarity_skip; $prev_skips{$1} = $prev_skip; $next_skips{$1} = $next_skip; $define_skip = $prev_skip = $next_skip = ""; } $title2page{$1} = $curpage; $doctitle = $1 if (!$doctitle); $curpage = ""; } } else { if (/^\h*\\endlist/) { $intoc--; } elsif (!$skipping && /^\h*\\(?:o|li)\h+\\l\h*{(.*)}$/) { push @toc, $1; } } } close FILE; } my %prev = (); my %next = (); my $last = $doctitle; for my $title (@toc) { $next{$last} = $title2page{$title}; $prev{$title} = $title2page{$last}; $last = $title; } for my $file (@files) { open IN, $file or die "File $file cannot be opened a second time?!\n"; open OUT, '>'.$file.".out" or die "File $file.out cannot be created.\n"; my $cutting = 0; while () { if (!$cutting) { if (/^\h*\\contentspage/) { $cutting = 1; } } else { if (/^\h*\\title\h+(.+)$/) { if (defined($define_skips{$1})) { print OUT " \\if defined(".$define_skips{$1}.")\n"; if ($polarity_skips{$1}) { print OUT " \\previouspage ".$prev_skips{$1} if ($prev_skips{$1}); print OUT " \\else\n"; } } print OUT " \\previouspage ".$prev{$1} if ($prev{$1}); if (defined($define_skips{$1})) { if (!$polarity_skips{$1}) { print OUT " \\else\n"; print OUT " \\previouspage ".$prev_skips{$1} if ($prev_skips{$1}); } print OUT " \\endif\n"; } print OUT " \\page ".$title2page{$1}; if (defined($define_skips{$1})) { print OUT " \\if defined(".$define_skips{$1}.")\n"; if ($polarity_skips{$1}) { print OUT " \\nextpage ".$next_skips{$1} if ($next_skips{$1}); print OUT " \\else\n"; } } print OUT " \\nextpage ".$next{$1} if ($next{$1}); if (defined($define_skips{$1})) { if (!$polarity_skips{$1}) { print OUT " \\else\n"; print OUT " \\nextpage ".$next_skips{$1} if ($next_skips{$1}); } print OUT " \\endif\n"; } print OUT "\n"; $cutting = 0; } else { next; } } print OUT $_; } close OUT; close IN; rename($file.".out", $file) or die "Cannot replace $file with new version.\n"; } qbs-src-1.10.1/doc/howtos.qdoc000066400000000000000000000225021323434465400161150ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \previouspage custom-modules.html \nextpage reference.html \page howtos.html \title How-tos This page provides concrete instructions for common scenarios. \list \li \l{How do I build a Qt-based project?} \li \l{How do I make my app build against my library?} \li \l{How do I create a module for a third-party library?} \li \l{How do I create application bundles and frameworks on iOS, macOS, tvOS, and watchOS?} \li \l{How do I apply C/C++ preprocessor macros to only a subset of the files in my product?} \endlist \section1 How do I build a Qt-based project? First of all, your project files need to declare a Qt dependency. See \l{Qt Modules} for how to do that. To build the project, you need a matching \e profile. The following commands set up and use a Qt-specific profile: \code $ qbs setup-qt /usr/bin/qmake qt $ cd my_project $ qbs profile:qt \endcode If you plan to use this profile a lot, consider making it the default one: \code $ qbs config defaultProfile qt $ cd my_project $ qbs \endcode See \l{Managing Qt Versions} for more details. \note These instructions are only relevant for building from the command line. If you use Qt Creator, profiles are set up automatically from the information in the Kit. \section1 How do I make my app build against my library? This is achieved by introducing a \e dependency between the two products using the \l{Depends Item}{Depends item}. Here is a simple, but complete example: \code import qbs Project { CppApplication { name : "the-app" files : [ "main.cpp" ] Depends { name: "the-lib" } } DynamicLibrary { name: "the-lib" Depends { name: "cpp" } files: [ "lib.cpp", "lib.h", ] Export { Depends { name: "cpp" } cpp.includePaths: [product.sourceDirectory] } } } \endcode The product \c the-lib is a dynamic library. It expects other products to build against it, and for that purpose, it exports an include path (via an \l{Export Item}{Export item}), so that the source files in these products can include the library's header file. The product \c the-app is an application that expresses its intent to link against \c the-lib by declaring a dependency on it. Now \c main.cpp can include \c lib.h (because of the exported include path) and the application binary will link against the library (because the linker \l{Rule Item}{rule} in the \l{Module cpp}{cpp module} considers library dependencies as inputs). \note In a non-trivial project, the two products would not be defined in the same file. Instead, you would put them into files of their own and use the \l{Project Item}{Project item}'s \c references property to pull them into the project. The product definitions would stay exactly the same. In particular, their location in the project tree is irrelevant to the relationship between them. \section1 How do I create a module for a third-party library? If you have pre-built binary files in your source tree, you can create modules for them and then introduce dependencies between your project and the modules to pull in the functionality of a third-party library. Create the following folder structure to store the module files: \code $projectroot/modules/ThirdParty \endcode Then create a file in the directory that specifies the module properties for each supported toolchain. The filename must have the \c .qbs extension. The module will be pulled in if a product declares a dependency on it. In the following example, \c lib1.dylib is a multi-architecture library containing both 32-bit and 64-bit code. \code ---ThirdParty.qbs--- Module { Depends { name: "cpp" } cpp.includePaths: ["/somewhere/include"] Properties { condition: qbs.targetOS.contains("android") cpp.dynamicLibraries: ["/somewhere/android/" + Android.ndk.abi + "/lib1.so"] } Properties { condition: qbs.targetOS.contains("macos") cpp.dynamicLibraries: ["/somewhere/macos/lib1.dylib"] } Properties { condition: qbs.targetOS.contains("windows") && qbs.architecture === "x86" cpp.dynamicLibraries: ["/somewhere/windows_x86/lib1.lib"] } Properties { condition: qbs.targetOS.contains("windows") && qbs.architecture === "x86_64" cpp.dynamicLibraries: ["/somewhere/windows_x86_64/lib1.lib"] } } \endcode Finally, declare dependencies on \c ThirdParty in your project: \code import qbs CppApplication { name: "the-app" files: ["main.cpp"] Depends { name: "ThirdParty" } } \endcode \section1 How do I create application bundles and frameworks on iOS, macOS, tvOS, and watchOS? Creating an application bundle or framework is achieved by introducing a dependency on the \l{Module bundle}{Bundle module} and setting the \c bundle.isBundle property to \c true. Here is a simple example for an application: \code import qbs Application { Depends { name: "cpp" } Depends { name: "bundle" } bundle.isBundle: true name: "the-app" files: ["main.cpp"] } \endcode and for a framework: \code import qbs DynamicLibrary { Depends { name: "cpp" } Depends { name: "bundle" } bundle.isBundle: true name: "the-lib" files: ["lib.cpp", "lib.h"] } \endcode \QBS also supports building static frameworks - you can create one by replacing \c DynamicLibrary with \c StaticLibrary in the example above. \note When using the \c Application or \c Library templates (or derived templates like \c CppApplication, \c DynamicLibrary, and \c StaticLibrary), your products will build as bundles on Apple platforms by default (this behavior is subject to change in a future release). To explicitly control whether your product is built as a bundle, set the \c bundle.isBundle property. Setting the \c consoleApplication property of your product will also influence whether your product is built as a bundle. Building your application against your framework is the same as linking a normal dynamic or static library; see the \l{How do I make my app build against my library?} section for an example. \section1 How do I apply C/C++ preprocessor macros to only a subset of the files in my product? Use a \l{Group Item}{Group item} to define a subset of project files. To add macros within the group, you need to use the \c outer.concat property, because you are adding macros to those specified in the outer scope. In the following example, \c MACRO_EVERYWHERE is defined for all files in the \l{Product Item}{Product} unless a \c Group overrides the macro, whereas \c MACRO_GROUP is only defined for \c groupFile.cpp. \code Product { Depends { name: "cpp" } cpp.defines: ["MACRO_EVERYWHERE"] Group { cpp.defines: outer.concat("MACRO_GROUP") files: "groupFile.cpp" } } \endcode The \c cpp.defines statements inside a \c Group only apply to the files in that \c Group, and therefore you cannot use a \c Group to include a bunch of files and globally visible macros. The macros must be specified in a \l{Properties Item}{Properties item} at the same level as the \c Group if they need to be visible to files outside the \c Group: \code Product { Depends { name: "cpp" } Group { condition: project.supportMyFeature files: "myFile.cpp" } property stringList commonDefines: ["ONE", "TWO"] Properties { condition: project.supportMyFeature cpp.defines: commonDefines.concat("MYFEATURE_SUPPORTED") } } \endcode */ qbs-src-1.10.1/doc/images/000077500000000000000000000000001323434465400151665ustar00rootroot00000000000000qbs-src-1.10.1/doc/images/qbs-settings-gui.png000066400000000000000000000752041323434465400211110ustar00rootroot00000000000000PNG  IHDRe?zKIDATx{|eTpw=w^V=pg邲PuPhWV.MkX#(K( )efY;d4iS(tty<_SYYYii'JJJw 'iBZfTuv\#K+/9ɼYM((׵+MN%_X,[e2(3oqm.P2,˃Z`XJypamg}KdX[)VGI+\q*ϑ_<4pI[>.)S6<vݻa&?cOg n[e*ڼ&Ѱ-;{{kc͕E((ŗ;w]Z|#G),$M>RR( rgyH +,Y9hX(uXR,:K*D? 1ҭMÇ KsFzҏ7_{v%ʟ.:7;|دw~|^Yeܜ:c҆9p NM> {ܜ3wVm詪3EKf:qU;s Lhʙv%l_ojk/es{ly_<B4_8!jǗǗǗEAhC&9gZ^*;vlOUU%mxd{t平Jl7Pӣ -:+2oRosN{Qeì?UW#Ho3O.?y((riǎ9jciX^,]BmGI=V- JSox)3VV*?yrOUV<}~GP_Nud;sř y;+N੊J}cl+?;3O[ggޔ|I ɏ9oFϯBmQPxˏo笥'}漗?hYM h/U=u̙>rĈ>KKvƢO<^_>:iVvg((ri֭P% dϴ*Oo{m?_Uҟ:U z|x b/x&/Ι*G>3hY/dsO<*m;tm_rVR};_j?u͖Yf*ufLOznwS;]wB4mٲ.3tZTVrPվyX8 -KgۏK39A[B *:. Jwee'8q۵:r_P6ҲMP/v*ˆ[<$W—/=a3gҥKKҥK a_~%%%4NѣG$WV+| \p᪶//"C*TU_+MK, _W%|P]vt{Mݗ 9zvb 3ͬ`*Kr2Ӄ|0(]|tSraC¶M/^ZW*;_}y-̗p5Ͽ~3xЫ;KriW1zp)S:觋|_^2}ϭh>zVk z/J[ڐv*;=,|]0xa׭<$r K:̓5aDgli/.}I&_kA_ʵV^mI[Wk ^h4+=֗M)^yiTޱK']=ߗ^wyӔçɛpVn޽o_a;2ZI=`ǞKJN—~_+Myyy2އ5: }fA]> {rq}[)ѷ@a~W:&% "_5+ĩ2(FU+ w.|I&_(l~If{!6?-i+xGW|ŗ@uEhX`=տz5?Mؗ?ͮU5I]' @ӸkZO!W|iXw@ms^u̯| |G\lmjVxA_:xj_+M-lH/O=˅ $W—K| _eL$)KƤID<_.XZ|m۶+W|p~] ߗkWG3K_Л|(((8.΋i''N9ٛJ)M~ɳ=B kƧ"Iq}N:M>*/+M7J{X2dfn^&Hs˺qքz''VZYJZe=|ifj2R/;%#4t-_{j˸.Bg9g|&/Eٳdm\Cbd($&s譯9[BH_ϵ>iCO$;\g_XL ɾl.:.ZyxHE)Cdlq<iW+MxL$׍$( 5m/s\1z.4Ƴt/Q 'ɡr ,=6ǭlP+]BsH8PvyxPrZr}=|EUTŌ՗Iq]ϡхV6ƗPb!$x?O+c eGc>ܥ's{ ? K W"9/eVCh_[_h?w 25'XOG0u4_4hX&^ 5 <8H=Ps1|4,Mǟ12/lmKӊ<֘ CXbJ؝/pH՚m4(cpa<2S{C#\V2jFf31@߇RmEQX4$b'cj5$i]YY[cZ/}o1ɜb W=ߗoǗR·_| %_—KRAw559u7P]*Mwh*k1K2L} kG\^=ɜ̥6Υ1G( 1= 1c)f,e[ɉSyIY%\? d|;+J53I:=龤x.%5_/ܟyD 9iܝԖ2e~feg ox|,0_.dRc$kVב)!iMjĊr%!. Oߨ/iOnnnI4n@j))45ۍqu]:,;%v>>{ d2su;ZBmʩwSaWQdcUmSDj61n`#o|k8Q/֏_ /J(رdIūl&ɑ;S*8|+|) )}_v8_%_—K| _/HF&o| _ƤE,U'g }ʗl?i{_J%K}&m+-)LӬ_ hI+- [m`{v,fʎ(a}!45/{V{,t/PRu["_" 7R.~qX)]%IKºSxWSeVQ^iy5/{/eY.((eITV&Huv5ryj4պ#)9%A[l!mE)CHxq}8}Ilp6͍h5x_ۥF_(.1-N*<Yck,ݗ-Ry,G T3՗GsHF-m!5̇N>g68,c/RZ}Ke!Nk\( d9W,/ѿyK7&YsbaRO#-~ɳd*֗Lj̀w9~ŚY'=˾6_$c|L:߃NI}=3XǨglw`J(| _ 1bRKvv^Nhs%| ///_N_)˾K}&m+-)Ӭ%e:ɉSyRri6GPU5tNj fn-u/ywdx_)tF🱌8xBA=j=R傂]L5n,7}\Wcة2z."iq/i9M1"Ki7k^,!/4Ye1ƗPXn4s)V=E/{/iOnnn\|shzX&^ 5 L /I4n@jm#^󫂌Z}yK7&Q>YcEy6s5 fzweIE)<>yQmEQG Ū_~>:Ŗ8$PK| _/K>JZvRQʐ;3v_Kn53`Ȝz-pNqP}?/1i_—W;wq&O^1N%{縛"YF͗tK`wn׈{<;e ,Y'wMES <%wŋZY|)9Vyj( URJꕮmS z^yȼVkos~6tؗC-r9M 7H[tY1|kQuxo__—CK6tssIN-%/3-z{γd"9]-$'An#xw[R݊VVVtⴾ@;}ݴ5մb[#vZ@tbHg2zio~iitd[DW&!x?9쥎O/Nu2͔-;dcTa>z#-.SlԲLK.oHF})kjuB8gmUTU=4WχX8v]愛]h"S[kkUi =|V~S K{|l+^>I3-jN/ŗ$Ci̻7l]2+,y8ri!@>`;ߗt_R% /-qmseiXK| _v[|Iͪ- zR)F =՜TOYQn0̻3̶ݕq@_p&6j)a0שFĻzXYo e l/%|y} M3Ki5j}g%Y>\Fyj9IϼrM;}=Dw^ɼkhͥ,UV[ |74(sV[z[쯷&mx;~W}Qf=w5,| | _/K%|z7NhMBUfDk~`v9]a<nȷ̹]>)$I;+^p*bd&)-?qs.2"RZv ]5 -b:'νz9{K/p-ʜ&\Sl'=5ddKow]S$H^R ~ҤRH3b_0u͗})ekWu^~ ki3{w]O9ۉS}Iz=3_ 4Zѥ~ǵ&K˞)/(CY[T(N,vsoHVw׻k/&MN`;^}p;o]=<+4Q]tE9ټr[_ZAK3Sg8zPniB|5Hٻ|H-%F7 /'m(G }z $WS?9V&Л=upy]_>c2U<;}F_XAI`2 Hu}Mm/M6 y'u2u{ZQUGllSZ+)?rAh2m|&8No:>E>qzXUŊ <j7=vU& /;<^_lfi;N_&c5EϏ߰smn_]CZyT93cgɘs:|3>/{z{,@A"k9)mLO1JԍZL68!m9k쯶ۓ)WkK-bUQl%_F]Ailh^뗤Nce]ryFQ}I\v\Nkvumc+w&|#4 {Yb2]e+_5 e(ZThܮ#vU"K2}\R$ tKRwcݏG?.͠?_M2s j<_F]AM^sϚ,+}9nKHy㓸RqPۄ(FyKd*[ӘЛu^qWZݟ}KUB.(TsRz̧4ė!mOGR[YiIPt/U1D]F_F]A DjKҚ[[/MmMrTpqڵ6E%cѥN7o{4>ip%t?S3k#mLf;/CZ|>__ʖ3a.'(%]~N}Q.@ODR;mљԏ%RZf=Je?K{q.;Rd(ȲğL}|y3$O 4 >MѪ_Zz2Yv\ZEfe .0$_qإ^%u^ڻH7n(u-ṭH_j!ّ3C%e!S&VjCMthvA6̕ kˑ͏}PUtBB:W~e e:';MޑY{ls:>c-;CUhViɒ1c4_;nS_5l-d'hۃ}yjҸVKz;//mc=D8BD%eG$QS_b͢~Zw>qڭI|0 5?tyBu:):/m"aKzwq UJy /裍2"@K| _/KKe'׊x/;%|ٗ|e˖Ѡe8m=R DȒjmp,sG{R ؜w&.龤x6QHr:2 ZS/|6ăe?̇H=Zp5Ɨzp/\kP)kໆ.oN}> aP.CJ<>{7/Z6_d8g 0 NhӞ92dW.*yȎPγieI?Ҁ \l0RÇX/CȢ(R]/[ I_ڮ-+ߕ}?K2R=[/K73DAAAAA/QPPPPPKNص /ŒKܗ_Xs>]^Bj V*^Zag_LٗVQ[;kߜ卵U)/w ֬^E]Y'v}~5VgrղG'}d}FՏD/{]٫L Q/GجO ųxՌz{&| }(-~bV"ɕPBX[_|:o(tn|x"J?Nsk/_!dB^hj?D/{]ɫ_n#/7T2J_C *cyj'@*_s>">۟~?lKk-ע.ȇ^kA/oIkj XY_$Onn ׹`|T;_mm?|d%K}Q}rmjwjkƧԅ@qE|jn [Կym}]f=2_%{<|\dExve/} dB8_'yr˙sGvԽ>CGO cݫ3R _0_Ȭ ȵ o{ٿ_A2_^Oi< >T<їc ?W>8^U)#Ȋ*:'W[V\zRQc`mңvr`'߾[B_O>A&lޡ+U}ὒ&ZZ'G^޼S[{ ōb*C}}oF]EעY_+OK#=-ol\q Y \4=e9ec[GtпS3>;ŷ/9jjs=_͝RquG_uQ;7\Cާ&%//ĺWy꿝[uɭ{&s=0_|=7~YmP=~cko46GgO{5^yTX,<%E-_DXP6>^{t}-nl|ڽYS7D뿬t6\9NA9,6g~VCx@aeu(F]Z:QPK֠*t_}@(_^<`1?{Cu }ޥgx#|\aoh W~5/#}IƘ鑹߰Ttɻf )mWJiƗ,fCЗ_ڜ5"f/F9baTmK/=kro{4ajKգ3beYM$57_n >9:^:s0}||MU _V:[B }bܗK%}7G 3*2Dg]uϞPSpK}EmgO?>UJgKR&2ΣW 7Je{U,`_[S| _}bv5'>j7֡)$i"햍'4HgZn\eDcߓD7[}ko5ET갑8quQ|oަ=vcq,TPR]`{۩|1f{ qY碘uFՓ3:YUSҳHǭ+hT]y3v\[ϻvO/~)Vh[새lˆU;v;SUFcʼCy>%;Q~x)NjET[ѧR~rzb a̋6y5=WOb;_ҫ}pb?v+邻pvb!?ZPQK3_| | | _/-_nٲe~4o62  ,%P}62L /+zwy-ν!t|5JK04A =N:—TV-t0xyڽ%t 8 /'mz.4|["_xMe@%-SM[<7F9wЅKO!egqewe/qKN#9w`\6{Icݏ[J;^|[Dz? r)dti!cc6/_ ~/Ac|) >ϗ4'777a> M'|e_6i9~dkiyE>g68,c/RZ}gvJY?$*# `٬(jLlb^q;6[3-+:<KKK| _/Kwޗl?i;&g_`A,&IJK064A9E*8go<ۣN|kc#|I5n4L{Bw} oJM7bUF🱌H //{/eY.((eITVrc:Lwa^q5*#炱,|ٛp$oDTdoּXB^s"l|,0w1Z?q aΓQax),#$Bs{ ? KMUAF__<ߥGHl|x1S⊢'v|c%_—| }해!wf쾎N+k>g9's ZN<~ | _^%'scx6s{a::7卢ޣ&[襞UOcE+SKy0x|!,$t/wǿM&bJq7Ep)/^y+<ݮ٥-r"*%|Byv0̥YPOQ2L yKl]RrZ3aո7P+]5Vӧ)LN?Vy*;lR/ZrڛA69o=<7Hﳚbײ׻"/Pm|//=F[J_.YgjA??Z&-1gDrRZ/[ dINFZu[ /hy(i}wi+j$%i"r_G(='S' ץ计Ődd)[2vȸ5ǨL|FiA%LfmZ|y|f;!#bK| _^GfӍsTzkN| }Qu I_oMxnwVӬVo4IO/nlPxs[4͗!Mĺ3=%/7$^2T+ԡ:kuvm 齡B_)N/{4'"]~~Cg}.|w^&x/+{;jY//_—K'nК҅ɛIu+҉)p.p-rx5rwݐos|RH"w}7VtUz)LR8)[/:O\.eZE|31496kZRuNU{$s? 1~y_Z9iM(!Nzj.KM65?H\oν>2.̥Ig0)1a/=RR?==<2$;4 f.7sryT3{$gh:KWkMR=S+^dQ569Y̓ɳ='P2էY|Yސz}Ow0_RMFa!wB3vX`z yW*i)j>PsJyk嶾̗fp҄ry4]ėWl,+~׆ԄywvrgC iփ=ɝQKjCקՃw֜:rKJ9NP7;i+JO?);gqlb˅//{:X_<'2x^ITiHӝ{0}@k>w7{y>G[J r[ojA^O^QҏpAI$*s, MK7{D5t9|Ʋ/exvd@eY<I^l@"N8e|٦$VR~Jti%$%dwM/pN5=Kv[u:}b}ֱy nzznGL^vx>UͲӰwLjal~ɳݾkrfB 1txf|,_XEE.W#rR9cd&8FmpB8sJ_m۷'S:Z-!ddK 8м/I4a09pv1 c ;ڶ.WLF(i>'L e]WzkA6YkQ`; 67} R]uG%|Ee2zx; j-4x52&YVr@}%%%=k<5'q8Y8 ACQ΍SK2—U174S?72e/ŗJ>ԅ>O)\P|h#Oyi/iC ~e𥶲.:0}-^cZ2З5^ښb㈽kmKFKn>y'f9[}i}rKU~rf2לGژpW#w^2'}3-{g\NP2K\,۳bv M3Kz"u=4x~P\wtE%6ȼQe?x[*|IgHd-h|:UfdKƵHZ]`HPGK3޽KNTwn@Q<[^љG:/CZ%=3#g#K>BЧ aMԆf2Fl+#9|2脬tp6tNvK#3js2u|ZvKІx%chlwܦjm#&[>N5<Ѿ=2qiW#w^2_4z2p B1}K^,IjuŨExOW}[ }ajl//ttWSu^D<=Fr_GdD%_—| |z7N0| _vK%)/r˖-AWpze  ,%P}6$Y4&9QL\x^xڎ-/'5/-xMtNbCPB]k/'#ޞW{vѴ-%~s6ڠ$ABXde,,iYc2"S9fk97kYG\sYE/Q׀}8}Il2̝4tdz)Aѧ\_l=6?7> yr zh1k/3^H)-֠R ֔w ]ߜ||I|rssà\y|n^#l/ɢqGa@;Ѧ=seȸ5C e%]Z?U)gIۓf` A~5lJ`Z2e_~+EQHٻ_AԿ][W/+se4z"_—K//twژsIF&oUu4WWBfs_VO?qZ3ZNv=e:Tc6e_gbÀ;?bb#-bi<νzM?7:dL~+<-Yϻy0x|!,oەt+~ |G}j|ЗKO. _Cȗ{縻ɗcGdȥO޻Pdwy =\"HCJ&u:y0yGHa>Ͳ_l:6=]|I54wB3vX`z yW*5S Dua|"}m'nFJV_6ج4w[[JOfP1 ։S-^-L4]ɂ-%F_9 /'mz.HL5@vp5uSCoeQ\ ( fO(\^#MLTe9U |Y[׌'KYYAE87ȗM߿\@oq{ 5 7쭿-u/ywgpY<'EjQl7jK6B{pux<}Iu1ؖfjjc#-&#u^pW| @/B؋l+ w|Sl|,65s+[k<[ 4'lo*Vf fv=g˞KFͳM4!Ks"z{U,T |eapi%~ڽK)H_ϵ>Xx1 [RJ1.ueUb_'Z\əi<|tJKh )uyxPr =͗[lx3gQR5R,*4X,tMm~M/{/-[VUUTn3qj(YҾRI՗˩֣2]c_X̻nlՒ5'5dޞZHwtv^jp|xg,TfuC~RNs.ukNQۦa$KSr(֤J̵Lc$j2֜C e'je6z /K%| | | _/ r['~JF&oX|9q' |є_E L,MK=x {Ѯۍ4kIQ_JRR45?IAAqqnUOEefLİ:MyG`-gk!/HO^^g{'Q+SbO.[̣j p+O-CYٴ+]5m}z 22ws}LOop?Я~i-/f^[/_q76 bF { >BU%i"w(^8mU*=_IƢJ\7{|{ y+$#}- >׆Lr~r?:N=)jjQ^;vc}I+(ssuLP׋O/ +-zFL/S#G, zcZ*d9؊Ι?f^8 A=V9WR<5Ʀ? v7-Y_y)齕(\ fr/=|pW:f=$ucs9wS/ ۑihQWkiR=)ZZ,IfӍ3p|xg,TRhTTe'_5US.ud>{b|)ۧ 3<M,ONV$_NHEYɤzaWA×L7V߲? H|Si3_[#RNsRlh,ReGkHNt3-lIӧlZڕPl=I6 ,.KI19R Q]7J\WOC?4~MW{3/-]s3,5Ҳ"36ZMu™ܴ.evxm}E͗ݴr9%_2nm4ļ% k^2&a/rWe븁9NFq[bOWXHߜ-p~/\(HhGWRk H^ bϞVTL-: ~U1N_sz/ie.xN7`y#g(Aŧy\v%tsZ%vtJE 5*WA|HqhK4i;i ӥKȶ|~I{isWaSBrhj\ʅ0,ۓ:,P/eXx1@>ǥ3a.*,TrdR9kEy)s$On-Uds6/YFH$ 9A%87Б)s ;w,˨jyKԷV|];75_peuY&Kq/4ID_Y4KP664fXc"?&G ȟ dgmW c/eKj쳔f#*<${&j}/cZ1=/sZ&N*%kD EφcSqС/!/eKƲsTǩG1(}QRj;?UBe/͗˖-"&$rgB8:S|YiC4JM/S#)p-`eлXj,G[9L$Np ʙG>|hlA\tc{"PY.XS3y ]e8})d!Ǧvh2>_Çwu|cCR76jɚ i`ly7R1*]~N .@O bI޸љyIrR>Gmw rH*pt4_*˲l*Xpz:KTaOM SneM!S,ɗi,kr}2)^U%Mշԧ)4/Cƭ⾄EVRXfwL\jM$R7j,7 /.59P,Ƌ<"Ez[,5ṽ륫M*15j{]0s-Ә/(ͧ ~ 5b|Wn;M$cO9F~Ex+m#؝$ۛT%AܯFdoXy᡿l~]B_z_./߱~t8~^6_w Sɂ )zIHmS7;$;G_5z WK_bxpϻ"zwcŪ_%_—K| _/A:*]޽V0- /;&^[-v/&IM/uՓkdxYikGH'[ԩ/YȦoCgw#b</$ŹUc>͢& 5=fJ,VfIp<kl+LURB$4:!2;eXxעQPn1fM.S PVj6-JWM(v}[_$fb(.\%. \f׻Bj):?ԑSvIrU5 f+L[KGF_]RnfPJxQm[΁f.M9K_v/q76 bƒ^5/HEjQl7|QVS-d,eojV8?IHuGZ| d,gю:N=*!ZtN KZA g dH9yJzi'_1ݜV|RzQBM!Q%ɢ{%ښJ'ݞϳ('vy.Z}piӏd3§Pfub}̟ yIH{{V H}7LKbt3RոQw&UR@6j]NwVj%[dE0yFI[KVi sҒsÃKr^(9s ;w,˨I?׷V|];75_1Gu)$fA:~8׺vWr!(kS_2i{ۤ%UM_=Wz¿X|y|٥^5YJ^IOSHH^ۤQ*(_t`\0AˈŐhKװ<>GX!1$hkv%k^̗jk#:Ė_в$=v|/Iwe_zJqc4&¤,WK&R`C|٭\lYUUUM5!;櫧J%)|W)L/S#G ,?c}C Y*s揙?H9weOp ʙڇLlFE'16q=INK#|Ш^͗M N͗9D ]Jk-4}iiM".L[q$_v/i|Ç:>"j lՒ5'@>nt<ӂz{S췉$NJq<:s;/Z_稍w|nAB%uN ,;Rqŗr$Kp)V25cޞ0í)J-vBӣnwHi)?#YZEjd-eΣtc/_!Cve,[29AioUVuK|RNslh ,R2g-&`~YDQRhFT%9#٧PY\>EQ~BGtw~sWE$_%_—K| _/A:*];_es]n;eZtocNc_Ҷ`rqa^źQwrtgҗq'DBh|M@R^=ɜ₩Ih=SfZL:3;3eT4GTA ѼNN9L4;RFdZyPꚈKdI>H/{GH'[ԩ/Y⭦oCgwØϫhcp7۴W$G 嶪kZj4y:So'>5?IAAqqnUOIB}4[i21Ng>fS&*)eiFbeԄh )ÌFG(G&eo{(+5v&/[OrTz_Vf9R Q4v RsJywׅ GlSGNa˱WոWk'0ynyS6&N;ϡ^>/۶ƽE~ڥ)x)U̠5Mpd)VXSNY'ت`KII9<|n6SfkQmuzʶ=vG-/nm4ļ}Ά5/HEjQl7|QVS-d,&.&^?_VRsk9^6(٘E; H^ bϞVTL-: ~cE7VPq7Jzi'_OKB,Lɱ㨒deEnmMBnO~YRۓf<]E|LBi%$3b}̟ yI͑B{{V Hx}7M_D:YY޴?jXB5Ti?7`LnŝO bN엢4yI+]o(zV,y#$/^L=S,%QKExUe9 Z]'ZjpGO#dٯs6/YKhXŢW3 @Fry8,ܱ3[S%Q[Eg>~/ZmmgYϒ`Y,YD|^IK y@Y3xAH LY5)1sp$IÔB 87NI{BVN&ྩpܝjR4>r302o 3\$B%Xg{&]bm #Rz,)Y$֩TVJ*\0A=g-%&D[9Jc"eGWַRp˶Dg'֚/Z%e!}\Mn]2qȸ5n)ѿFW ӊ )S5[m*V죄ڮ7qҜoSCRΜ1@WrٲeUUUo"_6Մ[LdB$}P|\ktr9k G',?c}C Y*s揙?H9weOp ʙڇLlFE'16q=u^څ|1 /]s% VE+Y\Zy~&8OK缟p_"ݯF>[#+wI9iuӋz3s~1c-e߁̝=|pWRdC-͡ZNϼZ䜾HyJ+ZpTo~6ICNFgn%9?BK-!Y ~8>KƵ"!6~ʥ,.ަX_Ԍy{ bC.+$4 IV,^CrfOCH2_.R;$k(uS2_?HClj+%jR8oUVu:%Wbg|&9];O7ڹLd]]A-FGRš*AU$=4ˇDї]jթs.@ xaEz[,5ṽ*Mt(v%kcCr-}'rx<9㣵BDV<{Ir9kjMQYޖ>BoݩMb౽~2΍z:)}(sEKI9nQ|il՗9U 1/G[jY65ҙQ~+ER׆ &Xzwbm'{_혯׏qihm:vDi>H/1OH=T*Je'J}Q6T*KÛ˝w_0O5/Qhsn=w;6Yy?Ϸ?!ٙȗ,k+C ~Z@_—={<=Z:ڰ^_$_%_—K| _/ 3+XI^+i|=ĝ:Bv1_4[G:<S?/6ѣG:l7.յ'1 KFAAqqnUOIB}4[i21NgӇ>fS&*)+ciFbeԄh )ÌFŻEѻb=ZKS\V$2ײzv.PR'uN6SF?WsJr{>2&۸ACXp%LEjQl7UմTYJKA4^?R󓄔_wxڠdcv~zs+=2(/vi1X}LfQWWKk{YG[JBZg,rkNbL+|[9*^͂_a_/vaXJ,ƥR@N6j]NwVj%I='O78gջDӑ9J^.Q,yu8їHlQ~uQccL+jyU8s1>"K(JT*T͈J}|#g&qvԓ~Ee=21eNj_—K| _/K˞C:KRܙ5W OQ\\mnvekHw;.y_vq' /Zr{a# $-1xddL{4iӤEn{Ѯۍ4{珕`%?CJ³mUĴfi6RMJ,_v/ŹUc>9VgdmYiT%u:C1<&o+LURNҌT?u7Zo+S'-AzW8Imn>pmfSѮtհhQkY=Mu]R(fֻf|trG'|UZ>E䰾} yWR[S#|P*)&f/wߧjjɤݢ>h%:+rZg1^&~"B+ǥ=uF[JBZg,_VI~E8:Q%ɢ{%7K@McR' ץ3 ',I~΁)fpӯv8'i֯tޥE/)QY _^/_/vaXJ]hRGݙ0Wn~SPu9uZ%lyOƌW ,d.&D9A%E9WҞ_\쨔ZdP'ݯ4E3R~fw).]G=`(QflEm&f ]g =*:-'d+l#qŐnS 'vSpu; `w-TJf˖/e{g=gM>)p7ujDe8U?4W?LPdqC-e^3AաK5?qyv/R1(L =%i+Cm/h:?ZJQ;=m_&kM)(j=d; ~ҷeetQ<e˪߰EHm Iܙa*axg ȵHIM-LEԤ>ZE0ƗweZ8r@Gl{\R/狎z2+Hpjte6ۢI$ j9C/'Ɨjc> n%=|pW:f=$ucs9Az#gMN_@IWd,$qGUNǗXrєz0@$[#_-O(RV"(;Q &qRRW֎z2ѯH Qg ~? "H|c;{<%|a_%_—K虾DAAAAA{{|}G((((((}ɗ (((((}ɗL2QPPPPpdٱ,%KKKKD&˿ 6/ϟ@lȕ// 6a_V 6a_^@l¾<؄}Y (\`AbCT|y (\pqĆ\&FE Ҕw!W,Yb?@4ȒJSAAu>@4ȒJӚ5k/_y=h ,I4_~ʕ˖-[jw`.r"dI$W6mdҥK-˻;[YYYs̙5k֛ooddd̜9^{W_yӧO6-==}ʔ)/^z_|T&OlVyS6Qar هi|DV"7Sd+rE#kd7r|G#ɃdCr"H$WXӆo~IENDB`qbs-src-1.10.1/doc/man/000077500000000000000000000000001323434465400144745ustar00rootroot00000000000000qbs-src-1.10.1/doc/man/man.pri000066400000000000000000000001671323434465400157670ustar00rootroot00000000000000qbs_no_man_install: return() man.files = $$PWD/qbs.1 man.path = $${QBS_INSTALL_PREFIX}/share/man/man1 INSTALLS += man qbs-src-1.10.1/doc/man/man.qbs000066400000000000000000000040271323434465400157610ustar00rootroot00000000000000import qbs import qbs.File import qbs.FileInfo import qbs.Probes import qbs.Utilities Product { name: "qbs man page" type: ["manpage"] Depends { name: "qbs_app"; condition: updateManPage } Depends { name: "qbsbuildconfig" } property bool updateManPage: false property string help2ManFilePath: help2ManProbe.filePath Group { name: "man page" files: ["qbs.1"] qbs.install: qbsbuildconfig.installManPage qbs.installDir: "share/man/man1" } Group { name: "additional sections" files: ["see-also.h2m"] fileTags: ["man.section"] } Rule { condition: updateManPage multiplex: true explicitlyDependsOn: ["application"] inputs: ["man.section"] Artifact { filePath: "qbs.1" fileTags: ["manpage"] } prepare: { var help2ManExe = product.help2ManFilePath; if (!help2ManExe) throw "Cannot update man page: help2man not available"; if (Utilities.versionCompare(product.qbs.version, "1.9") < 0) throw "Cannot update man page: qbs >= 1.9 required"; var args = [explicitlyDependsOn.application[0].filePath, "-o", output.filePath, "--no-info", "--name=the Qbs build tool"]; var sections = inputs ? inputs["man.section"] : []; for (var i = 0; i < sections.length; ++i) args.push("--include=" + sections[i].filePath); var help2ManCmd = new Command(help2ManExe, args); help2ManCmd.description = "creating man page"; var copyCmd = new JavaScriptCommand(); copyCmd.silent = true; copyCmd.sourceCode = function() { File.copy(output.filePath, FileInfo.joinPaths(product.sourceDirectory, output.fileName)); } return [help2ManCmd, copyCmd]; } } Probes.BinaryProbe { id: help2ManProbe names: ["help2man"] } } qbs-src-1.10.1/doc/man/qbs.1000066400000000000000000000032401323434465400153420ustar00rootroot00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.5. .TH QBS "1" "December 2017" "qbs 1.10.1" "User Commands" .SH NAME qbs \- the Qbs build tool .SH SYNOPSIS .B qbs [\fI\,command\/\fR] [\fI\,command parameters\/\fR] .SH DESCRIPTION Qbs 1.10.1, a cross\-platform build tool. .SS "Built-in commands:" .TP build Build (parts of) a project. This is the default command. .TP clean Remove the files generated during a build. .TP dump\-nodes\-tree Dumps the nodes in the build graph to stdout. .TP generate Generate project files for another build tool. .TP help Show general or command\-specific help. .TP install Install (parts of) a project. .TP list\-products Lists all products in the project, including sub\-projects. .TP resolve Resolve a project without building it. .TP run Run an executable generated by building a project. .TP shell Open a shell with a product's environment. .TP status Show the status of files in the project directory. .TP update\-timestamps Mark the build as up to date. .SS "Auxiliary commands:" .TP config This tool manages qbs settings. .TP config\-ui This tool displays qbs settings in a GUI. .TP create\-project This tool creates a qbs project from an existing source tree. .TP qmltypes This tool dumps information about the QML types supported by qbs. .TP setup\-android This tool creates qbs profiles from Android SDK and NDK installations. .TP setup\-qt This tool creates qbs profiles from Qt versions. .TP setup\-toolchains This tool creates qbs profiles from toolchains. .SH "SEE ALSO" For detailed help on a command, use the .B help command. For instance: .IP qbs help build .PP The full documentation for .B qbs is available at . qbs-src-1.10.1/doc/man/see-also.h2m000066400000000000000000000002551323434465400166160ustar00rootroot00000000000000[SEE ALSO] For detailed help on a command, use the .B help command. For instance: .IP qbs help build .PP The full documentation for .B qbs is available at . qbs-src-1.10.1/doc/qbs-online.qdocconf000066400000000000000000000017071323434465400175130ustar00rootroot00000000000000include(config/qbs-project.qdocconf) HTML.footer = \ "
\n" \ "

\n" \ " © 2017 The Qt Company Ltd.\n" \ " Documentation contributions included herein are the copyrights of\n" \ " their respective owners. " \ " The documentation provided herein is licensed under the terms of the" \ " GNU Free Documentation" \ " License version 1.3 as published by the Free Software Foundation. " \ " Qt and respective logos are trademarks of The Qt Company Ltd " \ " in Finland and/or other countries worldwide. All other trademarks are property\n" \ " of their respective owners.

\n" include($QT_INSTALL_DOCS/global/qt-html-templates-online.qdocconf) # Add an .html file with sidebar content, used in the online style HTML.stylesheets += config/style/qt5-sidebar.html qbs-src-1.10.1/doc/qbs.qdoc000066400000000000000000001421651323434465400153670ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ // ********************************************************************** // NOTE: the sections are not ordered by their logical order to avoid // reshuffling the file each time the index order changes (i.e., often). // Run the fixnavi.pl script to adjust the links to the index order. // ********************************************************************** /*! \contentspage{index.html}{Qbs} \page index.html \nextpage overview.html \title Qbs Manual \section1 Version \qbsversion \QBS is a tool that helps simplify the build process for developing projects across multiple platforms. \QBS can be used for any software project, regardless of programming language, toolkit, or libraries used. \note Please report bugs and suggestions to the \l{http://bugreports.qt.io/}{Qt Bug Tracker}. \list \li \l{Introduction} \li \l{Setup} \list \li \l{Installing} \li \l{Configuring} \li \l{Managing Qt Versions} \endlist \li \l{Usage} \list \li \l{Language Introduction} \li \l{Building Applications} \li \l{Running Applications} \li \l{Installing Files} \li \l{Using the Shell} \li \l{Generators} \li \l{Custom Modules and Items} \endlist \li \l{How-tos} \li \l{Reference} \list \li \l{List of All Items} \list \li \l{List of Language Items} \li \l{List of Convenience Items} \endlist \li \l{List of Built-in Services} \li \l{Command-Line Interface} \li \l{List of Modules} \li \l{Command and JavaScriptCommand} \endlist \li \l{Appendix A: Building Qbs} \li \l{Appendix B: Migrating from Other Build Systems} \li \l{Appendix C: Code Attributions} \endlist */ /*! \contentspage index.html \previouspage index.html \page overview.html \nextpage setup.html \title Introduction \QBS is a build automation tool designed to conveniently manage the build process of real-life software projects across multiple platforms. It provides the following benefits: \list \li Declarative paradigm \li Well-defined language \li Platform and programming language independence \li Correct and fast incremental builds \li Extensible architecture \li Easy integration to IDEs \endlist \section1 Declarative Paradigm When writing a project, it is important to describe the build tasks and dependencies between them, rather than the build order. It is difficult to determine the correct build order in complex projects, especially during parallel builds. The build tool should bear that burden, not the developer. With a declarative language, \QBS enables you to express intent rather than specifying single build steps. This provides the appropriate level of abstraction for a build system. For example, \e dependencies can be created between \e products, such that the target \e artifacts of the dependency can be used as input to the build \e rules in the context of the depending product. In addition, you can \e export dependencies and \e properties to other products. \QBS is modular with clean interfaces between modules. A \e module is a collection of properties and \e {language items} that are used for building a product if the product depends on the module. The properties that can be set for a module are used to control the behavior of the toolchain used to build the module. \QBS itself knows nothing about file types or extensions, and therefore all source files in a product are handled equally. However, you can assign \e {file tags} to an artifact to act as markers or to specify a file type. \QBS applies a rule to the source files of the project and chooses the ones that match the input file tags specified by the rule. It then creates artifacts in the build graph that have other filenames and file tags. Products and projects can contain \e probes that are run prior to building, for instance to locate dependent headers, libraries, and other files outside the project directory. \section1 Well-Defined Language \QBS projects are specified in a QML dialect. QML is a concise, easy to learn, and intuitive language that is used successfully in the Qt project. Its core is declarative, but it can be extended with JavaScript snippets for extra flexibility. \QBS builds applications based on the information in a project file. Each project file specifies one \l{Project Item}{project} that can contain several \l{Product Item}{products}. You specify the type of the product, such as an \e application, and the dependencies the product has on other products. The product type determines the set of \l{Rule Item}{rules} that \QBS applies to produce artifacts from input files. The input files can be divided into \l{Group Item}{groups} according to their type or purpose, for example. A group can also be used to attach \l{Properties Item}{properties} to products. The following is an example of a minimal project file that specifies the product type, application name, source file, and a dependency on the \l{Module cpp}{cpp module}: \code import qbs Application { name: "helloworld" files: "main.cpp" Depends { name: "cpp" } } \endcode For more information, see \l{Language Introduction}. \section1 Platform and Programming Language Independence \QBS can be used for any software project, regardless of programming language, toolkit, or libraries used. \QBS has built-in support for building applications for Windows, Linux, macOS, Android, iOS, tvOS, watchOS, QNX, and FreeBSD, as well as for cross-compilation. It can be easily extended to support further platforms. Invoking \c {qbs build} from the command line automatically builds the project for the current host platform using the best available toolchain and settings, unless a default profile is set. You can configure additional profiles for each toolchain you want to use and select the profile to use at build time. For example, to build applications for Android devices, you would need to set up a profile for the Android toolchain and select it when you build the application. If you name the profile \e Android, you would then enter the following command: \code qbs build profile:Android \endcode For more information, see \l{Building Applications}. Platform and programming language support is implemented as a set of \l{List of Modules}{modules} that your product depends on. In the language example above, the dependency on the \l{Module cpp}{cpp module} determines that the C++ sources are compiled and linked into a binary. Alternatively, you could use the \l{CppApplication Item}{CppApplication} convenience item that implies a dependency on the \c cpp module: \code CppApplication { name: "helloworld" files: "main.cpp" } \endcode Additionally, if the sources use Qt, you need a dependency to the \l{Qt Modules}{Qt.core module}, and so on. In addition to building projects, \QBS can install the build artifacts to a location from where they can be run on the desktop or on a device. \QBS modules can be used to create installers for the end users of the applications. For example, the \l{Module dmg}{dmg} module contains properties and rules for building Apple Disk Images, which are typically used to distribute applications and installers on macOS. The \l{Module innosetup}{innosetup}, \l{Module nsis}{nsis}, and \l{Module wix} {wix} modules contain properties and rules for building installers for Windows platforms. \section1 Correct and Fast Incremental Builds \QBS is an all-in-one tool that generates a build graph from a high-level project description (like qmake or CMake) and additionally undertakes the task of executing the commands in the low-level build graph (like make). \QBS automatically takes advantage of multi-processor and multi-core systems to achieve maximum build parallelization. By default, running \c qbs without any arguments is roughly equivalent to running \c {make -j} where \c n is the number of CPU cores. Similarly, \QBS allows the number of concurrent jobs to be explicitly specified using its own \c -j option. \QBS has knowledge about the whole project, and therefore builds remain correct even when you build sub-projects, because \QBS ensures that all dependencies are built too. This virtually eliminates the need for clean builds. \QBS uses dynamic build graphs with build rules that can generate a variable number of files and that are executed only when needed. When figuring out which rules to execute, \QBS starts at the product type and then looks for a way to produce artifacts with matching file tags from source files, using a chain of rules that are connected by their respective input and output tags. For an example of how rules are applied when building products, see \l{Rules and Product Types}. The \QBS build rules can produce a variable number of outputs. If the input changes, only the required rules are applied at build time. If a rule is applied, all the dependent rules are applied as well, but only those. This feature ensures the correctness of the build graph after source code changes without having to re-configure the whole project. Changing properties that do not affect the build, because they are not used by rules, will not cause the project to be rebuilt. The use of properties is tracked. Generated artifacts that cease to exist are deleted to avoid picking outdated generated artifacts and indefinitely increasing the size of the build directory. Fast incremental builds are crucial for a fast edit-build-run cycle. Instead of retrieving the timestamps of generated files, \QBS uses the time stamps stored in the build graph. This is especially important on Windows, where file system operations are slow. If the project files were not changed, the build graph is loaded from disk. It is stored in a binary format that can be loaded much faster than the real project files. The project files are parsed only if they were changed. \section1 Extensible Architecture You can create your own custom \l{List of Modules}{modules} and \l{List of Language Items}{items} and make \QBS aware of them. You store the custom modules and items in a subdirectory of the project directory and specify the path to the subdirectory as a value of the \c qbsSearchPaths property. For example, if the custom module is located at \c my-modules/modules/modulename/modulename.qbs, you would specify it in the project file as follows: \code Project { qbsSearchPaths: "my-modules" \endcode For more information, see \l{Custom Modules and Items}. \section1 IDE Integration \QBS can be used not only from the command line, but also in combination with an IDE, such as Qt Creator, Microsoft Visual Studio, or Xcode. Qt Creator directly supports \QBS projects. Visual Studio and Xcode users can use \QBS to generate Microsoft Visual Studio and Xcode projects. For more information, see \l {Generators}. \section2 Qt Creator \l{http://doc.qt.io/qtcreator/index.html}{Qt Creator} uses the same \QBS library as the \QBS command line tools. Therefore, it can retrieve all the information required to build a single file or project through a defined public API. Qt Creator provides accurate information about the build progress and displays a project tree that reflects the logical structure of the project, instead of presenting low-level information, such as the file system structure. Adding or removing source files keeps the existing project file structure intact. For more information about using \QBS to build projects from Qt Creator, see \l{http://doc.qt.io/qtcreator/creator-project-qbs.html}{Setting Up Qbs}. */ /*! \contentspage index.html \previouspage overview.html \page setup.html \nextpage installing.html \title Setup \list \li \l{Installing} \li \l{Configuring} \li \l{Managing Qt Versions} \endlist */ /*! \contentspage index.html \previouspage reference.html \page building-qbs.html \nextpage porting-to-qbs.html \title Appendix A: Building Qbs \QBS can be \l{Installing}{installed from binary packages} or built from sources, as described in this appendix. In addition, this appendix describes how to use Docker images for developing \QBS. \section1 Supported Platforms \QBS can be installed and run on the following platforms: \list \li Windows 7, or later \li Linux (tested on Debian 8 and 9, Ubuntu 16.04, OpenSuSE 13.2, and Arch Linux) \li macOS 10.7, or later \endlist \section1 System Requirements To build \QBS from the source, you need: \list \li Qt 5.6.2, or later \li Windows: MinGW with GCC 4.9 or Microsoft Visual Studio 2015, or later \li Linux: GCC 4.9, or later, or Clang 3.9.0, or later \li macOS: Xcode 6.2, or later \endlist An installed toolchain has to match the one that Qt was compiled with. \section1 Building To build \QBS, enter the following command: \code qmake -r qbs.pro && make \endcode Depending on your platform, you might use \c mingw32-make, \c nmake, or \c jom instead of \c make. Installation by using \c {make install} is usually not needed. It is however possible, by entering the following command. \code make install INSTALL_ROOT=$INSTALL_DIRECTORY \endcode \section1 Configure Options \QBS recognizes the following qmake CONFIG options to customize the build: \table \header \li Option \li Notes \row \li qbs_enable_unit_tests \li Enable additional autotests. \row \li qbs_disable_rpath \li Disable the use of rpath. This can be used when packaging \QBS for distributions which do not permit the use of rpath, such as Fedora. \row \li qbs_no_dev_install \li Exclude header files from installation, that is, perform a non-developer build. \row \li qbs_no_man_install \li Exclude the man page from installation. \row \li qbs_enable_project_file_updates \li Enable API for updating project files. This implies a dependency to the Qt GUI module. \endtable \section1 Using Docker A set of Docker images for developing \QBS (which are maintained by the \QBS team) is available \l{https://hub.docker.com/u/qbsbuild/}{on Docker Hub}. Both Windows Server Core and Debian Linux container types are available. \note The source code for the \QBS development Docker images is located in the \c{docker/} directory of the \QBS source tree, if you wish to build them yourself. \section2 Linux Containers The easiest way to get started is to build \QBS using a Linux container. These types of containers are supported out of the box on all the supported host platforms: Windows, macOS, and Linux. Run the following to download the \QBS development image based on Debian 9 \e Stretch: \code docker pull qbsbuild/qbsdev:stretch \endcode You can then create a new container with the \QBS source directory mounted from your host machine's file system, by running: \code docker run -it -v $PWD:/qbs -w /qbs qbsbuild/qbsdev:stretch \endcode Or with a slightly different syntax for Windows: \code docker run -it -v %CD%:/qbs -w /qbs qbsbuild/qbsdev:stretch \endcode You will now be in an interactive Linux shell where you can develop and build \QBS. \section2 Windows Containers To build \QBS for Windows using Windows containers, your host OS must be running Windows 10 Pro and have Hyper-V enabled. \l{https://docs.docker.com/docker-for-windows/#switch-between-windows-and-linux-containers}{Switch your Docker environment to use Windows containers}, then run the following command to download the Windows 10 \QBS development image: \code docker pull qbsbuild/qbsdev:windowsservercore \endcode You can then create a new container with the \QBS source directory mounted from your host machine's file system, by running: \code docker run -it -v %CD%:C:\qbs -w C:\qbs qbsbuild/qbsdev:windowsservercore \endcode If you want to use Windows containers on a macOS or Linux host, you will have to create a virtual machine running Windows 10 and register it with \c{docker-machine}. There is at least \l{https://github.com/StefanScherer/windows-docker-machine}{one Open Source project} that helps to facilitate this by using using Packer, Vagrant, and VirtualBox. The \c{docker run} command to spawn a Windows container on a Unix host will look slightly different (assuming \c windows is the name of the Docker machine associated with the Windows container hosting VM): \code eval $(docker-machine env windows) docker run -it -v C:$PWD:C:\\qbs -w C:\\qbs qbsbuild/qbsdev:windowsservercore \endcode \section2 Building Release Packages Release packages for \QBS for Windows can be built using the following command on Windows: \code docker run --rm -v %CD%:C:\qbs -w C:\qbs qbsbuild/qbsdev:windowsservercore cmd /c scripts\make-release-archives \endcode For building release packages for Windows on macOS or Linux: \code eval $(docker-machine env windows) docker run --rm -v C:$PWD:C:\\qbs -w C:\\qbs qbsbuild/qbsdev:windowsservercore cmd /c scripts\\make-release-archives \endcode */ /*! \contentspage index.html \previouspage setup.html \page installing.html \nextpage configuring.html \title Installing \QBS binaries are available for Windows, macOS, Linux, and FreeBSD. On all platforms, \QBS binaries are part of the \l{Qt Creator} and \l{Qt SDK} installers. You can find the \c qbs executable in the \c bin directory of Qt Creator, or within the application bundle's \c MacOS directory on macOS. \QBS can also be built locally from sources. For more information, see \l{Appendix A: Building Qbs}. \section1 Windows The Qt Project provides prebuilt binaries for Windows (x86 and x64) at \l{https://download.qt.io/official_releases/qbs/}. For commercial customers of The Qt Company, the binaries are available in the \l {Qt Account}. The binaries are packaged in a .zip folder that can be extracted to a location of your choice. \QBS is also available as a \l Chocolatey package, which can be installed in the usual way: \code choco install qbs \endcode The \c .nupkg file can also be downloaded directly from \l{https://download.qt.io/official_releases/qbs/} for \l{https://chocolatey.org/security#organizational-use-of-chocolatey}{offline installation}. \section1 macOS \QBS can be conveniently installed on macOS with the \l{MacPorts} or \l{Homebrew} package managers: \code brew install qbs \endcode or \code port install qbs \endcode \section1 Linux and FreeBSD \QBS is \l{https://repology.org/metapackage/qbs/versions}{available via the package management systems} of Linux distributions, and FreeBSD. */ /*! \contentspage index.html \previouspage installing.html \page configuring.html \nextpage qt-versions.html \title Configuring \section1 Setting Up Toolchains Open a build shell (on Windows open an MSVC command prompt, on other platforms you can usually open the default shell): \code qbs setup-toolchains --detect \endcode The tool chain detector automatically sets up a profile for each detected tool chain. You can list the existing profiles by running: \code qbs config --list profiles \endcode Now you should be ready to build your first project with \QBS. Go into examples/helloworld-minimal and type: \code qbs profile: \endcode If you want to build projects that use Qt, additional steps are necessary. Please refer to \l{Managing Qt Versions} for more information. \section1 Managing Settings You can use the \l{config} command to manage \QBS settings, such as preferences and profiles from the command line or the \l{config-ui} command to open the \QBS Settings application where you can manage the settings in a hierarchical view. \image qbs-settings-gui.png \QBS Settings displays the keys in the specified settings directory and their values. To expand all keys, select \uicontrol View > \uicontrol {Expand All} (\key Ctrl+E or \key Cmd+E on macOS). To collapse all keys, select \uicontrol {Collapse All} (\key Ctrl+C or \key Cmd+C). To change the value of a key, double-click it and enter the new value. To save your changes, select \uicontrol File > \uicontrol Save. To refresh the settings from the settings directory, select \uicontrol File > \uicontrol Reload. */ /*! \contentspage index.html \previouspage configuring.html \page qt-versions.html \nextpage usage.html \title Managing Qt Versions \section1 Introduction To let \QBS know where the Qt build or Qt version is that you want to use, you must register it. Register a Qt version like this: \code qbs setup-qt /usr/bin/qmake myqt \endcode This will create the \c myqt profile which can then be used on the command line: \code qbs profile:myqt \endcode \note If the \c setup-toolchains command has found more than one toolchain, you will need to manually link your Qt profile to one of them, like this: \code qbs config profiles.myqt.baseProfile \endcode \section1 Multiple Qt Builds To support multiple Qt builds, or in fact any combination of related settings, you need to create several profiles. The following example illustrates how to set up three different profiles, each for a different Qt build: \code qbs setup-qt ~/dev/qt/4.7/bin/qmake qt47 qbs setup-qt ~/dev/qt/4.8/bin/qmake qt48 qbs setup-qt ~/dev/qt/5.0/qtbase/bin/qmake qt5 \endcode You can set the default Qt build like this: \code qbs config defaultProfile qt5 \endcode To choose a Qt build that is different from the default, use: \code qbs build profile:qt48 \endcode You can set other properties in a profile (not just Qt ones), in the same way you override them from the command line. For example: \code qbs setup-qt C:\Qt\5.0.0\qtbase\bin\qmake.exe qt5 qbs config profiles.qt5.qbs.architecture x86_64 qbs config profiles.qt5.baseProfile msvc2010 \endcode The last example uses the inheritance feature of profiles. All settings in the profile set as \c baseProfile are known in the derived profile as well. They can of course be overridden there. */ /*! \contentspage index.html \previouspage qt-versions.html \page usage.html \nextpage language-introduction.html \title Usage \list \li \l{Language Introduction} \li \l{Building Applications} \li \l{Running Applications} \li \l{Installing Files} \li \l{Using the Shell} \li \l{Generators} \li \l{Custom Modules and Items} \endlist */ /*! \contentspage index.html \previouspage usage.html \page language-introduction.html \nextpage building-applications.html \title Language Introduction \QBS uses project files (*.qbs) to describe the contents of a project. A project contains one or more \l{Product Item}{products}. A product is the target of a build process, typically an application, library or maybe a tar ball. \note \QBS source files are assumed to be UTF-8 encoded. \section1 The Obligatory Hello World Example \QBS project files are written using a QML dialect. A very simple C++ hello world project looks like this: \code ---helloworld.qbs--- import qbs 1.0 Application { name: "helloworld" files: "main.cpp" Depends { name: "cpp" } } \endcode The import statement gives us access to some built-in types and specifies the used language version. \a Application describes the product we want to build. In this case, an application. This is just a shortcut for writing \code Product { type: "application" // ... } \endcode The \a name is the name of the product. In this case it is also the name of the produced executable (on Windows, the ".exe" extension is added by default). In the property \a files, we specify the source files for our product. Unlike QML, the right-hand side can be either a string or a string list. A single string is converted to a stringlist containing just one element. So we could have also written \code files: [ "main.cpp" ] \endcode \a Depends adds the dependency to the module \l{Module cpp}{cpp}. This is necessary to let \QBS know that we have a C++ project and want to compile main.cpp with a C++ compiler. For more information about \QBS modules, see \l{Modules}. \section1 Reusing Project File Code QML-like inheritance works also in \QBS. \code ---CrazyProduct.qbs--- import qbs 1.0 Product { property string craziness: "low" } ---hellocrazyworld.qbs--- import "CrazyProduct.qbs" as CrazyProduct CrazyProduct { craziness: "enormous" name: "hellocrazyworld" // ... } \endcode You can put JS code into separate \c{.js} files and then import them. \code ---helpers.js--- function planetsCorrectlyAligned() { // implementation } ---myproject.qbs--- import qbs 1.0 import "helpers.js" as Helpers Product { name: "myproject" Group { condition: Helpers.planetsCorrectlyAligned() file: "magic_hack.cpp" } // ... } \endcode \section1 Modules A \e module is a collection of properties and language items that are used for building a product if the product depends on (or loads) the module. For example, the \a cpp module looks like this (simplified): \code Module { name: "cpp" property string warningLevel property string optimization property bool debugInformation property pathList includePaths // ... FileTagger { patterns: "*.cpp" fileTags: ["cpp"] } Rule {...} // compiler Rule {...} // application linker Rule {...} // static lib linker Rule {...} // dynamic lib linker } \endcode The properties that can be set for the \a cpp module are used to control the behavior of your C++ tool chain. In addition, you can use FileTaggers and Rules that are explained later. As soon as your product depends on a module, it can set the properties of the module. You specify the optimization level for your product (and all build variants) like this: \code ---helloworld.qbs--- import qbs 1.0 Application { name: "helloworld" files: ["main.cpp"] cpp.optimization: "ludicrousSpeed" Depends { name: "cpp" } } \endcode A module can implicitly depend on other modules. For example, the \c Qt.core module depends on \c{cpp}. But to set the properties of a module you must make the dependency explicit. \code // THIS DOES NOT WORK Application { name: "helloworld" files: ["main.cpp"] Depends { name: "Qt.core" } cpp.optimization: "ludicrousSpeed" // ERROR! We do not know about "cpp" here, // though "Qt.core" depends on "cpp". } // THIS WORKS Application { name: "helloworld" files: ["main.cpp"] Depends { name: "Qt.core" } Depends { name: "cpp" } cpp.optimization: "ludicrousSpeed" } \endcode \section2 Different Properties for a Single File Not only the product, but all the source files of the product can have their own set of module properties. For example, assume you have some files that are known to crash your compiler if you turn on optimizations. You want to turn off optimizations for just these files and this is how you do it: \code Application { name: "helloworld" files: "main.cpp" Group { files: ["bad_file.cpp", "other_bad_file.cpp"] cpp.optimization: "none" } Depends { name: "cpp" } } \endcode \section2 Selecting Files by Properties Sometimes you have a file that is only going to be compiled on a certain platform. This is how you do it: \code Group { condition: qbs.targetOS.contains("windows") files: [ "harddiskdeleter_win.cpp", "blowupmonitor_win.cpp", "setkeyboardonfire_win.cpp" ] } Group { condition: qbs.targetOS.contains("linux") files: [ "harddiskdeleter_linux.cpp", "blowupmonitor_linux.cpp", "setkeyboardonfire_linux.cpp" ] } \endcode In the above example, \a qbs.targetOS is a property of the \a target of the the \a qbs module. The \a qbs module is always implicitly loaded. Its main properties are: \table \header \li Property \li Type \li Default \li Description \row \li buildVariant \li string \li "debug" \li Name of the current build variant. By default, "debug" and "release" are valid values but the user can add more in a project file. \row \li hostOS \li stringlist \li platform-dependent \li The host operating system. May contain "windows", "linux", "macos", "darwin", "unix", etc. \note Do not confuse this with the \c{qbs.targetOS} property, which represents the operating system on which the binaries produced by \QBS will run. \row \li targetOS \li stringlist \li platform-dependent \li The target operating system. May contain "windows", "linux", "macos", "darwin", "unix", "ios", "android", "qnx", etc. \endtable You can set these properties on the command line or by using a profile. \code $ qbs # qbs.buildVariant:debug, profile: (or profile:none, if no default profile exists) $ qbs release # qbs.buildVariant:release, profile: $ qbs debug release # builds two configurations of the project $ qbs profile:none # all module properties have their default values \endcode To select files by build variant: \code Group { condition: qbs.buildVariant == "debug" files: "debughelper.cpp" } \endcode To set properties for a build variant: \code Properties { condition: qbs.buildVariant == "debug" cpp.debugInformation: true cpp.optimization: "none" } \endcode Or, to use a more QML-like style: \code cpp.debugInformation: qbs.buildVariant == "debug" ? true : false cpp.optimization: qbs.buildVariant == "debug" ? "none" : "fast" \endcode \section1 Property Types While properties in \QBS generally work the same way as in QML, the set of possible property types has been adapted to reflect the specific needs of a build tool. The supported types are as follows: \table \header \li Property type \li Example \li Description \row \li \c bool \li \c{property bool someBoolean: false} \li The usual boolean values. \row \li \c int \li \c{property int theAnswer: 42} \li Integral numbers. \row \li \c path \li \c{property path aFile: "file.txt"} \li File paths resolved relative to the directory the product they are associated with is located in. \row \li \c pathList \li \c{property pathList twoFiles: ["file1.txt", "./file2.txt"]} \li A list of \c path values. \row \li \c string \li \c{property string parentalAdvisory: "explicit lyrics"} \li JavaScript strings. \row \li \c stringList \li \c{property stringList realWorldExample: ["no", "not really"]} \li A list of JavaScript strings. \row \li \c var \li \c{property var aMap: ({ key1: "value1", key2: "value2" })} \li Generic data, as in QML. \endtable \section1 Overriding Property Values from the Command Line Property values set in project files or profiles can be overridden on the command line. The syntax is \c{.:}. The following command lines demonstrate how to set different kinds of properties: \code $ qbs projects.someProject.projectProperty:false # set a property of a project $ qbs products.someProduct.productProperty:false # set a property of a product $ qbs modules.cpp.treatWarningsAsErrors:true # set a module property for all products $ qbs products.someProduct.cpp.treatWarningsAsErrors:true # set a module property for one product \endcode Property values on the command line can also be expressed in JavaScript form, the same way as you would write them in a project file. Make sure to take care of proper quoting, so that the shell does not interpret any of the values itself. Properties of type \c stringList can also be provided as comma-separated values, if none of the strings contain special characters: \code $ qbs projects.someProject.listProp:'["a", "b", "c"]' $ qbs projects.someProject.listProp:a,b,c # same as above $ qbs projects.someProject.listProp:'["a b", "c"]' # no CSV equivalent \endcode \section1 File Tags and Taggers \QBS itself knows nothing about C++ files or file extensions. All source files in a product are handled equally. However, you can assign \a{file tags} to an artifact to act as a marker or to specify a file type. An artifact can have multiple file tags. For example, you can use the \a Group item to group files with the same file tags (or a set of properties). \code Product { Group { files: ["file1.cpp", "file2.cpp"] fileTags: ["cpp"] } Group { files: "mydsl_scanner.l" fileTags: ["flex", "foobar"] } // ... } \endcode When you load the \a cpp module, you also load the following item: \code FileTagger { patterns: "*.cpp" fileTags: ["cpp"] } \endcode This construct means that each source file that matches the pattern \c{*.cpp} (and has not explicitly set a file tag) gets the file tag \c{cpp}. The above example can be simplified to \code Product { Depends: "cpp" files: ["file1.cpp", "file2.cpp"] Group { files: "mydsl_scanner.l" fileTags: ["flex", "foobar"] } // ... } \endcode The \a FileTagger from the \a cpp module automatically assigns the \c cpp file tag to the source files. Groups that just contain the \a files property can be more simply expressed by using the \a files property of the product. File tags are used by \a rules to transform one type of artifact into another. For instance, the C++ compiler rule transforms artifacts with the file tag \c cpp to artifacts with the file tag \c{obj}. In addition, it is possible to use file taggers to tag files and specify custom file tags: \code Product { Depends: "cpp" Group { overrideTags: false // The overrideTags property defaults to true. fileTags: ["foobar"] files: ["main.cpp"] // Gets the file tag "cpp" through a FileTagger item and // "foobar" from this group's fileTags property. } // ... } \endcode \section1 Rules \QBS applies a \e rule to a pool of artifacts (in the beginning it is just the set of source files of the project) and chooses the ones that match the input file tags specified by the rule. Then it creates output artifacts in the build graph that have other filenames and file tags. It also creates a script that transforms the input artifacts into the output artifacts. Artifacts created by one rule can (and typically do) serve as inputs to another rule. In this way, rules are connected to one another via their input and output file tags. For examples of rules, see the share/qbs/modules directory in the \QBS repository. You can define rules in your own module to be provided along with your project. Or you can put a rule directly into your project file. For more information, see \l{Rule Item}. */ /*! \contentspage index.html \previouspage language-introduction.html \page building-applications.html \nextpage running-applications.html \title Building Applications To build applications from the command line, enter the following commands: \code cd examples/collidingmice qbs \endcode By default, \QBS uses all the CPU cores available to achieve maximum build parallelization. To explicitly specify the number of concurrent jobs, use the \c -j option. For example, to run 4 concurrent jobs, enter the following command: \code qbs -j4 \endcode The application is built using the default build profile that is set up in your \QBS configuration. You can use the \c config command to set the max number of jobs per profile. For example, to set four jobs as the default option for a profile named \e Android, enter the following command: \code qbs config profiles.Android.preferences.jobs 4 \endcode To build with other profiles than the default one, specify options for the build command. For example, to build debug and release configurations with the \e Android profile, enter the following command: \code qbs build profile:Android debug release \endcode The position of the property assignment is important. In the example above, the profile property is set for all build configurations that come afterwards. To set a property just for one build configuration, place the assignment after the build configuration name. In the following example, the property \c cpp.treatWarningsAsErrors is set to \c true for debug only and \c cpp.optimization is set to \c small for release only. \code qbs build debug modules.cpp.treatWarningsAsErrors:true release modules.cpp.optimization:small \endcode */ /*! \contentspage index.html \previouspage running-applications.html \page installing-files.html \nextpage shell.html \title Installing Files To install your project, specify the necessary information in the project file: \code Application { Group { name: "Runtime resources" files: "*.qml" qbs.install: true qbs.installDir: "share/myproject" } Group { name: "The App itself" fileTagsFilter: "application" qbs.install: true qbs.installDir: "bin" } } \endcode In this example, we want to install a couple of QML files and an executable. The actual installation is then done like this (using the default profile): \code qbs --clean-install-root qbs.installRoot:/tmp/myProjectRoot \endcode Here, we want the installDir properties from the project file to be interpreted relative to the directory \c{/tmp/myProjectRoot}, and we want that directory to be removed first. If the \c{qbs.installRoot} property is not given, a default is used, namely \c{/install-root}. */ /*! \contentspage index.html \previouspage building-applications.html \page running-applications.html \nextpage installing-files.html \title Running Applications By default, running an application also builds it and installs it to a location from where it can be run on the desktop or on a device. For example, entering the following command runs the Qt Creator application: \code qbs run --products qtcreator \endcode This command also builds and installs the product, if necessary. */ /*! \contentspage index.html \previouspage installing-files.html \page shell.html \nextpage generators.html \title Using the Shell To use the \QBS shell, enter the following command: \code qbs shell \endcode This is mainly a debugging tool. It opens a shell with the same environment that qbs uses when building the project, so you can, for example, inspect which environment variables will be set up. */ /*! \contentspage index.html \previouspage generators.html \page custom-modules.html \nextpage howtos.html \title Custom Modules and Items Users of \QBS are not limited to the pre-defined \l{List of Modules}{modules} and \l{List of Language Items}{items}, they can also create their own. Here we describe how to set up custom modules and items so that \QBS will find them. \section1 File System Layout Items and modules are located under a common base directory, whose name and location is completely arbitrary. We will refer to it as \c search-path here. This directory has two subdirectories \c modules and \c imports, which contain \QBS modules and items, respectively. \section1 Custom Modules To introduce a custom module \c mymodule, create a directory \c{search-path/modules/mymodule/}. \note Module names are case-sensitive, and this also goes for the corresponding directory name. Then, put a file containing an instance of the \l{Module Item} in there and give it the \c{.qbs} extension. This module will be pulled in if a \l{Product Item}{product} declares a \l{Depends Item}{dependency} on \c mymodule. \section1 Custom Items To introduce a custom item \c MyItem, create the file \c{search-path/imports/MyItem.qbs}. \section1 Making \QBS Aware of Custom Modules and Items To be able to use your custom modules and items, you need to make them known to \QBS. You can do this per project or globally. \section2 Project-specific Modules and Items Let's assume you have a project that is located in \c{project_dir} and you have created some modules in \c{project_dir/custom-stuff/modules/} as well as some items in \c{project_dir/custom-stuff/imports/} that you want to use in the project. To achieve this, your top-level project file should look like this: \code // ... Project { // .. qbsSearchPaths: "custom-stuff" // .. } \endcode \note For technical reasons, the custom modules and items will not be available in the file that contains the \c qbsSearchPaths property. Any product that wants to make use of them needs to be in a different file that is pulled in via the \c references property, for example. This is not a serious limitation, since every well-structured project will be split up in this manner. \section2 Making Custom Modules and Items Available Across Projects What if your modules and items are generally useful and you want to access them in several projects? In this case, it's best to add the location to your preferences. For example: \code qbs config preferences.qbsSearchPaths /usr/local/share/custom-qbs-extensions \endcode */ /*! \contentspage index.html \previouspage shell.html \page generators.html \nextpage custom-modules.html \title Generators Generators are a \QBS sub-tool and set of APIs that enable arbitrary processing to be performed on the build graph. Currently, they are used to integrate \QBS with popular IDEs, such as Microsoft Visual Studio, and to generate Clang compilation databases. \section1 Generating Projects To generate a project for another build system, such as Microsoft Visual Studio, use the \c qbs-generate sub-command and specify a generator using the \c{-g} option. For example: \code # For Visual Studio qbs generate -g visualstudio2015 \endcode \QBS will then generate a series of files in the current directory, based on the generator that was chosen. The resulting project files can be opened in the respective IDE and all work can be performed there. The project files will expose as much information as possible to the IDE and will use \QBS to perform the actual build. \note You cannot modify build system files and expect the changes to be reflected in \QBS; you must edit your \QBS project files and re-run \c{qbs-generate} in order for the changes to be reflected in your IDE. \section1 Generating Clang Compilation Databases To generate a \l{https://clang.llvm.org/docs/JSONCompilationDatabase.html} {Clang compilation database (clangdb)}, use the following command: \code qbs generate --generator clangdb \endcode \section1 Limitations Due to the high flexibility of the \QBS project format and build engine, some projects may be too complex to produce an equivalent project file for another build system. This list of limitations aims to be as small as possible, but one of the most notable (at least for the Microsoft Visual Studio generator) is that certain properties must contain the same value across all build configurations. For example, the following is not allowed: \code Product { // ERROR: 'name' property cannot have different values based on the configuration name: qbs.configuration === "debug" ? "MyProduct_debug" : "MyProduct" } \endcode \note This limitation only applies when property values are varied on the configuration name. For example, the following is OK (as long as the value of xyz itself does not vary across configurations): \code Product { // OK property bool isDebug: name: isDebug ? "MyProduct_debug" : "MyProduct" } \endcode The properties to which the limitation applies includes but is not limited to: \list \li \l{Product Item}{Product}.name \li \l{Module bundle}{bundle}.isBundle \endlist If a simple workaround is possible in a particular case (for example, varying \c Product.targetName across configuration instead of \c Product.name), the generator will typically suggest it in the error message. */ /*! \contentspage index.html \previouspage porting-to-qbs.html \page attributions.html \title Appendix C: Code Attributions \QBS contains third-party code, which we gratefully acknowledge: \generatelist{groupsbymodule attributions-qbs} */ qbs-src-1.10.1/doc/qbs.qdocconf000066400000000000000000000001511323434465400162210ustar00rootroot00000000000000include(config/qbs-project.qdocconf) include($QT_INSTALL_DOCS/global/qt-html-templates-offline.qdocconf) qbs-src-1.10.1/doc/reference/000077500000000000000000000000001323434465400156575ustar00rootroot00000000000000qbs-src-1.10.1/doc/reference/cli/000077500000000000000000000000001323434465400164265ustar00rootroot00000000000000qbs-src-1.10.1/doc/reference/cli/builtin/000077500000000000000000000000001323434465400200745ustar00rootroot00000000000000qbs-src-1.10.1/doc/reference/cli/builtin/cli-build.qdoc000066400000000000000000000074211323434465400226140ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage cli.html \page cli-build.html \ingroup cli \title build \brief Builds a project. \section1 Synopsis \code qbs build [options] [[configuration-name] [property:value] ...] \endcode \section1 Description Builds projects in one or more configurations. You can specify \l{Project Item}{project}, \l{Product Item}{product}, or \l{List of Modules}{module} properties, as well as a \l{Profile Item} {profile} separately for each configuration. This is the default command. If the build directory does not exist, it will be created. For more information, see \l{Building Applications}. \section1 Options \include cli-options.qdocinc all-products \include cli-options.qdocinc build-directory \include cli-options.qdocinc changed-files \include cli-options.qdocinc check-outputs \include cli-options.qdocinc check-timestamps \include cli-options.qdocinc clean-install-root \include cli-options.qdocinc command-echo-mode \include cli-options.qdocinc dry-run \include cli-options.qdocinc project-file \include cli-options.qdocinc force-probe-execution \include cli-options.qdocinc jobs \include cli-options.qdocinc keep-going \include cli-options.qdocinc less-verbose \include cli-options.qdocinc log-level \include cli-options.qdocinc log-time \include cli-options.qdocinc more-verbose \include cli-options.qdocinc no-install \include cli-options.qdocinc products-specified \include cli-options.qdocinc settings-dir \include cli-options.qdocinc show-progress \include cli-options.qdocinc wait-lock \section1 Parameters \include cli-parameters.qdocinc configuration-name \include cli-parameters.qdocinc property \section1 Examples Builds the application specified by the \c .qbs file in the current directory using the default profile: \code qbs \endcode Builds the application using four concurrent build jobs: \code qbs -j 4 \endcode Builds the default configuration of an application using the profile called \c Android: \code qbs build profile:Android \endcode Builds the application using different \l{Module cpp}{cpp module} properties for debug and release configurations. For the debug configuration, warnings will cause the build to fail, whereas for the release configuration, the size of the build artifacts will be optimized: \code qbs build debug modules.cpp.treatWarningsAsErrors:true release modules.cpp.optimization:small \endcode */ qbs-src-1.10.1/doc/reference/cli/builtin/cli-clean.qdoc000066400000000000000000000044031323434465400225740ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage cli.html \page cli-clean.html \ingroup cli \title clean \brief Removes the files generated during a build. \section1 Synopsis \code qbs clean [options] [configuration-name] \endcode \section1 Description Removes build \l{Artifact Item}{artifacts} for the specified build configuration. \section1 Options \include cli-options.qdocinc build-directory \include cli-options.qdocinc dry-run \include cli-options.qdocinc keep-going \include cli-options.qdocinc less-verbose \include cli-options.qdocinc log-level \include cli-options.qdocinc log-time \include cli-options.qdocinc more-verbose \include cli-options.qdocinc products-specified \include cli-options.qdocinc settings-dir \include cli-options.qdocinc show-progress \section1 Parameters \include cli-parameters.qdocinc configuration-name \section1 Examples Removes the build artifacts in the current directory for the default build configuration: \code qbs clean \endcode */ qbs-src-1.10.1/doc/reference/cli/builtin/cli-dump-nodes-tree.qdoc000066400000000000000000000040171323434465400245230ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage cli.html \page cli-dump-nodes-tree.html \ingroup cli \title dump-nodes-tree \brief Dumps the nodes in the build graph to \c stdout. \section1 Synopsis \code qbs dump-nodes-tree [options] [configuration-name] \endcode \section1 Description Dumps the nodes in the build graph to \c stdout. This is an internal command that is used for debugging purposes only. \section1 Options \include cli-options.qdocinc build-directory \include cli-options.qdocinc products-specified \include cli-options.qdocinc settings-dir \section1 Parameters \include cli-parameters.qdocinc configuration-name \section1 Examples Dumps the nodes tree into a file called \c nodes-tree.log: \code qbs dump-nodes-tree >nodes-tree.log \endcode */ qbs-src-1.10.1/doc/reference/cli/builtin/cli-generate.qdoc000066400000000000000000000051261323434465400233070ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage cli.html \page cli-generate.html \ingroup cli \title generate \brief Invokes a project generator, for example to create project files for another build tool. \section1 Synopsis \code qbs generate [options] [[configuration-name] [property:value] ...] \endcode \section1 Description Invokes a project generator, for example to create project files for another build tool. For more information, see \l{Generators}. \section1 Options \include cli-options.qdocinc generator \include cli-options.qdocinc build-directory \include cli-options.qdocinc project-file \include cli-options.qdocinc install-root \include cli-options.qdocinc less-verbose \include cli-options.qdocinc log-level \include cli-options.qdocinc log-time \include cli-options.qdocinc more-verbose \include cli-options.qdocinc settings-dir \include cli-options.qdocinc show-progress \section1 Parameters \include cli-parameters.qdocinc configuration-name \include cli-parameters.qdocinc property \section1 Examples Generates a project for Microsoft Visual Studio: \code qbs generate -g visualstudio2015 \endcode Generates a \l{https://clang.llvm.org/docs/JSONCompilationDatabase.html} {Clang compilation database (clangdb)}: \code qbs generate --generator clangdb \endcode */ qbs-src-1.10.1/doc/reference/cli/builtin/cli-help.qdoc000066400000000000000000000035221323434465400224430ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage cli.html \page cli-help.html \ingroup cli \title help \brief Shows general or command-specific help. \section1 Synopsis \code qbs help [] \endcode \section1 Description Shows a list of available commands with descriptions. Specify a command name to list the options that the command takes with descriptions. \section1 Options This command takes no options. \section1 Examples Shows an overview of all commands: \code qbs help \endcode Lists the options that the \c build command takes: \code qbs help build \endcode */ qbs-src-1.10.1/doc/reference/cli/builtin/cli-install.qdoc000066400000000000000000000054661323434465400231720ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage cli.html \page cli-install.html \ingroup cli \title install \brief Installs a project. \section1 Synopsis \code qbs install [options] [[configuration-name] [property:value] ...] \endcode \section1 Description Install all files marked as installable to their respective destinations. The project is built first, if necessary, unless the \c --no-build option is given. For more information, see \l{Installing Files}. \section1 Options \include cli-options.qdocinc all-products \include cli-options.qdocinc build-directory \include cli-options.qdocinc changed-files \include cli-options.qdocinc check-outputs \include cli-options.qdocinc check-timestamps \include cli-options.qdocinc clean-install-root \include cli-options.qdocinc command-echo-mode \include cli-options.qdocinc dry-run \include cli-options.qdocinc project-file \include cli-options.qdocinc force-probe-execution \include cli-options.qdocinc install-root \include cli-options.qdocinc jobs \include cli-options.qdocinc keep-going \include cli-options.qdocinc less-verbose \include cli-options.qdocinc log-level \include cli-options.qdocinc log-time \include cli-options.qdocinc more-verbose \include cli-options.qdocinc no-build \include cli-options.qdocinc products-specified \include cli-options.qdocinc settings-dir \include cli-options.qdocinc wait-lock \section1 Parameters \include cli-parameters.qdocinc configuration-name \include cli-parameters.qdocinc property \section1 Examples */ qbs-src-1.10.1/doc/reference/cli/builtin/cli-resolve.qdoc000066400000000000000000000045601323434465400231750ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage cli.html \page cli-resolve.html \ingroup cli \title resolve \brief Resolves a project without building it. \section1 Synopsis \code qbs resolve [options] [[configuration-name] [property:value] ...] \endcode \section1 Description Resolves a \l{Project Item}{project} in one or more configurations. Run this command to change the properties of an existing build. \section1 Options \include cli-options.qdocinc build-directory \include cli-options.qdocinc dry-run \include cli-options.qdocinc project-file \include cli-options.qdocinc force-probe-execution \include cli-options.qdocinc less-verbose \include cli-options.qdocinc log-level \include cli-options.qdocinc log-time \include cli-options.qdocinc more-verbose \include cli-options.qdocinc settings-dir \include cli-options.qdocinc show-progress \section1 Parameters \include cli-parameters.qdocinc configuration-name \include cli-parameters.qdocinc property \section1 Examples Resolves the default configuration of the project in the current directory: \code qbs resolve \endcode */ qbs-src-1.10.1/doc/reference/cli/builtin/cli-run.qdoc000066400000000000000000000062551323434465400223250ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage cli.html \page cli-run.html \ingroup cli \title run \brief Runs an executable generated by building a project. \section1 Synopsis \code qbs run [options] [configuration-name] [property:value] ... [ -- ] \endcode \section1 Description Runs the specified product's executable with the specified \c . If the project has only one product, the \c --products option may be omitted. The product will be built if it is not up to date, unless the \c --no-build option is specified. For more information, see \l{build}. For more information about running applications, see \l{Running Applications}. \section1 Options \include cli-options.qdocinc all-products \include cli-options.qdocinc build-directory \include cli-options.qdocinc changed-files \include cli-options.qdocinc check-outputs \include cli-options.qdocinc check-timestamps \include cli-options.qdocinc clean-install-root \include cli-options.qdocinc command-echo-mode \include cli-options.qdocinc dry-run \include cli-options.qdocinc project-file \include cli-options.qdocinc force-probe-execution \include cli-options.qdocinc install-root \include cli-options.qdocinc jobs \include cli-options.qdocinc keep-going \include cli-options.qdocinc less-verbose \include cli-options.qdocinc log-level \include cli-options.qdocinc log-time \include cli-options.qdocinc more-verbose \include cli-options.qdocinc no-build \include cli-options.qdocinc products-specified \include cli-options.qdocinc settings-dir \include cli-options.qdocinc wait-lock \section1 Parameters \include cli-parameters.qdocinc configuration-name \include cli-parameters.qdocinc property \section1 Arguments \include cli-parameters.qdocinc arguments \section1 Examples Runs the Qt Creator application: \code qbs run --products qtcreator \endcode */ qbs-src-1.10.1/doc/reference/cli/builtin/cli-shell.qdoc000066400000000000000000000041531323434465400226230ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage cli.html \page cli-shell.html \ingroup cli \title shell \brief Opens a shell with a product's environment. \section1 Synopsis \code qbs shell [options] [configuration-name] [property:value] \endcode \section1 Description Opens a shell in the environment that a build with the specified parameters would use. For more information, see \l{Using the Shell}. \section1 Options \include cli-options.qdocinc build-directory \include cli-options.qdocinc project-file \include cli-options.qdocinc products-specified \include cli-options.qdocinc settings-dir \section1 Parameters \include cli-parameters.qdocinc configuration-name \include cli-parameters.qdocinc property \section1 Examples Opens a shell with the same environment that \QBS uses when building the project: \code qbs shell \endcode */ qbs-src-1.10.1/doc/reference/cli/builtin/cli-status.qdoc000066400000000000000000000036571323434465400230470ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage cli.html \page cli-status.html \ingroup cli \title status \brief Shows the status of files in the project directory. \section1 Synopsis \code qbs status [options] [configuration-name] \endcode \section1 Description Lists all the files in the project directory and shows whether they are known to \QBS in the respective configuration. \section1 Options \include cli-options.qdocinc build-directory \include cli-options.qdocinc settings-dir \section1 Parameters \include cli-parameters.qdocinc configuration-name \section1 Examples To list the files in the project directory and view their status: \code qbs status \endcode */ qbs-src-1.10.1/doc/reference/cli/builtin/cli-update-timestamps.qdoc000066400000000000000000000045721323434465400251670ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage cli.html \page cli-update-timestamps.html \ingroup cli \title update-timestamps \brief Marks the build as up-to-date. \section1 Synopsis \code qbs update-timestamps [options] [configuration-name] ... \endcode \section1 Description Updates the timestamps of all build \l{Artifact Item}{artifacts}, causing the next builds of the \l{Project Item}{project} to do nothing until source files are updated again. This command is useful if you know that the current changes to source files are irrelevant to the build. \note Using this command causes a discrepancy between the actual state of source files and the information in the build graph, so be careful. \section1 Options \include cli-options.qdocinc build-directory \include cli-options.qdocinc less-verbose \include cli-options.qdocinc log-level \include cli-options.qdocinc more-verbose \include cli-options.qdocinc products-specified \include cli-options.qdocinc settings \section1 Parameters \include cli-parameters.qdocinc configuration-name \include cli-parameters.qdocinc property \section1 Examples */ qbs-src-1.10.1/doc/reference/cli/cli-options.qdocinc000066400000000000000000000246411323434465400222370ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! //! [all-products] \section2 \c --all-products Processes all \l{Product Item}{products}, even if their \c builtByDefault property is \c false. //! [all-products] //! [blacklist] \section2 \c {--blacklist } Ignores files whose names match the patterns specified by \c . The list entries can contain wildcards and are separated by commas. By default, no files are ignored. //! [blacklist] //! [build-directory] \section2 \c {--build-directory|-d } Specifies a \c where build artifacts are stored. The default value is the current directory unless \c preferences.defaultBuildDirectory is set. Relative paths will be interpreted relative to the current directory. You can use the following special values as placeholders: \list \li \c @project is expanded to the name of the project file excluding the extension \c .qbs. \li \c @path is expanded to the name of the directory containing the project file. \endlist //! [build-directory] //! [changed-files] \section2 \c {--changed-files [,...]} Assumes that the files specified by \c , and only those files, have changed. //! [changed-files] //! [check-outputs] \section2 \c --check-outputs Forces transformer output \l{Artifact Item}{artifact} checks. Verifies that the output artifacts declared by \l{Rule Item}{rules} in the \l{Project Item}{project} are actually created. //! [check-outputs] //! [check-timestamps] \section2 \c --check-timestamps Forces timestamp checks. Retrieves the timestamps from the file system, instead of using the file timestamps that are stored in the build graph. //! [check-timestamps] //! [clean-install-root] \section2 \c --clean-install-root Removes the installation base directory before installing. //! [clean-install-root] //! [command-echo-mode] \section2 \c {--command-echo-mode } Determines what kind of output to show when executing commands. Possible values of \c are: \list \li \c silent \li \c summary (default value) \li \c command-line \li \c command-line-with-environment \endlist //! [command-echo-mode] //! [detect-qt-versions] \section2 \c --detect Attempts to auto-detect all known Qt versions, looking them up in the PATH environment variable. //! [detect-qt-versions] //! [detect-toolchains] \section2 \c --detect Attempts to auto-detect all known toolchains, looking them up in the PATH environment variable. //! [detect-toolchains] //! [dry-run] \section2 \c --dry-run|-n Performs a dry run. No commands will be executed and no permanent changes to the build graph will be done. //! [dry-run] //! [export] \section2 \c {--export } Exports settings to the specified \c . //! [export] //! [project-file] \section2 \c {[--file|-f ]} Uses \c as the project file. If \c is a directory and it contains a single file with the extension \c .qbs, that file will be used. If this option is not given at all, the behavior is the same as for \c{-f }. //! [project-file] //! [flat] \section2 \c --flat Does not create nested project files, even if there are subdirectories and the top-level directory does not contain any files. //! [flat] //! [force-probe-execution] \section2 \c --force-probe-execution Forces re-execution of all \l{Probe Item}{Probe items}' configure scripts, rather than using the cached data. //! [force-probe-execution] //! [generator] \section2 \c {--generator|-g } Uses the specified build system generator. Possible values of \c include: \list \li \c clangdb \li \c visualstudio2015 \endlist The available generators are listed if you run the \c {qbs generate} command without passing a generator to it. //! [generator] //! [help] \section2 \c {--help|-h|-?} Displays help for the command. //! [help] //! [import] \section2 \c {--import } Imports settings from the specified \c . //! [import] //! [install-root] \section2 \c {--install-root } Installs into the specified \c . If the directory does not exist, it will be created. The default value is \c /install-root. Use the special value \c @sysroot to install into the \c sysroot. That is, the value of the \l{Module qbs}{qbs.sysroot} property. //! [install-root] //! [jobs] \section2 \c {--jobs|-j } Uses \c concurrent build jobs, where \c must be an integer greater than zero. The default is the number of logical cores. //! [jobs] //! [keep-going] \section2 \c --keep-going|-k Keeps going when errors occur, if at all possible. //! [keep-going] //! [less-verbose] \section2 \c --less-verbose|-q Becomes more quiet by decreasing the log level by one. This option can be given more than once. Excessive occurrences have no effect. If the option \c --log-level appears anywhere on the command line in addition to this option, its value is taken as the base for the decrease. //! [less-verbose] //! [list-root] \section2 \c {--list [ ...]} Lists keys under the key \c or all keys if the root is not specified. Possible values are: \list \li \c defaultProfile is the default \l{Profile Item}{profile} to use if a profile is not specified \li \c preferences accepts build preferences as second-level keys \li \c profiles accepts profile names as second-level keys \endlist //! [list-root] //! [log-level] \section2 \c {--log-level } Uses the specified log level. Possible values of \c are: \list \li \c error \li \c warning \li \c info (default value) \li \c debug \li \c trace \endlist //! [log-level] //! [log-time] \section2 \c --log-time Logs the time that the operations involved in this command take. This option is implied in log levels \c debug and higher. This option is mutually exclusive with \c --show-progress. //! [log-time] //! [more-verbose] \section2 \c --more-verbose|-v Becomes more verbose by increasing the log level by one. This option can be given more than once. Excessive occurrences have no effect. If the option \c --log-level appears anywhere on the command line in addition to this option, its value is taken as the base for the increase. //! [more-verbose] //! [ndk-dir] \section2 \c {--ndk-dir } Specifies a \c that contains an Android NDK. //! [ndk-dir] //! [no-build] \section2 \c --no-build Does not re-build the project before installing or running it. //! [no-build] //! [no-install] \section2 \c --no-install Does not install any artifacts as part of the build process. //! [no-install] //! [products-specified] \section2 \c {--products|-p [,...]} Takes only the \l{Product Item}{products} specified by \c and their dependencies into account. //! [products-specified] //! [qt-dir] \section2 \c {--qt-dir } Specifies a \c that contains a Qt version. //! [qt-dir] //! [sdk-dir] \section2 \c {--sdk-dir } Specifies a \c that contains an Android SDK. //! [sdk-dir] //! [settings-dir] \section2 \c {--settings-dir } Reads all settings (such as \l{Profile Item}{profile} information) from the specified \c . If the directory does not exist, it will be created. The default value is system-specific. For example: \list \li Linux: \c $HOME/.config/QtProject/qbs \li Windows: \c %APPDATA%\QtProject\qbs \li macOS: \c $HOME/Library/Preferences/qbs \endlist //! [settings-dir] //! [show-progress] \section2 \c --show-progress Shows how command execution is progressing. This option is mutually exclusive with \c --log-time. \note This option is not available on a Windows host. //! [show-progress] //! [type] \section2 \c {--type } Specifies the type of the toolchain. Needed if \QBS cannot determine the compiler from the name of the executable file located in the specified directory. Possible values include: \list \li \c clang \li \c gcc \li \c mingw \li \c msvc \endlist //! [type] //! [unset] \section2 \c {--unset } Removes the specified \c . //! [unset] //! [wait-lock] \section2 \c --wait-lock Waits indefinitely for other processes to release the build graph lock. This option is typically used by \l{Generators}{generators}, which may re-invoke multiple \QBS processes on the same project simultaneously. //! [wait-lock] //! [whitelist] \section2 \c {--whitelist } Considers only files whose names match the patterns specified by \c . The list entries can contain wildcards and are separated by commas. By default, all files are considered. //! [whitelist] */ qbs-src-1.10.1/doc/reference/cli/cli-parameters.qdocinc000066400000000000000000000057721323434465400227130ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! //! [arguments] \section2 \c -- Command-line arguments to be passed to the program to be run. //! [arguments] //! [configuration-name] \section2 \c configuration-name Specifies the build configuration to use. The \c debug and \c release configuration names imply the respective build variant. A debug build contains additional debug symbols that are needed for debugging the application but that can be left out from the release version. Generally, debug builds are used for testing and release builds for creating the final installation file. The build variant can also be specified explicitly by using the \l{Module qbs}{qbs.buildVariant} property. When naming configurations created for special purposes, follow the rules for legal names generally used in programming languages: \list \li The first character must be a letter (a-z), an underscore (_), or a dollar sign ($). \li Subsequent characters may be letters, digits, underscores, or dollar signs. \endlist //! [configuration-name] //! [key] \section2 \c Typically, a \c consists of several levels separated by periods. The first level shows a \e root value, such as \e preferences or \e profiles. The root determines whether the second-level keys are build preferences or profile names. The lower level keys consist of a module name, followed by a property name. //! [key] //! [property] \section2 \c {property:value} Property values set in project files or profiles can be overridden on the command line. The syntax is: \code .: \endcode For more information, see \l{Overriding Property Values from the Command Line}. //! [property] */ qbs-src-1.10.1/doc/reference/cli/cli.qdoc000066400000000000000000000033121323434465400200440ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage reference.html \group cli \title Command-Line Interface \brief A list of available command-line commands. The \c qbs command-line commands can be invoked as \c{qbs }. This reference summarizes the command-line commands. The authoritative source of up-to-date information is the respective help screen, which you get by calling \c{qbs help }. Some commands are described in context in the \l{Usage} section of the manual. */ qbs-src-1.10.1/doc/reference/cli/tools/000077500000000000000000000000001323434465400175665ustar00rootroot00000000000000qbs-src-1.10.1/doc/reference/cli/tools/cli-config-ui.qdoc000066400000000000000000000040451323434465400230660ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage cli.html \page cli-config-ui.html \ingroup cli \title config-ui \brief Opens a GUI application for managing \QBS settings, such as preferences and profiles. \section1 Synopsis \code qbs config-ui [--settings-dir ] \endcode \section1 Description Opens the \QBS Settings application for managing \QBS settings, such as preferences and profiles, in a hierarchical view. This makes it easier to manage a large number of settings than using the \l{config} command from the command line. \image qbs-settings-gui.png For more information, see \l{Configuring}. \section1 Options \include cli-options.qdocinc settings-dir \include cli-options.qdocinc help \section1 Examples Opens \QBS Settings: \code qbs config-ui \endcode */ qbs-src-1.10.1/doc/reference/cli/tools/cli-config.qdoc000066400000000000000000000064321323434465400224550ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage cli.html \page cli-config.html \ingroup cli \title config \brief Manages \QBS settings, such as preferences and profiles. \section1 Synopsis \code qbs config [--settings-dir ] [--list [ ...]] [--unset ] [--export ] [--import ] qbs config [--settings-dir ] qbs config [--settings-dir ] \endcode \section1 Description Manages \QBS settings, such as preferences and profiles. You can list all keys and remove the specified key, as well as import settings from a file or export them to a file. The second form of this command displays the specified \c . The third form sets the specified \c with the specified \c . You can use the \l{config-ui} command to open the Qbs Settings tool for managing settings in a hierarchical view. For more information, see \l{Configuring}, \l{Managing Qt Versions}, \l{Modules}, \l {List of Modules}, and \l{Custom Modules and Items}. \section1 Options \include cli-options.qdocinc settings-dir \include cli-options.qdocinc list-root \include cli-options.qdocinc unset \include cli-options.qdocinc export \include cli-options.qdocinc import \include cli-options.qdocinc help \section1 Parameters \include cli-parameters.qdocinc key \section1 Examples Lists the existing profiles: \code qbs config --list profiles \endcode Shows the default profile: \code qbs config defaultProfile \endcode \note If no output is shown, the default profile used is the built-in profile \c none, which sets no properties. Sets the profile called \c gcc as the base profile of the Qt profile called \c myqt: \code qbs config profiles.myqt.baseProfile gcc \endcode Adds the location of a custom module to your preferences, to make the module accessible in several projects: \code qbs config preferences.qbsSearchPaths /usr/local/share/custom-qbs-extensions \endcode */ qbs-src-1.10.1/doc/reference/cli/tools/cli-create-project.qdoc000066400000000000000000000046301323434465400241150ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage cli.html \page cli-create-project.html \ingroup cli \title create-project \brief Creates a \QBS project from an existing set of source files. \section1 Synopsis \code qbs create-project [--blacklist ] [--whitelist ] [--flat] \endcode \section1 Description Automatically generates \QBS project files from an arbitrary directory structure. You can filter the files to add to the project by blacklisting or whitelisting them. The command creates nested project files, unless you use the \c --flat option. This is a useful starting point when migrating from other build tools, such as qmake or CMake. \note Run this command from the project directory. After generating the initial .qbs files, add the missing configuration variables and functions to them. \section1 Options \include cli-options.qdocinc blacklist \include cli-options.qdocinc whitelist \include cli-options.qdocinc flat \include cli-options.qdocinc help \section1 Examples Creates \c .qbs files in the project directory when run from there: \code qbs create-project \endcode */ qbs-src-1.10.1/doc/reference/cli/tools/cli-setup-android.qdoc000066400000000000000000000045311323434465400237640ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage cli.html \page cli-setup-android.html \ingroup cli \title setup-android \brief Creates \QBS profiles for Android SDK and NDK installations. \section1 Synopsis \code qbs setup-android [--settings-dir ] [--ndk-dir ] [--sdk-dir ] [--qt-dir ] \endcode \section1 Description Creates \QBS profiles for Android SDK and NDK installations. If a Qt path is given, these additional profiles will be suitable for building Qt binaries for the respective architecture, if the Qt installation has support for it. \section1 Options \include cli-options.qdocinc settings-dir \include cli-options.qdocinc ndk-dir \include cli-options.qdocinc sdk-dir \include cli-options.qdocinc qt-dir \include cli-options.qdocinc help \section1 Examples Creates a profile with the name \c oreo that specifies the target platforms' \l{Module qbs}{architectures} and operating systems, as well as the toolchains available: \code qbs setup-android oreo \endcode */ qbs-src-1.10.1/doc/reference/cli/tools/cli-setup-qt.qdoc000066400000000000000000000045171323434465400227740ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage cli.html \page cli-setup-qt.html \ingroup cli \title setup-qt \brief Creates \QBS profiles for Qt installations. \section1 Synopsis \code qbs setup-qt [--settings-dir ] --detect qbs setup-qt [--settings-dir ] \endcode \section1 Description Creates \QBS profiles for Qt installations. The first form tries to auto-detect all known Qt versions, looking them up via the PATH variable. The second form creates a profile with the name \c {} for the Qt version located at \c {}. For more information, see \l{Managing Qt Versions}. \section1 Options \include cli-options.qdocinc detect-qt-versions \include cli-options.qdocinc settings-dir \include cli-options.qdocinc help \section1 Examples Looks up Qt versions in the PATH and creates profiles for them: \code qbs setup-qt --detect \endcode Creates a profile called \c myqt for the Qt version located in \c /usr/bin/qmake: \code qbs setup-qt /usr/bin/qmake myqt \endcode */ qbs-src-1.10.1/doc/reference/cli/tools/cli-setup-toolchains.qdoc000066400000000000000000000056201323434465400245070ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage cli.html \page cli-setup-toolchains.html \ingroup cli \title setup-toolchains \brief Creates \QBS profiles for toolchains, such as GCC or MSVC. \section1 Synopsis \code qbs setup-toolchains [--settings-dir ] --detect qbs setup-toolchains [--settings-dir ] [--type ] \endcode \section1 Description The first form tries to auto-detect all known toolchains, looking them up via the PATH variable. The second form creates a profile with the name \c {} for the toolchain located at \c {}. It will attempt to determine the toolchain type automatically based on the file name or the compiler executable. If that fails, you need to provide the compiler type as a value of the \c --type option. For more information, see \l{Configuring}. \section1 Options \include cli-options.qdocinc settings-dir \include cli-options.qdocinc detect-toolchains \include cli-options.qdocinc type \include cli-options.qdocinc help \section1 Examples Looks up toolchains via the PATH variable and creates profiles for them: \code qbs setup-toolchains --detect \endcode Creates a profile called \c mingw for the toolchain located in \c C:\mingw530_32\bin on Windows: \code qbs setup-toolchains C:\mingw530_32\bin\g++.exe mingw \endcode Creates a profile called \c g++-mingw-w64 for the toolchain located in \c /usr/bin/x86_64-w64-mingw32-g++ g++-mingw-w64 on Ubuntu: \code qbs setup-toolchains /usr/bin/x86_64-w64-mingw32-g++ g++-mingw-w64 \endcode */ qbs-src-1.10.1/doc/reference/commands.qdoc000066400000000000000000000215251323434465400203350ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ // TODO: "\c" markup is used for all properties in table due to QTBUG-35505. /*! \contentspage reference.html \page commands.html \title Command and JavaScriptCommand \brief Types of commands to be used in rules A \e command is what \QBS executes at build time. It is represented in the language by an object of type \c Command, which runs a process, or \c JavaScriptCommand, which executes arbitrary JavaScript code. A command is always created in the prepare script of a \c Rule. \section1 Command A \c Command represents a process that will be invoked at build time. Its constructor arguments are the binary to run and a list of command-line arguments. For instance: \code var insaneCommand = new Command("rm", ["-r", "/"]); \endcode The \l{Rule Item} documentation shows a \c Command in context. \section1 JavaScriptCommand A \c JavaScriptCommand represents a chunk of JavaScript code that is run at build time. For instance: \code var cmd = new JavaScriptCommand(); cmd.apology = "Sorry."; cmd.sourceCode = function() { console.info("I'm a rather pointless command."); console.info(apology); }; \endcode Within the source code, the special identifiers \c project and \c product (giving access to project and product properties, respectively) as well as \c inputs and \c outputs are available. As the example shows, arbitrary properties can be set on the command object and then used within the source code. This technique is typically used to forward values from the prepare script to the command. The \l{Rule Item} documentation shows a \c JavaScriptCommand in context. \section1 Properties \section2 Common Properties The following properties are available in both \c Command and \c JavaScriptCommand. \table \header \li Property \li Type \li Default \li Description \row \li \c description \li string \li empty \li A message that is displayed when the command is executed. \row \li \c extendedDescription \li string \li empty \li A detailed description that is displayed when the command is executed. \row \li \c highlight \li string \li empty \li A tag that can be used to influence how the \c description is displayed. In principle, the values are arbitrary. The \QBS command-line tool understands the following values and maps them to different colors if the output device is a terminal: \list \li "compiler" indicates that the command processes source code \li "linker" indicates that the command links objects \li "codegen" indicates that the command generates source code \li "filegen" indicates that the command creates arbitrary files \endlist All other values are mapped to the default color. \row \li \c silent \li bool \li false \li A flag that controls whether the \c description is printed. Set it to \c true for commands that users need not know about. \note If this property is \c false, then \c description must not be empty. \endtable \section2 Command Properties \table \header \li Property \li Type \li Default \li Description \row \li \c arguments \li stringList \li empty \li The list of arguments to invoke the command with. Explicitly setting this property overrides an argument list provided when instantiating the object. \row \li \c environment \li stringList \li empty \li A list of environment variables that are added to the common build environment. They are provided as a list of strings in the form "varName=value". \row \li \c maxExitCode \li int \li 0 \li The maximum exit code from the process to interpret as success. Setting this should rarely be necessary, as all well-behaved applications use values other than zero to indicate failure. \row \li \c program \li string \li undefined \li The binary to invoke. Explicitly setting this property overrides a path provided when instantiating the object. \row \li \c relevantEnvironmentVariables \li stringList \li undefined \li Names of environment variables that the invoked binary considers. If one of these variables changes in the build environment, the command will be re-run even if the input files are still up to date. \row \li \c responseFileThreshold \li int \li 32000 on Windows, -1 elsewhere \li If this value is greater than zero and less than the length of the full command line, and if \c responseFileUsagePrefix is not empty, the contents of the command line are moved to a temporary file, whose path becomes the entire contents of the argument list. The program is then supposed to read the full argument list from that file. This mechanism is mainly useful to work around Windows limitations regarding the maximum length of the command line and will only work with programs that explicitly support it. \row \li \c responseFileArgumentIndex \li int \li 0 \li Index of the first argument to include in the response file. For example this may be used in conjunction with a compiler wrapper where the first argument (the path to the compiler) must be included on the raw command line. \row \li \c responseFileUsagePrefix \li string \li empty \li The prefix that informs \c program that the rest of the argument is a path to a file containing the actual command line. \row \li \c stderrFilterFunction \li function \li undefined \li A function that takes as input the command's actual standard error output and returns a string that is presented to the user as the command's standard error output. If it is not set, the output is shown unfiltered. \row \li \c stdoutFilterFunction \li function \li undefined \li A function that takes as input the command's actual standard output and returns a string that is presented to the user as the command's standard output. If it is not set, the output is shown unfiltered. \row \li \c workingDirectory \li string \li empty \li The program's working directory. \row \li \c stdoutFilePath \li string \li undefined \li Redirects the filtered standard output content to \c stdoutFilePath. If \c stdoutFilePath is undefined, the filtered standard output is forwarded to \QBS, possibly to be printed to the console. \row \li \c stderrFilePath \li string \li undefined \li Redirects the filtered standard error output content to \c stderrFilePath. If \c stderrFilePath is undefined, the filtered standard error output is forwarded to \QBS, possibly to be printed to the console. \endtable \section2 JavaScriptCommand Properties \table \header \li Property \li Type \li Default \li Description \row \li \c sourceCode \li function \li undefined \li The JavaScript function to execute. \endtable */ qbs-src-1.10.1/doc/reference/items/000077500000000000000000000000001323434465400170005ustar00rootroot00000000000000qbs-src-1.10.1/doc/reference/items/convenience/000077500000000000000000000000001323434465400212745ustar00rootroot00000000000000qbs-src-1.10.1/doc/reference/items/convenience/androidapk.qdoc000066400000000000000000000074131323434465400242650ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-convenience-items.html \page androidapk-item.html \nextpage applediskimage-item.html \ingroup list-of-convenience-items \ingroup list-of-items \keyword QML.AndroidApk \title AndroidApk Item \brief Represents an Android application package. An \c AndroidApk item is a \c Product of type \e android.apk. It has a dependency on the \l{Module Android.sdk}{Android.sdk module}. The final build result is an Android application package (APK) file. Here is what the project file could look like for the BasicMediaDecoder example that comes with the Android SDK: \code import qbs AndroidApk { name: "Basic Media Decoder" packageName: "com.example.android.basicmediadecoder" property string sourcesPrefix: "Application/src/main/" resourcesDir: sourcesPrefix + "/res" sourcesDir: sourcesPrefix + "/java" manifestFile: sourcesPrefix + "/AndroidManifest.xml" } \endcode \section1 AndroidApk Properties The following properties are available in addition to the ones inherited from \c Product. \table \header \li Property \li Type \li Default \li Description \row \li assetsDir \li path \li \c "assets" \li The base directory for Android assets. \note Android requires that the file name of this directory is always "assets". \row \li automaticSources \li bool \li \c true \li If this is enabled, Java sources as well as Android resources, assets and the manifest file will be automatically included in the product via wildcards. Set this property to \c false if you want to specify these files manually. \row \li manifestFile \li path \li \c "AndroidManifest.xml" \li The file path to the Android manifest file. \note Android requires that the file name is always "AndroidManifest.xml". \row \li packageName \li string \li \c name \li The package name as given in the manifest file. \row \li resourcesDir \li path \li \c "res" \li The base directory for Android resources. \note Android requires that the file name of this directory is always "res". \row \li sourcesDir \li path \li \c "src" \li The base directory for Java sources. This property is only relevant if \c automaticSources is enabled. \endtable */ qbs-src-1.10.1/doc/reference/items/convenience/appleapplicationdiskimage.qdoc000066400000000000000000000110311323434465400273430ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-convenience-items.html \page appleapplicationdiskimage-item.html \previouspage applediskimage-item.html \nextpage application-item.html \ingroup list-of-convenience-items \ingroup list-of-items \keyword QML.AppleApplicationDiskImage \title AppleApplicationDiskImage Item \brief Represents a product that is an Apple application drag 'n' drop disk image installer. An \c AppleApplicationDiskImage item is a convenience item that has a dependency on the \l{Module dmg}{DMG module} and whose type is \c{["dmg.dmg"]}, and also has rules and properties specific to building drag 'n' drop disk image installers with an application bundle and symbolic link to the /Applications directory. Any artifacts of product dependencies which are tagged \c{"installable"} will be copied into the disk image, provided their file paths are relative to the path specified by the \c{sourceBase} property (i.e. are located in that directory). Any artifacts tagged \c{"installable"} and which are not relative to \c{sourceBase} will be ignored. Here is what the project file could look like for a simple DMG installer: \code import qbs AppleApplicationDiskImage { Depends { name: "myapp" } name: "My App" dmg.volumeName: name dmg.iconSize: 128 dmg.windowWidth: 640 dmg.windowHeight: 280 dmg.iconPositions: [ {"path": "Applications", "x": 128, "y": 128}, {"path": "My App.app", "x": 256, "y": 128} ] files: ["background.tiff", "volume-icon.icns"] Group { files: ["*.lproj/**"] // licenses fileTags: ["dmg.license.input"] } } \endcode For plain disk images whose contents are not a single application bundle, consider the base \l{AppleDiskImage Item}{AppleDiskImage} item instead. \section1 AppleApplicationDiskImage Properties The following properties are available in addition to the ones inherited from \c AppleDiskImage. \table \header \li Property \li Type \li Since \li Default \li Description \row \li sourceBase \li \c{string} \li 1.9 \li /Applications \li The base directory from which artifacts installed into the disk image will be copied. This directory is always considered to be relative to \c{qbs.installRoot}. For example, if the application Example.app exists at \c{qbs.installRoot}/Applications/Example.app, and \c{sourceBase} is \c{/Applications}, the application will be located at /Example.app relative to the disk image root, and therefore its full path when the disk image is mounted would be something like /Volumes/Example-1.0/Example.app. \row \li symlinks \li \c{stringList} \li 1.9 \li \c{["/Applications:Applications"]} \li List of symlinks to create in the disk image. This is specified as a list of strings, each string containing two file paths separated by a colon. The first path is the symlink target, and the second path is the name of the symlink relative to the root of the disk image. \endtable */ qbs-src-1.10.1/doc/reference/items/convenience/applediskimage.qdoc000066400000000000000000000035771323434465400251370ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-convenience-items.html \page applediskimage-item.html \previouspage androidapk-item.html \nextpage appleapplicationdiskimage-item.html \ingroup list-of-convenience-items \ingroup list-of-items \keyword QML.AppleDiskImage \title AppleDiskImage Item \brief Represents a product that is an Apple disk image. An \c AppleDiskImage item is a convenience item that has a dependency on the \l{Module dmg}{DMG module} and whose type is \c{["dmg.dmg"]}. For single-application drag 'n' drop disk image installers, you'll probably want to use the \l{AppleApplicationDiskImage Item}{AppleApplicationDiskImage} item instead. */ qbs-src-1.10.1/doc/reference/items/convenience/application.qdoc000066400000000000000000000035311323434465400244510ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-convenience-items.html \page application-item.html \previouspage appleapplicationdiskimage-item.html \nextpage applicationextension-item.html \ingroup list-of-convenience-items \ingroup list-of-items \keyword QML.Application \title Application Item \brief Represents a product of application type. An \c Application item is a \c Product that has its type set to "application" It exists for the convenience of project file authors. \note On Android, an \c Application item instead builds a shared library for products whose \c consoleApplication property is set to \c false. */ qbs-src-1.10.1/doc/reference/items/convenience/applicationextension.qdoc000066400000000000000000000034741323434465400264140ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Copyright (C) 2015 Jake Petroules. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-convenience-items.html \page applicationextension-item.html \previouspage application-item.html \nextpage autotestrunner-item.html \ingroup list-of-convenience-items \ingroup list-of-items \keyword QML.ApplicationExtension \title ApplicationExtension Item \brief Represents a product that is an iOS, macOS, tvOS, or watchOS Application Extension. An \c ApplicationExtension item is a convenience item based on \c XPCService that sets some properties required for iOS, macOS, tvOS, or watchOS Application Extensions. */ qbs-src-1.10.1/doc/reference/items/convenience/autotestrunner.qdoc000066400000000000000000000076231323434465400252560ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-convenience-items.html \page autotestrunner-item.html \previouspage applicationextension-item.html \nextpage cppapplication-item.html \ingroup list-of-convenience-items \ingroup list-of-items \keyword QML.AutotestRunner \title AutotestRunner Item \brief A product that runs all autotests in the project. An \c AutotestRunner has a dependency to all products with the type "autotest". "Building" the \c AutotestRunner product will then run the respective executables. The \c builtByDefault property of an \c AutotestRunner is set to \c false by default, so running the autotests has to be explicitly requested. The default name of the product is "autotest-runner". To use this feature, do the following: \list A \li Attach the "autotest" type to your autotests: \code CppApplication { name: "tst_mytest" type: ["application", "autotest"] // ... } \endcode \li Instantiate exactly one \c AutotestRunner in your project, typically at the top level: \code Project { // ... AutotestRunner { } // ... } \endcode \li Trigger the autotest execution by "building" the product: \code qbs build -p autotest-runner \endcode \endlist \section1 AutotestRunner Properties \table \header \li Property \li Type \li Default \li Description \row \li arguments \li stringList \li empty \li The list of arguments to invoke the autotest with. \row \li environment \li stringList \li set internally \li A list of environment variables that are added to the run environment. They are provided as a list of strings in the form "varName=value". By default, DYLD_LIBRARY_PATH, DYLD_FRAMEWORK_PATH, and DYLD_ROOT_PATH are set on macOS, or an empty list for other platforms. \row \li limitToSubProject \li bool \li \c true \li By default, only those autotests are considered that are in the same sub-project that the \c AutotestRunner was instantiated in. If you want to run all autotests regardless of their location in the project hierarchy, set this property to \c false. \row \li wrapper \li stringList \li empty \li Wrapper binary and its arguments for wrapping autotest calls. This is useful for tools like Valgrind and alike. \endtable */ qbs-src-1.10.1/doc/reference/items/convenience/cppapplication.qdoc000066400000000000000000000033731323434465400251600ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-convenience-items.html \page cppapplication-item.html \previouspage autotestrunner-item.html \nextpage dynamiclibrary-item.html \ingroup list-of-convenience-items \ingroup list-of-items \keyword QML.CppApplication \title CppApplication Item \brief Represents a product of application type with a dependency to the cpp module. A \c CppApplication is a convenience item that is entirely equivalent to the following: \code Application { Depends { name: "cpp" } } \endcode */ qbs-src-1.10.1/doc/reference/items/convenience/dynamiclibrary.qdoc000066400000000000000000000053021323434465400251550ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-convenience-items.html \page dynamiclibrary-item.html \previouspage cppapplication-item.html \nextpage innosetup-item.html \ingroup list-of-convenience-items \ingroup list-of-items \keyword QML.DynamicLibrary \title DynamicLibrary Item \brief Represents a product that is a dynamic library. A \c DynamicLibrary item is a \c Product that has its type set to "dynamiclibrary". It exists for the convenience of project file authors. For Android targets, the following applies: \list \li The product type contains "android.nativelibrary" in addition to "dynamiclibrary". \li There is a dependency on the \l{Module cpp}{cpp} and \l{Module Android.ndk}{Android.ndk} modules. \endlist \section1 DynamicLibrary Properties The following properties are available in addition to the ones inherited from \c Product. \table \header \li Property \li Type \li Default \li Description \row \li architectures \li stringList \li see below \li This property is only relevant for Android targets. There, it specifies for which architectures to build, with the default value \c{["armeabi"]}. This information influences the \c profiles property. \row \li bundleExtension \li string \li empty \li The extension to use for the product's bundle. Only relevant on Darwin systems. \endtable */ qbs-src-1.10.1/doc/reference/items/convenience/innosetup.qdoc000066400000000000000000000033241323434465400241720ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-convenience-items.html \page innosetup-item.html \previouspage dynamiclibrary-item.html \nextpage installpackage-item.html \ingroup list-of-convenience-items \ingroup list-of-items \keyword QML.InnoSetup \title InnoSetup Item \brief Represents a product that is an Inno Setup installer executable. A \c InnoSetup item is a convenience item that has a dependency on the \l{Module innosetup}{Inno Setup module} and whose type is \c{["innosetup.exe"]}. */ qbs-src-1.10.1/doc/reference/items/convenience/installpackage.qdoc000066400000000000000000000055671323434465400251430ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-convenience-items.html \page installpackage-item.html \previouspage innosetup-item.html \nextpage javaclasscollection-item.html \ingroup list-of-convenience-items \ingroup list-of-items \keyword QML.InstallPackage \title InstallPackage Item \brief Represents an archive of an installed project. An \c InstallPackage item is a product of type \c{archiver.archive}. It is used to produce an archive from a set of installable files via the \l{Module archiver}{archiver Module}. Consider the following example project: \code Project { CppApplication { name: "myapp" Depends { name: "mylib" } files: ["main.cpp"] Group { fileTagsFilter: product.type qbs.install: true qbs.installDir: "bin" } } DynamicLibrary { name: "mylib" files: ["mylib.cpp"] Group { name: "public headers" files: ["mylib.h"] qbs.install: true qbs.installDir: "include" } Group { fileTagsFilter: product.type qbs.install: true qbs.installDir: "lib" } } InstallPackage { archiver.type: "tar" name: "tar-package" Depends { name: "myapp" } Depends { name: "mylib" } } } \endcode Building the product "tar-package" on a Unix system will result in a tar file with these contents: \code include/mylib.h lib/libmylib.so bin/myapp \endcode */ qbs-src-1.10.1/doc/reference/items/convenience/javaclasscollection.qdoc000066400000000000000000000035341323434465400261740ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-convenience-items.html \page javaclasscollection-item.html \previouspage installpackage-item.html \nextpage javajarfile-item.html \ingroup list-of-convenience-items \ingroup list-of-items \keyword QML.JavaClassCollection \title JavaClassCollection Item \brief Represents a collection of Java class files not bundled in a jar file. A \c JavaClassCollection item is a convenience item that has a dependency on the \l{Module java}{Java module} and whose type is \c{["java.class"]}. If the files should end up in a jar file, you should use a \l{JavaJarFile Item}{JavaJarFile} instead. */ qbs-src-1.10.1/doc/reference/items/convenience/javajarfile.qdoc000066400000000000000000000037001323434465400244220ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-convenience-items.html \page javajarfile-item.html \previouspage javaclasscollection-item.html \nextpage loadablemodule-item.html \ingroup list-of-convenience-items \ingroup list-of-items \keyword QML.JavaJarFile \title JavaJarFile Item \brief Represents a collection of Java class files bundled in a jar file. A \c JavaJarCollection item is product of type \c{java.jar}. It is used to produce a jar archive from a set of Java sources. \table \header \li Property \li Type \li Default \li Description \row \li entryPoint \li string \li undefined \li The entry point for an executable jar file. \endtable */ qbs-src-1.10.1/doc/reference/items/convenience/loadablemodule.qdoc000066400000000000000000000033471323434465400251240ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Copyright (C) 2015 Jake Petroules. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-convenience-items.html \page loadablemodule-item.html \previouspage javajarfile-item.html \nextpage qtapplication-item.html \ingroup list-of-convenience-items \ingroup list-of-items \keyword QML.LoadableModule \title LoadableModule Item \brief Represents a product that is a loadable module. A \c LoadableModule item is a \c Product that has its type set to "loadablemodule". It exists for the convenience of project file authors. */ qbs-src-1.10.1/doc/reference/items/convenience/qtapplication.qdoc000066400000000000000000000034071323434465400250200ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-convenience-items.html \page qtapplication-item.html \previouspage loadablemodule-item.html \nextpage qtguiapplication-item.html \ingroup list-of-convenience-items \ingroup list-of-items \keyword QML.QtApplication \title QtApplication Item \brief Represents a product of application type with a dependency to the Qt Core module. A \c QtApplication is a convenience item that is entirely equivalent to the following: \code CppApplication { Depends { name: "Qt.core" } } } \endcode */ qbs-src-1.10.1/doc/reference/items/convenience/qtguiapplication.qdoc000066400000000000000000000042611323434465400255240ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-convenience-items.html \page qtguiapplication-item.html \previouspage qtapplication-item.html \nextpage staticlibrary-item.html \ingroup list-of-convenience-items \ingroup list-of-items \keyword QML.QtGuiApplication \title QtGuiApplication Item \brief Represents a product of application type with a dependency to the Qt GUI module. A \c QtGuiApplication is a convenience item that extends the \c QtApplication item by loading the \c Qt.gui module and possibly also the default QPA plugin. \section1 QtGuiApplication Properties \table \header \li Property \li Type \li Default \li Description \row \li linkDefaultQpaPlugin \li bool \li Qt.core.staticBuild == true \li Whether or not to add a depencency to the default QPA plugin. The default is to do that in the case of a static build, where it is normally required. \endtable */ qbs-src-1.10.1/doc/reference/items/convenience/staticlibrary.qdoc000066400000000000000000000042151323434465400250220ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-convenience-items.html \page staticlibrary-item.html \previouspage qtguiapplication-item.html \nextpage xpcservice-item.html \ingroup list-of-convenience-items \ingroup list-of-items \keyword QML.StaticLibrary \title StaticLibrary Item \brief Represents a product that is a static library. A \c StaticLibrary item is a convenience item that is normally entirely equivalent to the following: \code Product { type: "staticlibrary" } \endcode For Android targets, the following applies: \list \li There is a dependency on the \l{Module cpp}{cpp} and \l{Module Android.ndk}{Android.ndk} modules. \li There is an additional list property "architectures" that specifies for which architectures to build, with the default value \c{["armeabi"]}. This information influences the \c profiles property. \endlist */ qbs-src-1.10.1/doc/reference/items/convenience/xpcservice.qdoc000066400000000000000000000033331323434465400243210ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Copyright (C) 2015 Jake Petroules. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-convenience-items.html \page xpcservice-item.html \previouspage staticlibrary-item.html \ingroup list-of-convenience-items \ingroup list-of-items \keyword QML.XPCService \title XPCService Item \brief Represents a product that is a macOS, iOS, tvOS, or watchOS XPC service. An \c XPCService item is a convenience item based on \c Application that sets some properties required for macOS, iOS, tvOS, or watchOS XPC services. */ qbs-src-1.10.1/doc/reference/items/language/000077500000000000000000000000001323434465400205635ustar00rootroot00000000000000qbs-src-1.10.1/doc/reference/items/language/artifact.qdoc000066400000000000000000000057751323434465400232460ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-language-items.html \page artifact-item.html \nextpage depends-item.html \ingroup list-of-language-items \ingroup list-of-items \keyword QML.Artifact \title Artifact Item \brief Describes a file produced by a \c Rule. An \c Artifact represents a single file produced by a \l{Rule Item}{Rule}. For example, if a rule produces three files, it needs to contain three Artifact items. In addition to the properties listed in the section below, you can also set module properties within an \c Artifact item: \code Artifact { filePath: "somefile.cpp" fileTags: ["cpp"] cpp.cxxLanguageVersion: "c++11" // ... } \endcode \section1 Artifact Properties \note The code on the right-hand side of these properties has access to the set of input artifacts, that is, it can refer to the \c inputs map and, if the rule is not a multiplex rule, the \c input variable. \table \header \li Property \li Type \li Default \li Description \row \li alwaysUpdated \li bool \li true \li Setting this to \c false means the file is not necessarily always written to by any command run by the rule. The timestamps of such artifacts are therefore not checked to find out whether they are up to date. Consequently, if all artifacts of a rule have this property set to \c false, the commands of the rule are always executed. \row \li filePath \li string \li undefined \li The file path of the target artifact. \row \li fileTags \li list \li empty list \li The tags to attach to the target file. These can then be matched by a rule. \endtable */ qbs-src-1.10.1/doc/reference/items/language/depends.qdoc000066400000000000000000000137101323434465400230570ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-language-items.html \previouspage artifact-item.html \page depends-item.html \nextpage export-item.html \ingroup list-of-language-items \ingroup list-of-items \keyword QML.Depends \title Depends Item \brief Represents dependencies between products and modules. A \c Depends item can appear inside a \l{Product Item} or \l{Module Item}. For example, the following product will load the \c cpp module. In addition, it will try to load modules that may or may not exist, and in the latter case use a fallback. \code Product { Depends { name: "cpp" } Depends { name: "awesome_module" versionAtLeast: "2.0" required: false } Depends { name: "adequate_module" condition: !awesome_module.present required: false } Depends { name: "inferior_module" condition: !awesome_module.present && !adequate_module.present } // ... } \endcode \section1 Dependency Parameters Sometimes it is desirable to have certain dependencies handled differently than others. For example, one might want to depend on a dynamic library without linking it. This can be done by setting the parameter \c{cpp.link} to \c{true} in the dynamic library dependency: \code Product { Depends { name: "cpp" } Depends { name: "some_dynamic_lib"; cpp.link: false } // ... } \endcode Dependency parameters are a special type of property that can only be set within \c{Depends} and \c{Parameters} items. Dependency parameters are declared in the modules they belong to. In the example above, the \c{cpp} module declares the parameter \c{link}. The \c{Depends} item for \e{some_dynamic_lib} sets \c{cpp.link} to \c{false}, which tells the linker rule to ignore this particular dependency. \section1 Depends Properties \table \header \li Property \li Type \li Default \li Description \row \li condition \li bool \li true \li Determines whether the dependency will actually be applied. \row \li versionAtLeast \li string \li undefined \li The minimum value that the dependency's \c version property needs to have. If the actual version is lower than that, loading the dependency will fail. The value consists of integers separated by dots. \row \li versionBelow \li string \li undefined \li A value that the dependency's \c version property must be lower than. If the actual version is equal to or higher than that, loading the dependency will fail. The value consists of integers separated by dots. \row \li productTypes \li stringList \li undefined \li A list of product types. Any enabled product in the project that has a matching type will become a dependency of the product containing the \c Depends item. This property is mutually exclusive with the \c name and \c submodules properties. The \c required and \c profiles properties are ignored if \c productTypes is set. \row \li required \li bool \li \c true \li Setting this property to \c false creates a \e{soft dependency}, meaning that it is not considered an error if the given module cannot be found. In such a case, an instance of the respective module will be created, but only the \c present property will be available for querying, and it will be set to \c false. \row \li name \li string \li undefined \li The name of the dependent product or module. \row \li profiles \li stringList \li \c{undefined} \li If the dependency is on a product and that product is going to be built for more than one profile, then you can specify here which instance of the product the dependency is on. See the \c profiles property of the \l{Module qbs}{qbs module} for more information. An empty list means a dependency on all instances of the product with the given name, regardless of their profile. \row \li limitToSubProject \li bool \li \c false \li If \c productTypes is set and this property is \c true, then only products that are in the same sub-project as the product containing the \c Depends item are considered. \row \li submodules \li stringList \li undefined \li The submodules of \c module to depend on, if applicable. \endtable */ qbs-src-1.10.1/doc/reference/items/language/export.qdoc000066400000000000000000000054771323434465400227710ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-language-items.html \previouspage depends-item.html \page export-item.html \nextpage filetagger-item.html \ingroup list-of-language-items \ingroup list-of-items \keyword QML.Export \title Export Item \brief Exports dependencies and properties to other products. An \c Export item can appear inside a \l{Product Item}. It defines a Module with the product's name that can be depended on by other products. The properties attached to the Export item will take effect in all products that depend on the product inside which the Export item is defined. As an example, consider these two products: \code Product { name: "A" Export { Depends { name: "cpp" } cpp.includePaths: product.sourceDirectory cpp.defines: ["USING_" + product.name.toUpperCase()] } } Product { name: "B" Depends { name: "A" } } \endcode The sources in product B will be able to use headers from product A without specifiying the full path to them, because the include path has been made known to the compiler via A's Export item. Additionally, product B will be compiled with the define \c{USING_A}. \note This relationship is transitive, so a product C depending on product B will also get the include paths and preprocessor macros via A's Export item. In contrast to Module items, \c{product} within Export items refers to the product which defines the Export item. Use the \c{importingProduct} variable to refer to the product that pulls in the resulting module. */ qbs-src-1.10.1/doc/reference/items/language/filetagger.qdoc000066400000000000000000000074241323434465400235530ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-language-items.html \previouspage export-item.html \page filetagger-item.html \nextpage group-item.html \ingroup list-of-language-items \ingroup list-of-items \keyword QML.FileTagger \title FileTagger Item \brief Assigns file tags to files. This item assigns file tags to files. The FileTagger item can appear in \c{Product} items or \c{Module} items. For every source artifact that has no file tag, \QBS will search for a FileTagger with a pattern that matches the file name of the source artifact. If a matching file tagger is found, then the file tags specified in the FileTagger item are assigned to the source artifact. If there is more than one matching FileTagger, all file taggers with the same highest priority are taken into account and their file tags are accumulated. The FileTagger item can be attached to a product or a module. In the latter case, its effect is the same as if it had been attached to all products having a dependency on the respective module. For instance, the cpp module of \QBS has, among others, the following file tagger: \code FileTagger { patterns: "*.cpp" fileTags: ["cpp"] } \endcode As a result, the "cpp" tag is automatically attached to all files ending with ".cpp" in products depending on the cpp module. This causes them to be compiled, because a C++ compiler rule has "cpp" in its list of matching input tags. File taggers are disabled if file tags are set explicitly in a product or group. For example, the "cpp" tag is not attached to the cpp files in the following product: \code Product { Depends { name: "cpp" } Group { files: "*.cpp" fileTags: "other" } } \endcode \section1 FileTagger Properties \table \header \li Property \li Type \li Default \li Since \li Description \row \li patterns \li stringList \li none \li 1.0 \li The patterns to match against. Supports the usual wildcards '*', '?' and '[]'. Neither the list itself nor any of its elements may be empty. \row \li fileTags \li list \li empty list \li 1.0 \li Tags to attach to a product's files. These can then be matched by a rule. \row \li priority \li int \li 0 \li 1.10 \li The priority of the FileTagger. A higher numerical value means higher priority. \endtable */ qbs-src-1.10.1/doc/reference/items/language/group.qbs000066400000000000000000000034671323434465400224400ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2015 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing ** ** This file is part of the Qt Build Suite. ** ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms and ** conditions see http://www.qt.io/terms-conditions. For further information ** use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 or version 3 as published by the Free ** Software Foundation and appearing in the file LICENSE.LGPLv21 and ** LICENSE.LGPLv3 included in the packaging of this file. Please review the ** following information to ensure the GNU Lesser General Public License ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, The Qt Company gives you certain additional ** rights. These rights are described in The Qt Company LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ****************************************************************************/ import qbs 1.0 Project { Product { //! [0] Group { name: "Word processing documents" files: ["*.doc", "*.rtf"] prefix: "**/" qbs.install: true qbs.installDir: "share" excludeFiles: "do_not_install_this_file.*" } //! [0] } } qbs-src-1.10.1/doc/reference/items/language/group.qdoc000066400000000000000000000144071323434465400225750ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-language-items.html \previouspage filetagger-item.html \page group-item.html \nextpage module-item.html \ingroup list-of-language-items \ingroup list-of-items \keyword QML.Group \title Group Item \brief Groups files in a product. This item is attached to a product and used to group files that have something in common. For example: \code Application { Group { name: "common files" files: ["myclass.h", "myclass_common_impl.cpp"] } Group { name: "Windows files" condition: qbs.targetOS.contains("windows") files: "myclass_win_impl.cpp" } Group { name: "Unix files" condition: qbs.targetOS.contains("unix") files: "unixhelper.cpp" Group { name: "Linux files" condition: qbs.targetOS.contains("linux") files: "myclass_linux_impl.cpp" } Group { name: "FreeBSD files" condition: qbs.targetOS.contains("freebsd") files: "myclass_freebsd_impl.cpp" } } Group { name: "Files to install" qbs.install: true qbs.installDir: "share" files: "runtime_resource.txt" } } \endcode When specifying files, you can use the wildcards "*", "?" and "[]", which have their usual meaning. By default, matching files are only picked up directly from the parent directory, but you can tell \QBS to consider the whole directory tree. It is also possible to exclude certain files from the list. The pattern ** used in a pathname expansion context will match all files and zero or more directories and subdirectories. For example: \snippet reference/items/language/group.qbs 0 A group can also be used to attach properties to build artifacts such as executables or libraries. In the following example, an application is installed to "/bin". \code Application { Group { fileTagsFilter: "application" qbs.install: true qbs.installDir: "bin" } } \endcode Groups may also appear in modules, which causes the respective sources to be added to the products depending on said module. Groups can be nested. In this case, child groups inherit the module properties and file tags as well as the prefix of their parent group. The condition of a child group gets logically ANDed with the one of its parent group. \section1 Group Properties \table \header \li Property \li Type \li Default \li Description \row \li name \li string \li "Group x", where x is a unique number among all the groups in the product \li The name of the group. Not used internally; mainly useful for IDEs. \row \li files \li list \li empty list \li The files in the group. Mutually exclusive with fileTagsFilter. Relative paths are resolved using the parent directory of the file that contains the \c Group item. However, if the \c prefix property is set to an absolute path, then that one becomes the base directory. \row \li prefix \li string \li prefix of the parent group if one exists, otherwise empty \li A string to prepend to all files. Slashes are allowed and have directory semantics. \row \li fileTagsFilter \li list \li empty list \li Artifact file tags to match. Any properties set in this group will be applied to the product's artifacts whose file tags intersect with the ones listed here. The file tags that the group's \c{fileTags} property specifies will be added to the matching artifacts. This property is mutually exclusive with \c{files}. \row \li condition \li bool \li true \li Determines whether the files in the group are actually considered part of the project. \row \li fileTags \li list \li empty list \li Tags to attach to the group's files. These can then be matched by a rule. Note that file taggers are never applied to a file that has this property set. \row \li overrideTags \li bool \li true \li Determines how tags on files that are listed both at the top level of a product (or the parent group, if there is one) and a group are handled. If this property is true, then the file tags set via the group replace the ones set via the product or parent group. If it is false, the "group tags" are added to the "parent tags". This property is ignored if \c{fileTagsFilter} is set. \row \li excludeFiles \li list \li empty list \li For use with wildcards; the files in this list are "subtracted" from the files list. \endtable */ qbs-src-1.10.1/doc/reference/items/language/module.qdoc000066400000000000000000000214601323434465400227230ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-language-items.html \previouspage group-item.html \page module-item.html \nextpage parameter-item.html \ingroup list-of-language-items \ingroup list-of-items \keyword QML.Module \title Module Item \brief Represents a collection of properties and items that can be loaded into a product. A \c Module item is a collection of properties and language items that are used for building a product if the product has a \l{Depends Item}{dependency} on the module. The following (somewhat artificial) module pre-processes text files by removing certain characters from them. The module's name is \a{txt_processor}. \code import qbs import qbs.FileInfo import qbs.TextFile Module { property stringList unwantedCharacters: [] FileTagger { patterns: ["*.raw"] fileTags: ["raw-txt"] } Rule { inputs: ["raw-txt"] Artifact { filePath: FileInfo.relativePath(input.filePath, product.sourceDirectory) + "/" + input.fileName + ".processed" fileTags: ["processed-txt"] } prepare: { var cmd = new JavaScriptCommand(); cmd.description = "Processing " + input.fileName; cmd.sourceCode = function() { var inFile = new TextFile(input.filePath, TextFile.ReadOnly); var content = inFile.readAll(); inFile.close(); var unwantedChars = product.txt_processor.unwantedCharacters; for (var c in unwantedChars) content = content.replace(unwantedChars[c], ""); var outFile = new TextFile(output.filePath, TextFile.WriteOnly); outFile.write(content); outFile.close(); }; return cmd; } } } \endcode And this is how a product would use the module: \code Product { type: "processed-txt" Depends { name: "txt_processor" } txt_processor.unwantedCharacters: ["\r"] files: [ "file1.raw", "file2.raw" ] } \endcode Of course, normally the pre-processed files would not be the target artifacts of the product, but rather serve as inputs to a different rule that will often come from a different module. How you make your own modules available to \QBS is explained \l{Custom Modules and Items}{here}. \section1 Special Property Values For every property defined in a module, \QBS provides the following special built-in values: \section2 \c base This value is useful when making use of inheritance. It stands for the value of the respective property in the item one level up in the inheritance chain. For instance: \code Product { // defined in MyProduct.qbs Depends { name: "mymodule" } mymodule.someProperty: ["value1"] } ------ some other file ------ MyProduct { mymodule.someProperty: base.concat(["value2"]) // => ["value1", "value2"] } \endcode \section2 \c original This is the value of the property in the module itself (possibly overridden from a profile or the command line). Use it to set a module property conditionally: \code Module { // This is mymodule property string aProperty: "z" } ---------- Product { Depends { name: "mymodule" } Depends { name: "myothermodule" } mymodule.aProperty: myothermodule.anotherProperty === "x" ? "y" : original // => "y" if myothermodule.anotherProperty is "x", "z" otherwise \endcode \section2 \c outer This value is used in nested items, where it refers to the value of the respective property in the surrounding item. It is only valid in \l{Group Item}{groups} and \l{Properties Item}{Properties items}: \code Product { Depends { name: "mymodule" } mymodule.someProperty: ["value1"] Group { name: "special files" files: ["somefile1", "somefile2"] mymodule.someProperty: outer.concat(["value"]) // => ["value1", "value2"] } } \endcode \section1 Dependency Parameters Modules can declare dependency parameters. Those parameters can be set within \c{Depends} items. Rules of the module can read the parameters of dependencies and act accordingly. In the following example, the module \e{foo} declares the parameter \c{ignore}. A dependency to \c{bar} then sets the parameter \c{foo.ignore} to \c{true}. A rule in \c{foo} ignores all dependencies that have \c{foo.ignore} set to true. \code Module { // Definition of module 'foo'. Parameter { property bool ignore } Rule { ... prepare: { for (i in product.dependencies) { var dep = product.dependencies[i]; if (dep.foo.ignore) continue; // Do something with the dependency. } } } ... } ---------- Product { Depends { name: "foo" } Depends { name: "bar"; foo.ignore: true } } \endcode \section1 Module Properties \table \header \li Property \li Type \li Default \li Description \row \li additionalProductTypes \li string list \li empty list \li The elements of this list will be added to the \c type property of a product that has a dependency on the module. \row \li condition \li bool \li \c true \li Controls whether the module is enabled. If this property is \c false, the surrounding \c Module item will not be considered in the module look-up. \row \li present \li bool \li \c true \li This property is read-only. Its value is \c false if and only if the respective \c Depends item had its \c required property set to \c false and the module was not found. \row \li priority \li int \li \c 0 \li Defines the priority of this module instance. If there is more than one module instance available for a module name, then the module with the highest priority is chosen. \row \li setupBuildEnvironment \li script \li \c undefined \li Script for setting up the environment in which the project is built. Use the \c putEnv, \c getEnv, and \c unsetEnv functions to alter the environment. The return value of this script is ignored. \row \li setupRunEnvironment \li script \li \c setupBuildEnvironment \li Script for setting up the environment in which the project is run. \row \li validate \li script \li \c undefined \li Script that is run after the module is loaded. It can be used to check property values and throw errors in unexpected cases. The return value is ignored. \row \li version \li string \li \c undefined \li The module's version. It consists of integer values separated by dots. You can check for specific values of this property in a \l{Depends item}{Depends} item. \endtable */ qbs-src-1.10.1/doc/reference/items/language/parameter.qdoc000066400000000000000000000036641323434465400234240ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-language-items.html \previouspage module-item.html \page parameter-item.html \nextpage parameters-item.html \ingroup list-of-language-items \ingroup list-of-items \keyword QML.Parameter \title Parameter Item \brief Declares a dependency parameter. The \c{Parameter} item declares a dependency parameter. This item can only appear within \c{Module} items and \c{Export} items. The \c{Parameter} item contains exactly one property declaration. Example: \code Module { Parameter { property string extra } } \endcode The \l{Module Item#dependency-parameters}{\c{Module} item page} has more information about dependency parameters. */ qbs-src-1.10.1/doc/reference/items/language/parameters.qdoc000066400000000000000000000043711323434465400236030ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-language-items.html \previouspage parameter-item.html \page parameters-item.html \nextpage probe-item.html \ingroup list-of-language-items \ingroup list-of-items \keyword QML.Parameters \title Parameters Item \brief Defines default values for dependency parameters within \c{Export} items. The \c{Parameters} item defines default values for dependency parameters within \c{Export} items. Example: \code DynamicLibrary { name: "foo" ... Export { ... Parameters { cpp.link: false } } } \endcode Every dependency on \e{foo} has the parameter \c{cpp.link} set to \c{false} by default. This can be overridden explicitly: \code Depends { name: "foo"; cpp.link: true } \endcode The parameters item contains a number of property bindings where each property must be a \l{Parameter Item}{properly declared} \l{Module Item#dependency_parameters}{dependency parameter}. */ qbs-src-1.10.1/doc/reference/items/language/probe.qdoc000066400000000000000000000062171323434465400225500ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-language-items.html \previouspage parameters-item.html \page probe-item.html \nextpage product-item.html \ingroup list-of-language-items \ingroup list-of-items \keyword QML.Probe \title Probe Item \brief Locates files outside the project. \c Probe items can appear inside \l{Product Item}{products} and \l{Project Item}{projects}. They are run prior to building, for instance to locate dependent headers, libraries, and other files outside the project directory whose locations are not known ahead of time. Probes can be parameterized via their properties and typically store results in properties as well. These results are then retrieved via the Probe's id, which is mandatory: \code Product { Probe { id: valueCalculator property string parameter: "whatever" property int value configure: { value = Utils.calculateValue(parameter); // Expensive operation found = true; } } property int theValue: valueCalculator.value } \endcode \note Because Probes often invoke external processes, which is relatively expensive compared to evaluating normal properties, their results are cached. To force re-evaluation of a Probe, you can supply the \c{--force-probe-execution} command-line option. \section1 Probe Properties \table \header \li Property \li Type \li Default \li Description \row \li condition \li bool \li true \li Determines whether the probe will actually be run. \row \li found \li bool \li undefined \li Indicates whether the probe was run successfully. Set by \c configure. \row \li configure \li script \li undefined \li Script that is executed when the probe is run. \endtable */ qbs-src-1.10.1/doc/reference/items/language/product.qdoc000066400000000000000000000202301323434465400231100ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-language-items.html \previouspage probe-item.html \page product-item.html \nextpage profile-item.html \ingroup list-of-language-items \ingroup list-of-items \keyword QML.Product \title Product Item \brief Represents the result of a build process. A \e product typically represents the result of a build process. It specifies a set of input and output files and a way to transform the former into the latter. For example, the following product sets up a very simple C++ application: \code Product { name: "helloworld" type: "application" files: "main.cpp" Depends { name: "cpp" } } \endcode The \c type property specifies what will be built (an executable). The \c files property specifies the input files (one C++ source file), and the \c Depends item pulls in the logic from the \c cpp module about how to do the necessary transformations. For some often-used types of products, \QBS pre-defines special derived items that save users some typing. These are: \list \li Application \li CppApplication \li DynamicLibrary \li StaticLibrary \endlist Therefore, the above example could also be written like this: \code CppApplication { name: "helloworld" files: "main.cpp" } \endcode Any property \c prop attached to this item is available in sub-items as \c product.prop, as well as in modules that are loaded from this product. \section1 Product Properties \table \header \li Property \li Type \li Default \li Description \row \li builtByDefault \li bool \li true \li If false, the product will only be built if this is explicitly requested, either by listing the product name as an argument to \c --products or by giving the \c build command the \c --all-products option. \row \li condition \li bool \li true \li If false, the product will not be built. \row \li name \li string \li empty string \li The name of the product. Used to identify the product in a \c Depends item, for example. The value of this property must be a simple JavaScript expression that does not depend on module properties or values that are non-local to this product. \div {style="font-size:80%"} \code CppApplication { name: "hello" + "world" // valid } CppApplication { name: "app_" + qbs.targetOS.join("_") // invalid } \endcode \enddiv To change the name of your product's target artifact, modify \c{Product.targetName} instead. \row \li type \li stringList \li empty list \li The file tags matching the product's target artifacts. \row \li targetName \li string \li \c{name} with illegal file name characters replaced by underscores \li The base file name of the product's target artifacts. \row \li destinationDirectory \li string \li product.buildDirectory \li The directory where the target artifacts will be located. If a relative path is given, the base directory will be \c project.buildDirectory. \row \li files \li stringList \li empty list \li A list of source files. Syntactic sugar to save a \c Group item for simple products. Relative paths are resolved using the parent directory of the project file that sets the property. \row \li excludeFiles \li stringList \li empty list \li A list of source files not to include. Useful with wildcards. For more information, see \l {Group Item}. \row \li consoleApplication \li bool \li linker-dependent \li If true, a console application is generated. If false, a GUI application is generated. Only takes effect on Windows. This property also influences the default application type on Apple platforms. If true, an application bundle is generated. If false, a normal executable is generated. \row \li qbsSearchPaths \li stringList \li project.qbsSearchPaths \li See the documentation of the \l {Project Item} property of the same name. The value set here will be merged with the one inherited from the project. \row \li version \li string \li undefined \li The version number of the product. Used in shared library filenames and generated Info.plist files in Apple application and framework bundles, for example. \endtable The following properties are relevant for product multiplexing only. Unless multiplexing is desired, they can be left at their default values. \note We do not promise backwards compatibility for multiplexing properties as they are likely to change in future \QBS versions. \table \header \li Property \li Type \li Default \li Description \row \li aggregate \li bool \li \c{undefined} \li If \c{true}, an aggregate product will be created that has dependencies on all multiplex instances of this product. \row \li multiplexedType \li stringList \li \c{undefined} \li Specifies the product type for the multiplexed product instances. \row \li multiplexByQbsProperties \li stringList \li \c{["profiles"]} \li Specifies which properties of the qbs module will be used for product multiplexing. Its value must be a subset of \c{["architectures", "buildVariants", "profiles"]}. \endtable The following properties are automatically set by \QBS and cannot be changed by the user: \table \header \li Property \li Type \li Description \row \li buildDirectory \li path \li The build directory for this product. This is the directory where generated files are placed. \row \li sourceDirectory \li path \li The source directory for this product. This is the directory of the file where this product is defined. \endtable */ qbs-src-1.10.1/doc/reference/items/language/profile.qdoc000066400000000000000000000067441323434465400231060ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-language-items.html \previouspage product-item.html \page profile-item.html \nextpage project-item.html \ingroup list-of-language-items \ingroup list-of-items \keyword QML.Properties \title Profile Item \brief Creates a profile within the project The profiles used by \QBS are normally set up on a user's machine and are then available to all projects. See the \l Configuring section for information on how to set up and use profiles on the command line. In some rare cases, however, the creator of a project has complete knowledge about the system on which that project is to be built. Then it can make sense to integrate the profile into the project: \code Product { // ... Profile { name: "my-special-profile" qbs.toolchain: ["gcc"] qbs.targetOS: ["linux", "unix"] qbs.architecture: "armv7a" cpp.toolchainInstallPath: "/opt/special-gcc/bin" cpp.toolchainPrefix: "arm-linux-gnueabi-" } qbs.profiles: ["my-special-profile"] // ... } \endcode The project in the above example can be built in a particular well-known environment without any additional setup. \c Profile items can appear inside \l{Product Item}{Product} and \l{Project Item}{Project} items. \section1 Profile Properties \table \header \li Property \li Type \li Default \li Description \row \li baseProfile \li \c string \li \c undefined \li The name of a profile from which this profile inherits. If the same property is set in both this profile and the base profile, the value from this profile takes precedence. \row \li condition \li \c bool \li \c true \li If this property is set to \c false, the profile cannot be used. \row \li name \li \c string \li \c undefined \li The name under which the profile can be referenced later. Setting this property is required. The value must be unique among all profiles in an entire project. \endtable */ qbs-src-1.10.1/doc/reference/items/language/project.qdoc000066400000000000000000000105001323434465400230750ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-language-items.html \previouspage profile-item.html \page project-item.html \nextpage properties-item.html \ingroup list-of-language-items \ingroup list-of-items \keyword QML.Project \title Project Item \brief Represents a collection of products and properties. A \c Project item represents a collection of of products. In a non-trivial project, these products are typically defined in their own files and referenced in the main project file: \code Project { references: [ "product1/product1.qbs", "product2/product2.qbs" ] } \endcode Any property \c prop attached to this item is available in sub-items as \c project.prop. While the root of the item hierarchy is always a \c Project, this kind of item can also appear further down the hierarchy. Such sub-projects are ususally introduced to group products. See the \l{SubProject Item} for details. \note If your project consists of only one product, the \c Project item can be omitted. \section1 Project Properties \table \header \li Property \li Type \li Default \li Description \row \li buildDirectory \li path \li n/a \li The build directory of the top-level project. This property is read-only. \row \li name \li string \li basename of the file the project is defined in \li The project name. Only relevant for e.g. displaying a project tree in an IDE. \row \li profile \li string \li n/a \li The top-level profile for building the project. This property is read-only and is set by \QBS when the project is being set up. \row \li condition \li bool \li true \li Whether the project is enabled. If false, no products or sub-projects will be collected. \row \li qbsSearchPaths \li stringList \li empty \li These paths are searched for imports and modules in addition to the ones listed in \c{preferences.qbsSearchPaths}. The value set here is merged with the value inherited from the parent project, if there is one. The result is inherited by all products in the project. \row \li references \li path list \li empty \li A list of files from which to import products. This is equivalent to defining the respective \c Product items directly under this \c Project item. \row \li sourceDirectory \li path \li n/a \li The directory where the file containing the top-level \c Project item is located. This property is read-only. \row \li minimumQbsVersion \li string \li "1.3.0" \li The minimum version of qbs that is needed to build this project. \endtable */ qbs-src-1.10.1/doc/reference/items/language/properties.qdoc000066400000000000000000000113351323434465400236320ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-language-items.html \previouspage project-item.html \page properties-item.html \nextpage propertyoptions-item.html \ingroup list-of-language-items \ingroup list-of-items \keyword QML.Properties \title Properties Item \brief Provides conditional setting of properties. \note This documents the \c Properties item in the context of products. Usage within a \c SubProject item is described \l{SubProject Item}{here}. The \c Properties item is an auxiliary item for setting multiple property values conditionally. In the following example, two properties are set if the project is built for Windows: \code Product { Properties { condition: qbs.targetOS.contains("windows") cpp.defines: ["ON_WINDOWS"] cpp.includePaths: ["extraWindowsIncludes"] } } \endcode Multiple \c Properties items can be specified to set properties dependent on different conditions. The order of appearance is important. Semantics are similar to if-else-chains. The following example \code Product { Properties { condition: qbs.targetOS.contains("windows") cpp.defines: ["ON_WINDOWS"] cpp.includePaths: ["myWindowsIncludes"] } Properties { condition: qbs.targetOS.contains("linux") cpp.defines: ["ON_LINUX"] cpp.includePaths: ["myLinuxIncludes"] } cpp.defines: ["ON_UNKNOWN_PLATFORM"] } \endcode is equivalent to \code Product { cpp.defines: { if (qbs.targetOS.contains("windows")) return ["ON_WINDOWS"]; if (qbs.targetOS.contains("linux")) return ["ON_LINUX"]; return ["ON_UNKNOWN_PLATFORM"]; } cpp.includePaths: { if (qbs.targetOS.contains("windows")) return ["myWindowsIncludes"]; if (qbs.targetOS.contains("linux")) return ["myLinuxIncludes"]; return base; } } \endcode In \c Properties items one can access the \l{Module Item#outer}{outer value} of a property. \code Product { Properties { condition: qbs.targetOS.contains("windows") cpp.defines: outer.concat("ON_WINDOWS") // === ["FOO", "ON_WINDOWS"] } Properties { condition: qbs.targetOS.contains("linux") cpp.defines: ["ON_LINUX"] // === ["ON_LINUX"] } cpp.defines: ["FOO"] } \endcode We suggest to use the \c Properties item for mutually exclusive conditions only. It is especially useful if there are several properties to set, based on the same condition. \section1 List of Properties \table \header \li Property \li Type \li Default \li Description \row \li condition \li bool \li none - must be specified \li The condition to be used for the other bindings in this item. \row \li overrideListProperties \li bool \li \c false \li List properties set within this item will override the values coming from modules, rather than getting merged with them, which is the default behavior. Use this in the rare case that a module you depend on inserts a value into a list property that is problematic for some product. \endtable */ qbs-src-1.10.1/doc/reference/items/language/propertyoptions.qdoc000066400000000000000000000044511323434465400247370ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-language-items.html \previouspage properties-item.html \page propertyoptions-item.html \nextpage rule-item.html \ingroup list-of-language-items \ingroup list-of-items \keyword QML.PropertyOptions \title PropertyOptions Item \brief Provides inline documentation for properties within product and module items. A \c PropertyOptions item can appear inside a \l{Product Item} or \l{Module Item} to provide inline documentation for properties. \section1 PropertyOptions Properties \table \header \li Property \li Type \li Default \li Description \row \li allowedValues \li stringList \li undefined \li A list of the values permitted by the property. \c{undefined} indicates that any value is permitted. \row \li description \li string \li undefined \li A brief description of the property. \row \li name \li string \li undefined \li The name of the property to document. \endtable */ qbs-src-1.10.1/doc/reference/items/language/rule.qdoc000066400000000000000000000325671323434465400224170ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-language-items.html \previouspage propertyoptions-item.html \page rule-item.html \nextpage scanner-item.html \ingroup list-of-language-items \ingroup list-of-items \keyword QML.Rule \title Rule Item \brief Creates transformers for input tags. In \QBS, rules create \e transformers that produce output files from input files. The term \e transformer refers to a list of \l{Command and JavaScriptCommand}{commands}. These commands are created in a rule's \e {prepare script}. They do the actual work, either directly or by executing external commands. \section1 A Simple Example The following rule takes text files and replaces Windows-style line endings with their Unix-style counterparts. We will look at it one piece at a time. \code Rule { multiplex: false \endcode A \e {multiplex rule} creates one transformer that takes all input artifacts with the matching input file tag and creates one or more output artifacts. We are setting the respective property to \c false here, indicating that we want to create one transformer per input file. \note This is actually the default, so the above assignment is not required. \code inputs: ["txt_input"] \endcode Here we are specifying that our rule is interested in input files that have the tag "txt_input". Such files could be source files, in which case you would tag them using a \l{Group Item}{Group}. Or they could in turn get generated by a different rule, in which case that rule would assign the file tag. The files matching the tag will be available in the prepare script under the name \c inputs (see \l{inputs and outputs}{The inputs and outputs Variables}). \code Artifact { filePath: input.fileName + ".out" fileTags: ["txt_output"] } \endcode Here we are specifying that for every input file, we want to create one output file whose name is the same as the input file, but with an additional extension. Because we are giving a relative path, \QBS will prepend that path by the product's build directory. In addition, we tell \QBS that the output files should get the file tag "txt_output". This enables other rules to use these files as inputs. You must always assign suitable file tags to your output artifacts, or the rule will not be run. See \l{Rules and Product Types} for details. If you want to create more than one output file per input file, you simply provide multiple \c Artifact items. The set of output artifacts will be available in the prepare script under the name \c outputs (see \l{inputs and outputs}{The inputs and outputs Variables}). \code prepare: { var cmd = new JavaScriptCommand(); cmd.description = input.fileName + "->" + output.fileName; cmd.highlight = "codegen"; cmd.sourceCode = function() { var file = new TextFile(input.filePath); var content = file.readAll(); file.close() content = content.replace(/\r\n/g, "\n"); file = new TextFile(output.filePath, TextFile.WriteOnly); file.write(content); file.close(); } return [cmd]; } } \endcode The prepare script shown above puts everything together by creating the command that does the actual transformation of the file contents, employing the help of the \l{TextFile Service}{TextFile} class. As you can see, the return value is an array, meaning you can provide several commands to implement the rule's functionality. For instance, if we had provided two \c Artifact items, we might have also provided two commands, each of them creating one output file. For the \c input and \c output variables used in the code, see the next section. \target inputs and outputs \section1 The \c inputs and \c outputs Variables We already mentioned that the input and output artifacts are available in the prepare script via the variables \c inputs and \c outputs, respectively. These variables are JavaScript objects whose property keys are file tags and whose property values are lists of objects representing the artifacts matching these tags. In our example, the \c inputs variable has a single property \c txt_input, whose value is a list with one element. Similarly, the \c outputs variable also has one single property \c txt_output, again with a list containing one element. The actual artifact objects have the following properties: \table \header \li Property \li Description \row \li \c baseName \li The file name without any extension. \row \li \c completeBaseName \li The file name without the last extension. \row \li \c fileName \li The name of the file (that is, \c filePath without any directory components). \row \li \c filePath \li The full file path. \row \li \c fileTags \li The list of the artifact's file tags. \endtable The artifact object contains a property for every module that is used in the product. That can be used to access the module's properties. For instance, for an artifact in a C++ product, \c{artifact.cpp.defines} is the list of defines that will be passed when compiling the respective file. But what about the variables \c input and \c output that appeared in our example? These are simply convenience variables which are available in the case that the \c inputs and \c outputs variables contain only one artifact, respectively. So in our example, instead of \c input we also could have written \c {inputs.txt_input[0]}, which is considerably more verbose. \section1 Rules and Product Types It is important to know that when figuring out which rules to execute, \QBS starts at the product type and then looks for a way to produce artifacts with matching file tags from source files, using a chain of rules that are connected by their respective input and output tags. For instance, consider this simple C++ project: \code Product { type: ["application"] Depends { name: "cpp" } files: ["main.cpp"] } \endcode Here's how this product is built: \list 1 \li \QBS looks for a rule that can produce artifacts with the file tag \c{"application"}. Such a rule is found in the \c cpp module (namely, the rule that invokes the linker). \li Since the rule found in the previous step takes inputs of type \c{"obj"}, \QBS now looks for a rule that produces artifacts of that type. Again, such a rule is found in the \c cpp module (the rule that runs the compiler). \li The rule found in the previous step takes inputs of type \c{"cpp"}. No rule is found that creates such artifacts, but we do have a source file with a matching type (because the \c cpp module contains a \l{FileTagger item}{FileTagger} which attached that type to \c{"main.cpp"} due to its file extension). \li Now that there is a chain of rules leading from a source file tag to the product type, the commands of these rules are executed one after the other until we end up with our executable. \endlist \section1 Rule Properties \table \header \li Property \li Type \li Default \li Description \row \li multiplex \li bool \li false \li Determines whether this is a multiplex rule. \row \li inputs \li string list \li undefined \li File tags the input artifacts must match. All output artifacts will depend on all artifacts in the product with the given input file tags. Also these artifacts are available in the inputs variable of the prepare script. \row \li auxiliaryInputs \li string list \li undefined \li A list of file tags. This rule will be dependent on every other rule that produces artifacts that are compatible with \a{auxiliaryInputs}. Unlike \a{inputs}, the property \a{auxiliaryInputs} has no effect on the content of the \a{inputs} variable in the \a{prepare} script. All rules in this product and rules of product dependencies that produce target artifacts are considered. \row \li excludedAuxiliaryInputs \li string list \li undefined \li A list of file tags. Connections to rules that produce these file tags are prevented. This property has no effect on the content of the \a{inputs} variable in the \a{prepare} script. \row \li inputsFromDependencies \li string list \li undefined \li File tags the artifacts of product dependencies must match. For example, the product \a foo might appear as follows in the current product: \code Depends { name: "foo" } \endcode All artifacts of \a foo that match the given file tags will appear in the \a inputs variable of the prepare script. \row \li outputArtifacts \li array of objects \li undefined \li An array of output artifacts, specified as JavaScript objects. Example: \code outputArtifacts: [{ filePath: "myfile.cpp", fileTags: ["cpp"], cpp: { cxxLanguageVersion: "c++11" } }] \endcode For a description of the possible properties, see the documentation of the \l{Artifact item}. Output artifacts can be specified either by \c{Rule.outputArtifacts} or by \c{Artifact} items. Use \c{Rule.outputArtifacts} if the set of outputs is not fixed but dependent on the input's content. If no file tags are provided, \QBS will apply all \l{FileTagger Item}{file taggers} known in the current context to the output file name. The user may set the property \c{explicitlyDependsOn} on artifact objects, which is similar to \c{Rule.explicitlyDependsOn}. \row \li outputFileTags \li string list \li undefined \li If output artifacts are specified by \c{Rule.outputArtifacts}, then \c{Rule.outputFileTags} must be a list of file tags the rule potentially produces. \row \li condition \li bool \li true \li If true, the rule is enabled, otherwise it does nothing. \row \li explicitlyDependsOn \li string list \li undefined \li Each artifact that matches the file tags in \a explicitlyDependsOn is added to the dependencies of each output node. All artifacts in the current product and target artifact of products that this product depends on are considered. \row \li prepare \li script \li undefined \li Script that prepares the commands to transform the inputs to outputs. The code in this script is treated as a function with the signature \c{function(project, product, inputs, outputs, input, output, explicitlyDependsOn)}. The argument \c{input} is \c{undefined} if there's more than one input artifact for this rule. Similarly, \c{output} is only defined if there's exactly one output artifact. \row \li requiresInputs \li bool \li \c true if the rule declares any inputs, \c false otherwise \li Specifies whether a rule's commands should be created even if no inputs are available. Enabling this property can be useful in cases where you potentially have input files, but it is possible that there are none and you want to create the output file in any case. \row \li alwaysRun \li bool \li false \li If true, the rule's commands are always executed, even if all output artifacts are up to date. \endtable */ qbs-src-1.10.1/doc/reference/items/language/scanner.qdoc000066400000000000000000000062061323434465400230700ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-language-items.html \previouspage rule-item.html \page scanner-item.html \nextpage subproject-item.html \ingroup list-of-language-items \ingroup list-of-items \keyword QML.Scanner \title Scanner Item \brief Creates custom dependency scanners in modules. A \c Scanner item can appear inside a \l{Module Item}, and allows to extract dependencies for artifacts from the artifacts' file contents. For example, this is what a scanner for "qrc" files might look like: \code import qbs.Xml Module { Scanner { inputs: 'qrc' scan: { var xml = new Xml.DomDocument(input.filePath); dependencies = []; // retrieve entries from the XML document return dependencies; } } } \endcode \section1 Scanner Properties \table \header \li Property \li Type \li Default \li Description \row \li condition \li bool \li true \li If true, the scanner is enabled, otherwise it does nothing. \row \li inputs \li string list \li undefined \li File tags the input artifacts must match. \row \li recursive \li bool \li false \li Determines whether to scan the returned dependencies using the same scanner. \row \li searchPaths \li script \li undefined \li Script that returns paths to look for dependencies. The code in this script is treated as a function with the signature \c{function(project, product, input)}. \row \li scan \li script \li undefined \li Script that reads the input artifact and returns string list with dependencies. The code in this script is treated as a function with the signature \c{function(project, product, input)}. \endtable */ qbs-src-1.10.1/doc/reference/items/language/subproject.qdoc000066400000000000000000000053601323434465400236170ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-language-items.html \previouspage scanner-item.html \page subproject-item.html \ingroup list-of-language-items \ingroup list-of-items \keyword QML.SubProject \title SubProject Item \brief Adds a project from a different file. A \c SubProject item is used to add a project defined in another file as a sub-project to the surrounding project: \code SubProject { filePath: "subdir/project.qbs" Properties { name: "A sub-project" } } \endcode If you don't need to set any properties on the sub-project, you can also use the \c references property, the same way you would do for a product: \code references: "subdir/project.qbs" \endcode It is also possible to nest \c Project items directly in the same file. \section1 SubProject Properties \table \header \li Property \li Type \li Default \li Description \row \li filePath \li path \li empty \li The file path of the project to add as a sub-project. If the top-level item in this file is a \c Product, it gets wrapped automatically in a new project. \row \li inheritProperties \li bool \li true \li Whether the sub-project should inherit the properties of the surrounding project. You can use this feature to share "global" settings between (sub-)projects. \endtable */ qbs-src-1.10.1/doc/reference/jsextensions/000077500000000000000000000000001323434465400204135ustar00rootroot00000000000000qbs-src-1.10.1/doc/reference/jsextensions/jsextension-environment.qdoc000066400000000000000000000051651323434465400262050ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page jsextension-environment.html \ingroup list-of-builtin-services \title Environment Service \brief Provides operations on the system environment. The \c Environment service offers access to the system environment or process environment. \section1 Available Operations \section2 currentEnv \code Environment.currentEnv(): { [key: string]: string; } \endcode Returns the environment of \QBS in the current context as an object whose properties are the environment variables. \section2 getEnv \code Environment.getEnv(key: string): string \endcode Tries to find a variable with the given name in the current context's environment and returns its value. If no such variable could be found, \c undefined is returned. \section2 putEnv \code Environment.putEnv(key: string, value: string): void \endcode Sets the value of the environment variable with the given name in the build or run environment. This method is only available in the \c Module.setupBuildEnvironment and \c Module.setupRunEnvironment scripts. \section2 unsetEnv \code Environment.unsetEnv(key: string): void \endcode Unsets the environment variable with the given name from the build or run environment. This method is only available in the \c Module.setupBuildEnvironment and \c Module.setupRunEnvironment scripts. */ qbs-src-1.10.1/doc/reference/jsextensions/jsextension-file.qdoc000066400000000000000000000072611323434465400245570ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page jsextension-file.html \ingroup list-of-builtin-services \title File Service \brief Provides operations on the file system. The \c File service offers limited access to the file system for operations such as copying or removing files. \section1 Available Operations \section2 copy \code File.copy(sourceFilePath: string, targetFilePath: string): boolean \endcode Copies \c sourceFilePath to \c targetFilePath. Any directory components in \c targetFilePath that do not yet exist will be created. If \c sourceFilePath is a directory, a recursive copy will be made. If an error occurs, a JavaScript exception will be thrown. \note \c targetFilePath must be the counterpart of \c sourceFilePath at the new location, \b{not} the new parent directory. This allows the copy to have a different name and is true even if \c sourceFilePath is a directory. \section2 exists \code File.exists(filePath: string): boolean \endcode Returns true if and only if there is a file at \c filePath. \section2 directoryEntries \code File.directoryEntries(path: string, filter: File.Filter): string[] \endcode Returns a sorted list of the directory \c{path}'s contents non-recursively, filtered by \c filter. The values of \c filter are equivalent to Qt's \c QDir::Filter. \section2 lastModified \code File.lastModified(filePath: string): number \endcode Returns the time of last modification for the file at \c filePath. The concrete semantics of the returned value are platform-specific. You should only rely on the property that a smaller value indicates an older timestamp. \section2 makePath \code File.makePath(path: string): boolean \endcode Makes the directory at \c path, creating intermediate directories if necessary. Conceptually equivalent to \c{mkdir -p} \section2 move \code File.move(oldPath: string, newPath: string, overwrite: boolean = true): boolean \endcode Renames the file \c oldPath to \c newPath. Returns \c true if successful; otherwise returns \c false. If a file with the name \c newPath already exists, and \c overwrite is \c false, \c move() returns \c false (that is, the file will not be overwritten). \section2 remove \code File.remove(filePath: string): boolean \endcode Removes the file at \c filePath. In case of a directory, it will be removed recursively. */ qbs-src-1.10.1/doc/reference/jsextensions/jsextension-fileinfo.qdoc000066400000000000000000000105311323434465400254250ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page jsextension-fileinfo.html \ingroup list-of-builtin-services \title FileInfo Service \brief Provides operations on file paths. The \c FileInfo service offers various operations on file paths, such as turning absolute paths into relative ones, splitting a path into its components, and so on. \section1 Available Operations \section2 baseName \code FileInfo.baseName(filePath: string): string \endcode Returns the file name of \c filePath up to (but not including) the first '.' character. \section2 cleanPath \code FileInfo.cleanPath(filePath: string): string \endcode Returns \c filePath without redundant separators and with resolved occurrences of \c{.} and \c{..} components. For instance, \c{/usr/local//../bin/} becomes \c{/usr/bin}. \section2 completeBaseName \code FileInfo.completeBaseName(filePath: string): string \endcode Returns the file name of \c filePath up to (but not including) the last '.' character. \section2 fileName \code FileInfo.fileName(filePath: string): string \endcode Returns the last component of \c filePath, that is, everything after the last '/' character. \section2 fromWindowsSeparators \code FileInfo.fromWindowsSeparators(filePath: string): string \endcode Returns \c filePath with all '\\' characters replaced by '/'. \section2 isAbsolutePath \code FileInfo.isAbsolutePath(filePath: string, hostOS?: string[]): boolean \endcode Returns true if \c filePath is an absolute path and false if it is a relative one. If \c hostOS is specified, treats \c filePath as a file path of the kind found on that platform. This parameter defaults to the host OS on which \QBS is running and should normally be omitted. \section2 joinPaths \code FileInfo.joinPaths(...paths: string[]): string \endcode Concatenates the given paths using the '/' character. \section2 path \code FileInfo.path(filePath: string, hostOS?: string[]): string \endcode Returns the part of \c filePath that is not the file name, that is, everything up to (but not including) the last '/' character. If \c filePath is just a file name, then '.' is returned. If \c filePath ends with a '/' character, then the file name is assumed to be empty for the purpose of the above definition. If \c hostOS is specified, treats \c filePath as a file path of the kind found on that platform. This parameter defaults to the host OS on which \QBS is running and should normally be omitted. \section2 relativePath \code FileInfo.relativePath(dirPath: string, filePath: string): string \endcode Returns a relative path so that joining \c dirPath and the returned path results in \c filePath. If necessary, '..' components are inserted. The function assumes \c dirPath and \c filePath to be absolute paths and \c dirPath to be a directory. \section2 toWindowsSeparators \code FileInfo.toWindowsSeparators(filePath: string): string \endcode Returns \c filePath with all '/' characters replaced by '\\'. */ qbs-src-1.10.1/doc/reference/jsextensions/jsextension-process.qdoc000066400000000000000000000135511323434465400253150ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page jsextension-process.html \ingroup list-of-builtin-services \title Process Service \brief Allows you to start external processes. The \c Process service allows you to start processes, track their output, and so on. \section1 Available Operations \section2 Constructor \code Process() \endcode Allocates and returns a new Process object. \section2 close \code close(): void \endcode Frees the resources associated with the process. It is recommended to always call this function as soon as you are finished with the process. \section2 closeWriteChannel \code closeWriteChannel(): void \endcode Schedules the stdin channel of process to be closed. The channel will close once all data has been written to the process. After calling this function, any attempts to write to the process will do nothing. See \c QProcess::closeWriteChannel() for more details. \section2 exec \code exec(filePath: string, arguments: string[], throwOnError: boolean): number \endcode Executes the program at \c filePath with the given argument list and blocks until the process is finished. If an error occurs (for example, there is no executable file at \c filePath) and \c throwOnError is true, then a JavaScript exception will be thrown. Otherwise (the default), -1 will be returned in case of an error. The normal return code is the exit code of the process. \section2 exitCode \code exitCode(): number \endcode Returns the exit code of the process. This is needed for retrieving the exit code from processes started via \c start(), rather than \c exec(). \section2 getEnv \code getEnv(varName: string): string \endcode Returns the value of the variable \c varName in the process' environment. \section2 kill \code kill(): void \endcode Kills the process, causing it to exit immediately. \section2 readLine \code readLine(): string \endcode Reads and returns one line of text from the process output, without the newline character(s). \section2 readStdErr \code readStdErr(): string \endcode Reads and returns all data from the process' standard error channel. \section2 readStdOut \code readStdOut(): string \endcode Reads and returns all data from the process' standard output channel. \section2 setCodec \code setCodec(codec) \endcode Sets the text codec to \c codec. The codec is used for reading and writing from and to the process, respectively. The supported codecs are the same as for \c QTextCodec, for example: "UTF-8", "UTF-16", and "ISO 8859-1". \section2 setEnv \code setEnv(varName: string, varValue: string): string \endcode Sets the value of variable \c varName to \c varValue in the process environment. This only has an effect if called before the process is started. \section2 setWorkingDirectory \code setWorkingDirectory(path: string): void \endcode Sets the directory the process will be started in. This only has an effect if called before the process is started. \section2 start \code start(filePath: string, arguments: string[]): boolean \endcode Starts the program at \c filePath with the given list of arguments. Returns \c{true} if the process could be started and \c{false} otherwise. \note This call returns right after starting the process and should be used only if you need to interact with the process while it is running. Most of the time, you want to use \c exec() instead. \section2 terminate \code terminate(): void \endcode Tries to terminate the process. This is not guaranteed to make the process exit immediately; if you need that, use \c kill(). \section2 waitForFinished \code waitForFinished(timeout: number): boolean \endcode Blocks until the process has finished or \c timeout milliseconds have passed (default is 30000). Returns true if the process has finished and false if the operation has timed out. Calling this function only makes sense for processes started via \c start() (as opposed to \c exec()). \section2 workingDirectory \code workingDirectory(): string \endcode Returns the directory the process will be started in. \section2 write \code write(data: string): void \endcode Writes \c data into the process' input channel. \section2 writeLine \code writeLine(data: string): void \endcode Writes \c data, followed by the newline character(s), into the process' input channel. */ qbs-src-1.10.1/doc/reference/jsextensions/jsextension-propertylist.qdoc000066400000000000000000000114301323434465400264110ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page jsextension-propertylist.html \ingroup list-of-builtin-services \title PropertyList Service \brief Provides read, write and convert operations on property list files. The \c PropertyList service allows you to read and write property list files in all formats supported by the Core Foundation API: XML, binary, JSON, and OpenStep (read-only). This service is only available on Darwin platforms such as iOS, macOS, tvOS, and watchOS. \section1 Available operations \section2 Constructor \code PropertyList() \endcode Allocates and returns a new PropertyList object. \section2 clear \code clear(): void \endcode Voids the property list by deleting its internal object reference. \section2 isEmpty \code isEmpty(): boolean \endcode Returns true if the property list has no internal object reference set, otherwise false. \section2 format \code format(): string \endcode Returns the data format that the property list data was deserialized from. This property is set after calling \c readFromString or \c readFromFile. Possible return values include: \c "binary1", \c "json", \c "openstep", and \c "xml1". If the property list object is empty or the input format could not be determined, returns \c undefined. \section2 readFromFile \code readFromFile(filePath: string): void \endcode Parses the file and stores the result in the property list. Throws an exception if an I/O error occurs or the input is in an invalid format. \section2 readFromObject \code readFromObject(obj: any): void \endcode Sets the given object as the property list's internal object. \c format() will return \c undefined as this method does not deserialize a storage format. \section2 readFromString \code readFromString(input: string): void \endcode Parses \c input and stores the result in the property list. This is most useful for initializing a property list object from the result of a \c JSON.stringify call. Throws an exception if the input is in an invalid format. \section2 toObject \code toObject(): any \endcode Returns an object representing the property list. \section2 toJSON \code toJSON(style: string = "compact"): string \endcode Returns a string representation of the property list in JSON format. Possible values for \c style include \c "pretty" and \c "compact". The default is compact. \section2 toString \code toString(format: string): string \endcode Returns a string representation of the property list in the specified format. Possible values for \c format include: \c "json" (compact), \c "json-compact", \c "json-pretty", and \c "xml1". Currently, the OpenStep format is not supported. Throws an exception if the object cannot be written in the given format. \section2 toXMLString \code toXMLString(): string \endcode Returns a string representation of the property list in XML format. This function is a synonym for \c toString("xml1"). \section2 writeToFile \code writeToFile(filePath: string, format: string): void \endcode Writes the property list to the file in the given format. Possible values for \c format include: \c "binary1", \c "json" (compact), \c "json-compact", \c "json-pretty", and \c "xml1". Currently, the OpenStep format is not supported for writing. Throws an exception if an I/O error occurs or the object cannot be written in the given format. */ qbs-src-1.10.1/doc/reference/jsextensions/jsextension-temporarydir.qdoc000066400000000000000000000044741323434465400263640ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2015 Jake Petroules. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page jsextension-temporarydir.html \ingroup list-of-builtin-services \title TemporaryDir Service \brief Creates a unique directory for temporary use. The \c TemporaryDir service creates a unique directory for temporary use. \section1 Available Operations \section2 Constructor \code TemporaryDir() \endcode Allocates and returns a new TemporaryDir object. This method creates the temporary directory. \section2 isValid \code isValid(): boolean \endcode Returns \c true if the temporary directory was created successfully. \section2 path \code path(): string \endcode Returns the path to the temporary directory. Empty if the temporary directory could not be created. \section2 remove \code remove(): boolean \endcode Removes the temporary directory, including all its contents. Returns \c true if removing was successful. It is recommended to always call this function as soon as you are finished with the temporary directory. The directory will not be removed automatically. */ qbs-src-1.10.1/doc/reference/jsextensions/jsextension-textfile.qdoc000066400000000000000000000071321323434465400254610ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page jsextension-textfile.html \ingroup list-of-builtin-services \title TextFile Service \brief Provides read and write operations on text files. The \c TextFile service allows you to read from and write into text files. \section1 Related Declarations \section2 TextFile.OpenMode \code enum TextFile.OpenMode { ReadOnly, WriteOnly, ReadWrite, Append } \endcode List of modes that a file may be opened in. The OpenMode values can be combined with the bitwise or operator. \section1 Available operations \section2 Constructor \code TextFile(filePath: string, openMode: OpenMode = TextFile.ReadOnly) \endcode Opens the file at \c filePath in the given mode and returns the object representing the file. \note The mode influences which of the operations listed below can actually be used on the file. \section2 atEof \code atEof(): boolean \endcode Returns \c{true} if no more data can be read from the file, \c{false} otherwise. \section2 close \code close(): void \endcode Closes the file. It is recommended to always call this function as soon as you are finished with the file, in order to keep the number of in-flight file descriptors as low as possible. \section2 filePath \code filePath(): string \endcode The absolute path of the file represented by this object. \section2 readAll \code readAll(): string \endcode Reads all data from the file and returns it. \section2 readLine \code readLine(): string \endcode Reads one line of text from the file and returns it. The returned string does not contain the newline characters. \section2 setCodec \code setCodec(codec: string): void \endcode Sets the text codec to \c codec. The supported codecs are the same as for \c QTextCodec, for example: "UTF-8", "UTF-16", and "ISO 8859-1". \section2 truncate \code truncate(): void \endcode Truncates the file, that is, gives it the size of zero, removing all content. \section2 write \code write(data: string): void \endcode Writes \c data into the file at the current position. \section2 writeLine \code writeLine(data: string): void \endcode Writes \c data into the file at the current position and appends the newline character(s). */ qbs-src-1.10.1/doc/reference/jsextensions/jsextension-utilities.qdoc000066400000000000000000000042711323434465400256510ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page jsextension-utilities.html \ingroup list-of-builtin-services \title Utilities Service \brief Provides miscellaneous operations. The \c Utilities service offers miscellaneous operations. \section1 Available Operations \section2 getHash \code Utilities.getHash(key: string): string \endcode Calculates a 16-byte hash of the input and returns it. Rules in modules should use this function to find unique locations for output artifacts in the build directory without duplicating the whole directory structure of the respective input file (to deal with the case of two files with the same name in different subdirectories of the same product). \section2 rfc1034Identifier \code Utilities.rfc1034Identifier(str: string): string \endcode Returns an RFC 1034 compliant identifier based on the given string by replacing each character that is not Latin alphanumeric or \c{.} with \c{-}. */ qbs-src-1.10.1/doc/reference/jsextensions/jsextensions-general.qdoc000066400000000000000000000131321323434465400254320ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Copyright (C) 2015 Petroules Corporation. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page jsextensions-general.html \ingroup list-of-builtin-services \title General Services \brief Provides various operations. These are operations that do not fit into any of the other categories. They are automatically available in any \QBS project file or JavaScript file. \section1 Available Operations \section2 require \code require(identifier: string): any \endcode Loads an extension and returns an object representing the extension. If \a identifier is a relative or absolute file path, this function will load a JavaScript file and return an object containing the evaluated context of that file. Otherwise, loads a \QBS extension named \a identifier and returns an object that contains the extension's context. This function is only available in JavaScript files and is designed to behave similarly to the CommonJS/RequireJS/Node.js module resolution systems. \code var MyFunctions = require("./myfunctions.js"); MyFunctions.doSomething(); var FileInfo = require("qbs.FileInfo"); var fileName = FileInfo.fileName(filePath); \endcode \section1 Extensions to JavaScript Built-in Objects \section2 Array.contains \code Array.contains(e: any): boolean \endcode Returns \c{true} if the array contains the element \c{e}. Returns \c{false} otherwise. \section2 Array.containsAll \code Array.containsAll(other: any[]): boolean \endcode Returns \c{true} if the array contains every element in the \c{other} array. Returns \c{false} otherwise. \section2 Array.containsAny \code Array.containsAny(other: any[]): boolean \endcode Returns \c{true} if the array contains some element(s) in the \c{other} array. Returns \c{false} otherwise. \section2 Array.uniqueConcat \code Array.uniqueConcat(other: any[]): any[] \endcode Returns a copy of this array joined with the array \c{other}. Duplicates that would originate from the concatenation are removed. The order of elements is preserved. \section2 String.contains \code String.contains(s: string): boolean \endcode Returns \c{true} if the string contains the substring \c{s}. Returns \c{false} otherwise. \section2 startsWith \code String.startsWith(s: string): boolean \endcode Returns \c{true} if the string starts with the substring \c{s}. Returns \c{false} otherwise. \section2 endsWith \code String.endsWith(s: string): boolean \endcode Returns \c{true} if the string ends with the substring \c{s}. Returns \c{false} otherwise. \section1 Console API \QBS provides a subset of the non-standard Console API available in most ECMAScript runtimes. The output of each of these functions will only be displayed if the logging level is at least the level which the function outputs at. Logging levels from lowest to highest are: 'error', 'warning', 'info', 'debug', and 'trace'. The default is 'info'. \warning The contents of this section are subject to change in order to align with future \l{https://www.w3.org/2011/08/browser-testing-charter.html}{standardization} \l{https://github.com/DeveloperToolsWG/console-object/blob/master/api.md}{processes}. \section2 console.debug \code console.debug(s: string): void \endcode This method is an alias for \c{console.log()}. \section2 console.error \code console.error(s: string): void \endcode Logs an \c{error} level message. Outputs to stderr when the logger output is a terminal. The string will be prefixed with \c{"ERROR: "} and colored red when the logger output is a color-capable terminal. \section2 console.info \code console.info(s: string): void \endcode Logs an \c{info} level message. Outputs to stdout when the logger output is a terminal. \section2 console.log \code console.log(s: string): void \endcode Logs a \c{debug} level message. Outputs to stderr when the logger output is a terminal. \section2 console.warn \code console.warn(s: string): void \endcode Logs a \c{warning} level message. Outputs to stderr when the logger output is a terminal. The string will be prefixed with \c{"WARNING: "} and colored yellow when the logger output is a color-capable terminal. */ qbs-src-1.10.1/doc/reference/modules/000077500000000000000000000000001323434465400173275ustar00rootroot00000000000000qbs-src-1.10.1/doc/reference/modules/android-ndk-module.qdoc000066400000000000000000000072521323434465400236620ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page android-ndk-module.html \ingroup list-of-modules \title Module Android.ndk \since 1.4 \brief Provides support for building native Android libraries. The \c Android.ndk module contains the properties and rules to create native libraries for use in \l{AndroidApk Item}{Android application packages}. Normally, you will not use this module directly, but instead work with the \l{DynamicLibrary Item}{DynamicLibrary} and \l{StaticLibrary Item}{StaticLibrary} items that \QBS provides. Here is what the project file for the "hello-jni" example that comes with the NDK could look like: \code import qbs Project { DynamicLibrary { name: "hello-jni" qbs.architectures: ["mips", "x86"] files: ["jni/hello-jni.c"] } AndroidApk { name: "HelloJni" packageName: "com.example.hellojni" Depends { productTypes: ["android.nativelibrary"] } } } \endcode \section1 Android.ndk Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li abi \li string \li 1.4 \li undefined \li The ABI name as it appears under "lib/" in the application package. Corresponds to APP_ABI in Android.mk. \row \li appStl \li string \li 1.4 \li \c{"system"} \li The library to use for C++. The possible values are: "system", "gabi++_static", "gabi++_shared", "stlport_static", "stlport_shared", "gnustl_static", "gnustl_shared", "c++_static", "c++_shared". \row \li ndkDir \li path \li 1.4 \li undefined \li The NDK base directory. \row \li platform \li string \li 1.4 \li \c{"android-9"} \li The versioned platform name. \endtable \section1 Relevant File Tags \table \header \li Tag \li Since \li Description \row \li \c{"android.nativelibrary"} \li 1.4.0 \li This tag is attached to dynamic libraries that will end up in APK packages. You do not normally need to use the tag explicitly, as it is the default type of the \l {DynamicLibrary Item}{DynamicLibrary} item for Android targets. \endtable */ qbs-src-1.10.1/doc/reference/modules/android-sdk-module.qdoc000066400000000000000000000107421323434465400236650ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page android-sdk-module.html \ingroup list-of-modules \title Module Android.sdk \since 1.4 \brief Provides support for building Android packages. The \c Android.sdk module contains the properties and rules to create Android application packages from Java sources, resources and so on. Normally, you will not use this module directly, but instead work with the \l{AndroidApk Item}{AndroidApk item} that \QBS provides. \section1 Android.sdk Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li buildToolsVersion \li string \li 1.4 \li undefined \li The version of the build tools such as aapt and dx. By default, this is set to the highest version available in the SDK. \row \li ndkDir \li string \li 1.4 \li undefined \li The NDK base directory, if an NDK is present. \row \li platform \li string \li 1.4 \li undefined \li The versioned platform name (e.g. "android-21"). By default, this is set to the highest version available in the SDK. \row \li sdkDir \li string \li 1.4 \li undefined \li The SDK base directory. \endtable \section1 Dependency Parameters \table \header \li Parameter \li Type \li Since \li Default \li Description \row \li \c{embedJar} \li \c{bool} \li 1.10 \li \c{true} \li If \c{true}, then if the dependency is a JAR file, its classes and the classes of its dependencies (if \c{embedJar} is also true for them) will be recursively processed by \c{dex} and included in the final APK. \endtable \section1 Relevant File Tags \table \header \li Tag \li Auto-tagged File Names \li Since \li Description \row \li \c{"android.aidl"} \li \c{*.aidl} \li 1.4.0 \li This tag is used for Android AIDL files. One Java source file will be generated for each such file. \row \li \c{"android.assets"} \li - \li 1.4.0 \li This tag is used for Android assets, which are typically located in an \c{assets/} subdirectory. Using the \l {AndroidApk Item}{AndroidApk} item takes care of tagging these files for you. \row \li \c{"android.apk"} \li n/a \li 1.4.0 \li This tag is attached to the output artifact of the rule that creates an APK package. It is the default type of the \l {AndroidApk Item}{AndroidApk} item. \row \li \c{"android.manifest"} \li \c{AndroidManifest.xml} \li 1.4.0 \li This tag is used for the Android manifest. There must be one such file for every Android app. \row \li \c{"android.resources"} \li - \li 1.4.0 \li This tag is used for Android resources, which are typically located in a \c{res/} subdirectory. Using the \l {AndroidApk Item}{AndroidApk} item takes care of tagging these files for you. \endtable */ qbs-src-1.10.1/doc/reference/modules/archiver-module.qdoc000066400000000000000000000075351323434465400232770ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page archiver-module.html \ingroup list-of-modules \title Module archiver \since 1.4 \brief Provides support for building archives. The \c archiver module contains the properties and rules for creating (compressed) archives. The output artifact has the file tag "archiver.archive". The sole input artifact is a text file containing the list of files to package, with one file path per line. The paths can be relative, in which case they will be looked for at \c{archiver.workingDirectory}. The file tag of this input artifact is "archiver.input-list". \section1 archiver Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li flags \li stringList \li 1.4 \li empty list \li Custom options not covered by any of the other properties. \row \li archiveBaseName \li string \li 1.4 \li \c{product.targetName} \li The base name of the archive file (in other words, the file name without any extensions). \row \li compressionLevel \li string \li 1.4 \li \c undefined \li How much effort to put into the compression of a 7-Zip or zip archive. Possible values are \c undefined, "0", "1", "2", "3", "4", "5", "6", "7", "8" and "9" Higher numbers result in a smaller archive, but the compressing process will take more time. 7-Zip only supports 0 and odd numbers. A value of \c undefined means to use the default compression level. \row \li compressionType \li string \li 1.4 \li \c{"gz"} for tar archives, otherwise \c undefined \li How to compress a tar or zip archive. Possible options are "none", "gz", "bz2", "Z", "xz", "deflate", "store". \c undefined uses the archiver's default compression type. \row \li outputDirectory \li string \li 1.4 \li \c{product.destinationDirectory} \li Where to put the archive file. \row \li type \li string \li 1.4 \li \c{undefined} \li Which kind of archiver to use. The currently supported values are: "tar", "7zip", "zip". \row \li workingDirectory \li string \li 1.4 \li undefined \li The directory in which to execute \c command. \row \li command \li string \li 1.4 \li Depends on \c{type}. \li The command with which to invoke the archiver. \endtable */ qbs-src-1.10.1/doc/reference/modules/bundle-module.qdoc000066400000000000000000000307041323434465400227370ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2015 Jake Petroules. ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page bundle-module.html \ingroup list-of-modules \title Module bundle \since 1.4 \brief Provides Core Foundation bundle support. The \c bundle module contains properties and rules for building and working with Core Foundation bundles on Apple platforms (commonly known as CFBundles or simply "bundles"), directories with a standardized hierarchical structure that hold executable code and resources. Examples include applications, frameworks, and plugins. This module is available on all platforms but is currently only useful on Apple platforms. \note Core Foundation bundles are not to be confused with Mach-O loadable modules, which are also referred to as (loadable) "bundles" in Apple parlance. In \QBS, Core Foundation bundles are referred to as "bundles", while Mach-O loadable bundles are referred to as "loadable modules". \section1 General Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li isBundle \li \c{bool} \li 1.4 \li \c{true} for applications and dynamic libraries on Apple platforms, \c{false} otherwise \li Whether the product should actually be packaged as a bundle as opposed to a flat file. This allows a product indirectly dependent on the \c{bundle} module to retain control of whether it should actually be built as a bundle. \row \li isShallow \li \c{bool} (read only) \li 1.4 \li \c{false} on macOS, otherwise \c{true} \li Whether the bundle directory tree is "shallow", i.e. whether it lacks a Contents subdirectory. This is the default on all platforms other than macOS. \row \li identifierPrefix \li \c{string} \li 1.4 \li \c{org.example} \li Prefix for the product's bundle identifier. If \c{identifier} is left unset, the bundle identifier will be a concatenation of this value and the \c{identifier} property, separated by a '.'. This corresponds to the organization identifier in Xcode. \row \li identifier \li \c{string} \li 1.4 \li combination of \c{identifierPrefix} and the product's target name formatted as an RFC 1034 identifier \li The bundle's identifier. If left unset, the bundle identifier will be a concatenation of this value and the \c{identifierPrefix} property, separated by a '.'. \row \li extension \li \c{string} \li 1.4 \li \c{"app"} for \c{"APPL"} packages, \c{"framework"} for \c{"FMWK"} packages, \c{"bundle"} for \c{"BNDL"} and custom packages \li The extension of the bundle's wrapper directory (minus the leading '.'). This property should not normally need to be set unless creating a custom bundle type. \row \li packageType \li \c{string} \li 1.4 \li \c{"APPL"} for applications, \c{"FMWK"} for frameworks, \c{"BNDL"} for custom bundles \li The four-letter file type code of the bundle, specified in the bundle's PkgInfo file and in the bundle's Info.plist as the value for the CFBundlePackageType key. This property should almost never need to be changed, though specifying an alternative package type for custom bundles is allowed. \row \li generatePackageInfo \li \c{bool} \li 1.5 \li \c{true} for applications, otherwise \c{false} \li Whether to generate a PkgInfo file for the bundle. This property should almost never need to be changed, though enabling it when specifying an alternative package type for custom bundles using \c{packageType} is allowed. \row \li signature \li \c{string} \li 1.4 \li \c{"????"} \li The four-letter signature specific to the bundle, also known as the creator code, specified in the bundle's PkgInfo file and in the bundle's Info.plist as the value for the CFBundleSignature key. This property should normally never need to be set. \row \li bundleName \li \c{string} \li 1.4 \li combination of the product's \c{targetName} and bundle's \c{extension} \li The file name of the bundle's wrapper directory. This property should not normally need to be changed. \row \li frameworkVersion \li \c{string} \li 1.4 \li \c{"A"} \li For framework bundles, the version of the framework. Unused for other package types. \row \li publicHeaders \li \c{pathList} \li 1.4 \li \c{undefined} \li List of public header files to copy to a framework bundle's Headers subdirectory. \row \li privateHeaders \li \c{pathList} \li 1.4 \li \c{undefined} \li List of private header files to copy to a framework bundle's PrivateHeaders subdirectory \row \li resources \li \c{pathList} \li 1.4 \li \c{undefined} \li List of resources to copy to a bundle's Resources subdirectory. Files will automatically be copied into lproj subdirectories corresponding to the input files' paths. \row \li infoPlist \li \c{object} \li 1.4 \li \c{undefined} \li Dictionary of key-value pairs to add to the bundle's Info.plist. The contents of this property will be aggregated with the values from any plist files. If \c{infoPlist} and any plist files contain the same key, the former will take precedence, but may also be overridden during postprocessing (see \c{processInfoPlist}). If undefined, will not be taken into account. \row \li processInfoPlist \li \c{bool} \li 1.4 \li \c{true} \li Whether to perform post-processing on the aggregated Info.plist contents. If this property is \c{true}, various post-processing operations will be applied to the bundle's property list dictionary after it has been aggregated from the contents of any plist files on disk, and the \c{infoPlist} property. First, values from a list of defaults will be added to the dictionary if they were not already present. Then, values from the AdditionalInfo key of the platform SDK's Info.plist file will be added to the dictionary if they were not already present, as well as some other miscellaneous keys, such as BuildMachineOSBuild and UIDeviceFamily (on iOS). Finally, variable expansions will be performed such that substrings of the form $(VAR) or ${VAR} will be replaced with their corresponding environment variables. \row \li embedInfoPlist \li \c{bool} \li 1.4 \li \c{true} if the product is a command line tool, otherwise \c{false}. \li Whether to create a __TEXT section in the product's executable containing the processed Info.plist. Only applies to command line applications. \row \li infoPlistFormat \li \c{string} \li 1.4 \li \c{"binary1"} for iOS; \c{"same-as-input"} or \c{"xml1"} for macOS depending on whether a plist file is used; \c{undefined} for all other operating systems. \li The file format to write the product's resulting Info.plist in. Possible values: \c{"xml1"}, \c{"binary1"}, \c{"json"}, \c{"same-as-input"} \endtable \section1 Path Specific Properties All properties in this section are read-only properties of type \c{string} specifying file paths relative to the directory containing the bundle. \table \header \li Property \li Since \li Description \row \li infoPlistPath \li 1.4 \li Path that the Info.plist file will be written to. \row \li infoStringsPath \li 1.5 \li Path that the InfoPlist.strings file will be written to. \row \li pkgInfoPath \li 1.4 \li Path that the PkgInfo file will be written to. \row \li versionPlistPath \li 1.4 \li Path that the version.plist file will be written to. \row \li executablePath \li 1.4 \li Path that the main executable file will be written to. \row \li contentsFolderPath \li 1.4 \li Path of the bundle's Contents subdirectory. \row \li documentationFolderPath \li 1.5 \li Path of the directory where documentation will be written. \row \li executableFolderPath \li 1.4 \li Path of the directory where the main exectuable will be written. Not to be confused with \c{executablesFolderPath}. \row \li executablesFolderPath \li 1.4 \li Path of the directory where auxiliary executables will be copied. Not to be confused with \c{executableFolderPath}. \row \li frameworksFolderPath \li 1.4 \li Path of the directory where internal frameworks will be copied. \row \li javaFolderPath \li 1.5 \li Path of the directory where Java content will be written. \row \li localizedResourcesFolderPath \li 1.5 \li Path of the directory where localized resource files will be copied. \row \li pluginsFolderPath \li 1.4 \li Path of the directory where plugins will be copied. \row \li privateHeadersFolderPath \li 1.4 \li Path of the directory where private header files will be copied. \row \li publicHeadersFolderPath \li 1.4 \li Path of the directory where public headers files will be copied. \row \li scriptsFolderPath \li 1.4 \li Path of the directory where script files will be copied. \row \li sharedFrameworksFolderPath \li 1.4 \li Path of the directory where shared frameworks will be copied. \row \li sharedSupportFolderPath \li 1.4 \li Path of the directory where shared support files will be copied. \row \li unlocalizedResourcesFolderPath \li 1.4 \li Path of the directory where non-localized resource files will be copied. This is the same as the base resources path. \row \li versionsFolderPath \li 1.5 \li Path of the bundle's Versions subdirectory. This is only relevant for (non-shallow) framework bundles. \endtable \section1 Relevant File Tags \table \header \li Tag \li Auto-tagged File Names \li Since \li Description \row \li \c{"bundle.content"} \li - \li 1.8 \li This tag is attached to the output artifacts of the rule that produces the bundle. \row \li \c{"infoplist"} \li \c{Info.plist}, \c{*-Info.plist} \li 1.5 \li Source files with this tag are Info property lists files or fragments that are merged into the bundle's final Info.plist. \endtable */ qbs-src-1.10.1/doc/reference/modules/cpp-module.qdoc000066400000000000000000001214221323434465400222460ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page cpp-module.html \ingroup list-of-modules \title Module cpp \since 1.0 \brief Provides C/C++ support. The \c cpp module contains the properties and rules for toolchains of the C/C++ family. On Apple platforms this includes support for Objective-C/C++. \section1 General Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li allowUnresolvedSymbols \li \c{bool} \li 1.2 \li \c{undefined} \li Switch this on if you want the linking step to succeed even if the resulting binary contains unresolved symbols. Normally this makes little sense, but in special cases it is possible that the respective symbols will be available at load time even if they are not present during linking. \row \li architecture \li \c{string} \li 1.0 \li \c{qbs.architecture} \li Target architecture. See \c{qbs.architecture}. \row \li endianness \li \c{string} \li 1.9 \li Specifies the endianness of the target platform's processor architecture (\c{"big"} or \c{"little"}). The value is automatically detected from the compiler's defaults, but can also be manually set in order to select a specific endianness when targeting bi-endian architectures like MIPS and PowerPC. \row \li debugInformation \li \c{bool} \li 1.0 \li \c{qbs.debugInformation} \li Generate debug information. See \c{qbs.debugInformation}. \row \li combineCSources \li \c{bool} \li 1.8 \li \c{false} \li Enabling this property on a product instructs the \l{FileTagger Item}{file tagger} to attach the tag \c{"c.combine"} to C sources, rather than \c{"c"}. As a result, all C sources of the product will be combined into a single file which is then compiled. This can speed up initial compilation significantly, but is of course detrimental in the context of incremental builds. Also, perfectly legal code may fail to compile with this option due to the merging of translation units. If you want to enable this property in a product that has some sources which cannot be merged, you need to put these into a dedicated \l{Group Item}{group} and set their file tag to \c{"c"}, overriding the file tagger. \note Module properties set on specific source files (that is, at the Group level) will not be taken into account when building the combined file. You either need to set these properties at the product level instead or prevent the respective files from getting combined via the mechanism described above. \row \li combineCxxSources \li \c{bool} \li 1.8 \li \c{false} \li Like \c combineCSources, but for C++. The relevant file tags are \c{"cpp"} and \c{"cpp.combine"}. \row \li combineObjcSources \li \c{bool} \li 1.8 \li \c{false} \li Like \c combineCSources, but for Objective-C. The relevant file tags are \c{"objc"} and \c{"objc.combine"}. \row \li combineObjcxxSources \li \c{bool} \li 1.8 \li \c{false} \li Like \c combineCSources, but for Objective-C++. The relevant file tags are \c{"objcpp"} and \c{"objcpp.combine"}. \row \li discardUnusedData \li \c{bool} \li 1.10 \li \c undefined \li If this property is \c true, the linker will discard data from objects that it determines to be unused. With MSVC and on Apple platforms, the granularity is per symbol, elsewhere it is per section. \row \li separateDebugInformation \li \c{bool} \li 1.4 \li \c{false} for gcc/clang, \c{true} for MSVC \li Whether to store debug information in an external file or bundle instead of within the binary. \row \li defines \li \c{stringList} \li 1.0 \li \c{undefined} \li List of preprocessor macros that gets passed to the compiler. To set macro values use the following syntax: \c{cpp.defines: ["USE_COLORS=1", 'COLOR_STR="blanched almond"']} \row \li platformDefines \li \c{stringList} \li 1.0 \li \c{undefined} \li List of preprocessor macros that are used for all projects that are built for the current target platform. User project files usually do not set this property. \row \li includePaths \li \c{pathList} \li 1.0 \li \c{undefined} \li List of include paths. Relative paths are considered to be relative to the .qbs product file they are used in. \row \li systemIncludePaths \li \c{pathList} \li 1.0 \li \c{undefined} \li List of include paths that are passed as system include paths to the compiler. For header files in those paths warnings will be ignored. Relative paths are considered to be relative to the .qbs product file they are used in. \row \li systemRunPaths \li \c{stringList} \li 1.6 \li Auto-detected for host builds on Linux via \c ldconfig, \c{["/lib", "/usr/lib"]} otherwise on Unix, empty on Windows \li The paths the dynamic linker uses on process start-up to locate dynamic libraries. \row \li libraryPaths \li \c{pathList} \li 1.0 \li \c{undefined} \li List of library search paths. Relative paths are considered to be relative to the .qbs product file they are used in. \row \li dynamicLibraries \li \c{stringList} \li 1.0 \li \c{undefined} \li List of dynamic libraries to be linked. If the library is part of your project, consider using a Depends item instead. \row \li staticLibraries \li \c{stringList} \li 1.0 \li \c{undefined} \li List of static libraries to be linked. If the library is part of your project, consider using a Depends item instead. \row \li prefixHeaders \li \c{pathList} \li 1.0.1 \li \c{undefined} \li List of files to automatically include at the beginning of each source file in the product. \row \li optimization \li \c{string} \li 1.0 \li \c{qbs.optimization} \li Optimization level. See \c{qbs.optimization}. \row \li treatWarningsAsErrors \li \c{bool} \li 1.0 \li \c{false} \li Warnings will be handled as errors and cause the build to fail. \row \li useCPrecompiledHeader, useCxxPrecompiledHeader, useObjcPrecompiledHeader, useObjcxxPrecompiledHeader \li \c bool \li 1.5 \li \c true \li Specifies whether to use a precompiled header for the respective language, if one is present (see \l{Relevant File Tags}{below} for the associated file tags). \row \li warningLevel \li \c{string} \li 1.0 \li \c{"all"} \li Specifies the warning level for the compiler - \c{"none"} or \c{"all"}. \row \li driverFlags \li \c{stringList} \li 1.6 \li undefined \li Flags that are added to all compilation and linking commands performed by the compiler driver, independently of the language. \row \li commonCompilerFlags \li \c{stringList} \li 1.0.1 \li undefined \li Flags that are added to all compilation commands independently of the language. \row \li compilerVersionMajor \li \c{int} \li 1.4 \li undefined \li The major version of the compiler. \row \li compilerVersionMinor \li \c{int} \li 1.4 \li undefined \li The minor version of the compiler. \row \li compilerVersionPatch \li \c{int} \li 1.4 \li undefined \li The patch level component of the compiler version. \row \li assemblerFlags \li \c{stringList} \li 1.5 \li undefined \li Additional flags for the assembler. \row \li cppFlags \li \c{stringList} \li 1.0 \li undefined \li Additional flags for the C preprocessor. \row \li cFlags \li \c{stringList} \li 1.0 \li undefined \li Additional flags for the C compiler. \row \li cxxFlags \li \c{stringList} \li 1.0 \li undefined \li Additional flags for the C++ compiler. \row \li cLanguageVersion \li \c{string} \li 1.4 \li undefined \li The version of the C standard with which the code must comply. If this property is set, corresponding compiler and/or linker flags will be added, depending on the toolchain. If the value is left undefined, the compiler default will be used. Possible values include: \c{"c89"}, \c{"c99"}, \c{"c11"} \row \li cxxLanguageVersion \li \c{string} \li 1.4 \li undefined \li The version of the C++ standard with which the code must comply. If this property is set, corresponding compiler and/or linker flags will be added, depending on the toolchain. If the value is left undefined, the compiler default will be used. Possible values include: \c{"c++98"}, \c{"c++11"}, \c{"c++14"} \row \li cxxStandardLibrary \li \c{string} \li 1.4 \li undefined \li The C++ standard library to link to. If this property is set, corresponding compiler and/or linker flags will be added, assuming the value is valid for the current toolchain. If the value is left undefined, the compiler default will be used. Possible values include: \c{"libstdc++"}, \c{"libc++"} \row \li objcFlags \li \c{stringList} \li 1.0 \li undefined \li Additional flags for the Objective-C compiler. \row \li objcxxFlags \li \c{stringList} \li 1.0 \li undefined \li Additional flags for the Objective-C++ compiler. \row \li linkerFlags \li \c{stringList} \li 1.0 \li undefined \li Additional flags for the linker. These flags should \e not be escaped using the -Wl or -Xlinker syntaxes, as \QBS will do this automatically based on the linker being used. See cpp.linkerMode for additional information. \row \li assemblerName \li \c{string} \li 1.5 \li determined by qbs-setup-toolchains \li Name of the assembler binary. This is set in the build profile. \row \li assemblerPath \li \c{string} \li 1.5 \li determined by qbs-setup-toolchains \li Full path of the assembler binary. This is set in the build profile. \row \li compilerName \li \c{string} \li 1.0 \li determined by qbs-setup-toolchains \li Name of the main compiler binary. This is set in the build profile. \row \li compilerPath \li \c{string} \li 1.0 \li determined by qbs-setup-toolchains \li Full path of the main compiler binary. This is set in the build profile. If the toolchain provides different compilers for different languages, then \c{compilerPathByLanguage} is used. \row \li compilerPathByLanguage \li \c{string} to \c{string} map \li 1.3 \li determined by qbs-setup-toolchains \li Maps file tags to full paths of compiler binaries. This is set in the build profile. \row \li compilerWrapper \li \c{stringList} \li 1.1 \li \c{undefined} \li Wrapper binary and its arguments for wrapping compiler calls. This is useful for compiler wrappers like ccache and alike. \row \li linkerName \li \c{string} \li 1.1.1 \li determined by qbs-setup-toolchains \li Name of the linker binary. This is set in the build profile. \row \li linkerPath \li \c{string} \li 1.1.1 \li determined by qbs-setup-toolchains \li Full path of the linker binary. This is set in the build profile. \row \li linkerWrapper \li \c{stringList} \li 1.6.2 \li \c{undefined} \li Wrapper binary and its arguments for wrapping linker calls. This is useful for linker wrappers as needed by Bullseye Coverage, for example. \row \li entryPoint \li \c{string} \li 1.3 \li \c{undefined} \li Name of the entry point of an executable or dynamic library. If this property is undefined, the toolchain's default is used. \row \li runtimeLibrary \li \c{string} \li 1.3.3 \li \c{"dynamic"} for MSVC, \c{undefined} for others \li Type of the used runtime library. Accepted values are \c{"static"} and \c{"dynamic"}. If this property is set to \c{undefined}, then the default runtime library of the toolchain is used. \note For MSVC the default value is \c{"dynamic"}. \note At the moment this property is only functional for MSVC. \row \li enableExceptions \li \c{bool} \li 1.5 \li \c{true} \li Whether to enable exceptions in C++ code. \row \li exceptionHandlingModel \li \c{string} \li 1.5 \li \c{"default"} \li The exception handling model to use. For MSVC, this can be \c{"default"}, \c{"seh"} or \c{"externc"}. For all other compilers, \c{"default"} indicates the default or only exception handling model. \row \li enableRtti \li \c{bool} \li 1.5 \li \c{undefined} \li Whether to enable runtime type information in C++ code. \row \li enableReproducibleBuilds \li \c{bool} \li 1.5 \li \c{false} \li Try to generate reproducible object files. Some compilers (notably gcc) use random numbers for generating symbol names that have to be different in every compilation unit. This is avoided by setting this property to \c{true}. \row \li treatSystemHeadersAsDependencies \li \c{bool} \li 1.8 \li \c{false} \li If this property is enabled, then included header files found via \c systemIncludePaths, \c distributionIncludePaths or \c compilerIncludePaths will be added to the dependencies of the respective object file. This means that modification of such header files (or any of the headers they include) will cause recompilation. \endtable \section1 Properties Specific to Apple Platforms \table \header \li Property \li Type \li Since \li Default \li Description \row \li dsymutilFlags \li \c{stringList} \li 1.4.1 \li undefined \li Additional flags for the dsymutil tool. \row \li dsymutilPath \li \c{string} \li 1.4 \li determined by qbs-setup-toolchains \li Full path of the dsymutil binary. This is set in the build profile. \row \li lipoPath \li \c{string} \li 1.9 \li determined automatically \li Full path of the lipo binary. \row \li frameworkPaths \li \c{pathList} \li 1.0 \li \c{undefined} \li List of framework search paths. Relative paths are considered to be relative to the .qbs product file they are used in. \row \li systemFrameworkPaths \li \c{pathList} \li 1.0 \li \c{undefined} \li List of framework search paths. Relative paths are considered to be relative to the .qbs product file they are used in. Header files in frameworks in those paths will not cause warnings. \row \li frameworks \li \c{stringList} \li 1.0 \li \c{undefined} \li List of frameworks to be linked. If the framework is part of your project, consider using a Depends item instead. \row \li weakFrameworks \li \c{stringList} \li 1.0 \li \c{undefined} \li List of frameworks to be weakly linked. If the framework is part of your project, consider using a Depends item instead. \row \li automaticReferenceCounting \li \c{bool} \li 1.4 \li \c{undefined} \li Whether to enable Automatic Reference Counting (ARC) for Objective-C and Objective-C++ source code. If \c{undefined}, uses the compiler default (probably \c{false}). \row \li requireAppExtensionSafeApi \li \c{bool} \li 1.4 \li \c{undefined} \li Whether to enforce the use of only app-extension-safe APIs on Apple platforms. This is necessary for building Application Extensions in OS X Yosemite and iOS 8 and above. If \c{undefined}, uses the compiler and linker defaults (probably \c{false}). \row \li minimumIosVersion \li \c{string} \li 1.0 \li undefined, but may be set by generated profiles \li A version number in the format [major].[minor] indicating the earliest version of iOS that the product should run on. Passes -miphoneos-version-min= to the compiler. If undefined, compiler defaults will be used. \row \li minimumOsxVersion \li \c{string} \li 1.0.1 \li undefined, but may be set by generated profiles \li Deprecated in \QBS 1.5.2. Use \c minimumMacosVersion instead. \row \li minimumMacosVersion \li \c{string} \li 1.5.2 \li undefined, but may be set by generated profiles \li A version number in the format [major].[minor] indicating the earliest version of macOS that the product should run on. Passes -mmacosx-version-min= to the compiler. If undefined, compiler defaults will be used. \row \li minimumWatchosVersion \li \c{string} \li 1.5 \li undefined, but may be set by generated profiles \li A version number in the format [major].[minor] indicating the earliest version of Apple watchOS that the product should run on. If undefined, compiler defaults will be used. \row \li minimumTvosVersion \li \c{string} \li 1.5 \li undefined, but may be set by generated profiles \li A version number in the format [major].[minor] indicating the earliest version of Apple tvOS that the product should run on. If undefined, compiler defaults will be used. \endtable \section1 Properties Specific to Unix Platforms \table \header \li Property \li Type \li Since \li Default \li Description \row \li archiverName \li \c{string} \li 1.0 \li \c{"ar"} \li Name of the archiver binary. This is set in the build profile. \row \li archiverPath \li \c{string} \li 1.0 \li determined by qbs-setup-toolchains \li Full path of the archiver binary. This is set in the build profile. \row \li exportedSymbolsCheckMode \li \c{string} \li 1.4.1 \li "ignore-undefined" \li Controls how \QBS determines whether an updated dynamic library causes relinking of dependents. The default value is \c "ignore-undefined", which means that undefined symbols being added or removed do not cause any relinking. If that should happen, for example because dependent products are linked with an option such as \c "--no-undefined", then this property can be set to \c "strict". \row \li linkerMode \li \c{string} \li 1.6 \li "automatic" \li Controls whether to automatically use an appropriate compiler frontend in place of the system linker when linking binaries. The default is \c{"automatic"}, which chooses either the C++ compiler, C compiler, or system linker specified by the \c{linkerName} and \c{linkerPath} properties, depending on the type of object files present on the linker command line. \c{"manual"} allows you to explicitly specify the linker using the \c{linkerName} and \c{linkerPath} properties. \row \li nmName \li \c{string} \li 1.2 \li \c{"nm"} \li Name of the nm binary. This is set in the build profile. \row \li nmPath \li \c{string} \li 1.2 \li determined by qbs-setup-toolchains \li Full path of the nm binary. This is set in the build profile. \row \li objcopyName \li \c{string} \li 1.4 \li \c{"objcopy"} \li Name of the objcopy binary. This is set in the build profile. \row \li objcopyPath \li \c{string} \li 1.4 \li determined by qbs-setup-toolchains \li Full path of the objcopy binary. This is set in the build profile. \row \li stripName \li \c{string} \li 1.4 \li \c{"strip"} \li Name of the strip binary. This is set in the build profile. \row \li stripPath \li \c{string} \li 1.4 \li determined by qbs-setup-toolchains \li Full path of the strip binary. This is set in the build profile. \row \li positionIndependentCode \li \c{bool} \li 1.0 \li \c{undefined} \li Generate position independent code. If this property is \c{undefined}, then position independent code is generated for libraries, but not for applications. \row \li rpaths \li \c{stringList} \li 1.0 \li \c{undefined} \li List of rpaths that are passed to the linker. Paths that also appear in \c systemRunPaths are ignored. \row \li sonamePrefix \li \c{string} \li 1.5 \li \c{undefined} \li If defined, the value of this variable is used as a path to be prepended to the built shared library's \c SONAME identifier. The \c SONAME (\c LC_ID_DYLIB on Apple platforms, \c DT_SONAME on other Unix-like platforms) is the identifier that the dynamic linker will later use to reference the library. In general, this reference may be a library name or full library path. On Apple platforms, the path may contain the following placeholders: \list \li \b @rpath - Expands to paths defined by LC_RPATH Mach-O commands in the current process executable or the referring libraries. \li \b @executable_path - Expands to the current process executable location. \li \b @loader_path - Expands to the referring executable or library location. \endlist In most cases, using \c @rpath is sufficient and recommended. However, the prefix may be also specified using different placeholders, or an absolute path. For more information, see the \l{https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/dyld.1.html}{dyld documentation} on dynamic library install names. \row \li soVersion \li \c{string} \li 1.7 \li Major part of \c{product.version} if a version is set, otherwise the empty string \li The version to be appended to the soname in ELF shared libraries. \row \li useRPaths \li \c{bool} \li 1.3 \li \c{true} \li Set this property to \c{false} to prevent the linker from writing rpaths to the binary. \row \li useRPathLink \li \c{bool} \li 1.8 \li \c{true} on non-Darwin Unix platforms or when targeting macOS 10.4.x and older. \li Use the \c{-rpath-link} linker option for transitive shared objects. \row \li variantSuffix \li \c{string} \li 1.10 \li platform-specific; see below \li A suffix to add to a product's target name if that product is of type \c staticlibrary or \c dynamiclibrary. Additionally, on Darwin platforms, applications and loadable modules are also affected. By default, it is empty on all platforms unless the product is multiplexed over the \c {qbs.buildVariants} property. In that case, for the debug variant of the product, the default value is \c{"d"} on Windows and \c{"_debug"} on Darwin platforms such as macOS. On all other platforms and in release mode, the default value is empty. For example, building a dynamic library called \c MyLib that is multiplexed over the \c{qbs.buildVariants} property with MSVC will produce files called \c{MyLib.dll} (for the release version of the product) and \c{MyLibd.dll} (for the debug version). \row \li visibility \li \c{string} \li 1.0 \li \c{"default"} \li Visibility level for exported symbols. Possible values include: \c{"default"}, \c{"hidden"}, \c{"hiddenInlines"}, and \c{"minimal"}, which combines \c{"hidden"} and \c{"hiddenInlines"}. \endtable \section1 Properties Specific to Windows \table \header \li Property \li Type \li Since \li Default \li Description \row \li generateManifestFile \li \c{bool} \li 1.5.0 \li \c{true} \li Specifies whether to auto-generate a manifest file and include it in the binary. Disable this property if you provide your own rc file. \row \li windowsApiCharacterSet \li \c{string} \li 1.0.1 \li \c{"unicode"} \li Specifies the character set used in the Win32 API. "unicode" will define the preprocessor symbols UNICODE and _UNICODE, "mbcs" will define _MBCS, and setting the value to undefined will use the default character set. \row \li windowsApiFamily \li \c{string} \li 1.10 \li \c{undefined} \li Specifies the Windows API family that the application or library is targeting. This is used when building Universal Windows Platform applications. Possible values include: \c{"desktop"}, \c{"pc"}, \c{"phone"}, \c{"server"}, and \c{"system"}, which are mapped to the corresponding set of possible values for the \c WINAPI_FAMILY preprocessor define in the Windows SDK. The default is \c undefined, which lets the Windows SDK headers determine the default. \row \li windowsApiAdditionalPartitions \li \c{stringList} \li 1.10 \li \c{undefined} \li List of additional Windows API partitions to enable in addition to the ones implicitly enabled by the value of \c cpp.windowsApiFamily (\c WINAPI_FAMILY). This is used when building Windows Store applications. For example, setting \c cpp.windowsApiFamily to \c{"pc"} and \c cpp.windowsApiAdditionalPartitions to \c{["phone"]} will allow you to create Windows Store applications that target all Universal Windows Platform device families ("Universal" apps). Possible values include: \c{"app"}, \c{"desktop"}, \c{"pc"}, \c{"phone"}, \c{"server"}, and \c{"system"}, which are mapped to the corresponding set of possible \c WINAPI_PARTITION_* preprocessor defines in the Windows SDK. The default is \c undefined, which lets the Windows SDK headers determine the default partitions based on the value of \c WINAPI_FAMILY (see \c cpp.windowsApiFamily). \row \li requireAppContainer \li \c{bool} \li 1.10 \li \c{undefined} \li Whether the generated executable or dynamic-link library \e requires an AppContainer execution environment. This should be used when creating Universal Windows Platform applications. \row \li minimumWindowsVersion \li \c{string} \li 1.0 \li undefined, but may be set by generated profiles \li A version number in the format [major].[minor] indicating the earliest version of Windows that the product should run on. Defines WINVER, _WIN32_WINNT, and _WIN32_WINDOWS, and applies a version number to the linker flags /SUBSYSTEM and /OSVERSION for MSVC or --major-subsystem-version, --minor-subsystem-version, --major-os-version and --minor-os-version for MinGW. If undefined, compiler defaults will be used. \endtable \section1 Advanced Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li alwaysUseLipo \li \{bool} \li 1.9 \li \c{false} \li Whether to always use lipo when combining Mach-O output files on Apple platforms, even if there is only one CPU architecture. The should not normally need to be changed. \row \li compilerDefinesByLanguage \li \c{string} to \c{string} to \c{string} map \li 1.10 \li \c{undefined} \li Map of language tags to list of preprocessor macros that are used for all projects that are using the current toolchain. User project files usually do not set this property. \note See \c{cpp.enableCompilerDefinesByLanguage}. This property will not be usable without also setting that one. \row \li compilerIncludePaths \li \c{pathList} \li 1.6 \li determined automatically \li List of #include search paths that are used for all projects that are using the current toolchain. Determined automatically by probing the compiler. User project files usually do not set this property. \row \li compilerFrameworkPaths \li \c{pathList} \li 1.6 \li determined automatically \li List of framework search paths that are used for all projects that are using the current toolchain. Determined automatically by probing the compiler. User project files usually do not set this property. \row \li compilerLibraryPaths \li \c{pathList} \li 1.6 \li determined automatically \li List of library search paths that are used for all projects that are using the current toolchain. Determined automatically by probing the compiler. User project files usually do not set this property. \row \li distributionFrameworkPaths \li \c{pathList} \li 1.8 \li \c{undefined} \li List of distribution-specific framework search paths, prioritized after \c{systemFrameworkPaths}. Intended for use by module authors implementing support for new operating systems/distributions. User project files should not set this property. \row \li distributionIncludePaths \li \c{pathList} \li 1.8 \li \c{undefined} \li List of distribution-specific include paths that are passed as system include paths to the compiler, prioritized after \c{systemIncludePaths}. Intended for use by module authors implementing support for new operating systems/distributions. User project files should not set this property. \row \li distributionLibraryPaths \li \c{pathList} \li 1.8 \li \c{undefined} \li List of distribution-specific library search paths, prioritized after \c{systemLibraryPaths}. Intended for use by module authors implementing support for new operating systems/distributions. User project files should not set this property. \row \li enableCompilerDefinesByLanguage \li \c{stringList} \li 1.10 \li \c{undefined} \li List of languages (one or more of \c{"c"}, \c{"cpp"}, \c{"objc"}, \c{"objcpp"}) to extract the list of default compiler defines for in \c{cpp.compilerDefinesByLanguage}. Because this has performance implications, no languages are enabled by default. \endtable \section1 Dependency Parameters \table \header \li Parameter \li Type \li Since \li Default \li Description \row \li \c{link} \li \c{bool} \li 1.9 \li undefined \li If \c{false}, the dependency will not be linked, even if it is a valid input for a linker rule. This property affects library dependencies only. \row \li \c{linkWholeArchive} \li \c{bool} \li 1.9 \li undefined \li If \c{true}, then if the dependency is a static library, all of its objects will be pulled into target binary, even if their symbols do not appear to be used. This parameter is mainly useful when creating a dynamic library from static libraries. \row \li \c{symbolLinkMode} \li \c{string} \li 1.9 \li undefined \li Attribute specifying how the library or framework will be linked. May contain the values: "weak", "lazy", "reexport", and "upward"; refer to the Apple ld64 man page for full details. \c{undefined} uses normal linking. Currently only applies when linking for Apple platforms. \endtable \section1 Relevant File Tags \table \header \li Tag \li Auto-tagged File Names \li Since \li Description \row \li \c{"application"} \li n/a \li 1.0.1 \li The rule that creates executable files (typically via a linker) attaches this tag to its output artifact. \row \li \c{"asm"} \li \c{*.s} (for GCC-like toolchains), \c{*.asm} (for MSVC) \li 1.1.0 \li Source files with this tag serve as inputs to a rule invoking the toolchain's assembler. One object file is generated for each such file. \row \li \c{"asm_cpp"} \li \c{*.S}, \c{*.sx} \li 1.1.0 \li Like \c{"asm"}, but for source files that need preprocessing. This tag only has an effect with GCC-like toolchains. \row \li \c{"c"} \li \c{*.c} (if \c combineCSources is not enabled) \li 1.0.1 \li Source files with this tag serve as inputs to a rule invoking the toolchain's C compiler. One object file is generated for each such file. \row \li \c{"c.combine"} \li \c{*.c} (if \c combineCSources is enabled) \li 1.8 \li Source files with this tag serve as inputs to a rule combining them into a single C file, which will then be compiled. \row \li \c{"cpp"} \li \c{*.C}, \c{*.cpp}, \c{*.cxx}, \c{*.c++}, \c{*.cc} (if \c combineCxxSources is not enabled) \li 1.0.1 \li Source files with this tag serve as inputs to a rule invoking the toolchain's C++ compiler. One object file is generated for each such file. \row \li \c{"cpp.combine"} \li \c{*.C}, \c{*.cpp}, \c{*.cxx}, \c{*.c++}, \c{*.cc} (if \c combineCxxSources is enabled) \li 1.8 \li Source files with this tag serve as inputs to a rule combining them into a single C++ file, which will then be compiled. \row \li \c{"c_pch_src"}, \c{"cpp_pch_src"}, \c{"objc_pch_src"}, \c{"objcpp_pch_src"} \li - \li 1.5 \li Files with this tag will be turned into precompiled headers for C, C++, Objective-C and Objective-C++, respectively. There can be only one such file per product and language. \row \li \c{"dynamiclibrary"} \li n/a \li 1.0.1 \li The rule that creates dynamic libraries (typically via a linker) attaches this tag to its output artifact. \row \li \c{"hpp"} \li \c{*.h}, \c{*.H}, \c{*.hpp}, \c{*.hxx}, \c{*.h++} \li 1.0.1 \li This tag is used for header files (C, C++, Objective-C and Objective-C++). No rule in this module generates output artifacts from such files directly, but the compiler rule will have a dependency on all rules that create such files. \row \li \c{"linkerscript"} \li - \li 1.5.0 \li This tag is used for \c ld linker scripts. You can provide such a file if you need to replace the default linker script. This file tag only has an effect with GCC-like toolchains. The linker needs to be \c{ld}-compatible. \row \li \c{"obj"} \li n/a \li 1.0.1 \li The rule that creates object files (typically via a compiler) attaches this tag to its output artifacts. Such files are usually intermediate artifacts of the build process and rarely need to be referenced in project files. \row \li \c{"objc"} \li \c{*.m} (if \c combineObjcSources is not enabled) \li 1.1.0 \li Source files with this tag serve as inputs to a rule invoking the toolchain's Objective-C compiler. One object file is generated for each such file. \row \li \c{"objc.combine"} \li \c{*.m} (if \c combineObjcSources is enabled) \li 1.8 \li Source files with this tag serve as inputs to a rule combining them into a single Objective-C file, which will then be compiled. \row \li \c{"objcpp"} \li \c{*.mm} (if \c combineObjcxxSources is not enabled) \li 1.1.0 \li Source files with this tag serve as inputs to a rule invoking the toolchain's Objective-C++ compiler. One object file is generated for each such file. \row \li \c{"objcpp.combine"} \li \c{*.mm} (if \c combineObjcxxSources is enabled) \li 1.8 \li Source files with this tag serve as inputs to a rule combining them into a single Objective-C++ file, which will then be compiled. \row \li \c{"rc"} \li \c{*.rc} \li 1.1.0 \li Files with this tag serve as inputs to the Windows resource compiler. One object file is generated for each such file. The tag has no effect on target platforms other than Windows. \row \li \c{"staticlibrary"} \li n/a \li 1.0.1 \li The rule that creates static libraries (typically via a linker) attaches this tag to its output artifact. \row \li \c{"versionscript"} \li - \li 1.5.0 \li This tag is used for \c ld linker scripts. You can provide such a file if you need fine-grained control over the symbols present in a shared library. This file tag only has an effect with GCC-like toolchains. The linker needs to be \c{ld}-compatible. \endtable */ qbs-src-1.10.1/doc/reference/modules/cpufeatures-module.qdoc000066400000000000000000000134051323434465400240130ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page cpufeatures-module.html \ingroup list-of-modules \title Module cpufeatures \since 1.10 \brief Provides support for fine-tuning CPU features The \c cpufeatures module offers properties for enabling or disabling specific CPU features. Use it if you want to override the compiler defaults for a given platform. The compiler rules in the \l{Module cpp}{cpp module} evaluate this module's properties and generate matching compiler flags. All properties in this module are of type \c bool and have the following semantics: \list \li The default value \c undefined has no effect on the compiler command line. \li If the value is \c true and the compiler has a flag to enable the feature, that flag is added to the command line if it is applicable to the current architecture. For example, enabling the property \c x86_sse2 would result in the GCC option \c{-msse2}. \li If the value is \c false and the compiler has a flag to disable the feature, that flag is added to the command line if it is applicable to the current architecture. For example, disabling the property \c x86_sse2 would result in the GCC option \c{-no-msse2}. \endlist \section1 cpufeatures Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li arm_neon \li bool \li 1.10 \li undefined \li Whether to use NEON instructions in ARM binaries. \row \li arm_vfpv4 \li bool \li 1.10 \li undefined \li Whether to use VFPv4 instructions in ARM binaries. \row \li mips_dsp \li bool \li 1.10 \li undefined \li Whether to use DSP instructions in MIPS binaries. \row \li mips_dspr2 \li bool \li 1.10 \li undefined \li Whether to use DSPr2 instructions in MIPS binaries. \row \li x86_avx \li bool \li 1.10 \li undefined \li Whether to use AVX instructions in x86 binaries. \row \li x86_avx2 \li bool \li 1.10 \li undefined \li Whether to use AVX2 instructions in x86 binaries. \row \li x86_avx512bw \li bool \li 1.10 \li undefined \li Whether to use AVX-512-BW instructions in x86 binaries. \row \li x86_avx512cd \li bool \li 1.10 \li undefined \li Whether to use AVX-512-CD instructions in x86 binaries. \row \li x86_avx512dq \li bool \li 1.10 \li undefined \li Whether to use AVX-512-DQ instructions in x86 binaries. \row \li x86_avx512er \li bool \li 1.10 \li undefined \li Whether to use AVX-512-ER instructions in x86 binaries. \row \li x86_avx512f \li bool \li 1.10 \li undefined \li Whether to use AVX-512 instructions in x86 binaries. \row \li x86_avx512ifma \li bool \li 1.10 \li undefined \li Whether to use AVX-512-IFMA instructions in x86 binaries. \row \li x86_avx512pf \li bool \li 1.10 \li undefined \li Whether to use AVX-512-PF instructions in x86 binaries. \row \li x86_avx512vbmi \li bool \li 1.10 \li undefined \li Whether to use AVX-512-VBMI instructions in x86 binaries. \row \li x86_avx512vl \li bool \li 1.10 \li undefined \li Whether to use AVX-512-VL instructions in x86 binaries. \row \li x86_f16c \li bool \li 1.10 \li undefined \li Whether to use F16C instructions in x86 binaries. \row \li x86_sse2 \li bool \li 1.10 \li undefined \li Whether to use SSE2 instructions in x86 binaries. \row \li x86_sse3 \li bool \li 1.10 \li undefined \li Whether to use SSE3 instructions in x86 binaries. \row \li x86_ssse3 \li bool \li 1.10 \li undefined \li Whether to use SSSE3 instructions in x86 binaries. \row \li x86_sse4_1 \li bool \li 1.10 \li undefined \li Whether to use SSE4.1 instructions in x86 binaries. \row \li x86_sse4_2 \li bool \li 1.10 \li undefined \li Whether to use SSE4.2 instructions in x86 binaries. \endtable */ qbs-src-1.10.1/doc/reference/modules/dmg-module.qdoc000066400000000000000000000321211323434465400222300ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page dmg-module.html \ingroup list-of-modules \title Module dmg \since 1.9 \brief Provides support for building Apple Disk Images The \c dmg module contains properties and rules for building Apple Disk Images, which are typically used to distribute applications and installers on macOS. This module is only available on Apple platforms. \section1 General Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li volumeName \li \c{string} \li 1.9 \li \c{product.targetName} \li The name of the disk image which displayed in Finder when the DMG is mounted. \row \li badgeVolumeIcon \li \c{bool} \li 1.9 \li \c{false} \li Whether to render the user-supplied icon (see the \c{"icns"} file tag documentation) on top of the default volume icon instead of using it directly. This generally gives the disk image icon a better and more consistent appearance. \row \li format \li \c{string} \li 1.9 \li \c{"UDBZ"} \li The format to create the disk image in. Allowed values include but are not limited to \c{"UDZO"}, \c{"UDBZ"} and \c{"ULFO"}. \row \li compressionLevel \li \c{int} \li 1.9 \li 9 in release mode, otherwise undefined \li Sets the zlib, bzip2, or lzfse compression level for UDZO, UDBZ, or ULFO disk images. \row \li sourceBase \li \c{string} \li 1.9 \li \c{undefined} \li Specifies the base directory of the files that are going to be embedded in the DMG (see the \c{"dmg.input"} file tag documentation). The source base directory is omitted from the target directory path of the DMG directory. The default value of this property is the directory of the current file to be embedded, relative to the product's source directory. \endtable \section1 Appearance Properties Properties in this section are used to control the contents of the .DS_Store file and its embedded Alias and Bookmark records, that will be generated by \QBS in order to control the appearance of the disk image when mounted in Finder. \table \header \li Property \li Type \li Since \li Default \li Description \row \li backgroundColor \li \c{string} \li 1.9 \li \c{undefined} \li Specifies the background color of the disk image as seen when mounted in Finder. Refer to the \l{https://dmgbuild.readthedocs.io/en/latest/settings.html#background} {dmgbuild documentation} for the full list of supported color names and formats. To use an image for the background instead, refer to the \c{"tiff"} file tag documentation. \row \li iconSize \li \c{int} \li 1.9 \li \c{128} \li Specifies the width and height of the file icons as seen when the disk image is mounted in Finder. \row \li windowX \li \c{int} \li 1.9 \li \c{100} \li Specifies the X position of the Finder window that displays the disk image contents when it is mounted. \row \li windowY \li \c{int} \li 1.9 \li \c{100} \li Specifies the Y position of the Finder window that displays the disk image contents when it is mounted. \row \li windowWidth \li \c{int} \li 1.9 \li \c{640} \li Specifies the width of the Finder window that displays the disk image contents when it is mounted. \row \li windowHeight \li \c{int} \li 1.9 \li \c{480} \li Specifies the height of the Finder window that displays the disk image contents when it is mounted. Note that the window height includes the height of the standard macOS title bar (22 points). \row \li iconPositions \li \c{list} \li 1.9 \li \c{undefined} List of objects containing \c{path}, \c{x}, and \c{y} properties, which correspond to disk image-relative file paths and visual coordinates of file icons in the disk image as seen when it is mounted in Finder. For example: \code dmg.iconPositions: [ {"path": "Applications", "x": 128, "y": 128}, {"path": "Foo Bar.app", "x": 256, "y": 128} ] \endcode This property is useful for specifying the positions of files where you do not have direct control over the corresponding \QBS artifact, or there is no corresponding \QBS artifact (for example, "Foo Bar.app" is a directory, which has no equivalent artifact in the build graph). For files to which you are directly applying the \c{dmg.input} file tag, you should use the \c{dmg.iconX} and \c{dmg.iconY} properties instead. \row \li iconX \li \c{int} \li 1.9 \li \c{windowWidth / 2} \li X position of the file icon in the Finder window that displayed the disk image contents when it is mounted. This property is only useful with artifacts tagged \c{dmg.input} and cannot be used at the product level to affect all files. If you do not have access to the artifact corresponding to the file whose position you want to set, use the \c{dmg.iconPositions} property instead. \row \li iconY \li \c{int} \li 1.9 \li \c{windowHeight / 2} \li Y position of the file icon in the Finder window that displayed the disk image contents when it is mounted. This property is only useful with artifacts tagged \c{dmg.input} and cannot be used at the product level to affect all files. If you do not have access to the artifact corresponding to the file whose position you want to set, use the \c{dmg.iconPositions} property instead. \endtable \section1 License Properties Properties in this section are used to control the content and appearance of the license prompt displayed when a user attempts to mount the resulting disk image via Finder. \table \header \li Property \li Type \li Since \li Default \li Description \row \li defaultLicenseLocale \li \c{string} \li 1.9 \li \c{"en_US"} \li Locale of the default license to display when there is no license whose locale matches the system locale. \row \li licenseLocale \li \c{string} \li 1.9 \li determined automatically \li Locale of the license file. Defaults to a value guess from the file path, specifically the base name of any .lproj directory found in the file's path. If the locale could not be determined from the file path and this property is not set, an error will be emitted. This property is only useful with artifacts tagged \c{dmg.license.input} and cannot be used at the product level to affect all files. \row \li licenseLanguageName \li \c{string} \li 1.9 \li \c{"English"} \li Name of the language associated with the license file, localized for that language. This property is only useful with artifacts tagged \c{dmg.license.input} and cannot be used at the product level to affect all files. \row \li licenseAgreeButtonText \li \c{string} \li 1.9 \li \c{"Agree"} \li Text shown on the "Agree" button associated with the license file, localized for that language. This property is only useful with artifacts tagged \c{dmg.license.input} and cannot be used at the product level to affect all files. \row \li licenseDisagreeButtonText \li \c{string} \li 1.9 \li \c{"Disagree"} \li Text shown on the "Disagree" button associated with the license file, localized for that language. This property is only useful with artifacts tagged \c{dmg.license.input} and cannot be used at the product level to affect all files. \row \li licensePrintButtonText \li \c{string} \li 1.9 \li \c{"Print"} \li Text shown on the "Print" button associated with the license file, localized for that language. This property is only useful with artifacts tagged \c{dmg.license.input} and cannot be used at the product level to affect all files. \row \li licenseSaveButtonText \li \c{string} \li 1.9 \li \c{"Save"} \li Text shown on the "Save" button associated with the license file, localized for that language. This property is only useful with artifacts tagged \c{dmg.license.input} and cannot be used at the product level to affect all files. \row \li licenseInstructionText \li \c{string} \li 1.9 \li \c{"If you agree with the terms of this license, press \"Agree\" to install the software. If you do not agree, press \"Disagree\"."} \li Instruction text associated with the license file that will be shown on the license dialog, localized for that language. This property is only useful with artifacts tagged \c{dmg.license.input} and cannot be used at the product level to affect all files. \endtable \section1 Advanced Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li dmgSuffix \li \c{string} \li 1.9 \li \c{".dmg"} \li File extension for disk images. This should not normally need to be changed. \row \li hdiutilPath \li \c{string} \li 1.9 \li \c{"/usr/bin/hdiutil"} \li Path to the hdiutil binary used to perform disk image related operations. This should not normally need to be changed. \row \li textutilPath \li \c{string} \li 1.9 \li \c{"/usr/bin/textutil"} \li Path to the textutil binary used to convert license agreement files to rich text format. This should not normally need to be changed. \endtable \section1 Relevant File Tags \table \header \li Tag \li Auto-tagged File Names \li Since \li Description \row \li \c{"dmg.input"} \li n/a \li 1.9 \li If the product contains files with this tag, they will be copied into the disk image. See the \c{sourceBase} property to learn how to control the destination directory and hierarchy of copied files within the disk image. \row \li \c{"dmg.license.input"} \li \c{*.txt}, \c{*.rtf}, \c{*.html}, \c{*.doc}, \c{*.docx}, \c{*.odt}, \c{*.xml}, \c{*.webarchive} \li 1.9 \li If the product contains files with this tag, they will be converted into rich text and used for the license prompt when mounting the DMG. \row \li \c{"icns"} \li \c{*.icns} \li 1.3 \li If the product contains a file with this tag, it will be added as the Apple Disk Image volume icon, which will show up in the Finder as an overlay on the file icon. \row \li \c{"tiff"} \li \c{*.tif}, \c{*.tiff} \li 1.9 \li If the product contains a file with this tag, it will be used as the background image of the directory as shown in Finder when the DMG file is mounted. \endtable */ qbs-src-1.10.1/doc/reference/modules/ib-module.qdoc000066400000000000000000000204311323434465400220540ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page ib-module.html \ingroup list-of-modules \title Module ib \since 1.1 \brief Provides support for Apple Interface Builder and related tools and file types. The \c ib module contains properties and rules for building Interface Builder documents, storyboards, asset catalogs, and icon sets. This module is only available on Apple platforms. \section1 General Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li warnings \li bool \li 1.1 \li \c{true} \li Whether to print warnings when compiling. Does not apply to icon sets. \row \li errors \li bool \li 1.1 \li \c{true} \li Whether to print warnings when compiling. Does not apply to icon sets. \row \li notices \li bool \li 1.1 \li \c{true} \li Whether to print warnings when compiling. Does not apply to icon sets. \row \li flags \li stringList \li 1.1 \li undefined \li Additional flags to pass to the underlying tool (ibtool, actool, iconutil). \endtable \section1 Properties Specific to NIBs and Storyboards \table \header \li Property \li Type \li Since \li Default \li Description \row \li ibtoolName \li string \li 1.3 \li \c{"ibtool"} \li Name of the ibtool binary used to compile NIBs and storyboards. This should not normally need to be changed. \row \li ibtoolPath \li string \li 1.3 \li \c{ibtoolName} \li Directory where the ibtool binary is located. This should not normally need to be changed. \row \li flatten \li bool \li 1.1 \li \c{true} \li Compiles XIBs and storyboards into flattened (non-wrapper) files. Set to \c{false} to preserve editability of the resulting nib and storyboard bundles in Interface Builder. This property should not normally need to be changed. \row \li module \li string \li 1.3 \li \c{undefined} \li Sets the name of the module that the nib or storyboard is a part of. Requires Xcode 6 or newer. \row \li autoActivateCustomFonts \li bool \li 1.3 \li \c{true} \li Instructs the ibtool compiler to add custom fonts to the application's Info.plist when compiling XIBs and storyboards, which will cause the fonts to activate upon application launch. Requires Xcode 6 or newer. \endtable \section1 Properties Specific to Asset Catalogs \table \header \li Property \li Type \li Since \li Default \li Description \row \li actoolName \li string \li 1.3 \li \c{"actool"} \li Name of the actool binary used to compile asset catalogs. This should not normally need to be changed. \row \li actoolPath \li string \li 1.3 \li \c{actoolName} \li Directory where the actool binary is located. This should not normally need to be changed. \row \li appIconName \li string \li 1.3 \li \c{undefined} \li Name of the resource in the asset catalog that will be used as the application's icon. Used to generate the partial Info.plist which will be merged into the resulting app. If this property is \c{undefined}, no application icon will be specified. \row \li launchImageName \li string \li 1.3 \li \c{undefined} \li Name of the resource in the asset catalog that will be used as the application's launch image. Used to generate the partial Info.plist which will be merged into the resulting app. If this property is \c{undefined}, no launch image will be specified. Only applies to iOS applications. \row \li compressPngs \li bool \li 1.3 \li \c{true} \li Whether to compress PNG image files when building asset catalogs. \endtable \section1 Properties Specific to Icon Sets \table \header \li Property \li Type \li Since \li Default \li Description \row \li iconutilName \li string \li 1.3 \li \c{"iconutil"} \li Name of the iconutil binary used to compile icon sets. This should not normally need to be changed. \row \li iconutilPath \li string \li 1.3 \li \c{iconutilName} \li Directory where the iconutil binary is located. This should not normally need to be changed. \endtable \section1 Relevant File Tags \table \header \li Tag \li Auto-tagged File Names \li Since \li Description \row \li \c{"assetcatalog"} \li \c{*.xcassets} \li 1.3 \li This tag is attached to directories that will be compiled into compiled asset catalog archives (.car files) on supported platforms, or a collection of loose resource files. The resulting files will be automatically tagged \c{bundle.input}. If the current product is a bundle, the files will be included in the bundle's resources directory. \row \li \c{"iconset"} \li \c{*.iconset} \li 1.3 \li This tag is attached to directories that will be compiled into Apple ICNS files. The resulting files will be automatically tagged \c{bundle.input}. If the current product is a bundle, the files will be included in the bundle's resources directory. \row \li \c{"nib"} \li \c{*.nib}, \c{*.xib} \li 1.1 \li This tag is attached to "NIB" and "XIB" files that will be compiled. The output may be a flat file or a bundle (directory structure). The resulting files will be automatically tagged \c{bundle.input}. If the current product is a bundle, the files will be included in the bundle's resources directory. \row \li \c{"png"} \li \c{*.png} \li 1.9 \li This tag is attached to PNG files that may be converted into multi-resolution TIFFs. Source files should adopt the \l{Adopt the @2x Naming Convention}{@2x naming convention} in order to be properly grouped. The resulting files will be given the \c{tiff} file tag. \row \li \c{"storyboard"} \li \c{*.storyboard} \li 1.3 \li This tag is attached to storyboard files that will be compiled. The output may be a flat file or a bundle (directory structure). The resulting files will be automatically tagged \c{bundle.input}. If the current product is a bundle, the files will be included in the bundle's resources directory. \endtable */ qbs-src-1.10.1/doc/reference/modules/innosetup-module.qdoc000066400000000000000000000125661323434465400235200ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page innosetup-module.html \ingroup list-of-modules \title Module innosetup \since 1.7 \brief Provides Inno Setup support. The \c innosetup module contains properties and rules for building EXE setup packages with \l{http://www.jrsoftware.org/isinfo.php}{Inno Setup}. Inno Setup 5 and above are supported. \note A typical Inno Setup Script includes an OutputBaseFilename command to set the filename of the generated installer executable. However, \QBS overrides any OutputBaseFilename commands found in the script by passing the /F option to the ISCC compiler, and therefore, you must use the targetName property to set the filename. \QBS also overrides any Output commands by passing the /O option to the ISCC compiler. \section1 General Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li defines \li \c{stringList} \li 1.7 \li \c{undefined} \li List of preprocessor macros that get passed to the compiler. To set macro values use the following syntax: \c{innosetup.defines: ["USE_COLORS=1", 'COLOR_STR="blanched almond"']} \row \li includePaths \li \c{pathList} \li 1.7 \li \c{undefined} \li List of include paths. Relative paths are considered to be relative to the .qbs product file they are used in. \row \li verboseOutput \li \c{bool} \li 1.7 \li \c{false} \li Whether to display verbose output from the Inno Setup compiler. \row \li compilerFlags \li \c{stringList} \li 1.7 \li \c{undefined} \li Additional flags for the Inno Setup compiler. \row \li version \li \c{string} \li 1.7 \li \c{undefined} \li The Inno Setup version. Consists of three numbers separated by dots, for instance "5.5.9". \row \li versionMajor \li \c{int} \li 1.7 \li \c{versionParts[0]} \li The Inno Setup major version. \row \li versionMinor \li \c{int} \li 1.7 \li \c{versionParts[1]} \li The Inno Setup minor version. \row \li versionParts \li \c{list} \li 1.7 \li \c{empty} \li The Inno Setup version as a list. For instance, Inno Setup version 5.5.9 would correspond to a value of \c[5, 5, 9]. \row \li versionPatch \li \c{int} \li 1.7 \li \c{versionParts[2]} \li The Inno Setup patch level. \row \li toolchainInstallPath \li \c{path} \li 1.7 \li determined automatically \li Inno Setup installation directory. Determined by searching the registry for the latest version. This should not normally need to be changed. \row \li compilerName \li \c{string} \li 1.7 \li \c{"ISCC.exe"} \li Name of the compiler binary. This should not normally need to be changed. \row \li compilerPath \li \c{string} \li 1.7 \li \c{compilerName} \li Full path of the compiler binary. This should not normally need to be changed. \endtable \section1 Relevant File Tags \table \header \li Tag \li Auto-tagged File Names \li Since \li Description \row \li \c{"innosetup.iss"} \li \c{"*.iss"} \li 1.7 \li Source files with this tag identify Inno Setup Script files, which serve as inputs to a rule invoking the Inno Setup Script Compiler. \row \li \c{"innosetup.exe"} \li n/a \li 1.7 \li The rule that creates Inno Setup executable files attaches this tag (as well as the "application" tag) to its output artifact. \row \li \c{"innosetup.input"} \li n/a \li 1.10 \li The rule that creates Inno Setup executable files will be dependent on artifacts with this tag. \endtable */ qbs-src-1.10.1/doc/reference/modules/java-module.qdoc000066400000000000000000000152501323434465400224060ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page java-module.html \ingroup list-of-modules \title Module java \since 1.4 \brief Provides Java support. The \c java module contains the properties and rules for building Java projects. \section1 Java Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li additionalClassPaths \li stringList \li 1.4 \li undefined \li Locations beside this product's class output path to consider when compiling. \row \li additionalCompilerFlags \li stringList \li 1.4 \li undefined \li Use this to supply compiler flags not covered by any of the properties in this module. \row \li additionalJarFlags \li stringList \li 1.4 \li undefined \li Use this to supply archiver flags not covered by any of the properties in this module. \row \li bootClassPaths \li stringList \li 1.4 \li undefined \li Use this if you need to specify non-standard bootstrap class files. \row \li compilerFilePath \li string \li 1.4 \li \c compilerName, prefixed by \c jdkPath if it is defined \li The command to invoke when compiling Java sources. \row \li compilerName \li string \li 1.4 \li \c{"javac"} \li The file name of the Java compiler. \row \li enableWarnings \li bool \li 1.4 \li \c true \li Controls whether warnings are emitted when compiling Java sources. \row \li interpreterFilePath \li string \li 1.4 \li \c interpreterName, prefixed by \c jdkPath if it is defined \li The command to invoke when executing Java code. \row \li interpreterName \li string \li 1.4 \li \c{"java"} \li The file name of the Java interpreter. \row \li jarFilePath \li string \li 1.4 \li \c jarName, prefixed by \c jdkPath if it is defined \li The command to run when creating or extracting \c jar files. \row \li jarName \li string \li 1.4 \li \c{"jar"} \li The file name of the \c jar tool. \row \li jdkIncludePaths \li pathList \li 1.4.1 \li determined automatically \li List of include paths for native header files. Applications using JNI to interface with native code should add these paths to \c{cpp.includePaths}. \row \li jdkPath \li string \li 1.4 \li determined automatically \li The base path of the Java Development Kit (JDK). This is equivalent to the \c JAVA_HOME environment variable, and by default will be determined automatically from one of the following: \list \li \c JAVA_HOME environment variable (all platforms) \li Registry (Windows) \li \c java_home tool (macOS) \li Known JDK paths (other Unix platforms) \endlist \row \li languageVersion \li string \li 1.4 \li undefined \li The Java language version to interpret source code as. If undefined, the compiler will use its default. \row \li runtimeVersion \li string \li 1.4 \li undefined \li The version of the Java runtime to generate compatible bytecode for. If undefined, the compiler will use its default. \row \li manifest \li object \li 1.4.2 \li undefined \li The properties to add to the manifest file when building a JAR. The contents of this property will be aggregated with the values from any files tagged \c{"java.manifest"} (see below). If \c{manifest} and a manifest file contain the same key, the former will take precedence. If undefined, will not be taken into account. \row \li manifestClassPath \li stringList \li 1.4.2 \li undefined \li The entries to add to the manifest's Class-Path when building a JAR. \row \li warningsAsErrors \li bool \li 1.4 \li \c false \li If this property is enabled, the compiler will abort where it would normally emit a warning. \endtable \section1 Relevant File Tags \table \header \li Tag \li Auto-tagged File Names \li Since \li Description \row \li \c{"java.class"} \li - \li 1.4 \li This tag is attached to the output artifacts of the rule that runs the \c javac tool. \row \li \c{"java.jar"} \li - \li 1.4 \li This tag is attached to the output artifacts of the rule that runs the \c jar tool. \row \li \c{"java.java"} \li \c{*.java} \li 1.4 \li Source files with this tag serve as inputs to the rule running the \c javac tool. \row \li \c{"java.manifest"} \li \c{*.mf} \li 1.8 \li The contents of files with this tag will be aggregated with the values in \c{java.manifest}. If a manifest file and \c{java.manifest} contain the same key, the latter will take precedence. If undefined, will not be taken into account. \endtable */ qbs-src-1.10.1/doc/reference/modules/lexyacc-module.qdoc000066400000000000000000000101171323434465400231120ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page lex_yacc-module.html \ingroup list-of-modules \title Module lex_yacc \since 1.6 \brief Provides support for the \c lex and \c yacc tools. The \c lex_yacc module allows you to create scanners and parsers via the POSIX tools \c lex and \c yacc, respectively. These tools are closely related and share a number of properties, which is why they are represented by a single module. \section1 General Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li enableCompilerWarnings \li \c{bool} \li 1.8 \li \c{false} \li Because \c lex and \c yacc are known to produce files that will trigger compiler warnings, such warnings are suppressed by default. Set this property to \c true if you want to see them. \row \li lexBinary \li \c{string} \li 1.6 \li \c{"lex"} \li The file path of the \c lex tool. \row \li lexFlags \li \c{stringList} \li 1.6 \li \c{empty} \li Additional command-line options for the \c lex tool. \row \li outputTag \li \c{string} \li 1.6 \li \c{"c"} \li The file tag for the generated scanner and parser sources. Use \c{"cpp"} if you want to use a C++ compiler on them. \row \li uniqueSymbolPrefix \li \c{bool} \li 1.6 \li \c{false} \li If this property is \c true, the normal prefix \c yy used for the generated lexer and parser functions will be replaced by the base name of the file provided as input to \c lex and \c yacc, respectively. Enable this property if you want to use more than one lexer or parser in a single product. \note Enabling this property requires associated lexer and scanner source files to have the same base name. It also assumes a variant of \c lex that supports the non-POSIX option \c{-P}, such as \c flex. \row \li yaccBinary \li \c{string} \li 1.6 \li \c{"yacc"} \li The file path of the \c yacc tool. \row \li yaccFlags \li \c{stringList} \li 1.6 \li \c{empty} \li Additional command-line options for the \c yacc tool. \endtable \section1 Relevant File Tags \table \header \li Tag \li Auto-tagged File Names \li Since \li Description \row \li \c{"lex.input"} \li \c{*.l} \li 1.6 \li Source files with this tag serve as inputs to the \c lex tool. \row \li \c{"yacc.input"} \li \c{*.y} \li 1.6 \li Source files with this tag serve as inputs to the \c yacc tool. \endtable */ qbs-src-1.10.1/doc/reference/modules/nodejs-module.qdoc000066400000000000000000000037071323434465400227530ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page nodejs-module.html \ingroup list-of-modules \title Module nodejs \since 1.3 \brief Provides Node.js support. The \c nodejs module contains support for running \l{http://nodejs.org}{Node.js} applications from \QBS. \section1 General Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li applicationFile \li path \li 1.3 \li \c{undefined} \li The input JavaScript file whose corresponding output will be executed when running the Node.js application. If this property is \c{undefined}, the product will not be runnable. \endtable */ qbs-src-1.10.1/doc/reference/modules/nsis-module.qdoc000066400000000000000000000142341323434465400224420ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page nsis-module.html \ingroup list-of-modules \title Module nsis \since 1.2 \brief Provides Nullsoft Scriptable Install System support. The \c nsis module contains properties and rules for building EXE installers for Windows using the Nullsoft Scriptable Install System. This module is available on all platforms. \note A typical NSIS script includes an OutFile command to set the filename of the generated installer executable. However, \QBS overrides any OutFile commands found in the script, and therefore, you must use the targetName property to set the filename. \section1 General Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li defines \li stringList \li 1.2 \li \c{undefined} \li List of preprocessor macros that get passed to the compiler. To set macro values, use the following syntax: \c{cpp.defines: ["USE_COLORS=1", 'COLOR_STR="blanched almond"']} \row \li disableConfig \li bool \li 1.2 \li \c{false} \li Whether to disable inclusion of nsisconf.nsh. Generally you do not need to set this property. \row \li enableQbsDefines \li bool \li 1.2 \li \c{true} \li Whether to define preprocessor macros corresponding to values from the project and product objects. When building a 64-bit package, the preprocessor variable \c{Win64} will also be defined. \row \li warningLevel \li string \li 1.2 \li \c{"normal"} \li Severity of warnings to emit. The higher the level, the more warnings will be shown. The levels \c{none}, \c{errors}, \c{warnings}, \c{info} and \c{all} correspond to NSIS verbosity levels 0 through 4, inclusive. \c{normal} corresponds to the default level. \row \li compilerFlags \li stringList \li 1.2 \li undefined \li Additional flags for the NSIS compiler. \row \li compressor \li string \li 1.2 \li \c{"default"} \li Compression algorithm used to compress files and data in the installer. Setting this property overrides any SetCompressor command in the NSI file being compiled. Possible values include: \c{"default"}, \c{"zlib"}, \c{"zlib-solid"}, \c{"bzip2"}, \c{"bzip2-solid"}, \c{"lzma"}, \c{"lzma-solid"} \row \li version \li string \li 1.2 \li \c{undefined} \li The NSIS version. Consists of four numbers separated by dots, for instance "2.46.0.0". \row \li versionMajor \li int \li 1.2 \li \c{versionParts[0]} \li The NSIS major version. \row \li versionMinor \li int \li 1.2 \li \c{versionParts[1]} \li The NSIS minor version. \row \li versionParts \li list \li 1.2 \li \c{empty} \li The NSIS version as a list. For instance, NSIS version 2.46.0.0 would correspond to a value of \c[2, 46, 0, 0]. \row \li versionPatch \li int \li 1.2 \li \c{versionParts[2]} \li The NSIS patch level. \row \li versionBuild \li int \li 1.2 \li \c{versionParts[3]} \li The fourth NSIS version number component. \row \li toolchainInstallPath \li path \li 1.2 \li determined automatically \li NSIS installation directory. Determined by searching known registry keys and known installation paths until a match is found. This should not normally need to be changed. \row \li compilerName \li string \li 1.2 \li \c{"makensis"} \li Name of the compiler binary. This should not normally need to be changed. \row \li compilerPath \li string \li 1.2 \li \c{compilerName} \li Directory where the compiler binary is located. This should not normally need to be changed. \endtable \section1 Relevant File Tags \table \header \li Tag \li Auto-tagged File Names \li Since \li Description \row \li \c{"nsh"} \li \c{*.nsh} \li 1.2 \li This tag is attached to NSIS header files. \row \li \c{"nsi"} \li \c{*.nsi} \li 1.2 \li This tag is attached to NSIS script files. \row \li \c{"nsissetup"} \li - \li 1.2 \li The rule that creates the NSIS setup executable attaches this tag to its output artifact. \row \li \c{"nsis.input"} \li - \li 1.10 \li The rule that creates the NSIS setup executable will be dependent on artifacts with this tag. \endtable */ qbs-src-1.10.1/doc/reference/modules/qbs-module.qdoc000066400000000000000000000302511323434465400222500ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage list-of-modules.html \page qbs-module.html \ingroup list-of-modules \title Module qbs \since 1.0 \brief Comprises general properties. The \c qbs module is implicitly loaded in every product. It contains properties of the current build environment, independent of the used programming languages and toolchains. \section1 General Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li configurationName \li \c{string} \li 1.6 \li \c{"default"} \li Contains the name of the current build configuration. \row \li buildVariant \li \c{string} \li 1.0 \li \c{"debug"} \li Contains the name of the build variant for the current build. \row \li debugInformation \li \c bool \li 1.0 \li \c{true} for debug builds, \c{false} otherwise \li Specifies whether to generate debug information. \row \li enableDebugCode \li \c bool \li 1.0 \li \c{true} for debug builds, \c{false} otherwise \li Specifies whether to compile debug code in the product. This is typically enabled for debug builds and disabled for release builds. \row \li optimization \li \c{string} \li 1.0 \li \c{"none"} for debug builds, \c{"fast"} for release builds \li Specifies the general type of optimization that should be performed by all toolchains. Allowed values: \c{"none"}, \c{"fast"}, \c{"small"} \row \li targetOS \li \c{stringList} \li 1.0 \li \c{undefined} \li Specifies the OS you want to build the project for. This is typically set in a profile. Possible values include one or more of the following: \c{"aix"}, \c{"android"}, \c{"bsd"}, \c{"bsd4"}, \c{"bsdi"}, \c{"cygwin"}, \c{"darwin"}, \c{"dgux"}, \c{"dynix"}, \c{"freebsd"}, \c{"hpux"}, \c{"hurd"}, \c{"integrity"}, \c{"ios"}, \c{"ios-simulator"}, \c{"irix"}, \c{"linux"}, \c{"lynx"}, \c{"macos"}, \c{"msdos"}, \c{"nacl"}, \c{"netbsd"}, \c{"openbsd"}, \c{"os2"}, \c{"os2emx"}, \c{"osf"}, \c{"qnx"}, \c{"qnx6"}, \c{"reliant"}, \c{"sco"}, \c{"solaris"}, \c{"symbian"}, \c{"ultrix"}, \c{"unix"}, \c{"unixware"}, \c{"vxworks"}, \c{"windows"} \row \li architecture \li \c{string} \li 1.0 \li \c{undefined} \li Specifies the target platform's processor architecture. \c{undefined} indicates that the target platform is architecture-independent (for example the CLR or JVM). This is typically set in a profile. Commonly used values are: \c{"x86"}, \c{"x86_64"} and \c{"arm"}. \row \li toolchain \li \c{stringList} \li 1.0 \li \c{undefined} \li Specifies the attributes of the toolchain that is going to be used for this build. Typical values include: \c{"gcc"}, \c{"llvm"}, \c{"clang"}, \c{"mingw"}, \c{"msvc"} \row \li sysroot \li \c{string} \li 1.0 \li \c{undefined} \li Specifies the sysroot of the target platform. This property is typically set in a profile for cross-compiling. \row \li pathListSeparator \li \c{string} \li 1.0 \li \c{";"} on Windows, \c{":"} on Unix \li Holds the platform-specific separator for path list that is used in environment variables or other contexts. \row \li nullDevice \li \c{string} \li 1.4.2 \li \c{"NUL"} on Windows, \c{"/dev/null"} on Unix \li Holds the platform-specific file path corresponding to the null device. \row \li shellPath \li \c{path} \li 1.5 \li \c{"%COMSPEC%"} on Windows, \c{"/bin/sh"} on Unix \li Holds the platform-specific file path corresponding to the command line interpreter. On Windows this is the path to \c{cmd.exe}, which is held in the \c{COMSPEC} environment variable - typically \c{C:/Windows/System32/cmd.exe}, and on Unix-like platforms this is \c{/bin/sh}. \endtable \section1 Environment Properties This section lists constant, read-only properties set by \QBS internally. These properties should not be overridden. \table \header \li Property \li Type \li Since \li Default \li Description \row \li hostOS \li \c{stringList} (read only) \li 1.0 \li \c{undefined} \li This property is set by \QBS internally and specifies the OS \QBS is running on. The possible values for this property are the values of \c targetOS, though some may not be supported. \row \li hostOSVersion \li \c{string} (read only) \li 1.2 \li \c{undefined} \li The host operating system version. Currently only defined for Windows and Apple platforms. Consists of two or three numbers separated by dots, for instance "10.9" or "6.3.9600". \row \li hostOSBuildVersion \li \c{string} (read only) \li 1.2 \li \c{undefined} \li The host operating system's build version. Currently only defined for Windows and Apple platforms. On Windows, this is the 4 or 5 digit Windows build number and is equivalent to \c versionPatch. On Apple platforms, this is a standard build number in the Apple versioning scheme, for instance "13C64". \row \li hostOSVersionMajor \li \c{int} (read only) \li 1.2 \li \c{hostOSVersionParts[0]} \li The host operating system major version. \row \li hostOSVersionMinor \li \c{int} (read only) \li 1.2 \li \c{hostOSVersionParts[1]} \li The host operating system minor version. \row \li hostOSVersionParts \li \c{list} (read only) \li 1.2 \li \c{empty} \li The host operating system version as a list. For instance, Windows 8.1 (version 6.3.9600) would correspond to a value of \c[6, 3, 9600]. \row \li hostOSVersionPatch \li \c{int} (read only) \li 1.2 \li \c{hostOSVersionParts[2]} \li The host operating system patch level. \row \li version \li \c{string} (read only) \li 1.4.1 \li \li Version number of \QBS as a string, i.e. "1.4.1". \row \li versionMajor \li \c{int} (read only) \li 1.4.1 \li \li Major version number of \QBS. \row \li versionMinor \li \c{int} (read only) \li 1.4.1 \li \li Minor version number of \QBS. \row \li versionPatch \li \c{int} (read only) \li 1.4.1 \li \li Patch version number of \QBS. \endtable \section1 Installation Properties This section lists properties specific to the \QBS installation mechanism. See \l{Installing Files} for more information. \table \header \li Property \li Type \li Since \li Default \li Description \row \li install \li \c{bool} \li 1.0 \li \c{false} \li Specifies whether to install a certain set of files. This is typically set in a \c{Group} item to mark a number of files as installable. \note Artifacts for which this property is enabled automatically receive the file tag "installable". This is useful for writing packaging-related rules. \row \li installSourceBase \li \c{string} \li 1.4 \li see below \li Specifies the base directory of the local files that are going to be installed. The source base directory is omitted from the target directory path specified in \c{installDir}. The default value of this property is the directory of the current file to be installed, relative to the product's source directory. \row \li installDir \li \c{string} \li 1.0 \li \c{undefined} \li Specifies the installation directory for the files of a product or a \c{Group}. The value of this property is a path that is relative to \c installPrefix. \row \li installPrefix \li \c{string} \li 1.1 \li \c{empty} \li Specifies the global installation prefix. It is implicitly prepended to all values of \c installDir. The \c installPrefix itself is relative to the \c installRoot in the context of installation. \row \li installRoot \li \c{string} \li 1.4 \li \c{/install-root} \li Specifies the global installation root. It is implicitly prepended to all values of \c installPrefix in the context of installation. \note This property is fundamentally different from \c installDir and \c installPrefix in that it must not be visible to the code being built. In fact, the install root is often just a temporary location used to package the binaries, which should therefore not assume they will be in that location at run-time. For the same reason, this property is usually not set from within project files. \endtable \section1 Multiplexing Properties This section lists properties specific to product multiplexing. \table \header \li Property \li Type \li Since \li Default \li Description \row \li architectures \li \c{stringList} \li 1.9 \li \c{["armv5te"]} on Android, same as Xcode on Apple platforms, otherwise equivalent to \c{[qbs.architecture]} \li Specifies the architectures the product will be built for. \row \li buildVariants \li \c{stringList} \li 1.9 \li equivalent to \c{[qbs.buildVariant]} \li Specifies the build variants the product will be built for. \row \li profiles \li \c{stringList} \li 1.9 \li \c{[product.profile]} \li The profiles for which the product should be built. For each profile listed here, one instance of the product will be built according to the properties set in the respective profile. This property is the same as \c{product.profiles}, which takes precedence. \endtable */ qbs-src-1.10.1/doc/reference/modules/qnx-module.qdoc000066400000000000000000000061771323434465400223030ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page qnx-module.html \ingroup list-of-modules \title Module qnx \since 1.8 \brief Provides support for building QNX applications using the QNX SDK. The \c qnx module contains properties and rules for QNX development. It has been tested with the QNX 6.5, 6.6, and 7.0 SDKs. \section1 General Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li sdkDir \li string \li 1.8 \li determined automatically \li The SDK base directory. By default it will be determined automatically if the QNX SDK is installed at one of the standard locations, such as ~/qnx700, /opt/qnx700, or C:\\qnx700 \row \li configurationDir \li string \li 1.8 \li \c{~/.qnx} \li The QNX configuration directory. Equivalent to the \c{QNX_CONFIGURATION} environment variable. \endtable \section1 Advanced Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li hostDir \li string \li 1.8 \li determined automatically \li The QNX host directory. Equivalent to the \c{QNX_HOST} environment variable. You should not normally need to set this property as it will be set to an appropriate value based on your host operating system and the installed QNX SDK in \c{qnx.sdkDir}. \row \li targetDir \li string \li 1.8 \li determined automatically \li The QNX target directory. Equivalent to the \c{QNX_TARGET} environment variable. You should not normally need to set this property as it will be set to an appropriate value based on the installed QNX SDK in \c{qnx.sdkDir}. \endtable */ qbs-src-1.10.1/doc/reference/modules/qt-modules.qdoc000066400000000000000000000551361323434465400223030ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page qt-modules.html \ingroup list-of-modules \title Qt Modules \brief Provide Qt support. The \c{Qt.*} modules contain properties and rules for Qt. \section1 Creating Dependencies to Qt Modules The Qt modules are special in that they are submodules within the \c Qt "namespace", which has ramifications on the syntax when expressing dependencies. Assume your product depends on the \c core and \c network modules. Then you could write: \code Depends { name: "Qt.core" } Depends { name: "Qt.network" } \endcode Or, alternatively: \code Depends { name: "Qt"; submodules: ["core", "network" } } \endcode \section1 List of Submodules \table \header \li Submodule Name \li Qt Module Name \li Notes \row \li axcontainer \li QAxContainer \li This module is only available on Windows. \row \li axserver \li QAxServer \li This module is only available on Windows. \row \li concurrent \li Qt Concurrent \li \row \li core \li Qt Core \li All other \c Qt modules have a dependency to this one, so you do not need to list it in your dependencies if you depend on at least one other \c Qt module. For more information on the properties you can specify, see \l{core Properties}. For more information on the relevant file tags, see \l {core File Tags}. \row \li dbus \li Qt D-Bus \li For more information on the properties you can specify, see \l{dbus Properties}. For more information on the relevant file tags, see \l {dbus File Tags}. \row \li declarative \li Qt Quick 1 \li Provides the \c{Qt Quick 1} module. For more information, see \l{declarative Properties}. \row \li designer \li Qt Designer \li \row \li enginio \li Qt Enginio \li \row \li gui \li Qt GUI \li For more information on the properties you can specify, see \l {gui Properties}. For more information on the relevant file tags, see \l {gui File Tags}. \row \li help \li Qt Help \li You do not need this module for building \c qdoc documentation, because that functionality is part of the \c core module. This module is for using Qt classes such as \c QHelpEngine. \row \li multimedia \li Qt Multimedia \li \row \li multimediawidgets \li Qt Multimedia Widgets \li \row \li network \li Qt Network \li \row \li opengl \li Qt OpenGL \li \row \li phonon \li Phonon (Qt 4 only) \li \row \li printsupport \li Qt Print Support \li \row \li quick \li Qt Quick (2) \li Provides the \c{Qt Quick} module (Qt Quick 2). For more information, see \l{quick Properties} and \l{quick File Tags}. \row \li qml \li Qt QML \li For more information on the properties you can specify, see \l{qml Properties}. For more information on the relevant file tags, see \l {qml File Tags}. \row \li script \li Qt Script \li \row \li scxml \li Qt Scxml \li For more information on the properties you can specify, see \l{scxml Properties}. For more information on the relevant file tags, see \l {scxml File Tags}. \row \li sql \li Qt SQL \li \row \li svg \li Qt SVG \li \row \li testlib \li Qt Test \li \row \li webkit \li Qt WebKit \li \row \li webkitwidgets \li Qt WebKit Widgets \li \row \li widgets \li Qt Widgets \li \row \li xml \li Qt XML \li You do not need this module for the \c QXmlStreamReader and \c QXmlStreamWriter classes, because those classes are a part of the \c core module. This module provides the deprecated DOM and SAX classes. \row \li xmlpatterns \li Qt XML Patterns \li \li \endtable \section1 Module Properties The following sections describe the properties of Qt modules that can be interesting to users. \section2 core Properties Some of the following properties only need to be defined if the respective installation of Qt was built in some unusual way, for instance by setting non-default \c configure flags. \table \header \li Property \li Type \li Default \li Description \row \li availableBuildVariants \li \c{stringList} \li set by \c{qbs-setup-qt} \li The build variants that this Qt installation offers. \row \li binPath \li \c{path} \li \c{undefined} \li The path in which Qt tools such as \c qmake, \c moc and so on are located. \row \li combineMocOutput \li \c{bool} \li \c{cpp.combineCxxSources} \li If this property is enabled, the C++ sources created by \c moc are combined into a single C++ file per product. For projects where many header files are to be handled by \c moc, this can speed up compilation considerably. However, side effects may occur as a result of merging translation units. \row \li config \li \c{stringList} \li \c{empty} \li Corresponds to the default value of qmake's \c CONFIG variable. \row \li docPath \li \c{path} \li \c{undefined} \li The path in which the Qt documentation is located. \row \li enableKeywords \li bool \li true \li Set this property to \c false if you do not want Qt to define the symbols \c {signals}, \c {slots}, and \c {emit}. This can be necessary if your project interacts with code that also defines such symbols. \row \li frameworkBuild \li \c{bool} \li \c{undefined} \li Specifies whether Qt was built as a framework. This is only relevant for Darwin systems. \row \li incPath \li \c{path} \li \c{undefined} \li The base path of the Qt headers. \row \li libInfix \li \c{string} \li \c{empty} \li The library infix can be set at Qt build time to change the name of Qt's libraries. For instance, if the infix is "Test", then on Unix systems, the \c{Qt Core} library will be in a file called \c{libQt5CoreTest.so} instead of the default \c{libQt5Core.so}. \row \li libPath \li \c{path} \li \c{undefined} \li The path in which the Qt libraries are located. \row \li lreleaseMultiplexMode \li \c{bool} \li \c{false} \li If this property is \c true, \c lrelease will merge all ts files into one qm file. Otherwise, one qm file will be created for every ts file. \row \li lreleaseName \li \c{string} \li \c{"lrelease"} \li The base name of the \c lrelease tool. Set this if your system uses a name such as "lrelease-qt4". \row \li mkspecPath \li \c{path} \li \c{undefined} \li The path in which the Qt mkspecs are located. \row \li mocFlags \li \c{stringList} \li empty \li Additional flags to \c moc. You will rarely need to set this property. \row \li mocName \li \c{string} \li \c{"moc"} \li The base name of the \c moc tool. Set this if your system uses a name such as "moc-qt4". \row \li namespace \li \c{string} \li \c{undefined} \li The Qt namespace that can be set at build time via the \c configure script. By default, Qt is not built in a namespace. \row \li pluginMetaData \li \c{stringList} \li empty \li Additional plugin meta data. The elements of the list are key-value pairs separated by the \c = character. A possible use case is to set the plugin URI when building a static QML plugin: \code Qt.core.pluginMetaData: ["uri=thePlugin"] \endcode \row \li pluginPath \li \c{path} \li \c{undefined} \li The path in which the Qt plugins are located. \row \li qdocEnvironment \li \c{stringlist} \li \c{undefined} \li The environment for calls to \c qdoc. Typically, you will need to set some variables here when running \c qdoc to build your project documentation. \row \li qdocName \li \c{string} \li \c{"qdoc3"} for Qt 4, \c{"qdoc"} otherwise \li The base name of the \c qdoc tool. \row \li qmBaseName \li \c{string} \li \c{product.targetName} \li The base name of the qm file to be built from the ts files in the product. This property is ignored if \c lreleaseMultiplexMode is \c false. \row \li qtBuildVariant \li \c{string} \li See below. \li Specifies the type of Qt libraries to build against: "debug" or "release". The default value is the build variant of the code linking against Qt. If Qt does not offer that build variant, the build variant offered by Qt is chosen instead. \note On some systems, it is not possible to link code built in debug mode against libraries built in release mode and vice versa. \row \li qtConfig \li \c{stringList} \li \c{empty} \li Corresponds to the default value of qmake's \c QT_CONFIG variable. \row \li resourceSourceBase \li \c{path} \li \c{undefined} \li For files tagged as \c{qt.core.resource_data}, this property determines which part of their path will end up in the generated \c qrc file. If this property is set to \c undefined, only the file name is used. \row \li resourcePrefix \li \c{string} \li \c{"/"} \li For files tagged as \c{qt.core.resource_data}, this property determines the prefix under which they will be available in the generated \c qrc file. \row \li resourceFileBaseName \li \c{string} \li \c{product.targetName} \li For files tagged as \c{qt.core.resource_data}, this property determines the base name of the generated \c qrc file. If this property needs to be changed, it must be set in the corresponding product rather than in a Group. \row \li staticBuild \li \c{bool} \li \c{undefined} \li Specifies whether Qt was built statically. \row \li version \li \c{string} \li \c{undefined} \li The Qt version. Consists of three numbers separated by dots, for instance "5.1.1". \row \li versionMajor \li \c{int} \li \c{versionParts[0]} \li The Qt major version. \row \li versionMinor \li \c{int} \li \c{versionParts[1]} \li The Qt minor version. \row \li versionParts \li \c{list} \li \c{empty} \li The Qt version as a list. For instance, Qt version 5.1.1 would correspond to a value of \c[5, 1, 1]. \row \li versionPatch \li \c{int} \li \c{versionParts[2]} \li The Qt patch level. \endtable \section2 dbus Properties \table \header \li Property \li Type \li Default \li Description \row \li xml2cppName \li \c{string} \li \c{"qdbusxml2cpp"} \li The base name of the \c qdbusxml2cpp tool. Set this if your system uses a different name. \row \li xml2CppHeaderFlags \li \c{stringList} \li empty list \li Additional flags when running the \c qdbusxml2cpp tool to create header files. \row \li xml2CppSourceFlags \li \c{stringList} \li empty list \li Additional flags when running the \c qdbusxml2cpp tool to create source files. \endtable \section2 declarative Properties \table \header \li Property \li Type \li Default \li Description \row \li qmlDebugging \li \c{bool} \li \c{false} \li Specifies whether QML debugging support should be compiled into your binaries. \row \li qmlImportsPath \li \c{string} \li set by \c{qbs-setup-qt} \li The absolute path to the directory where Qt's QML imports are installed. \row \li qmlPath \li \c{string} \li set by \c{qbs-setup-qt} \li The absolute path to the directory where Qt's QML files are installed. This property is undefined for Qt4. \endtable \section2 gui Properties \table \header \li Property \li Type \li Default \li Description \row \li uicName \li \c{string} \li \c{"uic"} \li The base name of the \c uic tool. Set this if your system uses a name such as "uic-qt4". \endtable \section2 quick Properties \table \header \li Property \li Type \li Default \li Description \row \li compilerAvailable \li \c{bool} \li set by \c{qbs-setup-qt} \li Specifies whether the Qt installation contains the Qt Quick compiler. \row \li qmlDebugging \li \c{bool} \li \c{false} \li Specifies whether QML debugging support should be compiled into your binaries. \row \li qmlImportsPath \li \c{string} \li set by \c{qbs-setup-qt} \li The absolute path to the directory where Qt's QML imports are installed. \row \li qmlPath \li \c{string} \li set by \c{qbs-setup-qt} \li The absolute path to the directory where Qt's QML files are installed. This property is undefined for Qt4. \endtable \section2 qml Properties \table \header \li Property \li Type \li Default \li Description \row \li qmlImportScannerName \li \c{string} \li \c{"qmlimportscanner"} \li The base name of the QML import scanner. Set this if your system uses a different name. \row \li qmlPath \li \c{string} \li set by \c{qbs-setup-qt} \li The absolute path to the directory where Qt's QML files are installed. \endtable The following properties control the generation of QML cache files. \table \header \li Property \li Type \li Default \li Description \row \li generateCacheFiles \li \c{bool} \li \c{false} \li Enables the generation of QML cache files. \row \li cachingEnabled \li \c{readonly bool} \li \c{false} \li Is true if \c{generateCacheFiles} is \c{true} and the platform supports QML cache generation. \row \li qmlCacheGenPath \li \c{string} \li set by \c{qbs-setup-qt} \li The absolute path to the qmlcachegen executable. \row \li cacheFilesInstallDir \li \c{string} \li \c{undefined} \li The path to the directory where the cache files are installed. If this property is set then QML cache files are automatically installed. \endtable \note If the current value of qbs.architecture is not supported by qmlcachegen then the cache generator rule is disabled. \section2 scxml Properties \table \header \li Property \li Type \li Default \li Description \row \li className \li \c{string} \li \c undefined \li The class name of the generated state machine. By default, the compiler will use the \c name attribute of the input file's \c{} tag. \row \li namespace \li \c{string} \li \c undefined \li The C++ namespace in which to put the generated class. By default, the compiler will place the class in the global namespace. \row \li qscxmlcName \li \c{string} \li \c{"qscxmlc"} \li The base name of the Qt SCXML compiler. Set this if your system uses a different name. \endtable \section1 Relevant File Tags The following sections describe the file tags that are relevant for the Qt modules. \section2 core File Tags \table \header \li Tag \li Auto-tagged File Names \li Since \li Description \row \li \c{"qch"} \li n/a \li 1.1 \li This tag is attached to the output artifacts of the rule that runs the \c qhelpgenerator tool. \row \li \c{"qdoc"} \li \c{*.qdoc} \li 1.1 \li Source files with this tag trigger a re-execution of the rule running the \c qdoc tool when their timestamp changes. \row \li \c{"qdocconf"} \li \c{*.qdocconf} \li 1.1 \li Source files with this tag trigger a re-execution of the rule running the \c qdoc tool when their timestamp changes. \row \li \c{"qdocconf-main"} \li - \li 1.1 \li Source files with this tag serve as inputs to the rule running the \c qdoc tool. \row \li \c{"qdoc-output"} \li n/a \li 1.5 \li Use this tag to match all \c qdoc outputs, for instance in a \l{Group Item}{Group} using the \c fileTagsFilter property. \row \li \c{"qhp"} \li \c{*.qhp} \li 1.1 \li Files with this tag serve as inputs to the rule running the \c qhelpgenerator tool. Such files are created by \c qdoc, but can also appear as source files. \row \li \c{"qm"} \li n/a \li 1.1 \li This tag is attached to the output artifacts of the rule that runs the \c lrelease tool. \row \li \c{"qrc"} \li \c{*.qrc} \li 1.0 \li Files with this tag serve as inputs to the rule running the \c rcc tool. \row \li \c{"qt_plugin_metadata"} \li - \li 1.0 \li Source files with this tag trigger a re-execution of the rule running the \c moc tool when their timestamp changes. \row \li \c{"qt.core.resource_data"} \li - \li 1.7 \li Source files with this tag serve as inputs to the rule creating \c qrc files. \row \li \c{"ts"} \li \c{*.ts} \li 1.0 \li Files with this tag serve as inputs to the rule running the \c lrelease tool. \endtable \section2 dbus File Tags \table \header \li Tag \li Auto-tagged File Names \li Since \li Description \row \li \c{"qt.dbus.adaptor"} \li - \li 1.5 \li Source files with this tag serve as inputs to the rule running the \c qdbusxml2cpp tool, which will create an adaptor class. \row \li \c{"qt.dbus.interface"} \li - \li 1.5 \li Source files with this tag serve as inputs to the rule running the \c qdbusxml2cpp tool, which will create an interface class. \endtable \section2 gui File Tags \table \header \li Tag \li Auto-tagged File Names \li Since \li Description \row \li \c{"ui"} \li \c{*.ui} \li 1.0 \li Source files with this tag serve as inputs to the rule running the \c uic tool. \endtable \section2 qml File Tags \table \header \li Tag \li Auto-tagged File Names \li Since \li Description \row \li \c{"qt.qml.js"} \li \c{*.js} \li 1.10 \li QML companion JavaScript files. Source files with this tag serve as input for the QML cache file generator. \row \li \c{"qt.qml.qml"} \li \c{*.qml} \li 1.8 \li Source files with this tag serve as inputs to the QML plugin scanner. \endtable \section2 quick File Tags \table \header \li Tag \li Auto-tagged File Names \li Since \li Description \row \li \c{"qt.quick.qrc"} \li \c{*.qrc} \li 1.10 \li Qt resource files with this file tag will be picked up by the Qt Quick compiler rule, and all QML files in the resource will be compiled. This file tag will only be added automatically if the Qt Quick compiler is available. \endtable \section2 scxml File Tags \table \header \li Tag \li Auto-tagged File Names \li Since \li Description \row \li \c{"qt.scxml.compilable"} \li - \li 1.7 \li Source files with this tag serve as inputs to the rule running the Qt SCXML compiler, which will create a C++ class representing a state machine. \endtable */ qbs-src-1.10.1/doc/reference/modules/typescript-module.qdoc000066400000000000000000000132301323434465400236670ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page typescript-module.html \ingroup list-of-modules \title Module typescript \since 1.3 \brief Provides TypeScript support. The \c typescript module contains properties and rules for building \l{http://www.typescriptlang.org}{TypeScript} applications and may be used in combination with the \l {Module nodejs} {nodejs} module to run TypeScript applications directly from \QBS. \section1 General Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li warningLevel \li \c{string} \li 1.3 \li \c{"normal"} \li Severity of warnings to emit. The higher the level, the more warnings will be shown. \c{pedantic} causes the TypeScript to emit warnings on expressions and declarations with an implied 'any' type. \row \li targetVersion \li \c{string} \li 1.3 \li \c{undefined} \li ECMAScript target version for generated JavaScript code. \c{undefined} uses the TypeScript \l{https://github.com/Microsoft/TypeScript/wiki/Compiler-Options}{compiler default}. \row \li moduleLoader \li \c{string} \li 1.3 \li \c{undefined} \li If TypeScript modules are being used, the JavaScript module loading mechanism to use in the generated JavaScript code. \c{undefined} indicates modules are not being used. See \l{https://github.com/Microsoft/TypeScript/wiki/Compiler-Options}{Compiler Options} for a list of possible values. \row \li stripComments \li \c{bool} \li 1.3 \li \c{!qbs.debugInformation} \li Whether to remove comments from the generated JavaScript files. \row \li generateDeclarations \li \c{bool} \li 1.3 \li \c{false} \li Whether to generate corresponding .d.ts files during compilation; these are TypeScript's equivalent of header files. \row \li generateSourceMaps \li \c{bool} \li 1.3 \li \c{qbs.debugInformation} \li Whether to generate corresponding .map files during compilation. \row \li compilerFlags \li \c{stringList} \li 1.3 \li \c{undefined} \li Additional flags for the TypeScript compiler. \row \li singleFile \li \c{bool} \li 1.3 \li \c{false} \li Whether to compile all TypeScript source files to a single JavaScript output file. The default is to compile each TypeScript file to a corresponding JavaScript file. This property is incompatible with \c{moduleLoader}. \row \li version \li \c{string} \li 1.3 \li \c{undefined} \li The TypeScript version. Consists of four numbers separated by dots, for instance "1.0.0.0". \row \li versionMajor \li \c{int} \li 1.3 \li \c{versionParts[0]} \li The TypeScript major version. \row \li versionMinor \li \c{int} \li 1.3 \li \c{versionParts[1]} \li The TypeScript minor version. \row \li versionParts \li \c{list} \li 1.3 \li \c{empty} \li The TypeScript version as a list. For instance, TypeScript version 1.0 would correspond to a value of \c[1, 0, 0, 0]. \row \li versionPatch \li \c{int} \li 1.3 \li \c{versionParts[2]} \li The TypeScript patch level. \row \li versionBuild \li \c{int} \li 1.3 \li \c{versionParts[3]} \li The fourth TypeScript version number component. \row \li toolchainInstallPath \li \c{path} \li 1.3 \li \c{undefined} \li TypeScript installation directory. This should not normally need to be changed provided that \c{tsc} is already available by searching the PATH environment variable. \row \li compilerName \li \c{string} \li 1.3 \li \c{"tsc"} \li Name of the compiler binary. This should not normally need to be changed. \row \li compilerPath \li \c{string} \li 1.3 \li \c{compilerName} \li Directory where the compiler binary is located. This should not normally need to be changed. \endtable */ qbs-src-1.10.1/doc/reference/modules/vcs-module.qdoc000066400000000000000000000070671323434465400222670ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page vcs-module.html \ingroup list-of-modules \title Module vcs \since 1.10 \brief Provides support for version control systems The \c vcs module provides the current state of the project's repository via the \c repoState property. By default, a \c C header is also generated, allowing for simple retrieval of the repository state directly from within your C/C++ sources. This is useful to embed information into binaries about the exact state of the repository from which they were built. For instance: \code #include #include int main() { std::cout << "I was built from " << VCS_REPO_STATE << std::endl; } \endcode As you can see in the above code, a header file called \c{vcs-repo-state.h} is created, defining a macro called \c VCS_REPO_STATE which expands to a character constant describing the current state of the repository. For Git, this would be the current HEAD's commit hash. \section1 Module Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li headerFileName \li string \li 1.10 \li \c{"vcs-repo-state.h"} \li The name of the C header file to be created. Set this to \c undefined if you do not want a header file to be generated. \row \li repoDir \li string \li 1.10 \li the top-level project directory (\c{project.sourceDirectory}) \li The root directory of the repository. \row \li repoState \li string \li 1.10 \li - \li The current state of the repository. For instance, in Git this is the commit hash of the current HEAD. \row \li toolFilePath \li string \li 1.10 \li the file name of the version control tool corresponding to \c type \li Set this if the tool has an unusual name in your local installation, or if it is located in a directory that is not in the build environment's \c PATH. \row \li type \li \c{string} \li 1.10 \li auto-detected \li The version control system used in the project. Currently, the supported values are \c{"git"} and \c{"svn"}. \endtable */ qbs-src-1.10.1/doc/reference/modules/wix-module.qdoc000066400000000000000000000214161323434465400222750ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page wix-module.html \ingroup list-of-modules \title Module wix \since 1.2 \brief Provides Windows Installer XML Toolset support. The \c wix module contains properties and rules for building MSI and EXE setup packages with the \l{http://wixtoolset.org}{Windows Installer XML Toolset}. This module is available on all platforms. \section1 General Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li debugInformation \li \c{bool} \li 1.2 \li \c{qbs.debugInformation} \li Generate debug information. See \c{qbs.debugInformation}. \row \li defines \li \c{stringList} \li 1.2 \li \c{undefined} \li List of preprocessor macros that get passed to the compiler. To set macro values use the following syntax: \c{wix.defines: ["USE_COLORS=1", 'COLOR_STR="blanched almond"']} \row \li enableQbsDefines \li \c{bool} \li 1.2 \li \c{true} \li Whether to define preprocessor macros corresponding to values from the project and product objects. When building a 64-bit package, the preprocessor variable \c{Win64} will also be defined. \row \li visualStudioCompatibility \li \c{bool} \li 1.2 \li \c{true} \li Passes most of the same preprocessor macros to the compiler as Visual Studio does. This allows easier authoring WiX files that are compatible with both \QBS and MSBuild. \row \li includePaths \li \c{pathList} \li 1.2 \li \c{undefined} \li List of include paths. Relative paths are considered to be relative to the .qbs product file they are used in. \row \li treatWarningsAsErrors \li \c{bool} \li 1.2 \li \c{false} \li Warnings will be handled as errors and cause the build to fail. \row \li warningLevel \li \c{string} \li 1.2 \li \c{"normal"} \li Severity of warnings to emit. The higher the level, the more warnings will be shown. Possible values include: \c{"none"}, \c{"normal"}, \c{"pedantic"} \row \li verboseOutput \li \c{bool} \li 1.2 \li \c{false} \li Whether to display verbose output from the compiler and linker. \row \li compilerFlags \li \c{stringList} \li 1.2 \li \c{undefined} \li Additional flags for the Candle compiler. \row \li linkerFlags \li \c{stringList} \li 1.2 \li \c{undefined} \li Additional flags for the Light linker. \row \li cultures \li \c{stringList} \li 1.2 \li \c{undefined} \li List of localizations to include in the MSI. Use \c{undefined} to include all localizations. \row \li extensions \li \c{stringList} \li 1.2 \li \c{["WixBalExtension"]} if the product type is an EXE setup application, otherwise \c{undefined}. \li List of extension assemblies to link into the output. Possible values include: \c{"WixBalExtension"}, \c{"WixComPlusExtension"}, \c{"WixDependencyExtension"}, \c{"WixDifxAppExtension"}, \c{"WixDirectXExtension"}, \c{"WixFirewallExtension"}, \c{"WixGamingExtension"}, \c{"WixIisExtension"}, \c{"WixMsmqExtension"}, \c{"WixNetFxExtension"}, \c{"WixPSExtension"}, \c{"WixSqlExtension"}, \c{"WixTagExtension"}, \c{"WixUIExtension"}, \c{"WixUtilExtension"}, \c{"WixVSExtension"}, custom assemblies \row \li version \li \c{string} \li 1.2 \li \c{undefined} \li The WiX version. Consists of four numbers separated by dots, for instance "3.7.1224.0". \row \li versionMajor \li \c{int} \li 1.2 \li \c{versionParts[0]} \li The WiX major version. \row \li versionMinor \li \c{int} \li 1.2 \li \c{versionParts[1]} \li The WiX minor version. \row \li versionParts \li \c{list} \li 1.2 \li \c{empty} \li The WiX version as a list. For instance, WiX version 3.7.1224.0 would correspond to a value of \c[3, 7, 1224, 0]. \row \li versionPatch \li \c{int} \li 1.2 \li \c{versionParts[2]} \li The WiX patch level. \row \li versionBuild \li \c{int} \li 1.2 \li \c{versionParts[3]} \li The fourth WiX version number component. \row \li toolchainInstallPath \li \c{path} \li 1.2 \li determined automatically \li WiX installation directory. Determined by searching the registry for the latest version. This should not normally need to be changed. \row \li toolchainInstallRoot \li \c{path} \li 1.2 \li determined automatically \li WiX binaries directory. Determined by searching the registry for the latest version. This should not normally need to be changed. \row \li compilerName \li \c{string} \li 1.2 \li \c{"candle.exe"} \li Name of the compiler binary. This should not normally need to be changed. \row \li compilerPath \li \c{string} \li 1.2 \li \c{compilerName} \li Directory where the compiler binary is located. This should not normally need to be changed. \row \li linkerName \li \c{string} \li 1.2 \li \c{"light.exe"} \li Name of the linker binary. This should not normally need to be changed. \row \li linkerPath \li \c{string} \li 1.2 \li \c{linkerName} \li Directory where the linker binary is located. This should not normally need to be changed. \endtable \section1 Relevant File Tags \table \header \li Tag \li Auto-tagged File Names \li Since \li Description \row \li \c{"msi"} \li - \li 1.2 \li The rule that creates the Microsoft Installer setup file attaches this tag to its output artifact. \row \li \c{"wixpdb"} \li - \li 1.2 \li The rule that creates the Microsoft Installer setup file or WiX setup executable attaches this tag to the associated debug symbol file. \row \li \c{"wixsetup"} \li - \li 1.2 \li The rule that creates the WiX setup executable attaches this tag to its output artifact. \row \li \c{"wxi"} \li \c{*.wxi} \li 1.2 \li This tag is attached to WiX include files. \row \li \c{"wxl"} \li \c{*.wxl} \li 1.2 \li This tag is attached to WiX localization files. \row \li \c{"wxs"} \li \c{*.wxs} \li 1.2 \li This tag is attached to WiX source files. Each source file will be compiled into one WiX object file. \row \li \c{"wix.input"} \li - \li 1.10 \li The rule that creates the Microsoft Installer setup file or WiX setup executable will be dependent on artifacts with this tag. \endtable */ qbs-src-1.10.1/doc/reference/modules/xcode-module.qdoc000066400000000000000000000120721323434465400225660ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Copyright (C) 2015 Jake Petroules. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page xcode-module.html \ingroup list-of-modules \title Module xcode \since 1.5 \brief Provides Xcode support. The \c xcode module contains properties and rules for Xcode-based development. This module provides the foundation for several other modules on Apple platforms, including the \c cpp and \c ib modules. \section1 General Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li developerPath \li path \li 1.5 \li \c{"/Applications/Xcode.app/Contents/Developer"} \li Developer directory of the Xcode installation. By default this is set to the developer directory of the Xcode installation at its default location in /Applications. Corresponds to the \c DEVELOPER_DIR environment variable. \row \li sdk \li string \li 1.5 \li determined by \c{qbs.targetOS} \li Version of the Xcode SDK used to build products. This can be specified as a full canonical SDK name (i.e. \c{"macosx10.10"}), a platform version number (i.e. \c{"10.10"}), or a platform identifier (i.e. \c{"macosx"}) in which case the latest SDK available for that platform will be used. The default is the latest SDK available in the Xcode installation for the current platform. \row \li targetDevices \li stringList \li 1.5 \li determined by \c{qbs.targetOS} \li List of the Apple devices targeted by this product. For macOS, watchOS, and tvOS, this should always be "mac", "watch", and "tv", respectively. For iOS, this can be one or both of "iphone" and "ipad". The default is the list of all device types supported by the current platform. \endtable \section1 Read-only Properties \table \header \li Property \li Type \li Since \li Default \li Description \row \li sdkName \li string \li 1.5 \li determined by \c{xcode.sdk} \li Canonical name of the SDK used to build products. For example, macosx10.9. \row \li sdkVersion \li string \li 1.5 \li determined by \c{xcode.sdk} \li Version number of the SDK used to build products. For example, 10.9. \row \li latestSdkName \li string \li 1.5 \li determined by \c{xcode.developerPath} \li Canonical name of the latest SDK available in the Xcode installation. For example, macosx10.10. \row \li latestSdkVersion \li string \li 1.5 \li determined by \c{xcode.developerPath} \li Version number of the latest SDK available in the Xcode installation. For example, 10.10. \row \li availableSdkNames \li stringList \li 1.5 \li determined by \c{xcode.developerPath} \li Canonical names of all SDKs available in the Xcode installation for the current platform. For example, [macosx10.9, macosx10.10]. \row \li availableSdkVersions \li stringList \li 1.5 \li determined by \c{xcode.developerPath} \li Version numbers of all SDK available in the Xcode installation for the current platform. For example, [10.9, 10.10]. \row \li platformPath \li path \li 1.5 \li determined by \c{xcode.developerPath} \li Path of the platform directory containing \c{xcode.sdkPath}. \row \li sdkPath \li path \li 1.5 \li determined by \c{xcode.developerPath} and \c{xcode.sdk} \li Path of the SDK used to build products. Equivalent to \c{cpp.sysroot}. \endtable */ qbs-src-1.10.1/doc/reference/reference.qdoc000066400000000000000000000062021323434465400204650ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \previouspage howtos.html \page reference.html \nextpage building-qbs.html \title Reference \list \li \l{List of All Items} \list \li \l{List of Language Items} \li \l{List of Convenience Items} \endlist \li \l{List of Built-in Services} \li \l{Command-Line Interface} \li \l{List of Modules} \li \l{Command and JavaScriptCommand} \endlist */ /*! \contentspage reference.html \group list-of-builtin-services \title List of Built-in Services \QBS provides the following built-in JavaScript extensions to simplify operations that are expected to be needed often in project files. To gain access to the operations provided by a particular Service - for example, the File service - use the following statement at the top of your \QBS project file: \code import qbs.File \endcode If you instead need to access the service from a JavaScript file, import it using the following statement at the top of your JavaScript file: \code var File = require("qbs.File"); \endcode */ /*! \contentspage reference.html \group list-of-modules \title List of Modules These are the modules shipped with \QBS. */ /*! \contentspage reference.html \group list-of-items \title List of All Items \QBS provides the following \l{List of Language Items}{built-in} and \l{List of Convenience Items}{convenience} items to define projects. */ /*! \contentspage reference.html \group list-of-language-items \title List of Language Items \QBS provides the following built-in QML items to define projects. These are the primitives upon which all other \QBS items are built. */ /*! \contentspage reference.html \group list-of-convenience-items \title List of Convenience Items \QBS provides the following QML items for convenience. */ qbs-src-1.10.1/doc/templates/000077500000000000000000000000001323434465400157175ustar00rootroot00000000000000qbs-src-1.10.1/doc/templates/images/000077500000000000000000000000001323434465400171645ustar00rootroot00000000000000qbs-src-1.10.1/doc/templates/images/arrow.png000066400000000000000000000020571323434465400210300ustar00rootroot00000000000000PNG  IHDR,otEXtSoftwareAdobe ImageReadyqe<$iTXtXML:com.adobe.xmp HIDATxb?PL C :x3`(UtA@1?b@l ˁb(8JJ bRJ>V) .ⳃlPz#9x'؁vp;g[rh~ur0@o!nIENDB`qbs-src-1.10.1/doc/templates/images/arrow_down.png000066400000000000000000000002611323434465400220520ustar00rootroot00000000000000PNG  IHDR ?tEXtSoftwareAdobe ImageReadyqe<SIDATxb9s9s037oaIII1Yf̀ˁ8ahӧOi Xt  MU7IENDB`qbs-src-1.10.1/doc/templates/images/bg_l.png000066400000000000000000000001441323434465400205740ustar00rootroot00000000000000PNG  IHDRx+IDAT(cxɣG M2Eoh#? hIENDB`qbs-src-1.10.1/doc/templates/images/bgrContent.png000066400000000000000000000002251323434465400217760ustar00rootroot00000000000000PNG  IHDR tEXtSoftwareAdobe ImageReadyqe<7IDATxb|" `TQU1Ǐ"L~H*0. 0(IENDB`qbs-src-1.10.1/doc/templates/images/blu_dot.png000066400000000000000000000002501323434465400213170ustar00rootroot00000000000000PNG  IHDRRWtEXtSoftwareAdobe ImageReadyqe<JIDATxbdn /}cJ4@DAP ( eL@tF|0/%W"/IENDB`qbs-src-1.10.1/doc/templates/images/box_bg.png000066400000000000000000000001311323434465400211250ustar00rootroot00000000000000PNG  IHDRrcf IDAT QJ6mHB|F~oYIENDB`qbs-src-1.10.1/doc/templates/images/breadcrumb.png000066400000000000000000000002061323434465400217760ustar00rootroot00000000000000PNG  IHDROMIDATm1 0 SyWYML>eBZ$!UX@"~q}vzf&"3{u9SYYIENDB`qbs-src-1.10.1/doc/templates/images/btn_next.png000066400000000000000000000012611323434465400215130ustar00rootroot00000000000000PNG  IHDRa pHYs  tEXtSoftwareAdobe ImageReadyqe<>IDATx|SMLA~;ݟn[bSb#?ěIʏ%1'=INzՓg#ы6$#AzI$$PRcfvlwІm6˼y}ol/|hޫNhm0t{)OQgubYQ vjmrγ@)XרJ >Q@fqzـ mE-G!>h;%) |[`wG k&>g~XcO""N]L{& |X]wZ 3>Ml&ࠪV+gacTfG5s$T&\ /9+=W9<Zr3\5 WIVk~Fylw\y jۂ(ubM2nF A;yڈ GV($nONn5Q_O\#IE e[ۡ0z>$F)]4 WNf<ɸ@(\egz:3P%')w?/L976yGG4@]}eU_\ +4YIENDB`qbs-src-1.10.1/doc/templates/images/btn_prev.png000066400000000000000000000012441323434465400215120ustar00rootroot00000000000000PNG  IHDRa pHYs  tEXtSoftwareAdobe ImageReadyqe<1IDATx|SkA~;&kikl_T7HJ*AT'Ez,^Z/9E(#M"٬;]Mm>ؙ7o!Ưgmh'lp'-HS>ECDQKPLhlNJm J@K*Yf-pG[plgе3SVbGo jSO>H" Axxҩn_ur+qϥ<Ɔ9hJWD[#DO̵&ƝEXЙӠf[<լKmv895mMOF˟>%oc–~k0}wf@䒈5'Q_Wx-T 6`kG\l}c0#u$9Xbth_un9ڣK_ >ױVMC:1-Q"Ågʡ)w~ ^R^,ɮ(+:[.klȃdߥway 0IENDB`qbs-src-1.10.1/doc/templates/images/bullet_dn.png000066400000000000000000000003461323434465400216450ustar00rootroot00000000000000PNG  IHDR5tEXtSoftwareAdobe ImageReadyqe<IDATxb?.QX?zĀ>H !k +L?HqN221'#??3gU;,bхAT(IENDB`qbs-src-1.10.1/doc/templates/images/bullet_gt.png000066400000000000000000000001741323434465400216550ustar00rootroot00000000000000PNG  IHDROCIDATcm@Ï[ry:]65+T&G3=Iv-IENDB`qbs-src-1.10.1/doc/templates/images/bullet_sq.png000066400000000000000000000001121323434465400216560ustar00rootroot00000000000000PNG  IHDRoxIDATcpY*h+2$IENDB`qbs-src-1.10.1/doc/templates/images/bullet_up.png000066400000000000000000000003221323434465400216620ustar00rootroot00000000000000PNG  IHDR4tEXtSoftwareAdobe ImageReadyqe<3PLTEՔ՗ԓڧԔӑ֡ҍӦԓڢ׼߮ךF#D5IDATx\IEц",&>]md ֆwޏPU+vIENDB`qbs-src-1.10.1/doc/templates/images/feedbackground.png000066400000000000000000000004071323434465400226360ustar00rootroot00000000000000PNG  IHDRddpTtEXtSoftwareAdobe ImageReadyqe<IDATx 0!k"oekGOk " @" @" @" @" @" @" @" @" @" @" @z#A֜IENDB`qbs-src-1.10.1/doc/templates/images/header.png000066400000000000000000000072701323434465400211300ustar00rootroot00000000000000PNG  IHDR.~q7sRGBbKGD pHYs  tIME5<8IDATxy|TǿL2@%a DYE[ @Z~dTFP@C d_!}L2Knfdgs>szf1+Πh.C՟̉Y>q8 y5N2T5S"#.pscsq6<a2CI&x"b\ESu:Fm& D,_S_פVWi(9jEveώћ̷ބ .#~zk|6|# %KWu#-Ì' Wc70&dOzUl~^5Ǩ䜏i(mRdgTɲUL|o5"k]O4{M&MRbwZv^܄ԏdž,ry0,i{5,@VŶ7cϙ1rw x?OK]$7ֵ4M칺&Ժ;^g# B*`DX6LyWKN@^êo ;.lIty(Eq ԥ`_ Ӣr j[*I+iQsLNC z);F&LbbO}vϻԟϳ$T^P$Ӷi8NjQT  O?].dA.VDK'ޑO=ԿiXwktj%*MRb1Y"{l-5yId*i4R%Eb_I+=DiC-fc_3y,y]]2IoR\ԗ!SXn6KosuH4%#KP6¥:dMe}8#_&(,v.gYckĬ:W~BHH?la9\gSLmAzٱ( Ruɫk%dWnRLj~&nǍ=_)muYeqxdVZ\Ϋ?.(]ZK"LE:s?升Aw6ۃTp)#e%=4e 5& i9<~S}+[ɪ:ogJq2*N&q ҞQ]/׷֐Vzs7RȾ.V.uSc/?Ŗ%۴L: 6`dkpA^A{S^2\ؾVu)%]z d%fŸ76 'Ooi(12h<}e6ej !Ej.ٵeS\΋X*umZ֟zVx"xùXG7saJvr{b6ۋ>CԬ?KiM/FBw$e ۱:U V&iQshT׳oTSӢ`u$"w~7/LMgVr4-:\z?N!\2ԩJ7~EvuV>.n,]XjvAQ-fArw_uF_j%RYUMZR-ȏ~mKѵZʉsE9T*h4ѵeף2+յVl/ @xKlXv;KR8c{Dr"8ZO5~|a*k,"@[3ժ*YBണ I#K b&[&7Q 15ڣ"Ѵq~{qp&WKn͉c(QP\KUTqf)oCG~ʳM_UYEAƟ"D>pss9yE\ZR^:~J9OC_U71ղ6q[rp&W $$fly B;%;́>z8.'og\T|=i6ؓr2W )CzE0 a3pYaʙ @xYzrp&WD>}UHnnt,p]Y $r&E4ۨMcf΂l%m?=,?`ɭdq;ޡkuAzp=%rvȮ``?qأwbsid;`o!&l#aOjw[x,M#V7O4ki4VzU)ࢸ0j`^v ek-orh͖$-MeudU}k'YeyzG~ϼL~mj]+-Zy5ٕ>bu ._OJZJM\'Dfu~sѩ,+!}F29bS_]BglݳkV&l2ZGQsĭR\MC2g^60L=uM7Pi9IW:,\=ə\w ڴt7F4Lx)./6JކwemcDž7-%sXw|IS go?79DzլK]l_gET4]7lO;mƵdB wawH z+ YZEVkr0 N.3s).{Ϟlv3yl)υe[N˫)Qy.c|t L;߭v%FNdoU ܽ491Kȑ~1lG(ϡIӀؓ0h'v7.!2}IW]JD<3ċ.3[b >upJy4kN0G9h}DBTfYB@=zFcKd w&0or}y{>WӬi +iQsX0b*M%{p7حPo>ev\pavAk;1\pzfG\) TmTR^߆]e\p[K vVzºԷVmӸ .pG_r_IENDB`qbs-src-1.10.1/doc/templates/images/header_bg.png000066400000000000000000000001621323434465400215710ustar00rootroot00000000000000PNG  IHDRݿtEXtSoftwareAdobe ImageReadyqe<IDATxbs6###IENDB`qbs-src-1.10.1/doc/templates/images/home.png000066400000000000000000000020641323434465400206240ustar00rootroot00000000000000PNG  IHDR>tEXtSoftwareAdobe ImageReadyqe<$iTXtXML:com.adobe.xmp :*PLTEsssssssssssssssssssssssssssssssssssssssO tRNS 0@P`pU!jWIDATc`*a޽S{´{.ɸ g1Xlwȴ03000oEY 3]\X\\͛F78IENDB`qbs-src-1.10.1/doc/templates/images/horBar.png000066400000000000000000000053671323434465400211220ustar00rootroot00000000000000PNG  IHDR⢎ pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_F"IDATx% j9MIENDB`qbs-src-1.10.1/doc/templates/images/ico_note.png000066400000000000000000000012111323434465400214640ustar00rootroot00000000000000PNG  IHDRk?tEXtSoftwareAdobe ImageReadyqe<+IDATxb`F\Ox vb$ @|fͺ@5  xû7_~301p3p3Ij@P_Z&pKe G,uD=# *oȋ)308/(r j,7Z&D?{RvfcqǐGg"ҷ ?qx^u~!9k{Yel-AD14xA>G&v*$@ @ @T  ȗ8U*-h\*Aq_ hU>HMl  :lIENDB`qbs-src-1.10.1/doc/templates/images/ico_note_attention.png000066400000000000000000000010211323434465400235500ustar00rootroot00000000000000PNG  IHDRk?tEXtSoftwareAdobe ImageReadyqe<IDATxb`䴧+Jv@ f1в} A}Chn1e >a`kPP?Y,d?5Xϫ *P*goE-&1H:gQ`oAA]OuA)ط`C>VnY<>b T[d:E4{%P}௏X}gbԷ(!_>DoaA ϋ`}ً(5X1V߂(Jl``נorbF-bĝj/b}˷ l Ç oi2z]i1u0/ S%@+@xP 8CIENDB`qbs-src-1.10.1/doc/templates/images/ico_out.png000066400000000000000000000005521323434465400213350ustar00rootroot00000000000000PNG  IHDR $ pHYs  tEXtSoftwareAdobe ImageReadyqe<IDATxڔR 0lJ?Z7p (:dBOɋĀyI]{OMӔ0Vses#׃IP@(~K, XnN5Ex}@@(#D4="|D#@"!z]顬tvvd3eNv@0ě&Bׯ_a]]!"iG~/28/+95̣>6Q~nBۓ/1]xE-DM>k.=zم'j"j#q`>hy]\\G bTQ.//+~UtoP'yZ U#}<8!j0 l tPN(pt`6}U (4ڷQ%h~x$hg|sithzv}瀧áMy7sxth|ݦt.//d2I@@Y98u}}G@W@h4J7}>Yh@ ep^^]}9<0;et:|9.//+Ű sd23ʡ=_c ;@~`/H蜯^ř98oaR.@Sy38.H6r82@}3=9X@OĹkh{=gggi:.@7"0` {s 9<ǏuCCDF>kX,lta{DnCIBDCǺ7:=w5̈́^@BrI^뻻;!:ܰ|C >>>Nog?j j!EyA9矾t-5f"Brm: Wқ7ox<>{.~eyIfNrL&tqqi+h=4C >t( c ʣb5kT|thF<5Bt(|]vnu_4N c 1E/<?Z(v9Sʠ0Y {_zTP@|k?_ g7l63`g:@7z/rz3ʰ}>ÃW#sx׏?BW#s'z(}!v;;@/u.f^/rs|GgcWқ7ox<~,]U8+-&@KT7!z>=BkυtIu5wGx^%s?(;sŽs{`^|CCIENDB`qbs-src-1.10.1/doc/templates/images/page_bg.png000066400000000000000000000001241323434465400212530ustar00rootroot00000000000000PNG  IHDRh LIDATc?(<ɓ'`S5t^IENDB`qbs-src-1.10.1/doc/templates/images/qt_icon.png000066400000000000000000000112471323434465400213330ustar00rootroot00000000000000PNG  IHDR;G6^tEXtSoftwareAdobe ImageReadyqe<IIDATx[{p^u߳_$aɶe[P;'!q%3 1%a`N!Ӵ?С`H'5N 61ؘl,?%a!zdzw+}WNp1wٳ9M\>!?pZW9nM%\L2a^vygv#?c/XV 1LyG6*'BDS2K?c3{{P1'x\d /1IOMJ*r %`y2=JwsBϗzk&,QrWL0[.IQ/DpI"mDI[j7t{ eڼ2{%d Iȵ~@^diE6֐'Ԥ+7M {n͐s~c-D)WkY+7Q>Y>I-C=Y>$R\"X>7xv{"3,AKPXr9;(Fj"AhgP*B%3rT9U-䏩Pm2TQhn-Q\4E IZ[dyGLm:z) 8ZP>9Eup ʪz#W叫kZ|gCzk\ 'yUr ;`y56s)`+-fB]ץ&^SsZoo|ǟ끟L;յpB>_:G٦0"*$\}݌I1e^"\E;@a0Qn:e9}lB՗ d+j*6 Fn+F^R!LY&fy-}*>P&N+dpui,8"ׅL+lB(HlЄGTW_m.4,=n̏ت &0Tի^pw¸Y}O0lژT0C3y(3ӞgpX, f1 %%K!|W:quHø hu*I12sGѠ" ^9Ly&d|TlMiƁeuU^F5T0x xM6xWW|l1Aaz 3YqtDsԐDOR}%)4t !cFw4)XF:<_Umns8AjZ5GV6 DLŁ:̴xR]W-Xn$ʹ8 nPw f„6CVyOv^o7$8ER@ a"aEr6ap}ռOuV[ ۩'ee!9w h{ח?K~t7%Xޕ yڷf.\Uӯa߿/ƥ38UTV6?.lp0ɹ2bfv1&!ҺX}ETN l[{׮9&-u}KD|Ƭ􈹧P2FUiB?[1%;OuXQ/kJY]2v`ty,كpч,9ܽrB2dWwy͒n3-5UF}ͦE?$㽫bJcUd~>z~o*\IDK{G;Ow]S}` 3p=Mܞ)¥޳شG.7NOę~ V#,_] Vgʴ^mk妁@i0A1k;9LϪ5c'_1>:OfsT/~h<^lx3jAse;̴eL1]0ϙpW`-M?UuG3xǁN~E@pj@lh`v3Il4%m gX l j V0TxX/2O1lZ6JX,.𤸶):g֚18Bpm0$ xnT~74ι /? t{PܔT|`aktڰKx}.Dž sUYB;MxhpMLNCX/d˩nȱt{s(0[̡蒋%ux<(9d+8-Zss!Dh5;*TnSy!Ph6ק坧o?#ToV1 ey{/>)-=d\愕=t2U<-8<#}i3j ‡80 *yaj]&Vo0Оru p1Z=[RIt ï3K-!]SGpp`t ngwhP7'tbcAr.: *2rb"K[\,A?B= M"- aɊH!1?!,d d=befN>]Ic.lF61 Zb3gA#Mc_XdE7k_$17|yC,FwWmZ'/zR[ #VQ!,b -%#!2;/ZY!Nqjc6#Pb,O e5.=P_veVf*gJ&moo6dKq$>|`͇)" !, m#=!2;/2Y!6  O!G#H;2^^H+c3d;JqBfEfZ!_m*.G>Sg<(hSkRPp!, rB1 OD,U  GM& !R ,D(HmzP 2-FbnG}5Z`ch+3!DIe/;cZ !, dV,P33fA}EmE"-,$Cd{u?F|e=b 2(],G3K!j%y[_t e?QF+H5"0(). !, rO:!2;>W."X2Y!Ml|sN1d^X_pxk7hG% HmFnS. CCJ]PL6^j?#V5' +)!,a :8oC|u(U! 3s hP'X*h^;edj%dXXg(D)nePI~q='/$ ;qbs-src-1.10.1/doc/templates/images/sprites-combined.png000066400000000000000000001721061323434465400231500ustar00rootroot00000000000000PNG  IHDR H=tEXtSoftwareAdobe ImageReadyqe<IDATx \e%NoI:$aMz;0"* x_:QqGt,8w¾&,@KdtN/_sӧ;yCj;us<$F(P"`#8J: @@t :W)QH$ze=,5t :t@@: @@t~M3' 6 tѓG M :t@@: @@t :t@@: @@t :t@@R  b#5~ gl% 6Mq\nh`ߣ;t@@~%}\ b: @@~b͚52fk7|S-Z$+W)--6SYgFzkkZBldFІvjC6tz ϙcʘcU+?n-{m梅1ǝ eee[{~ӎ82c59~.-S[U0Ӽ-׮ v۸:̘yYh&dll;CA^=t=9Tm޴~϶?ur1Ӷ劲ߝɲm6z،}mZ?n~Lݲ~dw:!y,}lN~W^|I'Co1^Gכ>뮻; s@/=Q?ǻ^isC>%o/)0+k8!ڽkWzwݺ5{ny,G~F[[WWІs̄-{}9SuZw]ʪu-yaݮsq.q>3*v}k?ݮ/?X'=)^vyOu6v8-hv5_OiHw}wrDˮ`gɦŦ'lj]~N_O=ia ۷mKλleߟBv>՛g=9 ?[l]6|{#Zx}rUW#<"_"׀nkgm5iנ?LO q5w.}ϭyyDùK[c_( Z. }ٔ_CU4-JZ֢ʜ9sZFmf^˪~֧s(nC{b@OxD[%~_tdN!W&\ö:CM|,_<86CydOR8wr-KOA h nP6-Dˎ aklg\8[msJ(4ۚhh fWkE*L.:_[DweK _Ԧ8hĐkmVnٓ1=XvZBCqOjӺCkGK,W_}uɄr #G4ŤՂ bojK_2k\0[uk5@s.$8t۷8 ny{+,v@opC >؞ IMmm.軶8}u]ݮ罚3"#7cŶN͓v;k@w 8unq똶->9Pk)u ;v5֞ۦV+6k8|mM|1<}ϜPZwͪb@6>U9Щuw÷A_ek=l?t ]5@75-{tHnkl['4ɥ'uŌt7a\X;'$qCx:!rE}eҥ~ԨQy59|}ɧLs\ùyY}]Gs/ / ^xax\z,%FZ% 0c3;H=jݲ5dg4d>yz5*n. ü^gͲlՎHGݝ&K7mSlٖ搪}?1iw tu辈^R'ce$Cnvƕݶʋ5dOԻ[;kOjgmnlkSvmM5!?_e(t4h?+VܵeQޭ{"@ JkF5h0JvGgll7XjĆ\MÊ=)b/Y6lϝ&Նuȶ-SZą{{p66@Ӻ^zL6] z̴A eEokfimM޻#ֲ5: tz|eWhkk3a}֭6y,ZB4(f[v!ag!ҺKj]2Dž@]gms7CtolҚXv;}buԛ֜{6m'zQv۴Z5XuLZVmέMU6'-pAûlۗ\v\- ngu:;{26_ғzbAk˵e9s¦E=NZnY?kooiQ;::Nr'͓SN9% DeִT/5c:y\Ğ~ꨣ'5\#cǎx uYgmHtׯ~+SFm#oܸM/Ǧ5П~Lk }p`v : @@tJsYql! #ϐ#ϘnCtÎ놧.1g|1bX?7{z[^-Y[d,%wkg^tz\[|˷FɑÎ4/q˵-6n#n{w72D:?m.8vGet{ *1/鴟=N s1alS Δ劲nviy}mZ&?n~Lݲ~dwz+>rxn[,KK3#_$z|8?55V6WoPoDpst G6!et~7aP߻;}4gtq;t&&o'sק>0Y872z2zZθ7[w}k?Қuswzt{i>ӏ;msn[ƗIo56!=>ǡ=]^rW.S#=)׫*.,ݺXU59[OaڟY3ۜа1g?97hy5(x FRoN q5w.}ϭyyąt0Qc_( Z. ”_CU4<9NU?H; 3Z[m+W`KIM0v(fm^n}ǩ ,-K˧|"[wlj~Nh]-wyss(n{b@OxD[%~_tz\6ʱhMmuoNPn|~_$>L8LQ頨nP B=y.;.t(tw_ek>㚆DZ5ZnkWqN~Bj au )dϧ&lmkvߛuusnZhαb['_{}qƱ[`Yxi-&/moObtyBǹ?V+;qrG(cG5g}}͆i˭ $ܖ!n=}ɳmGwݵyot0cPZl6$h [hcKU;ˬNsZkMm>۷7]Nw|Vw=8U>剖Ϳ/p*ZlNt1=6z}up\ߗumV~]M{O 57E 5ijPH58 6ޖ!Xw;{[5&M=l`˧myfT\!?3]6uvO.Ņ|/@tZfw=~1[|m+EsÎ ϾPǏ:#]Zp[S==d?K ::|~(aeۀ2U.]e(I~rƬKƺ;n[#7]ުUtr2d뇮NGm.:l6~α[ObGwϦ[cVOwZc=eh~_͕ܝ\s<~48ߑ'2^.cܼ¹ %wmp쭦י}p㗝-F1knP[kw{>=W&vݖ5n:[3ߊ]αb{Rۜ ph6'+/]z}c䉿[mNR|۞5=uh*˯mƮϺv N's_O}VvUC¾\MC-dY*4w9᫫m]́ w|w_6@Ӻ d6]ͧsOd}O՛¶mg>oFq50zIK~-E<>bM;kXFk݅Ԋ˞&t^@ Sv6ej >cZf{Y0FfA݆ŪA.S Z($s`8YGi-gkJ6:Qm^kﱢB#kYuBhL E^2Mss^ݹ/߹۬74۸=yu\V[[n˫ZC؀c6ǖkۯܥK3q2G=COxכX-Z#vq?; .϶uLZkLGٴv krl6dЃl˺.n>Ԋ.s|aaMgtXzvfWgt%XTilY<5@M=Vw f[)z<,7.6uf|<|vz^qƺm1@q=Yӟ}dXͭM8ѿkq5;Nﰆl #GayzL+8\eGhSDF2kve;EzA5 ~1? 5XW@G@(e@,f5: Џ0;#?^mt :t@@: @@t :t@@: @@t :t@@: @@t :t@@: @@t@@@Mt@y~f=?:Gy}4).'fomo:hPWt uB:Cܝ(7iw/7^Tn8@ 7Grۜ<[_!RQV"|9'S[s>[ ԸN@! M8W W|T'Ri;2gm2}}\2H qX*G@@̀Og!#D_wTv\C$n8:-Al :dpJp~C:M^ 6/Ҳ/ /~|xcm.jΝ' DgV;+'I]Eqh!2f2{t82Fq9pn'G6~Б܏v*t8H0WE`^xn sH߰]Y_W1Bj*嵟{myC2ObO7{MaCMY?ԴjΣ` t3~k-y[cA&7}6D>@CV .}uG:=g/ݏ<={f lҝ|/CS z[cyN@(~H'@ϕd*6:u GmI0L{N-x$EúKFf$tTiWls3n:g\6!4 muۭelֶwo=c:8sYc5F,9cl |fY-P?5].ҩEbtgֳa9 Ȟ|ӏ=;Nҡۏ'S/-ҽ̐&n.׋\ :x9sم{7 gPY0Lsw~,N뻡y ߜXmj-M;Ly186Tc~gZ{X5w%wOHb.K@'@1zD<3t&r;u=%f9/3~;#59g-ܥH`$#?mϪǼَ=`GOhػ4n8tҩ_Eб?]hN/~8 :Ov=w6_^߆/u3ЮV{}jH'@iڞP$6y7lk՛2`9rq43޲A6^&hk.ݧ]"gq=os}C29rhM M4W}~{6рg~j^˳Mb7v=Y ru5rgW;7.G1(&@1 ^4g9i=6_FymM|jtk?j,^ؑd_˒/Γ/޲?⠩cc2j wn_*t0&G/Ѭ?yMozc۔' qmz4DhTŖ޷~*y緦&vZssVtvr/27,O{ҌtioZ{U_^;۔)]5\k NeKr!֎?=ͩw'$Q:[S}lmm6۶Dz.wxNǵPP;wg5`Ԡyq?2DcOcŭ= vumbi6%MtE]J'mg|#9A` ˝jf?2<=ϭO.eЀnR9RJnzS͸ޚvϞ^cڵ?7۾KY~Dpuڋ ;q?|i9cYn&Zo>0j4k ~w΋&hjyX_lm[> Uvms Bziq_2E宣?oyTL.W篯i~g=ՠ'8'XvҲI -msn^hȴ5@[j˕=}pg69Bj k]\vhyŦN7mf2QMlS'.V?f6_\ q鳞"\=쁰Jt(4æ;P~o^셛M8o,|3,` :Ngù*OTJEbPSpoź4+z }fd;-Fn~izN2?= Yh`kä_צ?~fj Aqq{6} _ f_i|-ݷ:l5|4iжOkRT5:;;b qRkmogel^`F8sެp=K9>v^t v^:M;ϿuwZn-=t4:v^Crtw?oJsieM Z|ݓL.Kj.пd<M؃*IVm#Oݤ?.s"x^yw|b#Sa[iYEA?}^jY?_5ٚ7emPNH5a0vBJ݀ߕ\?p0ONXî=9Qh9 n8&6nY¹]OؒymM~ɶ9 3g5̆0.0c޽ε n01t_l-f- d9'dYN4GOE_[uqѶtrt4[z!ZcnY<"fzNN3wOdm~5 ͧ&m^v,[me/oGjsG~S62 2`++׭7v3uDq=w9/F9uж|NvrWp=cwg= qipZeRg7ߜoNmSNF~vyx h_) psIe]& _sas?xDn~LՖe'4X+?S?B䥝?tekfY:݊{L;hĕ=n$0̝626 nKm?.C/ q;zr2z3n2[N61./:XZʛWɶ\b϶'ai={1U׎\n^kSrԞ^]p^5I[~+clp+fh3^ Bkpt4`p+'zzҽQBi 2Z(xrM@K4֜;5lmg\ۛ_Qj7?Soϑfs?&7?|ڙrѤ2~g{HklTmV|tm[5ZmHANp^w*wa+/i=r*nP;M%Uko^`mn892m@uEZZ;dTIfͪ75}EyBHc؀^S1DW/׾|YQLoj";n6=/6?M>m4Xttru^b,^cQ|N=ڏ7M2WͿse_UV{i9^2˿'wJbyk^`2{wD~Fy;I ׼xl:W'CIR[ѐ^@Fq?qY?5j] Un ~nS`fӭ-