aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeena Miettinen <riitta-leena.miettinen@qt.io>2017-12-21 09:55:33 +0100
committerLeena Miettinen <riitta-leena.miettinen@qt.io>2017-12-21 09:48:55 +0000
commita1f00f970cc9d5a8db618c1bebb9a119d4dc76e6 (patch)
tree46243229a07d048ef9a1443845e81cc32391fe8a
parent1a15ca43205966a5d0f94a5caaf240eb4df94e7f (diff)
Doc: Use QML commands to document modules
Task-number: QBS-1245 Change-Id: I996bb44a1db9aae71ef42bca87265371de951272 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--doc/appendix/qbs-porting.qdoc127
-rw-r--r--doc/config/macros.qdocconf5
-rw-r--r--doc/external-resources.qdoc35
-rw-r--r--doc/howtos.qdoc18
-rw-r--r--doc/qbs.qdoc21
-rw-r--r--doc/reference/cli/builtin/cli-build.qdoc2
-rw-r--r--doc/reference/cli/cli-options.qdocinc2
-rw-r--r--doc/reference/cli/cli-parameters.qdocinc2
-rw-r--r--doc/reference/items/convenience/androidapk.qdoc5
-rw-r--r--doc/reference/items/convenience/appleapplicationdiskimage.qdoc2
-rw-r--r--doc/reference/items/convenience/applediskimage.qdoc2
-rw-r--r--doc/reference/items/convenience/cppapplication.qdoc2
-rw-r--r--doc/reference/items/convenience/dynamiclibrary.qdoc3
-rw-r--r--doc/reference/items/convenience/innosetup.qdoc3
-rw-r--r--doc/reference/items/convenience/installpackage.qdoc5
-rw-r--r--doc/reference/items/convenience/javaclasscollection.qdoc2
-rw-r--r--doc/reference/items/convenience/qtapplication.qdoc2
-rw-r--r--doc/reference/items/convenience/qtguiapplication.qdoc2
-rw-r--r--doc/reference/items/convenience/staticlibrary.qdoc3
-rw-r--r--doc/reference/items/language/depends.qdoc2
-rw-r--r--doc/reference/items/language/filetagger.qdoc3
-rw-r--r--doc/reference/modules/android-ndk-module.qdoc106
-rw-r--r--doc/reference/modules/android-sdk-module.qdoc139
-rw-r--r--doc/reference/modules/archiver-module.qdoc201
-rw-r--r--doc/reference/modules/bundle-module.qdoc677
-rw-r--r--doc/reference/modules/cpp-module.qdoc2198
-rw-r--r--doc/reference/modules/cpufeatures-module.qdoc311
-rw-r--r--doc/reference/modules/dmg-module.qdoc606
-rw-r--r--doc/reference/modules/ib-module.qdoc397
-rw-r--r--doc/reference/modules/ico-module.qdoc129
-rw-r--r--doc/reference/modules/innosetup-module.qdoc247
-rw-r--r--doc/reference/modules/java-module.qdoc325
-rw-r--r--doc/reference/modules/lexyacc-module.qdoc146
-rw-r--r--doc/reference/modules/nodejs-module.qdoc38
-rw-r--r--doc/reference/modules/nsis-module.qdoc291
-rw-r--r--doc/reference/modules/qbs-module.qdoc836
-rw-r--r--doc/reference/modules/qnx-module.qdoc106
-rw-r--r--doc/reference/modules/qt-core-module.qdoc422
-rw-r--r--doc/reference/modules/qt-dbus-module.qdoc88
-rw-r--r--doc/reference/modules/qt-declarative-module.qdoc62
-rw-r--r--doc/reference/modules/qt-gui-module.qdoc63
-rw-r--r--doc/reference/modules/qt-modules.qdoc630
-rw-r--r--doc/reference/modules/qt-qml-module.qdoc118
-rw-r--r--doc/reference/modules/qt-quick-module.qdoc92
-rw-r--r--doc/reference/modules/qt-scxml-module.qdoc85
-rw-r--r--doc/reference/modules/typescript-module.qdoc305
-rw-r--r--doc/reference/modules/vcs-module.qdoc123
-rw-r--r--doc/reference/modules/wix-module.qdoc462
-rw-r--r--doc/reference/modules/xcode-module.qdoc241
-rw-r--r--doc/reference/reference.qdoc6
-rw-r--r--doc/targets/qbs-target-android.qdoc11
-rw-r--r--doc/targets/qbs-target-apple-common.qdocinc10
-rw-r--r--doc/targets/qbs-target-macos.qdoc2
-rw-r--r--doc/targets/qbs-target-qnx.qdoc4
-rw-r--r--doc/targets/qbs-target-windows.qdoc17
55 files changed, 5660 insertions, 4082 deletions
diff --git a/doc/appendix/qbs-porting.qdoc b/doc/appendix/qbs-porting.qdoc
index ee6159606..4a6bbe6d5 100644
--- a/doc/appendix/qbs-porting.qdoc
+++ b/doc/appendix/qbs-porting.qdoc
@@ -33,10 +33,10 @@
\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.
+ You can use the \l{create-project}{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
@@ -56,7 +56,7 @@
\section3 console
- Set the \l{Product::consoleApplication}{product.consoleApplication} property
+ Set the \l{Product::consoleApplication}{Product.consoleApplication} property
to \c true for the \l{Application}, \l{CppApplication},or \l{QtApplication}
item. For example:
@@ -90,7 +90,7 @@
In qmake, the Qt dependency is implicit, whereas in \QBS it is not.
If \c {CONFIG -= qt}, add a \l{Depends} item to specify that
- the \l{Product}{product} depends on the \l{Module cpp}{cpp module}:
+ the \l{Product}{product} depends on the \l{cpp} module:
\code
Product {
@@ -100,10 +100,10 @@
\section2 DEFINES
- Set the \l{Module cpp}{cpp.defines} property for the \l{Product}{product}.
+ Set the \l{cpp::defines}{cpp.defines} property for the \l{Product}{product}.
\note To reference \c cpp.defines, you must specify a dependency on the
- \l{Module cpp}{cpp} module.
+ \l{cpp} module.
\code
Product {
@@ -134,7 +134,8 @@
}
\endcode
- If that is not possible, you can use the \c destinationDirectory property:
+ If that is not possible, you can use the \l{Product::}{destinationDirectory}
+ property:
\code
DynamicLibrary {
@@ -146,7 +147,7 @@
\section2 HEADERS, SOURCES, FORMS, RESOURCES
Include header, source, form, and resource files as values of
- \l{Product::files}{product.files} property:
+ \l{Product::files}{Product.files} property:
\code
QtApplication {
@@ -160,11 +161,10 @@
\section2 ICON
- There is no direct equivalent in \QBS. If you add a \l{Depends}
- {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}
- {product}, \QBS takes care of setting the application icon automatically
- when building for Apple platforms:
+ There is no direct equivalent in \QBS. If you add a \l{Depends} {dependency}
+ to the \l{ib} module and add the \c .xcassets directory as a value of the
+ \l{Product::files}{Product.files} property, \QBS takes care of setting the
+ application icon automatically when building for Apple platforms:
\code
Application {
@@ -175,9 +175,9 @@
\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:
+ \l{bundle::infoPlist}{bundle.infoPlist} parameter, specify a dependency to
+ the \l{ib} module, and add the application \c .icns file as a value of the
+ \l{Product::}{files} property:
\code
Application {
@@ -189,7 +189,7 @@
\section2 INCLUDEPATH
- Add the paths to the include files as values of the \l{Module cpp}
+ Add the paths to the include files as values of the \l{cpp::includePaths}
{cpp.includePaths} property:
\code
@@ -202,9 +202,10 @@
For libraries that are part of the project, use \l{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
+ To pull in external libraries, use the \l{cpp::libraryPaths}
+ {cpp.libraryPaths} property for the Unix \c -L (library path) flags and the
+ \l{cpp::dynamicLibraries}{cpp.dynamicLibraries} and \l{cpp::staticLibraries}
+ {cpp.staticLibraries} properties for the
\c -l (library) flags.
For example, \c {LIBS += -L/usr/local/lib -lm} would become:
@@ -218,7 +219,7 @@
\section2 OUT_PWD
- Use the \c product.buildDirectory property of the \l{Product}{product}
+ Use the \l{Product::buildDirectory}{Product.buildDirectory} property
to refer to the base output directory of the generated artifacts.
\section2 PWD
@@ -232,14 +233,13 @@
\section2 _PRO_FILE_PWD_
- Corresponds to the \c sourceDirectory property of a
- \l{Project}{project} or \l{Product}{product}.
+ Corresponds to the \l{Project::sourceDirectory}{Project.sourceDirectory} or
+ \l{Product::sourceDirectory}{Product.sourceDirectory} property.
\section2 QMAKE_ASSET_CATALOGS
- Add a \l{Depends}{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}{product}:
+ Add a \l{Depends}{dependency} to the \l{ib} module and add the \c .xcassets
+ directory as a value of the \l{Product::}{files} property:
\code
Application {
@@ -257,15 +257,15 @@
\section2 QMAKE_BUNDLE_EXTENSION
- Set the \c bundle.extension property for the \l{Module bundle}{bundle}.
+ Set the \l{bundle::extension}{bundle.extension} property.
\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:
+ Use the \l{cpp::commonCompilerFlags}{cpp.commonCompilerFlags} property or
+ the properties corresponding to each compiler flags variable:
\table
\header
@@ -275,39 +275,37 @@
\li \c QMAKE_CFLAGS_DEBUG
\c QMAKE_CFLAGS_RELEASE
- \li \c cpp.cCompilerFlags
+ \li \l{cpp::cFlags}{cpp.cFlags}
\row
\li \c QMAKE_CXXFLAGS_DEBUG
\c QMAKE_CXXFLAGS_RELEASE
- \li \c cpp.cxxCompilerFlags
+ \li \l{cpp::cxxFlags}{cpp.cxxFlags}
\row
\li \c QMAKE_OBJECTIVE_CFLAGS
- \li \c cpp.objcCompilerFlags
+ \li \l{cpp::objcFlags}{cpp.objcFlags}
- \c cpp.objcxxCompilerFlags
+ \l{cpp::objcxxFlags}{cpp.objcxxFlags}
\endtable
- Use \l{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.
+ Use \l{Properties} items or simple conditionals as values of the
+ \l{qbs::buildVariant}{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}.
+ Set the \l{bundle::bundleName}{bundle.bundleName} property (which is derived
+ from \l{Product::targetName}{Product.targetName}) combined with
+ \l{bundle::extension}{bundle.extension}.
\section2 QMAKE_FRAMEWORK_VERSION
- Set the \c bundle.frameworkVersion property for the \l{Module bundle}
- {bundle}.
+ Set the \l{bundle::frameworkVersion}{bundle.frameworkVersion} property.
\section2 QMAKE_INFO_PLIST
- Include the \c info.plist file as a value of the \c files property of the
- \l{Product}{product} and specify a dependency to the \l{Module bundle}
- {bundle} module:
+ Include the \c info.plist file as a value of \l{Product::}{files} property
+ and specify a dependency to the \l{bundle} module:
\code
Application {
@@ -322,7 +320,8 @@
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:
+ \l{bundle::processInfoPlist}{bundle.processInfoPlist} property to \c false
+ to disable this behavior:
\code
\\ ...
@@ -330,8 +329,8 @@
\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:
+ add \c Info.plist properties using the \l{bundle::infoPlist}
+ {bundle.infoPlist} property. For example:
\code
\\ ...
@@ -343,13 +342,13 @@
\section2 QMAKE_LFLAGS
- Set the \l{Module cpp}{cpp.linkerFlags} property for the \l{Product}
+ Set the \l{cpp::linkerFlags}{cpp.linkerFlags} property for the \l{Product}
{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:
+ the \l{cpp} module:
\table
\header
@@ -357,25 +356,25 @@
\li cpp Module Property
\row
\li \c QMAKE_MACOSX_DEPLOYMENT_TARGET
- \li \c cpp.minimumMacosVersion
+ \li \l{cpp::minimumMacosVersion}{cpp.minimumMacosVersion}
\row
\li \c QMAKE_IOS_DEPLOYMENT_TARGET
- \li \c cpp.minimumIosVersion
+ \li \l{cpp::minimumIosVersion}{cpp.minimumIosVersion}
\row
\li \c QMAKE_TVOS_DEPLOYMENT_TARGET
- \li \c cpp.minimumTvosVersion
+ \li \l{cpp::minimumTvosVersion}{cpp.minimumTvosVersion}
\row
\li \c QMAKE_WATCHOS_DEPLOYMENT_TARGET
- \li \c cpp.minimumWatchosVersion
+ \li \l{cpp::minimumWatchosVersion}{cpp.minimumWatchosVersion}
\endtable
\section2 QMAKE_RPATHDIR
- Set the \l{Module cpp}{cpp.rpaths} property for the \l{Product}{product}.
+ Set the \l{cpp::rpaths}{cpp.rpaths} property for the \l{Product}{product}.
\section2 QMAKE_SONAME_PREFIX
- Use the \l{Module cpp}{cpp.sonamePrefix} property for the \l{Product}
+ Use the \l{cpp::sonamePrefix}{cpp.sonamePrefix} property for the \l{Product}
{product}.
\section2 QML_IMPORT_PATH
@@ -393,8 +392,8 @@
\section2 QT
- Add a \l{Depends} item to the \l{Product}{product} that
- specifies the dependencies to \l{Qt Modules}{Qt modules}. For example:
+ Add a \l{Depends} item to the \l{Product}{product} that specifies the
+ dependencies to \l{Qt} modules. For example:
\code
QtApplication {
@@ -427,13 +426,13 @@
\section2 RC_FILE
- Add Windows resource files to the value of the \c files property for the
- \l{Product}{product}.
+ Add Windows resource files to the value of the \l{Product::files}
+ {Product.files} property.
\section2 TARGET
- Use the \c targetName property to specify the base file name of target
- artifacts of the \l{Product}{product}.
+ Use the \l{Product::targetName}{Product.targetName} property to specify the
+ base file name of target artifacts.
\section2 TEMPLATE
@@ -476,7 +475,7 @@
\section3 subdirs
In a \l{Project} item, specify subdirectories as values of the
- \c references property:
+ \l{Project::}{references} property:
\code
Project {
diff --git a/doc/config/macros.qdocconf b/doc/config/macros.qdocconf
index dca83db1c..b660a19d9 100644
--- a/doc/config/macros.qdocconf
+++ b/doc/config/macros.qdocconf
@@ -1,4 +1,7 @@
macro.QBS = "Qbs"
macro.qbsversion = $QBS_VERSION
macro.defaultvalue = "Default:"
-macro.nodefaultvalue = "Default: Undefined"
+macro.nodefaultvalue = "Default: Undefined"
+macro.appleproperty = "This property is specific to Apple platforms."
+macro.unixproperty = "This property is specific to Unix platforms."
+macro.windowsproperty = "This property is specific to Windows."
diff --git a/doc/external-resources.qdoc b/doc/external-resources.qdoc
index b335fb4a8..f23429507 100644
--- a/doc/external-resources.qdoc
+++ b/doc/external-resources.qdoc
@@ -61,6 +61,41 @@
*/
/*!
+ \externalpage http://www.typescriptlang.org
+ \title TypeScript
+*/
+
+/*!
+ \externalpage http://www.typescriptlang.org/docs/handbook/compiler-options.html
+ \title Compiler Options
+*/
+
+/*!
+ \externalpage https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/dyld.1.html
+ \title DYLD documentation
+*/
+
+/*!
+ \externalpage https://dmgbuild.readthedocs.io/en/latest/settings.html#background
+ \title dmgbuild - Settings
+*/
+
+/*!
+ \externalpage http://www.jrsoftware.org/isinfo.php
+ \title Inno Setup
+*/
+
+/*!
+ \externalpage http://nodejs.org
+ \title Node.js
+*/
+
+/*!
+ \externalpage http://wixtoolset.org
+ \title Windows Installer XML Toolset
+*/
+
+/*!
\externalpage nolink
\title macOS
\internal
diff --git a/doc/howtos.qdoc b/doc/howtos.qdoc
index 065553d53..168ca937c 100644
--- a/doc/howtos.qdoc
+++ b/doc/howtos.qdoc
@@ -45,8 +45,8 @@
\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.
+ First of all, your project files need to declare \l{Depends}{dependencies}
+ on \l{Qt} modules.
To build the project, you need a matching \e profile. The following commands
set up and use a Qt-specific profile:
@@ -99,7 +99,7 @@
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}{rule} in the \l{Module cpp}{cpp module} considers library dependencies as inputs).
+ \l{Rule}{rule} in the \l{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::references}{project.references} property to pull them into the project.
@@ -163,8 +163,9 @@
\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.
+ Creating an application bundle or framework is achieved by introducing a
+ dependency on the \l{bundle} module and setting the \l{bundle::isBundle}
+ {bundle.isBundle} property to \c true.
Here is a simple example for an application:
@@ -256,7 +257,7 @@
\section1 How do I make the state of my Git repository available to my source files?
- Add a dependency to the \c vcs module to your product:
+ Add a dependency to the \l{vcs} module to your product:
\code
CppApplication {
// ...
@@ -275,6 +276,7 @@
std::cout << "I was built from " << VCS_REPO_STATE << std::endl;
}
\endcode
- This value is also available via a module property in \QBS project files.
- See the \l{Module vcs}{vcs module documentation} for details.
+
+ This value is also available via the \l{vcs::repoState}{vcs.repoState}
+ property.
*/
diff --git a/doc/qbs.qdoc b/doc/qbs.qdoc
index 0e8e3ef6a..e6b58c8e4 100644
--- a/doc/qbs.qdoc
+++ b/doc/qbs.qdoc
@@ -167,7 +167,7 @@
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}:
+ \l{cpp} module:
\code
import qbs
@@ -208,7 +208,7 @@
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
+ example above, the dependency on the \l{cpp} module determines
that the C++ sources are compiled and linked into a binary.
Alternatively, you could use the \l{CppApplication}
@@ -222,17 +222,16 @@
\endcode
Additionally, if the sources use Qt, you need a dependency to the
- \l{Qt Modules}{Qt.core module}, and so on.
+ \l{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
+ applications. For example, the \l{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.
+ \l{innosetup}, \l{nsis}, and \l{wix} modules contain properties and rules
+ for building installers for Windows platforms.
\section2 Correct and Fast Incremental Builds
@@ -837,9 +836,9 @@
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}.
+ \a Depends adds the dependency to the \l{cpp} module. 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
@@ -1499,7 +1498,7 @@
\list
\li \l{Product::name}{product.name}
- \li \l{Module bundle}{bundle}.isBundle
+ \li \l{bundle::isBundle}{bundle.isBundle}
\endlist
If a simple workaround is possible in a particular case (for example,
diff --git a/doc/reference/cli/builtin/cli-build.qdoc b/doc/reference/cli/builtin/cli-build.qdoc
index ce4fab160..81b476d37 100644
--- a/doc/reference/cli/builtin/cli-build.qdoc
+++ b/doc/reference/cli/builtin/cli-build.qdoc
@@ -104,7 +104,7 @@
qbs build profile:Android
\endcode
- Builds the application using different \l{Module cpp}{cpp module} properties
+ Builds the application using different \l{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:
diff --git a/doc/reference/cli/cli-options.qdocinc b/doc/reference/cli/cli-options.qdocinc
index e52b422dc..5316f459d 100644
--- a/doc/reference/cli/cli-options.qdocinc
+++ b/doc/reference/cli/cli-options.qdocinc
@@ -234,7 +234,7 @@
The default value is \c <build dir>/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.
+ the value of the \l{qbs::sysroot}{qbs.sysroot} property.
//! [install-root]
diff --git a/doc/reference/cli/cli-parameters.qdocinc b/doc/reference/cli/cli-parameters.qdocinc
index bf1d67a11..eb16f3ff8 100644
--- a/doc/reference/cli/cli-parameters.qdocinc
+++ b/doc/reference/cli/cli-parameters.qdocinc
@@ -48,7 +48,7 @@
for creating the final installation file.
The build variant can also be specified explicitly by using the
- \l{Module qbs}{qbs.buildVariant} property.
+ \l{qbs::buildVariant}{qbs.buildVariant} property.
When naming configurations created for special purposes, follow the
rules for legal names generally used in programming languages:
diff --git a/doc/reference/items/convenience/androidapk.qdoc b/doc/reference/items/convenience/androidapk.qdoc
index 8a94b1da1..89a4112b6 100644
--- a/doc/reference/items/convenience/androidapk.qdoc
+++ b/doc/reference/items/convenience/androidapk.qdoc
@@ -36,9 +36,8 @@
\brief Android application package.
An AndroidApk item is a \l{Product}{product} of the \l{Product::}{type}
- \c android.apk that has a \l{Depends}{dependency} on
- the \l{Module Android.sdk}{Android.sdk module}. The final build result is an Android
- application package (APK) file.
+ \c android.apk that has a \l{Depends}{dependency} on the \l{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:
diff --git a/doc/reference/items/convenience/appleapplicationdiskimage.qdoc b/doc/reference/items/convenience/appleapplicationdiskimage.qdoc
index f5775f344..1d64382b5 100644
--- a/doc/reference/items/convenience/appleapplicationdiskimage.qdoc
+++ b/doc/reference/items/convenience/appleapplicationdiskimage.qdoc
@@ -39,7 +39,7 @@
An AppleApplicationDiskImage item is a \l{Product}{product} of the
\l{Product::}{type} \c{"dmg.dmg"} that has a dependency on the
- \l{Module dmg}{dmg module}. In addition, it has rules and properties
+ \l{dmg} module. In addition, it has rules and properties
specific to building drag 'n' drop disk image installers with an application
bundle and symbolic link to the \c /Applications directory.
diff --git a/doc/reference/items/convenience/applediskimage.qdoc b/doc/reference/items/convenience/applediskimage.qdoc
index 6c600864d..78772db52 100644
--- a/doc/reference/items/convenience/applediskimage.qdoc
+++ b/doc/reference/items/convenience/applediskimage.qdoc
@@ -37,7 +37,7 @@
\brief Apple disk image.
An AppleDiskImage item is a is a \l{Product}{product} of the \l{Product::}
- {type} \c{"dmg.dmg"} that has a dependency on the \l{Module dmg}{DMG module}.
+ {type} \c{"dmg.dmg"} that has a dependency on the \l{dmg} module.
For single-application drag 'n' drop disk image installers, you will
probably want to use the \l{AppleApplicationDiskImage} item instead.
diff --git a/doc/reference/items/convenience/cppapplication.qdoc b/doc/reference/items/convenience/cppapplication.qdoc
index 811059d4e..13bd523b7 100644
--- a/doc/reference/items/convenience/cppapplication.qdoc
+++ b/doc/reference/items/convenience/cppapplication.qdoc
@@ -37,7 +37,7 @@
\brief C++ application.
A CppApplication is a \l{Product}{product} that has a dependency on the
- \l{Module cpp}{cpp} module. It is entirely equivalent to the following:
+ \l{cpp} module. It is entirely equivalent to the following:
\code
Application {
diff --git a/doc/reference/items/convenience/dynamiclibrary.qdoc b/doc/reference/items/convenience/dynamiclibrary.qdoc
index efa82ec54..49338d88b 100644
--- a/doc/reference/items/convenience/dynamiclibrary.qdoc
+++ b/doc/reference/items/convenience/dynamiclibrary.qdoc
@@ -44,8 +44,7 @@
\list
\li The \l{Product::type}{product.type} property value contains
\c "android.nativelibrary" in addition to \c "dynamiclibrary".
- \li There is a dependency on the \l{Module cpp}{cpp} and \l{Module Android.ndk}{Android.ndk}
- modules.
+ \li There is a dependency on the \l{cpp} and \l{Android.ndk} modules.
\endlist
*/
diff --git a/doc/reference/items/convenience/innosetup.qdoc b/doc/reference/items/convenience/innosetup.qdoc
index 1722a9db6..f4b52dafd 100644
--- a/doc/reference/items/convenience/innosetup.qdoc
+++ b/doc/reference/items/convenience/innosetup.qdoc
@@ -37,6 +37,5 @@
\brief Inno Setup installer executable.
A InnoSetup item is a \l{Product}{product} of the \l{Product::}{type}
- \c{"innosetup.exe"} that has a dependency on the \l{Module innosetup}
- {Inno Setup module}.
+ \c{"innosetup.exe"} that has a dependency on the \l{innosetup} module.
*/
diff --git a/doc/reference/items/convenience/installpackage.qdoc b/doc/reference/items/convenience/installpackage.qdoc
index 281c7938e..0a75198df 100644
--- a/doc/reference/items/convenience/installpackage.qdoc
+++ b/doc/reference/items/convenience/installpackage.qdoc
@@ -37,9 +37,8 @@
\brief Archive of an installed project.
An InstallPackage item is a \l{Product}{product} of the \l{Product::}{type}
- \c{archiver.archive} that has a \l{Depends}{dependency} on the
- \l{Module archiver}{archiver Module}. It is used to produce an archive from
- a set of installable files.
+ \c{archiver.archive} that has a \l{Depends}{dependency} on the\l{archiver}
+ module. It is used to produce an archive from a set of installable files.
Consider the following example project:
diff --git a/doc/reference/items/convenience/javaclasscollection.qdoc b/doc/reference/items/convenience/javaclasscollection.qdoc
index 0cb40cb46..fb93eb29e 100644
--- a/doc/reference/items/convenience/javaclasscollection.qdoc
+++ b/doc/reference/items/convenience/javaclasscollection.qdoc
@@ -37,7 +37,7 @@
\brief Collection of Java class files not bundled in a jar file.
A JavaClassCollection item is a \l{Product}{product} of the \l{Product::}
- {type} \c{"java.class"} that has a dependency on the \l{Module java}{Java module}.
+ {type} \c{"java.class"} that has a dependency on the \l{java} module.
If the files should end up in a jar file, you should use \l{JavaJarFile}
instead.
*/
diff --git a/doc/reference/items/convenience/qtapplication.qdoc b/doc/reference/items/convenience/qtapplication.qdoc
index 5c094e196..09640a8c1 100644
--- a/doc/reference/items/convenience/qtapplication.qdoc
+++ b/doc/reference/items/convenience/qtapplication.qdoc
@@ -37,7 +37,7 @@
\brief Application with a dependency on the Qt Core module.
A QtApplication is a \l{CppApplication}{C++ application} that has a
- \l{Depends}{dependency} on the \l{Qt Modules}{Qt.core} module. It is entirely
+ \l{Depends}{dependency} on the \l{Qt.core} module. It is entirely
equivalent to the following:
\code
diff --git a/doc/reference/items/convenience/qtguiapplication.qdoc b/doc/reference/items/convenience/qtguiapplication.qdoc
index 8c7426973..2845029e4 100644
--- a/doc/reference/items/convenience/qtguiapplication.qdoc
+++ b/doc/reference/items/convenience/qtguiapplication.qdoc
@@ -37,7 +37,7 @@
\brief Application with a dependency on the Qt GUI module.
A QtGuiApplication is an application that extends the \l{QtApplication} item
- by loading the \l{Qt Modules}{Qt.gui} module and possibly also the default
+ by loading the \l{Qt.gui} module and possibly also the default
QPA plugin.
*/
diff --git a/doc/reference/items/convenience/staticlibrary.qdoc b/doc/reference/items/convenience/staticlibrary.qdoc
index 5d74e294c..89cfd263b 100644
--- a/doc/reference/items/convenience/staticlibrary.qdoc
+++ b/doc/reference/items/convenience/staticlibrary.qdoc
@@ -47,8 +47,7 @@
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 a dependency on the \l{cpp} and \l{Android.ndk} modules.
\li There is an additional list property \c{"architectures"} that
specifies for which architectures to build, with the default value
\c{["armeabi"]}.
diff --git a/doc/reference/items/language/depends.qdoc b/doc/reference/items/language/depends.qdoc
index 77313fe61..45f2c84d9 100644
--- a/doc/reference/items/language/depends.qdoc
+++ b/doc/reference/items/language/depends.qdoc
@@ -161,7 +161,7 @@
more than one profile, 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.
+ See the \c profiles property of the \l{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.
diff --git a/doc/reference/items/language/filetagger.qdoc b/doc/reference/items/language/filetagger.qdoc
index 03790e724..1f01037b5 100644
--- a/doc/reference/items/language/filetagger.qdoc
+++ b/doc/reference/items/language/filetagger.qdoc
@@ -50,8 +50,7 @@
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
- \l{Module cpp}{cpp} module of \QBS has, among others, the following file
- tagger:
+ \l{cpp} module of \QBS has, among others, the following file tagger:
\code
FileTagger {
diff --git a/doc/reference/modules/android-ndk-module.qdoc b/doc/reference/modules/android-ndk-module.qdoc
index 9ff6c3b34..23c70eec7 100644
--- a/doc/reference/modules/android-ndk-module.qdoc
+++ b/doc/reference/modules/android-ndk-module.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -27,11 +27,10 @@
/*!
\contentspage index.html
- \page android-ndk-module.html
- \ingroup list-of-modules
+ \qmltype Android.ndk
+ \inqmlmodule QbsModules
+ \since Qbs 1.4
- \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
@@ -39,8 +38,10 @@
Normally, you will not use this module directly, but instead work
with the \l{DynamicLibrary} and \l{StaticLibrary} items that \QBS provides.
- Here is what the project file for the "hello-jni" example that comes with the NDK could look
- like:
+
+ Here is what the project file for the \c hello-jni example that comes with
+ the NDK could look like:
+
\code
import qbs
@@ -59,45 +60,8 @@
}
\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
+ \section2 Relevant File Tags
+ \target filetags-android-ndk
\table
\header
@@ -107,9 +71,53 @@
\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 for Android targets.
+ \li 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 for Android targets.
\endtable
+*/
+
+/*!
+ \qmlproperty string Android.ndk::abi
+
+ The ABI name as it appears under \c "lib/" in the application package.
+ Corresponds to \c APP_ABI in \c Android.mk.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string Android.ndk::appStl
+
+ The library to use for C++. The possible values are:
+
+ \list
+ \li \c "c++_shared"
+ \li \c "c++_static"
+ \li \c "gabi++_shared"
+ \li \c "gabi++_static"
+ \li \c "gnustl_shared"
+ \li \c "gnustl_static"
+ \li \c "stlport_shared"
+ \li \c "stlport_static"
+ \li \c "system"
+ \endlist
+
+ \defaultvalue \c{"system"}
+*/
+
+/*!
+ \qmlproperty path Android.ndk::ndkDir
+
+ The NDK base directory.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string Android.ndk::platform
+
+ The versioned platform name.
+ \defaultvalue \c{"android-9"}
*/
diff --git a/doc/reference/modules/android-sdk-module.qdoc b/doc/reference/modules/android-sdk-module.qdoc
index 9306d83a8..bad547311 100644
--- a/doc/reference/modules/android-sdk-module.qdoc
+++ b/doc/reference/modules/android-sdk-module.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -27,76 +27,20 @@
/*!
\contentspage index.html
- \page android-sdk-module.html
- \ingroup list-of-modules
+ \qmltype Android.sdk
+ \inqmlmodule QbsModules
+ \since Qbs 1.4
- \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.
+ The 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 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
+ \section2 Relevant File Tags
+ \target filetags-android-sdk
\table
\header
@@ -108,33 +52,76 @@
\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.
+ \li Attached to 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 takes care of tagging
- these files for you.
+ \li Attached to Android assets, which are typically located in an
+ \c{assets/} subdirectory. Using the \l{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.
+ \li Attached to the output artifact of the rule that creates an APK
+ package. It is the default type of the \l{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.
+ \li Attached to 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 takes care of tagging
- these files for you.
+ \li Attached to Android resources, which are typically located in a
+ \c{res/} subdirectory. Using the \l{AndroidApk} item takes care of
+ tagging these files for you.
\endtable
*/
+
+/*!
+ \qmlproperty string Android.sdk::buildToolsVersion
+
+ The version of the build tools such as \c aapt and \c dx.
+
+ \defaultvalue Highest build tools version version available in the SDK.
+*/
+
+/*!
+ \qmlproperty string Android.sdk::ndkDir
+
+ The NDK base directory, if an NDK is present.
+
+ \defaultvalue Determined automatically based on standard search paths.
+*/
+
+/*!
+ \qmlproperty string Android.sdk::platform
+
+ The versioned platform name (for example, \c "android-21").
+
+ \defaultvalue Highest build tools version version available in the SDK.
+*/
+
+/*!
+ \qmlproperty string Android.sdk::sdkDir
+
+ The SDK base directory.
+
+ \defaultvalue Determined automatically based on standard search paths.
+*/
+
+/*!
+ \qmlproperty bool Android.sdk::embedJar
+ \since Qbs 1.10
+
+ 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.
+
+ \defaultvalue \c{true}
+*/
diff --git a/doc/reference/modules/archiver-module.qdoc b/doc/reference/modules/archiver-module.qdoc
index 13cda125f..8bec4993d 100644
--- a/doc/reference/modules/archiver-module.qdoc
+++ b/doc/reference/modules/archiver-module.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -27,83 +27,152 @@
/*!
\contentspage index.html
- \page archiver-module.html
- \ingroup list-of-modules
+ \qmltype archiver
+ \inqmlmodule QbsModules
+ \since Qbs 1.4
- \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
+ The output artifact has the file tag \c "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".
+ relative, in which case they will be looked for in \l{archiver::}{workingDirectory}. The file tag
+ of this input artifact is \c "archiver.input-list".
+*/
+
+/*!
+ \qmlproperty stringList archiver::flags
+
+ Custom options not covered by any of the other properties.
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty string archiver::archiveBaseName
- \section1 archiver Properties
+ The base name of the archive file. That is, the file name without any
+ extensions.
+
+ \defaultvalue \l{Product::targetName}{product.targetName}
+*/
+
+/*!
+ \qmlproperty string archiver::compressionLevel
+
+ How much effort to put into the compression of a \c 7-Zip or \c zip archive.
+
+ Possible values for zip are:
+
+ \list
+ \li \c undefined
+ \li \c "0"
+ \li \c "1"
+ \li \c "2"
+ \li \c "3"
+ \li \c "4"
+ \li \c "5"
+ \li \c "6"
+ \li \c "7"
+ \li \c "8"
+ \li \c "9"
+ \endlist
+
+ 7-Zip only supports 0 and the odd numbers above.
+
+ Higher numbers result in a smaller archive, but the compression process will
+ take more time.
+
+ If the value is left undefined, the default compression level is used.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string archiver::compressionType
+
+ How to compress a \c tar or \c zip archive.
+
+ Possible options are:
+
+ \list
+ \li \c "bz2"
+ \li \c "deflate"
+ \li \c "gz"
+ \li \c "none"
+ \li \c "store"
+ \li \c undefined, which uses the archiver's default compression type.
+ \li \c "xz"
+ \li \c "Z"
+ \endlist
+
+ \defaultvalue \c{"gz"} for \c tar archives, otherwise \c undefined.
+*/
+
+/*!
+ \qmlproperty string archiver::outputDirectory
+
+ Where to put the archive file.
+
+ \defaultvalue \l{Product::destinationDirectory}
+ {product.destinationDirectory}
+*/
+
+/*!
+ \qmlproperty string archiver::type
+
+ Which kind of archiver to use.
+
+ The currently supported values are:
+
+ \list
+ \li \c "7zip"
+ \li \c "tar"
+ \li \c "zip"
+ \endlist
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string archiver::workingDirectory
+
+ The directory in which to execute the archiver tool specified by
+ \l{archiver::}{command}.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string archiver::command
+
+ The path to the executable used to create the archive.
+
+ This is usually the native tool corresponding to the archive type being
+ produced, but may fall back to another tool also capable of producing that
+ archive type if the native tool is not installed on the host system.
+ This behavior is especially useful on platforms such as Windows, where the
+ native tools for producing \c tar and \c zip archives in particular are
+ much less likely to be installed.
+
+ The following table lists the supported \l{archiver::type}{archive types}
+ and the tools capable of producing them, listed in search order from left to
+ right:
\table
\header
- \li Property
\li Type
- \li Since
- \li Default
- \li Description
+ \li Supported tools
\row
- \li flags
- \li stringList
- \li 1.4
- \li empty list
- \li Custom options not covered by any of the other properties.
+ \li 7zip
+ \li 7z
\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).
+ \li tar
+ \li tar, 7z
\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.
+ \li zip
+ \li zip \e (Info-Zip), 7z, jar \e (from Java JDK)
\endtable
+
+ \defaultvalue Depends on \l{archiver::}{type}.
*/
diff --git a/doc/reference/modules/bundle-module.qdoc b/doc/reference/modules/bundle-module.qdoc
index 66949a4c6..5ef874e1f 100644
--- a/doc/reference/modules/bundle-module.qdoc
+++ b/doc/reference/modules/bundle-module.qdoc
@@ -1,7 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2015 Jake Petroules.
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -28,273 +28,26 @@
/*!
\contentspage index.html
- \page bundle-module.html
- \ingroup list-of-modules
+ \qmltype bundle
+ \inqmlmodule QbsModules
+ \since Qbs 1.4
- \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"),
+ Core Foundation bundles on Apple platforms (commonly known as CFBundles or simply \e 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".
+ also referred to as (loadable) \e bundles in Apple parlance.
+ In \QBS, Core Foundation bundles are referred to as \e bundles,
+ while Mach-O loadable bundles are referred to as \e {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
+ \section2 Relevant File Tags
+ \target filetags-bundle
\table
\header
@@ -306,12 +59,418 @@
\li \c{"bundle.content"}
\li -
\li 1.8
- \li This tag is attached to the output artifacts of the rule that produces the bundle.
+ \li 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.
+ into the bundle's final \c Info.plist.
\endtable
*/
+
+/*!
+ \qmlproperty bool bundle::isBundle
+
+ 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.
+
+ \defaultvalue \c{true} for applications and dynamic libraries on Apple
+ platforms, \c{false} otherwise.
+*/
+
+/*!
+ \qmlproperty bool bundle::isShallow
+ \readonly
+
+ Whether the bundle directory tree is \e shallow. That is, whether it lacks a
+ \c Contents subdirectory. This is the default on all platforms other than
+ macOS.
+
+ \defaultvalue \c{false} on macOS, otherwise \c{true}.
+*/
+
+/*!
+ \qmlproperty string bundle::identifierPrefix
+
+ A prefix for the product's bundle identifier. If \l{bundle::}{identifier}
+ is left unset, the bundle identifier will be a concatenation of this value
+ and the \l{bundle::}{identifier} property, separated by a period (.). This
+ corresponds to the organization identifier in Xcode.
+
+ \defaultvalue \c{org.example}
+*/
+
+/*!
+ \qmlproperty string bundle::identifier
+
+ The bundle's identifier. If left unset, the bundle identifier will be a
+ concatenation of this value and the \l{bundle::}{identifierPrefix} property,
+ separated by a period (.).
+
+ \defaultvalue A combination of \l{bundle::}{identifierPrefix} and the
+ product's target name formatted as an RFC-1034 identifier.
+*/
+
+/*!
+ \qmlproperty string bundle::extension
+
+ The extension of the bundle's wrapper directory, without the leading period
+ (.).
+
+ This property should not normally need to be set unless creating a custom
+ bundle type.
+
+ \defaultvalue \c{"app"} for \c{"APPL"} packages, \c{"framework"} for
+ \c{"FMWK"} packages, and \c{"bundle"} for \c{"BNDL"} and custom packages.
+*/
+
+/*!
+ \qmlproperty string bundle::packageType
+
+ The four-letter file type code of the bundle, specified in the bundle's
+ \c PkgInfo file and in the bundle's \c Info.plist as the value for the
+ \c CFBundlePackageType key.
+
+ This property should almost never need to be changed, even though specifying
+ an alternative package type for custom bundles is allowed.
+
+ \defaultvalue \c{"APPL"} for applications, \c{"FMWK"} for frameworks, and
+ \c{"BNDL"} for custom bundles.
+*/
+
+/*!
+ \qmlproperty bool bundle::generatePackageInfo
+ \since Qbs 1.5
+
+ Whether to generate a \c PkgInfo file for the bundle.
+
+ This property should almost never need to be changed, even though enabling
+ it when specifying an alternative package type for custom bundles using
+ \l{bundle::}{packageType} is allowed.
+
+ \defaultvalue \c{true} for applications, otherwise \c{false}.
+*/
+
+/*!
+ \qmlproperty string bundle::signature
+
+ The four-letter signature specific to the bundle, also known as the creator
+ code, specified in the bundle's \c PkgInfo file and in the bundle's
+ \c Info.plist as the value for the \c CFBundleSignature key.
+
+ This property should normally never need to be set.
+
+ \defaultvalue \c{"????"}
+*/
+
+/*!
+ \qmlproperty string bundle::bundleName
+
+ The file name of the bundle's wrapper directory.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue A combination of the product's \l{Product::}{targetName} and
+ bundle's \l{bundle::}{extension}.
+*/
+
+/*!
+ \qmlproperty string bundle::frameworkVersion
+
+ For framework bundles, the version of the framework. Not used for other
+ package types.
+
+ \defaultvalue \c{"A"}
+*/
+
+/*!
+ \qmlproperty pathList bundle::publicHeaders
+
+ A list of public header files to copy to a framework bundle's \c Headers
+ subdirectory.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty pathList bundle::privateHeaders
+
+ A list of private header files to copy to a framework bundle's
+ \c PrivateHeaders subdirectory
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool bundle::resources
+
+ A list of resources to copy to a bundle's \c Resources subdirectory. Files
+ will automatically be copied into \c lproj subdirectories corresponding to
+ the input files' paths.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty object bundle::infoPlist
+
+ A dictionary of key-value pairs to add to the bundle's \c Info.plist.
+
+ The contents of this property will be aggregated with the values from any
+ \c plist files. If this property and any \c plist files contain the same
+ key, this property will take precedence. However, it might be overridden
+ during postprocessing (see \l{bundle::}{processInfoPlist}).
+
+ If \c undefined, will not be taken into account.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool bundle::processInfoPlist
+
+ Whether to perform post-processing on the aggregated \c 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 \c plist files on disk, and the
+ \l{bundle::}{infoPlist} property.
+
+ First, values from a list of defaults will be added to the dictionary if
+ they were not already present. Second, values from the \c AdditionalInfo key
+ of the platform SDK's \c Info.plist file will be added to the dictionary if
+ they were not already present, as well as some other miscellaneous keys,
+ such as \c BuildMachineOSBuild and \c UIDeviceFamily (on iOS). Finally,
+ variable expansions will be performed such that substrings of the form
+ \c $(VAR) or \c ${VAR} will be replaced with their corresponding environment
+ variables.
+
+ \defaultvalue \c{true}
+*/
+
+/*!
+ \qmlproperty bool bundle::embedInfoPlist
+
+ Whether to create a \c{__TEXT} section in the product's executable
+ containing the processed \c Info.plist.
+
+ Only applies to command line applications.
+
+ \defaultvalue \c{true} if the product is a command line tool, otherwise
+ \c{false}.
+*/
+
+/*!
+ \qmlproperty string bundle::infoPlistFormat
+
+ The file format to write the product's resulting \c Info.plist in.
+
+ Possible values are:
+
+ \list
+ \li \c{"binary1"}
+ \li \c{"json"}
+ \li \c{"same-as-input"}
+ \li \c{"xml1"}
+ \endlist
+
+ \defaultvalue \c{"binary1"} for iOS, \c{"same-as-input"} or \c{"xml1"}
+ for macOS depending on whether a \c plist file is used, and \c{undefined}
+ for all other operating systems.
+*/
+
+/*!
+ \qmlproperty string bundle::infoPlistPath
+ \readonly
+
+ The path that the \c Info.plist file will be written to.
+
+ The path is relative to the directory that contains the bundle.
+*/
+
+/*!
+ \qmlproperty string bundle::infoStringsPath
+ \readonly
+ \since Qbs 1.5
+
+ The path that the \c InfoPlist.strings file will be written to.
+
+ The path is relative to the directory that contains the bundle.
+*/
+
+/*!
+ \qmlproperty string bundle::pkgInfoPath
+ \readonly
+
+ The path that the \c PkgInfo file will be written to.
+
+ The path is relative to the directory that contains the bundle.
+*/
+
+/*!
+ \qmlproperty string bundle::versionPlistPath
+ \readonly
+
+ The path that the \c version.plist file will be written to.
+
+ The path is relative to the directory that contains the bundle.
+*/
+
+/*!
+ \qmlproperty string bundle::executablePath
+ \readonly
+
+ The path that the main executable file will be written to.
+
+ The path is relative to the directory that contains the bundle.
+*/
+
+/*!
+ \qmlproperty string bundle::contentsFolderPath
+ \readonly
+
+ The path of the bundle's \c Contents subdirectory.
+
+ The path is relative to the directory that contains the bundle.
+*/
+
+/*!
+ \qmlproperty string bundle::documentationFolderPath
+ \readonly
+ \since Qbs 1.5
+
+ The path of the directory where documentation will be written.
+
+ The path is relative to the directory that contains the bundle.
+*/
+
+/*!
+ \qmlproperty string bundle::executableFolderPath
+ \readonly
+
+ The path of the directory where the main exectuable will be written.
+
+ The path is relative to the directory that contains the bundle.
+
+ Not to be confused with \l{bundle::}{executablesFolderPath}.
+*/
+
+/*!
+ \qmlproperty string bundle::executablesFolderPath
+ \readonly
+
+ The path of the directory where auxiliary executables will be copied.
+
+ The path is relative to the directory that contains the bundle.
+
+ Not to be confused with \l{bundle::}{executableFolderPath}.
+*/
+
+/*!
+ \qmlproperty string bundle::frameworksFolderPath
+ \readonly
+
+ The path of the directory where internal frameworks will be copied.
+
+ The path is relative to the directory that contains the bundle.
+*/
+
+/*!
+ \qmlproperty string bundle::javaFolderPath
+ \readonly
+ \since Qbs 1.5
+
+ The path of the directory where Java content will be written.
+
+ The path is relative to the directory that contains the bundle.
+*/
+
+/*!
+ \qmlproperty string bundle::localizedResourcesFolderPath
+ \readonly
+ \since Qbs 1.5
+
+ The path of the directory where localized resource files will be copied.
+
+ The path is relative to the directory that contains the bundle.
+*/
+
+/*!
+ \qmlproperty string bundle::pluginsFolderPath
+ \readonly
+
+ The path of the directory where plugins will be copied.
+
+ The path is relative to the directory that contains the bundle.
+*/
+
+/*!
+ \qmlproperty string bundle::privateHeadersFolderPath
+ \readonly
+
+ The path of the directory where private header files will be copied.
+
+ The path is relative to the directory that contains the bundle.
+*/
+
+/*!
+ \qmlproperty string bundle::publicHeadersFolderPath
+ \readonly
+
+ The path of the directory where public headers files will be copied.
+
+ The path is relative to the directory that contains the bundle.
+*/
+
+/*!
+ \qmlproperty string bundle::scriptsFolderPath
+ \readonly
+
+ The path of the directory where script files will be copied.
+
+ The path is relative to the directory that contains the bundle.
+*/
+
+/*!
+ \qmlproperty string bundle::sharedFrameworksFolderPath
+ \readonly
+
+ The path of the directory where shared frameworks will be copied.
+
+ The path is relative to the directory that contains the bundle.
+*/
+
+/*!
+ \qmlproperty string bundle::sharedSupportFolderPath
+ \readonly
+
+ The path of the directory where shared support files will be copied.
+
+ The path is relative to the directory that contains the bundle.
+*/
+
+/*!
+ \qmlproperty string bundle::unlocalizedResourcesFolderPath
+ \readonly
+
+ The path of the directory where non-localized resource files will be copied.
+
+ The path is relative to the directory that contains the bundle.
+
+ This is the same as the base resources path.
+*/
+
+/*!
+ \qmlproperty string bundle::versionsFolderPath
+ \readonly
+ \since Qbs 1.5
+
+ The path of the bundle's \c Versions subdirectory.
+
+ The path is relative to the directory that contains the bundle.
+
+ This is only relevant for (non-shallow) framework bundles.
+*/
diff --git a/doc/reference/modules/cpp-module.qdoc b/doc/reference/modules/cpp-module.qdoc
index e4240fcf6..4fb61c834 100644
--- a/doc/reference/modules/cpp-module.qdoc
+++ b/doc/reference/modules/cpp-module.qdoc
@@ -27,866 +27,26 @@
/*!
\contentspage index.html
- \page cpp-module.html
- \ingroup list-of-modules
+ \qmltype cpp
+ \inqmlmodule QbsModules
+ \since Qbs 1.0
- \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++.
+ 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}{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}{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 driverLinkerFlags
- \li \c{stringList}
- \li 1.11
- \li undefined
- \li Flags that are added to all 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=<version> 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=<version> 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 rpathOrigin
- \li \c{string}
- \li 1.11
- \li \c{"@loader_path"} on Mach-O based platforms (macOS, iOS, tvOS, watchOS),
- \c{"$ORIGIN"} on ELF based platforms (Linux and most other Unix-like platforms)
- \li Placeholder value used in an rpath string to refer to the directory containing the
- referring executable or shared library.
- \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
+ \section2 Setting Up the Run Environment
+ When running an application that has dependencies on dynamic libraries, the
+ script specified by \l{Module::setupRunEnvironment}{Module.setupRunEnvironment}
+ automatically adds the locations of the libraries to the environment.
+ That is, to \c PATH on Windows, \c DYLD_LIBRARY_PATH on macOS,
+ and \c LD_LIBRARY_PATH on Linux and other Unix platforms. If the value
+ \c{"ignore-lib-dependencies"} shows up in the \c config array, this behavior
+ is disabled. Users can set the value via the \l run command.
- \section1 Dependency Parameters
+ \section2 Dependency Parameters
\table
\header
@@ -922,7 +82,8 @@
Currently only applies when linking for Apple platforms.
\endtable
- \section1 Relevant File Tags
+ \section2 Relevant File Tags
+ \target filetags-cpp
\table
\header
@@ -1055,16 +216,1329 @@
This file tag only has an effect with GCC-like toolchains. The linker needs to be
\c{ld}-compatible.
\endtable
+*/
- \section1 \c config values supported by the \c setupRunEnvironment script
+/*!
+ \qmlproperty bool cpp::allowUnresolvedSymbols
+ \since Qbs 1.2
- \section2 \c ignore-lib-dependencies
+ Set to \c true 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.
- When running an application that has dependencies on dynamic libraries, the
- \c setupRunEnvironment script automatically adds their locations to the
- environment, namely to \c PATH on Windows, \c DYLD_LIBRARY_PATH on macOS
- and \c LD_LIBRARY_PATH on Linux and other Unix platforms. If the value
- \c{"ignore-lib-dependencies"} shows up in the \c config array, this behavior
- is disabled. Users can set the value via the \l run command.
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::architecture
+
+ The target architecture.
+
+ \defaultvalue \l{qbs::architecture}{qbs.architecture}
+*/
+
+/*!
+ \qmlproperty string cpp::endianness
+ \since Qbs 1.9
+
+ Specifies the endianness of the target platform's processor architecture
+ (\c{"big"} or \c{"little"}).
+
+ The value is automatically detected from the compiler's default values, but
+ can also be manually set in order to select a specific endianness when
+ targeting bi-endian architectures like MIPS and PowerPC.
+
+ \defaultvalue Compiler default value.
+*/
+
+/*!
+ \qmlproperty bool cpp::debugInformation
+
+ Whether to generate debug information.
+
+ \defaultvalue \l{qbs::debugInformation}{qbs.debugInformation}
+*/
+
+/*!
+ \qmlproperty bool cpp::combineCSources
+ \since Qbs 1.8
+
+ Enabling this property on a \l{Product}{product} instructs the
+ \l{FileTagger}{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.
+
+ To enable this property in a product that has sources that cannot be merged,
+ put the sources into a dedicated \l{Group} and set their \l{Group::}
+ {fileTags} property 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 or prevent the
+ respective files from getting combined via the mechanism described above.
+
+ \defaultvalue \c false
+*/
+
+/*!
+ \qmlproperty bool cpp::combineCxxSources
+ \since Qbs 1.8
+
+ Like \l{cpp::}{combineCSources}, but for C++. The \l{filetags-cpp}
+ {relevant file tags} are \c{"cpp"} and \c{"cpp.combine"}.
+
+ \defaultvalue \c false
+
+ \sa combineCSources
+*/
+
+/*!
+ \qmlproperty bool cpp::combineObjcSources
+ \since Qbs 1.8
+
+ Like \l{cpp::}{combineCSources}, but for Objective-C. The \l{filetags-cpp}
+ {relevant file tags} are \c{"objc"} and \c{"objc.combine"}.
+
+ \defaultvalue \c false
+
+ \sa combineCSources
+*/
+
+/*!
+ \qmlproperty bool cpp::combineObjcxxSources
+ \since Qbs 1.8
+
+ Like \l{cpp::}{combineCSources}, but for Objective-C++. The \l{filetags-cpp}
+ {relevant file tags} are \c{"objcpp"} and \c{"objcpp.combine"}.
+
+ \defaultvalue \c false
+
+ \sa combineCSources
+*/
+
+/*!
+ \qmlproperty bool cpp::discardUnusedData
+ \since Qbs 1.10
+
+ 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.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpp::separateDebugInformation
+ \since Qbs 1.4
+
+ Whether to store debug information in an external file or bundle instead of
+ within the binary.
+
+ \defaultvalue \c{false} for GCC and Clang, \c{true} for MSVC.
+*/
+
+/*!
+ \qmlproperty stringList cpp::defines
+
+ A list of preprocessor macros that gets passed to the compiler.
+
+ To set macro values, use the following syntax:
+
+ \code
+ cpp.defines: ["USE_COLORS=1", 'COLOR_STR="blanched almond"']
+ \endcode
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList cpp::platformDefines
+
+ A 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.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty pathList cpp::includePaths
+
+ A list of include paths.
+
+ Relative paths are considered to be relative to the \c .qbs product file
+ they are used in.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty pathList cpp::systemIncludePaths
+
+ A 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 \c .qbs product file
+ they are used in.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList cpp::systemRunPaths
+ \since Qbs 1.6
+
+ The paths the dynamic linker uses on process start-up to locate dynamic
+ libraries.
+
+ \defaultvalue Auto-detected for host builds on Linux via \c ldconfig,
+ \c{["/lib", "/usr/lib"]} otherwise on Unix, \c [] on Windows.
+*/
+
+/*!
+ \qmlproperty pathList cpp::libraryPaths
+
+ A list of library search paths.
+
+ Relative paths are considered to be relative to the \c .qbs product file
+ they are used in.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList cpp::dynamicLibraries
+
+ A List of dynamic libraries to be linked.
+
+ If the library is part of your project, consider using a \l{Depends} item
+ instead.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList cpp::staticLibraries
+
+ A list of static libraries to be linked.
+
+ If the library is part of your project, consider using a \l{Depends} item
+ instead.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty pathList cpp::prefixHeaders
+ \since Qbs 1.0.1
+
+ A list of files to automatically include at the beginning of each source
+ file in the \l{Product}{product}.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::optimization
+
+ The optimization level.
+
+ \defaultvalue \l{qbs::optimization}{qbs.optimization}
+*/
+
+/*!
+ \qmlproperty bool cpp::treatWarningsAsErrors
+
+ Whether warnings will be handled as errors and cause the build to fail.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty bool cpp::useCPrecompiledHeader
+ \since Qbs 1.5
+
+ Whether to use a precompiled header for the respective language if one is
+ present.
+
+ See \l{filetags-cpp}{Relevant File Tags} for the associated file tags.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty bool cpp::useCxxPrecompiledHeader
+ \since Qbs 1.5
+
+ Whether to use a precompiled header for the respective language if one is
+ present.
+
+ See \l{filetags-cpp}{Relevant File Tags} for the associated file tags.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty bool cpp::useObjcPrecompiledHeader
+ \since Qbs 1.5
+
+ Whether to use a precompiled header for the respective language if one is
+ present.
+
+ See \l{filetags-cpp}{Relevant File Tags} for the associated file tags.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty bool cpp::useObjcxxPrecompiledHeader
+ \since Qbs 1.5
+
+ Whether to use a precompiled header for the respective language if one is
+ present.
+
+ See \l{filetags-cpp}{Relevant File Tags} for the associated file tags.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty string cpp::warningLevel
+
+ The warning level for the compiler: \c{"none"} or \c{"all"}.
+
+ \defaultvalue \c{"all"}
+*/
+
+/*!
+ \qmlproperty stringList cpp::driverFlags
+ \since Qbs 1.6
+
+ A list of flags that are added to all compilation and linking commands
+ performed by the compiler driver, independently of the language.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList cpp::driverLinkerFlags
+ \since Qbs 1.11
+
+ A list of flags that are added to all linking commands performed by the
+ compiler driver, independently of the language.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList cpp::commonCompilerFlags
+ \since Qbs 1.0.1
+
+ A list of flags that are added to all compilation commands independently of
+ the language.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int cpp::compilerVersionMajor
+ \since Qbs 1.4
+
+ The major version of the compiler.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int cpp::compilerVersionMinor
+ \since Qbs 1.4
+
+ The minor version of the compiler.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int cpp::compilerVersionPatch
+ \since Qbs 1.4
+
+ The patch level component of the compiler version.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList cpp::assemblerFlags
+ \since Qbs 1.5
+
+ A list of additional flags for the assembler.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList cpp::cppFlags
+
+ A list of additional flags for the C preprocessor.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList cpp::cFlags
+
+ A list of additional flags for the C compiler.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList cpp::cxxFlags
+
+ A list of additional flags for the C++ compiler.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::cLanguageVersion
+ \since Qbs 1.4
+
+ The version of the C standard with which the code must comply.
+
+ If this property is set, the corresponding compiler and 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"}.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::cxxLanguageVersion
+ \since Qbs 1.4
+
+ The version of the C++ standard with which the code must comply.
+
+ If this property is set, the corresponding compiler and 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"}.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::cxxStandardLibrary
+ \since Qbs 1.4
+
+ The C++ standard library to link to.
+
+ If this property is set, the corresponding compiler and 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++"}.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList cpp::objcFlags
+
+ A list of additional flags for the Objective-C compiler.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList cpp::objcxxFlags
+
+ A list of additional flags for the Objective-C++ compiler.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList cpp::linkerFlags
+
+ A list of additional flags for the linker.
+
+ These flags should \e not be escaped using the \c -Wl or \c -Xlinker
+ syntaxes, as \QBS will do this automatically based on the linker being used.
+
+ \sa linkerMode
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::assemblerName
+ \since Qbs 1.5
+
+ The name of the assembler binary. This property is set in the build profile.
+
+ \defaultvalue Determined by \l{setup-toolchains}{qbs setup-toolchains}.
+*/
+
+/*!
+ \qmlproperty string cpp::assemblerPath
+ \since Qbs 1.5
+
+ The full path of the assembler binary. This property is set in the build
+ profile.
+
+ \defaultvalue Determined by \l{setup-toolchains}{qbs setup-toolchains}.
+*/
+
+/*!
+ \qmlproperty string cpp::compilerName
+
+ The name of the main compiler binary. This property is set in the build profile.
+
+ \defaultvalue Determined by \l{setup-toolchains}{qbs setup-toolchains}.
+*/
+
+/*!
+ \qmlproperty string cpp::compilerPath
+
+ The full path of the main compiler binary. This property is set in the build profile.
+
+ If the toolchain provides different compilers for different languages,
+ \l{cpp::}{compilerPathByLanguage} is used.
+
+ \defaultvalue Determined by \l{setup-toolchains}{qbs setup-toolchains}.
+*/
+
+/*!
+ \qmlproperty var cpp::compilerPathByLanguage
+ \since Qbs 1.3
+
+ A \c{string} to \c{string} map that maps file tags to full paths of compiler
+ binaries. This property is set in the build profile.
+
+ \defaultvalue Determined by \l{setup-toolchains}{qbs setup-toolchains}.
+*/
+
+/*!
+ \qmlproperty stringList cpp::compilerWrapper
+ \since Qbs 1.1
+
+ A wrapper binary and its arguments for wrapping compiler calls.
+ This is useful for compiler wrappers, such as \c ccache.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::linkerName
+ \since Qbs 1.1.1
+
+ The name of the linker binary. This property is set in the build profile.
+
+ \defaultvalue Determined by \l{setup-toolchains}{qbs setup-toolchains}.
+*/
+
+/*!
+ \qmlproperty string cpp::linkerPath
+ \since Qbs 1.1.1
+
+ The full path of the linker binary. This property is set in the build profile.
+
+ \defaultvalue Determined by \l{setup-toolchains}{qbs setup-toolchains}.
+*/
+
+/*!
+ \qmlproperty stringList cpp::linkerWrapper
+ \since Qbs 1.6.2
+
+ A wrapper binary and its arguments for wrapping linker calls.
+ This is useful for linker wrappers as needed by Bullseye Coverage, for
+ example.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::entryPoint
+ \since Qbs 1.3
+
+ The name of the entry point of an executable or dynamic library.
+
+ If this property is left undefined, the toolchain's default is used.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::runtimeLibrary
+ \since Qbs 1.3.3
+
+ The type of the runtime library used.
+
+ Accepted values are \c{"static"} and \c{"dynamic"}.
+
+ If this property is set to \c{undefined}, the default runtime library of the
+ toolchain is used.
+
+ \note This property is only functional for MSVC.
+
+ \defaultvalue \c{"dynamic"} for MSVC, \c{undefined} for other compilers.
+*/
+
+/*!
+ \qmlproperty bool cpp::enableExceptions
+ \since Qbs 1.5
+
+ Whether to enable exceptions in C++ code.
+
+ \defaultvalue \c{true}
+*/
+
+/*!
+ \qmlproperty string cpp::exceptionHandlingModel
+ \since Qbs 1.5
+
+ 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 the only exception
+ handling model.
+
+ \defaultvalue \c{"default"}
+*/
+
+/*!
+ \qmlproperty bool cpp::enableRtti
+ \since Qbs 1.5
+
+ Whether to enable runtime type information in C++ code.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpp::enableReproducibleBuilds
+ \since Qbs 1.5
+
+ Whether the compiler should 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}.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty bool cpp::treatSystemHeadersAsDependencies
+ \since Qbs 1.8
+
+ Whether included header files found via \l{cpp::}{systemIncludePaths},
+ \l{cpp::}{distributionIncludePaths}, or \l{cpp::}{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.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty stringList cpp::dsymutilFlags
+ \since Qbs 1.4.1
+
+ \appleproperty
+
+ Additional flags for the \c dsymutil tool.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::dsymutilPath
+ \since Qbs 1.4
+
+ \appleproperty
+
+ The full path of the \c dsymutil binary. This property is set in the build
+ profile.
+
+ \defaultvalue Determined by \l{setup-toolchains}{qbs setup-toolchains}.
+*/
+
+/*!
+ \qmlproperty string cpp::lipoPath
+ \since Qbs 1.9
+
+ \appleproperty
+
+ The full path of the \c lipo binary.
+
+ \defaultvalue Determined automatically.
+*/
+
+/*!
+ \qmlproperty pathList cpp::frameworkPaths
+
+ \appleproperty
+
+ A list of framework search paths.
+
+ Relative paths are considered to be relative to the \c .qbs product file
+ they are used in.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty pathList cpp::systemFrameworkPaths
+
+ \appleproperty
+
+ A list of framework search paths.
+
+ Relative paths are considered to be relative to the \c .qbs product file
+ they are used in. Header files in frameworks in those paths will not cause
+ warnings.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList cpp::frameworks
+
+ \appleproperty
+
+ A list of frameworks to be linked.
+
+ If the framework is part of your project, consider using a \l{Depends} item
+ instead.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList cpp::weakFrameworks
+
+ \appleproperty
+
+ A list of frameworks to be weakly linked.
+
+ If the framework is part of your project, consider using a \l{Depends} item
+ instead.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpp::automaticReferenceCounting
+ \since Qbs 1.4
+
+ \appleproperty
+
+ Whether to enable Automatic Reference Counting (ARC) for Objective-C and
+ Objective-C++ source code.
+
+ If left undefined, uses the compiler default (probably \c{false}).
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpp::requireAppExtensionSafeApi
+ \since Qbs 1.4
+
+ \appleproperty
+
+ 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 left undefined, uses the compiler and linker defaults (probably
+ \c{false}).
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::minimumIosVersion
+
+ \appleproperty
+
+ A version number in the format \c{[major].[minor]} indicating the earliest
+ version of iOS that the product should run on.
+
+ Passes \c{-miphoneos-version-min=<version>} to the compiler.
+
+ If left undefined, compiler defaults will be used.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::minimumOsxVersion
+ \obsolete
+
+ \appleproperty
+
+ Deprecated in \QBS 1.5.2. Use \l{cpp::minimumMacosVersion} instead.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::minimumMacosVersion
+ \since Qbs 1.5.2
+
+ \appleproperty
+
+ A version number in the format \c{[major].[minor]}indicating the earliest
+ version of macOS that the product should run on.
+
+ Passes \c{-mmacosx-version-min=<version>} to the compiler.
+
+ If left undefined, compiler defaults will be used.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::minimumWatchosVersion
+
+ \appleproperty
+
+ A version number in the format \c{[major].[minor]} indicating the earliest
+ version of Apple watchOS that the product should run on.
+
+ If left undefined, compiler defaults will be used.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::minimumTvosVersion
+ \since Qbs 1.5
+
+ \appleproperty
+
+ A version number in the format \c{[major].[minor]} indicating the earliest
+ version of Apple tvOS that the product should run on.
+
+ If left undefined, compiler defaults will be used.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::archiverName
+
+ \unixproperty
+
+ The name of the archiver binary. This property is set in the build profile.
+
+ \defaultvalue \c{"ar"}
+*/
+
+/*!
+ \qmlproperty string cpp::archiverPath
+
+ \unixproperty
+
+ The full path of the archiver binary. This property is set in the build
+ profile.
+
+ \defaultvalue Determined by \l{setup-toolchains}{qbs setup-toolchains}.
+*/
+
+/*!
+ \qmlproperty string cpp::exportedSymbolsCheckMode
+ \since Qbs 1.4.1
+
+ \unixproperty
+
+ 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", this property can be set to \c "strict".
+
+ \defaultvalue \c "ignore-undefined"
+*/
+
+/*!
+ \qmlproperty string cpp::linkerMode
+ \since Qbs 1.6
+
+ \unixproperty
+
+ Controls whether to automatically use an appropriate compiler frontend
+ instead 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 \l{cpp::}{linkerName} and
+ \l{cpp::}{linkerPath} properties, depending on the type of object files
+ present on the linker command line.
+
+ Set this property to \c{"manual"} to explicitly specify the linker using the
+ \l{cpp::}{linkerName} and \l{cpp::}{linkerPath} properties.
+
+ \defaultvalue \c "automatic"
+*/
+
+/*!
+ \qmlproperty string cpp::nmName
+ \since Qbs 1.2
+
+ \unixproperty
+
+ The name of the \c nm binary. This property is set in the build profile.
+
+ \defaultvalue \c{"nm"}
+*/
+
+/*!
+ \qmlproperty string cpp::nmPath
+ \since Qbs 1.2
+
+ \unixproperty
+
+ The full path of the \c nm binary. This property is set in the build
+ profile.
+
+ \defaultvalue Determined by \l{setup-toolchains}{qbs setup-toolchains}.
+*/
+
+/*!
+ \qmlproperty string cpp::objcopyName
+ \since Qbs 1.4
+
+ \unixproperty
+
+ The name of the \c objcopy binary. This property is set in the build
+ profile.
+
+ \defaultvalue \c{"objcopy"}
+*/
+
+/*!
+ \qmlproperty string cpp::objcopyPath
+ \since Qbs 1.4
+
+ \unixproperty
+
+ The full path of the \c objcopy binary. This property is set in the build
+ profile.
+
+ \defaultvalue Determined by \l{setup-toolchains}{qbs setup-toolchains}.
+*/
+
+/*!
+ \qmlproperty string cpp::stripName
+ \since Qbs 1.4
+
+ \unixproperty
+
+ The name of the \c strip binary. This property is set in the build profile.
+
+ \defaultvalue \c{"strip"}
+*/
+
+/*!
+ \qmlproperty string cpp::stripPath
+ \since Qbs 1.4
+
+ \unixproperty
+
+ The full path of the \c strip binary. This property is set in the build
+ profile.
+
+ \defaultvalue Determined by \l{setup-toolchains}{qbs setup-toolchains}.
+*/
+
+/*!
+ \qmlproperty bool cpp::positionIndependentCode
+
+ \unixproperty
+
+ Whether to generate position-independent code.
+
+ If this property is left undefined, position-independent code is generated
+ for libraries, but not for applications.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::rpathOrigin
+ \since Qbs 1.11
+
+ \unixproperty
+
+ A placeholder value used in an \c rpath string to refer to the directory
+ containing the referring executable or shared library.
+
+ \defaultvalue \c{"@loader_path"} on Mach-O based platforms (macOS, iOS,
+ tvOS, watchOS); \c{"$ORIGIN"} on ELF based platforms (Linux and most other
+ Unix-like platforms).
+*/
+
+/*!
+ \qmlproperty stringList cpp::rpaths
+
+ \unixproperty
+
+ A list of \c rpaths that are passed to the linker. Paths that also appear in
+ \l{cpp::}{systemRunPaths} are ignored.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::sonamePrefix
+ \since Qbs 1.5
+
+ \unixproperty
+
+ A library name or full library path.
+
+ If defined, the value of this property 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.
+
+ On Apple platforms, the path may contain the following placeholders:
+
+ \list
+ \li \c @rpath -
+ Expands to paths defined by \c LC_RPATH Mach-O commands in
+ the current process executable or the referring libraries.
+ \li \c @executable_path -
+ Expands to the current process executable location.
+ \li \c @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{DYLD documentation} on dynamic library
+ install names.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::soVersion
+ \since Qbs 1.7
+
+ \unixproperty
+
+ The version number to be appended to the soname in ELF shared libraries.
+
+ \defaultvalue The major part of \l{Product::version}{product.version} if a
+ version is set, otherwise \c [].
+*/
+
+/*!
+ \qmlproperty bool cpp::useRPaths
+ \since Qbs 1.3
+
+ \unixproperty
+
+ If \c{false}, prevents the linker from writing \c rpaths to the binary.
+
+ \defaultvalue \c{true}
+*/
+
+/*!
+ \qmlproperty bool cpp::useRPathLink
+ \since Qbs 1.8
+
+ \unixproperty
+
+ Whether to use the \c{-rpath-link} linker option for transitive shared
+ objects.
+
+ \defaultvalue \c{true} on non-Darwin Unix platforms or when targeting
+ macOS 10.4.x and older.
+*/
+
+/*!
+ \qmlproperty string cpp::variantSuffix
+ \since Qbs 1.10
+
+ A suffix to add to a product's target name if that product is of the
+ \l{Product::type}{type} \c staticlibrary or \c dynamiclibrary.
+
+ On Darwin platforms, applications and loadable modules are also affected.
+
+ By default, this property is left empty on all platforms unless the product
+ is multiplexed over the \l{qbs::buildVariants}{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 \c [].
+
+ For example, building a dynamic library called \c MyLib that is multiplexed
+ over the \l{qbs::buildVariants}{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).
+
+ \defaultvalue Platform-specific.
+*/
+
+/*!
+ \qmlproperty string cpp::visibility
+
+ \unixproperty
+
+ The visibility level for exported symbols.
+
+ Possible values include: \c{"default"}, \c{"hidden"}, \c{"hiddenInlines"},
+ and \c{"minimal"}, which combines \c{"hidden"} and \c{"hiddenInlines"}.
+
+ \defaultvalue \c{"default"}
+*/
+
+/*!
+ \qmlproperty bool cpp::generateManifestFile
+ \since Qbs 1.5.0
+
+ \windowsproperty
+
+ Whether to auto-generate a manifest file and include it in the binary.
+
+ Set this property to \c false if you provide your own \c rc file.
+
+ \defaultvalue \c{true}
+*/
+
+/*!
+ \qmlproperty string cpp::windowsApiCharacterSet
+ \since Qbs 1.0.1
+
+ \windowsproperty
+
+
+ The character set used in the Win32 API.
+
+ The value \c "unicode" defines the preprocessor symbols \c UNICODE and
+ \c _UNICODE, \c "mbcs" defines \c _MBCS, and setting the value to
+ \c undefined will use the default character set.
+
+ \defaultvalue \c{"unicode"}
+*/
+
+/*!
+ \qmlproperty string cpp::windowsApiFamily
+ \since Qbs 1.10
+
+ \windowsproperty
+
+
+ The Windows API family that the application or library is targeting.
+
+ This value 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.
+
+ \defaultvalue Undefined, which lets the Windows SDK headers determine the
+ default.
+*/
+
+/*!
+ \qmlproperty stringList cpp::windowsApiAdditionalPartitions
+ \since Qbs 1.10
+
+ \windowsproperty
+
+ A list of additional Windows API partitions to enable in addition to the
+ ones implicitly enabled by the value of \l{cpp::}{windowsApiFamily}
+ (\c WINAPI_FAMILY).
+
+ This value is used when building Windows Store applications. For example,
+ setting \l{cpp::}{windowsApiFamily} to \c{"pc"} and this property to
+ \c{["phone"]} will allow you to create Windows Store applications that
+ target all Universal Windows Platform device families (\c "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.
+
+ \defaultvalue Undefined, which lets the Windows SDK headers determine
+ the default partitions based on the value of \c WINAPI_FAMILY.
+
+ \sa windowsApiFamily
+*/
+
+/*!
+ \qmlproperty bool cpp::requireAppContainer
+ \since Qbs 1.10
+
+ \windowsproperty
+
+ Whether the generated executable or dynamic-link library \e requires an
+ AppContainer execution environment. Set to \c true when creating
+ Universal Windows Platform applications.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::minimumWindowsVersion
+
+ \windowsproperty
+
+ A version number in the format \c{[major].[minor]} indicating the earliest
+ version of Windows that the product should run on.
+
+ Defines \c WINVER, \c _WIN32_WINNT, and \c _WIN32_WINDOWS, and applies a
+ version number to the linker flags \c /SUBSYSTEM and \c /OSVERSION for
+ MSVC or \c --major-subsystem-version, \c --minor-subsystem-version,
+ \c --major-os-version, and \c --minor-os-version for MinGW.
+
+ If left undefined, compiler defaults will be used.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpp::alwaysUseLipo
+ \since Qbs 1.9
+
+ Whether to always use \c lipo when combining Mach-O output files on
+ Apple platforms, even if there is only one CPU architecture. This value
+ should not normally need to be changed.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty var cpp::compilerDefinesByLanguage
+ \since Qbs 1.10
+
+ A \c{string} to \c{string} to \c{string} 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 This property will not be usable without also setting
+ \l{cpp::}{enableCompilerDefinesByLanguage}.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty pathList cpp::compilerIncludePaths
+ \since Qbs 1.6
+
+ A list of \c #include search paths that are used for all projects that are
+ using the current toolchain.
+
+ User project files usually do not set this property.
+
+ \defaultvalue Determined automatically by probing the compiler.
+*/
+
+/*!
+ \qmlproperty pathList cpp::compilerFrameworkPaths
+ \since Qbs 1.6
+
+ A list of framework search paths that are used for all projects that are
+ using the current toolchain.
+
+ User project files usually do not set this property.
+
+ \defaultvalue Determined automatically by probing the compiler.
+*/
+
+/*!
+ \qmlproperty pathList cpp::compilerLibraryPaths
+ \since Qbs 1.6
+
+ A list of library search paths that are used for all projects that are using
+ the current toolchain.
+
+ User project files usually do not set this property.
+
+ \defaultvalue Determined automatically by probing the compiler.
+*/
+
+/*!
+ \qmlproperty pathList cpp::distributionFrameworkPaths
+ \since Qbs 1.8
+
+ A list of distribution-specific framework search paths, prioritized after
+ \l{cpp::}{systemFrameworkPaths}.
+
+ Intended for use by module authors implementing support for new operating
+ systems or distributions.
+
+ User project files should not set this property.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty pathList cpp::distributionIncludePaths
+ \since Qbs 1.8
+
+ A list of distribution-specific include paths that are passed as system
+ include paths to the compiler, prioritized after
+ \l{cpp::}{systemIncludePaths}.
+
+ Intended for use by module authors implementing support for new operating
+ systems or distributions.
+
+ User project files should not set this property.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty pathList cpp::distributionLibraryPaths
+ \since Qbs 1.8
+
+ A list of distribution-specific library search paths.
+
+ Intended for use by module authors implementing support for new operating
+ systems or distributions.
+
+ User project files should not set this property.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList cpp::enableCompilerDefinesByLanguage
+ \since Qbs 1.10
+
+ A 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
+ \l{cpp::}{compilerDefinesByLanguage}.
+
+ Because this has performance implications, no languages are enabled by
+ default.
+ \nodefaultvalue
*/
diff --git a/doc/reference/modules/cpufeatures-module.qdoc b/doc/reference/modules/cpufeatures-module.qdoc
index 030424d45..468188bec 100644
--- a/doc/reference/modules/cpufeatures-module.qdoc
+++ b/doc/reference/modules/cpufeatures-module.qdoc
@@ -27,17 +27,16 @@
/*!
\contentspage index.html
- \page cpufeatures-module.html
- \ingroup list-of-modules
+ \qmltype cpufeatures
+ \inqmlmodule QbsModules
+ \since Qbs 1.10
- \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
+ The compiler rules in the \l{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
@@ -50,142 +49,172 @@
For example, disabling the property \c x86_sse2 would result in the GCC option
\c{-no-msse2}.
\endlist
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::arm_neon
+
+ Whether to use NEON instructions in ARM binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::arm_vfpv4
+
+ Whether to use VFPv4 instructions in ARM binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::mips_dsp
+
+ Whether to use DSP instructions in MIPS binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::mips_dspr2
+
+ Whether to use DSPr2 instructions in MIPS binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::x86_avx
+
+ Whether to use AVX instructions in x86 binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::x86_avx2
+
+ Whether to use AVX2 instructions in x86 binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::x86_avx512bw
+
+ Whether to use AVX-512-BW instructions in x86 binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::x86_avx512cd
+
+ Whether to use AVX-512-CD instructions in x86 binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::x86_avx512dq
+
+ Whether to use AVX-512-DQ instructions in x86 binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::x86_avx512er
+
+ Whether to use AVX-512-ER instructions in x86 binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::x86_avx512f
+
+ Whether to use AVX-512 instructions in x86 binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::x86_avx512ifma
+
+ Whether to use AVX-512-IFMA instructions in x86 binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::x86_avx512pf
+
+ Whether to use AVX-512-PF instructions in x86 binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::x86_avx512vbmi
+
+ Whether to use AVX-512-VBMI instructions in x86 binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::x86_avx512vl
+
+ Whether to use AVX-512-VL instructions in x86 binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::x86_f16c
+
+ Whether to use F16C instructions in x86 binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::x86_sse2
+
+ Whether to use SSE2 instructions in x86 binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::x86_sse3
+
+ Whether to use SSE3 instructions in x86 binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::x86_ssse3
+
+ Whether to use SSSE3 instructions in x86 binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::x86_sse4_1
+
+ Whether to use SSE4.1 instructions in x86 binaries.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool cpufeatures::x86_sse4_2
- \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
+ Whether to use SSE4.2 instructions in x86 binaries.
+ \nodefaultvalue
*/
diff --git a/doc/reference/modules/dmg-module.qdoc b/doc/reference/modules/dmg-module.qdoc
index 531cbec3d..c6b37fede 100644
--- a/doc/reference/modules/dmg-module.qdoc
+++ b/doc/reference/modules/dmg-module.qdoc
@@ -27,11 +27,10 @@
/*!
\contentspage index.html
- \page dmg-module.html
- \ingroup list-of-modules
+ \qmltype dmg
+ \inqmlmodule QbsModules
+ \since Qbs 1.9
- \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
@@ -61,272 +60,22 @@
dependencies that need to be separately installed nor do any binary blobs
need to be committed to your source repository.
- \section1 General Properties
+ \section2 Appearance 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
+ Appearance properties 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.
- 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
+ \section2 License Properties
- \section1 Advanced Properties
+ License properties 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 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
+ \section2 Relevant File Tags
+ \target filetags-dmg
- \section1 Relevant File Tags
+ The file tags determine how the tagged files are handled.
\table
\header
@@ -338,27 +87,336 @@
\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.
+ \li Tagged files are copied into the disk image. The
+ \l{dmg::}{sourceBase} property controls 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.
+ \li Tagged files are 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.
+ \li The tagged file is 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.
+ \li The tagged file is used as the background image of the directory as
+ shown in Finder when the DMG file is mounted.
\endtable
*/
+
+/*!
+ \qmlproperty string dmg::volumeName
+
+ The name of the disk image that is displayed in Finder when the DMG is
+ mounted.
+
+ \defaultvalue \l{Product::targetName}{product.targetName}
+*/
+
+/*!
+ \qmlproperty bool dmg::badgeVolumeIcon
+
+ Whether to render the user-supplied icon (\l{filetags-dmg}{"icns"}) 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.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty string dmg::format
+
+ The format to create the disk image in.
+
+ Allowed values include but are not limited to \c{"UDZO"}, \c{"UDBZ"}, and
+ \c{"ULFO"}.
+
+ \defaultvalue \c{"UDBZ"}
+*/
+
+/*!
+ \qmlproperty int dmg::compressionLevel
+
+ The \c zlib, \c bzip2, or \c lzfse compression level for UDZO, UDBZ, or ULFO
+ disk images.
+
+ \defaultvalue \c 9 in release mode, otherwise \c undefined.
+*/
+
+/*!
+ \qmlproperty string dmg::sourceBase
+
+ The base directory of the files that are going to be embedded in the DMG
+ (\l{filetags-dmg}{"dmg.input"}). The source base directory
+ is omitted from the target directory path of the DMG directory.
+
+ \defaultvalue The directory of the current file to be embedded, relative to
+ the product's source directory.
+*/
+
+/*!
+ \qmlproperty string dmg::backgroundColor
+
+ The background color of the disk image as seen when mounted in Finder.
+
+ For the full list of supported color names and formats, see the
+ \l{dmgbuild - Settings} documentation.
+
+ For more information about how to use an image for the background instead,
+ see \l{filetags-dmg}{"tiff"}.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int dmg::iconSize
+
+ The width and height of the file icons as seen when the disk image is
+ mounted in Finder.
+
+ \defaultvalue \c{128}
+*/
+
+/*!
+ \qmlproperty int dmg::windowX
+
+ The x position of the Finder window that displays the disk image contents
+ when it is mounted.
+
+ \defaultvalue \c{100}
+*/
+
+/*!
+ \qmlproperty int dmg::windowY
+
+ The y position of the Finder window that displays the disk image contents
+ when it is mounted.
+
+ \defaultvalue \c{100}
+*/
+
+/*!
+ \qmlproperty int dmg::windowWidth
+
+ The width of the Finder window that displays the disk image contents
+ when it is mounted.
+
+ \defaultvalue \c{640}
+*/
+
+/*!
+ \qmlproperty int dmg::windowHeight
+
+ The height of the Finder window that displays the disk image contents when
+ it is mounted.
+
+ \note The window height includes the height of the standard macOS title bar
+ (22 points).
+
+ \defaultvalue \c{480}
+*/
+
+/*!
+ \qmlproperty list dmg::iconPositions
+
+ A list of objects containing the \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 \l{filetags-dmg}{dmg.input}
+ file tag, you should use the \l{dmg::}{iconX} and \l{dmg::}{iconY}
+ properties instead.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int dmg::iconX
+
+ The 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 \l{filetags-dmg}
+ {dmg.input}. It 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 \l{dmg::}{iconPositions} property instead.
+
+ \defaultvalue \c{windowWidth / 2}
+*/
+
+/*!
+ \qmlproperty int dmg::iconY
+
+ The 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 \l{filetags-dmg}
+ {dmg.input}. It 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 \l{dmg::}{iconPositions} property instead.
+
+ \defaultvalue \c{windowHeight / 2}
+*/
+
+/*!
+ \qmlproperty string dmg::defaultLicenseLocale
+
+ The locale of the default license to display when there is no license whose
+ locale matches the system locale.
+
+ \defaultvalue \c{"en_US"}
+*/
+
+/*!
+ \qmlproperty string dmg::licenseLocale
+
+ The locale of the license file.
+
+ Defaults to a value guessed from the file path, specifically the base name
+ of any \c .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 \l{filetags-dmg}
+ {dmg.license.input}. It cannot be used at the product level to affect all
+ files.
+
+ \defaultvalue Determined automatically.
+*/
+
+/*!
+ \qmlproperty string dmg::licenseLanguageName
+
+ The name of the language associated with the license file, localized to that
+ language.
+
+ This property is only useful with artifacts tagged \l{filetags-dmg}
+ {dmg.license.input}. It cannot be used at the product level to affect all
+ files.
+
+ \defaultvalue \c{"English"}
+*/
+
+/*!
+ \qmlproperty string dmg::licenseAgreeButtonText
+
+ The text shown on the \e Agree button associated with the license file,
+ localized to the value of \l{dmg::}{licenseLanguageName}.
+
+ This property is only useful with artifacts tagged \l{filetags-dmg}
+ {dmg.license.input}. It cannot be used at the product level to affect all
+ files.
+
+ \defaultvalue \c{"Agree"}
+*/
+
+/*!
+ \qmlproperty string dmg::licenseDisagreeButtonText
+
+ The text shown on the \c Disagree button associated with the license file,
+ localized to the value of \l{dmg::}{licenseLanguageName}.
+
+ This property is only useful with artifacts tagged \l{filetags-dmg}
+ {dmg.license.input}. It cannot be used at the product level to affect all
+ files.
+
+ \defaultvalue \c{"Disagree"}
+*/
+
+/*!
+ \qmlproperty string dmg::licensePrintButtonText
+
+ The text shown on the \c Print button associated with the license file,
+ localized to the value of \l{dmg::}{licenseLanguageName}.
+
+ This property is only useful with artifacts tagged \l{filetags-dmg}
+ {dmg.license.input}. It cannot be used at the product level to affect all
+ files.
+
+ \defaultvalue \c{"Print"}
+*/
+
+/*!
+ \qmlproperty string dmg::licenseSaveButtonText
+
+ The text shown on the \e Save button associated with the license file,
+ localized to the value of \l{dmg::}{licenseLanguageName}.
+
+ This property is only useful with artifacts tagged \l{filetags-dmg}
+ {dmg.license.input}. It cannot be used at the product level to affect all
+ files.
+
+ \defaultvalue \c{"Save"}
+*/
+
+/*!
+ \qmlproperty string dmg::licenseInstructionText
+
+ An instruction text associated with the license file that will be shown on
+ the license dialog, localized to the value of
+ \l{dmg::}{licenseLanguageName}.
+
+ This property is only useful with artifacts tagged \l{filetags-dmg}
+ {dmg.license.input}. It cannot be used at the product level to affect all
+ files.
+
+ \defaultvalue \c{"If you agree with the terms of this license, press
+ \"Agree\" to install the software. If you do not agree, press
+ \"Disagree\"."}
+*/
+
+/*!
+ \qmlproperty string dmg::dmgSuffix
+
+ The file extension for disk images.
+
+ This should not normally need to be changed.
+
+ \defaultvalue \c{".dmg"}
+*/
+
+/*!
+ \qmlproperty string dmg::hdiutilPath
+
+ The path to the \c hdiutil binary used to perform disk image related
+ operations.
+
+ This should not normally need to be changed.
+
+ \defaultvalue \c{"/usr/bin/hdiutil"}
+*/
+
+/*!
+ \qmlproperty string dmg::textutilPath
+
+ The path to the \c textutil binary used to convert license agreement files
+ to rich text format.
+
+ This should not normally need to be changed.
+
+ \defaultvalue \c{"/usr/bin/textutil"}
+*/
diff --git a/doc/reference/modules/ib-module.qdoc b/doc/reference/modules/ib-module.qdoc
index f3d958da1..d6f8d3248 100644
--- a/doc/reference/modules/ib-module.qdoc
+++ b/doc/reference/modules/ib-module.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -27,11 +27,10 @@
/*!
\contentspage index.html
- \page ib-module.html
- \ingroup list-of-modules
+ \qmltype ib
+ \inqmlmodule QbsModules
+ \since Qbs 1.1
- \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,
@@ -39,164 +38,10 @@
This module is only available on Apple platforms.
- \section1 General Properties
+ \section2 Relevant File Tags
+ \target filetags-ib
- \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
+ The file tags determine how the tagged directories and files are handled.
\table
\header
@@ -208,40 +53,230 @@
\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.
+ \li Tagged directories are compiled into compiled asset catalog
+ archives (\c .car files) on supported platforms, or a collection of
+ loose resource files. The resulting files will be automatically
+ tagged \l{filetags-bundle}{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.
+ \li Tagged directories are compiled into Apple ICNS files. The resulting
+ files will be automatically tagged \l{filetags-bundle}
+ {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.
+ \li Tagged "NIB" and "XIB" files will be compiled. The output may be a
+ flat file or a bundle (directory structure). The resulting
+ files will be automatically tagged \l{filetags-bundle}
+ {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.
+ \li Tagged PNG files 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 \l{filetags-dmg}{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.
+ \li Tagged storyboard files will be compiled. The output may be a flat
+ file or a bundle (directory structure). The resulting
+ files will be automatically tagged \l{filetags-bundle}
+ {bundle.input}. If the current product is a bundle, the files will
+ be included in the bundle's resources directory.
\endtable
*/
+
+/*!
+ \qmlproperty bool ib::warnings
+
+ Whether to print warnings when compiling.
+
+ Does not apply to icon sets.
+
+ \defaultvalue \c{true}
+*/
+
+/*!
+ \qmlproperty bool ib::errors
+
+ Whether to print errors when compiling.
+
+ Does not apply to icon sets.
+
+ \defaultvalue \c{true}
+*/
+
+/*!
+ \qmlproperty bool ib::notices
+
+ Whether to print notifications when compiling.
+
+ Does not apply to icon sets.
+
+ \defaultvalue \c{true}
+*/
+
+/*!
+ \qmlproperty stringList ib::flags
+
+ Additional flags to pass to the underlying tool (\c ibtool, \c actool,
+ \c iconutil).
+
+ \nodefaultvalue
+
+ \defaultvalue \c{true}
+*/
+
+/*!
+ \qmlproperty string ib::ibtoolName
+ \since Qbs 1.3
+
+ The name of the \c ibtool binary used to compile NIBs and storyboards.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue \c{"ibtool"}
+*/
+
+/*!
+ \qmlproperty string ib::ibtoolPath
+ \since Qbs 1.3
+
+ The directory where the \c ibtool binary is located.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue \c{ibtoolName}
+*/
+
+/*!
+ \qmlproperty bool ib::flatten
+
+ 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.
+
+ \defaultvalue \c{true}
+*/
+
+/*!
+ \qmlproperty string ib::module
+ \since Qbs 1.3
+
+ Sets the name of the module that the NIB or storyboard is a part of.
+
+ Requires Xcode 6 or newer.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool ib::autoActivateCustomFonts
+ \since Qbs 1.3
+
+ Instructs the \c ibtool compiler to add custom fonts to the application's
+ \c Info.plist when compiling XIBs and storyboards, which will cause the
+ fonts to activate upon application launch.
+
+ Requires Xcode 6 or newer.
+
+ \defaultvalue \c{true}
+*/
+
+/*!
+ \qmlproperty string ib::actoolName
+ \since Qbs 1.3
+
+ The name of the \c actool binary used to compile asset catalogs.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue \c{"actool"}
+*/
+
+/*!
+ \qmlproperty string ib::actoolPath
+ \since Qbs 1.3
+
+ The directory where the \c actool binary is located.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue \c{actoolName}
+*/
+
+/*!
+ \qmlproperty string ib::appIconName
+ \since Qbs 1.3
+
+ The name of the resource in the asset catalog that will be used as the
+ application's icon.
+
+ Used to generate the partial \c Info.plist which will be merged into the
+ resulting app.
+
+ If this property is \c{undefined}, no application icon will be specified.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string ib::launchImageName
+ \since Qbs 1.3
+
+ The name of the resource in the asset catalog that will be used as the
+ application's launch image.
+
+ Used to generate the partial \c Info.plist which will be merged into the
+ resulting app.
+
+ If this property is \c{undefined}, no launch image will be specified.
+
+ This property is specific to iOS.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool ib::compressPngs
+ \since Qbs 1.3
+
+ Whether to compress PNG image files when building asset catalogs.
+
+ \defaultvalue \c{true}
+*/
+
+/*!
+ \qmlproperty string ib::iconutilName
+ \since Qbs 1.3
+
+ The name of the \c iconutil binary used to compile icon sets.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue \c{"iconutil"}
+*/
+
+/*!
+ \qmlproperty string ib::iconutilPath
+ \since Qbs 1.3
+
+ The directory where the \c iconutil binary is located.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue \c{iconutilName}
+*/
diff --git a/doc/reference/modules/ico-module.qdoc b/doc/reference/modules/ico-module.qdoc
index f94065f1c..ccff608ef 100644
--- a/doc/reference/modules/ico-module.qdoc
+++ b/doc/reference/modules/ico-module.qdoc
@@ -27,81 +27,22 @@
/*!
\contentspage index.html
- \page ico-module.html
- \ingroup list-of-modules
+ \qmltype ico
+ \inqmlmodule QbsModules
+ \since Qbs 1.11
- \title Module ico
- \since 1.11
\brief Provides support for building ICO (.ico) and CUR (.cur) files.
The \c ico module contains properties and rules for building
Microsoft Windows Icon (.ico) and Microsoft Windows Cursor (.cur) files.
\note This module relies on the \c icotool command-line tool from the
- icotools package, which must be installed separately and found in the
- \c PATH or an appropriate system binaries directory for your system (e.g.
- \c /usr/bin or \c /usr/local/bin).
+ \c icotools package, which must be installed separately and found in the
+ \c PATH or an appropriate system binaries directory for your system (for
+ example, \c /usr/bin or \c /usr/local/bin).
- \section1 General Properties
-
- \table
- \header
- \li Property
- \li Type
- \li Since
- \li Default
- \li Description
- \row
- \li cursorHotspotX
- \li \c{int}
- \li 1.11
- \li \c{undefined}
- \li Cursor hotspot X coordinate. Only relevant when building .cur files.
- This must be set individually for each input PNG file.
- \note icoutils version 0.32 or greater is required to set the
- hotspot in cursor files with multiple images.
- \row
- \li cursorHotspotY
- \li \c{int}
- \li 1.11
- \li \c{undefined}
- \li Cursor hotspot Y coordinate. Only relevant when building .cur files.
- This must be set individually for each input PNG file.
- \note icoutils version 0.32 or greater is required to set the
- hotspot in cursor files with multiple images.
- \row
- \li raw
- \li \c{bool}
- \li 1.11
- \li \c{false}
- \li Whether to store the input file as a raw PNG,
- as supported in Windows Vista.
- Only relevant when building .ico files.
- This must be set individually for each input PNG file.
- It is only recommended to set this value for icon sizes
- larger than or equal to 256x256.
- \endtable
-
- \section1 Advanced Properties
-
- \table
- \header
- \li Property
- \li Type
- \li Since
- \li Default
- \li Description
- \row
- \li icotoolFilePath
- \li \c{string}
- \li 1.11
- \li determined automatically
- \li Full path of the \c icotool binary.
- This should not normally need to be changed if \QBS was able to
- automatically detect it.
- \endtable
-
- \section1 Relevant File Tags
+ \section2 Relevant File Tags
+ \target filetags-ico
\table
\header
@@ -126,6 +67,58 @@
\li \c{"*.png"}
\li 1.11
\li Source files with this tag indicate PNG files
- which are used as inputs to create ico or cur files.
+ which are used as inputs to create icon or cursor files.
\endtable
*/
+
+/*!
+ \qmlproperty int ico::cursorHotspotX
+
+ The cursor hotspot x coordinate. Only relevant when building .cur files.
+
+ This property must be set individually for each input PNG file.
+
+ \note \c icoutils version 0.32 or greater is required to set the
+ hotspot in cursor files with multiple images.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int ico::cursorHotspotY
+
+ The cursor hotspot y coordinate. Only relevant when building .cur files.
+
+ This property must be set individually for each input PNG file.
+
+ \note \c icoutils version 0.32 or greater is required to set the
+ hotspot in cursor files with multiple images.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool ico::raw
+
+ Whether to store the input file as a raw PNG, as supported in Windows Vista.
+
+ Only relevant when building .ico files.
+
+ This property must be set individually for each input PNG file.
+
+ It is recommended to set this value only for icon sizes larger than or equal
+ to 256x256.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty string ico::icotoolFilePath
+
+ The full path of the \c icotool binary.
+
+ This property should not normally need to be changed if \QBS was able to
+ automatically detect it.
+
+ \defaultvalue Determined automatically.
+*/
diff --git a/doc/reference/modules/innosetup-module.qdoc b/doc/reference/modules/innosetup-module.qdoc
index 416ccb89b..ec36c4963 100644
--- a/doc/reference/modules/innosetup-module.qdoc
+++ b/doc/reference/modules/innosetup-module.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -27,117 +27,25 @@
/*!
\contentspage index.html
- \page innosetup-module.html
- \ingroup list-of-modules
+ \qmltype innosetup
+ \inqmlmodule QbsModules
+ \since Qbs 1.7
- \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.
+ The \c innosetup module contains properties and rules for building EXE
+ setup packages with \l{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.
+ \note A typical Inno Setup Script includes an \c OutputBaseFilename command
+ to set the filename of the generated installer executable. However, \QBS
+ overrides any \c OutputBaseFilename commands found in the script by passing
+ the \c /F option to the ISCC compiler, and therefore, you must use
+ the \l{Product::targetName}{Product.targetName} property to set the
+ filename. \QBS also overrides any \c Output commands by passing the \c /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
+ \section2 Relevant File Tags
+ \target filetags-innosetup
\table
\header
@@ -156,12 +64,131 @@
\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.
+ (as well as the \l{filetags-cpp}{"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.
+ \li The rule that creates Inno Setup executable files will be dependent
+ on artifacts with this tag.
\endtable
*/
+
+/*!
+ \qmlproperty stringList innosetup::defines
+
+ A list of preprocessor macros that get passed to the compiler.
+
+ To set macro values, use the following syntax:
+
+ \badcode
+ innosetup.defines: ["USE_COLORS=1", 'COLOR_STR="blanched almond"']
+ \endcode
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty pathList innosetup::includePaths
+
+ A list of include paths.
+
+ Relative paths are considered to be relative to the \c .qbs product file
+ they are used in.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool innosetup::verboseOutput
+
+ Whether to display verbose output from the Inno Setup compiler.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty stringList innosetup::compilerFlags
+
+ A list of additional flags for the Inno Setup compiler.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string innosetup::version
+
+ The Inno Setup version.
+
+ Consists of three numbers separated by dots, for instance \c {"5.5.9"}.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int innosetup::versionMajor
+
+ The Inno Setup major version.
+
+ \defaultvalue \c{versionParts[0]}
+*/
+
+/*!
+ \qmlproperty int innosetup::versionMinor
+
+ The Inno Setup minor version.
+
+ \defaultvalue \c{versionParts[1]}
+*/
+
+/*!
+ \qmlproperty list innosetup::versionParts
+
+ 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].
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty int innosetup::versionPatch
+
+ The Inno Setup patch level.
+
+ \defaultvalue \c{versionParts[2]}
+*/
+
+/*!
+ \qmlproperty path innosetup::toolchainInstallPath
+
+ The Inno Setup installation directory.
+
+ Determined by searching the registry for the latest version.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue Determined automatically.
+*/
+
+/*!
+ \qmlproperty string innosetup::compilerName
+
+ The name of the compiler binary.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue \c{"ISCC.exe"}
+*/
+
+/*!
+ \qmlproperty string innosetup::compilerPath
+
+ The full path of the compiler binary.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue \c{compilerName}
+*/
diff --git a/doc/reference/modules/java-module.qdoc b/doc/reference/modules/java-module.qdoc
index 663b65ec3..d72848694 100644
--- a/doc/reference/modules/java-module.qdoc
+++ b/doc/reference/modules/java-module.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -27,151 +27,16 @@
/*!
\contentspage index.html
- \page java-module.html
- \ingroup list-of-modules
+ \qmltype java
+ \inqmlmodule QbsModules
+ \since Qbs 1.4
- \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
+ \section2 Relevant File Tags
+ \target filetags-java
\table
\header
@@ -200,9 +65,181 @@
\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.
+ \li The contents of files with this tag will be aggregated with the
+ values in \l{java::}{manifest}.
\endtable
+*/
+
+/*!
+ \qmlproperty stringList java::additionalClassPaths
+
+ The locations beside this product's class output path to consider when
+ compiling.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList java::additionalCompilerFlags
+
+ A list of compiler flags not covered by any of the properties in this
+ module.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList java::additionalJarFlags
+
+ A list of archiver flags not covered by any of the properties in this
+ module.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList java::bootClassPaths
+
+ A list of non-standard bootstrap class files.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string java::compilerFilePath
+
+ The command to invoke when compiling Java sources.
+
+ \defaultvalue \l compilerName, prefixed by \l jdkPath if it is defined.
+*/
+
+/*!
+ \qmlproperty string java::compilerName
+
+ The file name of the Java compiler.
+
+ \defaultvalue \c{"javac"}
+*/
+
+/*!
+ \qmlproperty bool java::enableWarnings
+
+ Whether warnings are emitted when compiling Java sources.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty string java::interpreterFilePath
+
+ The command to invoke when executing Java code.
+
+ \defaultvalue \l interpreterName, prefixed by \l jdkPath if it is defined.
+*/
+
+/*!
+ \qmlproperty string java::interpreterName
+
+ The file name of the Java interpreter.
+
+ \defaultvalue \c{"java"}
+*/
+
+/*!
+ \qmlproperty string java::jarFilePath
+
+ The command to run when creating or extracting \c jar files.
+
+ \defaultvalue \l jarName, prefixed by \l jdkPath if it is defined.
+*/
+
+/*!
+ \qmlproperty string java::jarName
+
+ The file name of the \c jar tool.
+
+ \defaultvalue \c{"jar"}
+*/
+
+/*!
+ \qmlproperty pathList java::jdkIncludePaths
+ \since Qbs 1.4.1
+
+ A list of include paths for native header files.
+
+ Applications using JNI to interface with native code should add these paths
+ to \l{cpp::includePaths}{cpp.includePaths}.
+
+ \defaultvalue Determined automatically.
+*/
+
+/*!
+ \qmlproperty string java::jdkPath
+
+ 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
+
+ \defaultvalue Determined automatically.
+*/
+
+/*!
+ \qmlproperty string java::languageVersion
+
+ The Java language version to interpret source code as.
+
+ If left undefined, the compiler will use its default.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string java::runtimeVersion
+
+ The version of the Java runtime to generate compatible bytecode for.
+
+ If left undefined, the compiler will use its default.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty object java::manifest
+ \since Qbs 1.4.2
+
+ 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 \l{filetags-java}{"java.manifest"}.
+
+ If this property and a manifest file contain the same key, this property
+ will take precedence. If left undefined, this property will not be taken
+ into account.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList java::manifestClassPath
+
+ A list of entries to add to the manifest's Class-Path when building a JAR.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool java::warningsAsErrors
+
+ If this property is \c true, the compiler will abort where it would normally
+ emit a warning.
+ \defaultvalue \c false
*/
diff --git a/doc/reference/modules/lexyacc-module.qdoc b/doc/reference/modules/lexyacc-module.qdoc
index 1b960f605..c4991bdbf 100644
--- a/doc/reference/modules/lexyacc-module.qdoc
+++ b/doc/reference/modules/lexyacc-module.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -27,81 +27,18 @@
/*!
\contentspage index.html
- \page lex_yacc-module.html
- \ingroup list-of-modules
+ \qmltype lex_yacc
+ \inqmlmodule QbsModules
+ \since Qbs 1.6
- \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
+ \section2 Relevant File Tags
+ \target filetags-lexyacc
\table
\header
@@ -120,5 +57,76 @@
\li 1.6
\li Source files with this tag serve as inputs to the \c yacc tool.
\endtable
+*/
+
+/*!
+ \qmlproperty bool lex_yacc::enableCompilerWarnings
+ \since Qbs 1.8
+
+ Whether compiler warnings are displayed.
+
+ 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.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty string lex_yacc::lexBinary
+
+ The file path of the \c lex tool.
+
+ \defaultvalue \c{"lex"}
+*/
+
+/*!
+ \qmlproperty stringList lex_yacc::lexFlags
+
+ Additional command-line options for the \c lex tool.
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty string lex_yacc::outputTag
+
+ The file tag for the generated scanner and parser sources.
+
+ Use \l{filetags-cpp}{"cpp"} if you want to use a C++ compiler on them.
+
+ \defaultvalue \l{filetags-cpp}{"c"}
+*/
+
+/*!
+ \qmlproperty bool lex_yacc::uniqueSymbolPrefix
+
+ If this property is \c true, the prefix \c yy normally used for the
+ generated lexer and parser functions is 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 that the associated lexer and scanner
+ source files 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.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty string lex_yacc::yaccBinary
+
+ The file path of the \c yacc tool.
+
+ \defaultvalue \c{"yacc"}
+*/
+
+/*!
+ \qmlproperty stringList lex_yacc::yaccFlags
+
+ Additional command-line options for the \c yacc tool.
+ \defaultvalue \c []
*/
diff --git a/doc/reference/modules/nodejs-module.qdoc b/doc/reference/modules/nodejs-module.qdoc
index 447fb6be4..0b56ba636 100644
--- a/doc/reference/modules/nodejs-module.qdoc
+++ b/doc/reference/modules/nodejs-module.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -27,32 +27,22 @@
/*!
\contentspage index.html
- \page nodejs-module.html
- \ingroup list-of-modules
+ \qmltype nodejs
+ \inqmlmodule QbsModules
+ \since Qbs 1.3
- \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.
+ The \c nodejs module contains support for running \l{Node.js} applications
+ from \QBS.
+*/
+
+/*!
+ \qmlproperty path Node.js::applicationFile
- \section1 General Properties
+ 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.
- \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
+ \nodefaultvalue
*/
diff --git a/doc/reference/modules/nsis-module.qdoc b/doc/reference/modules/nsis-module.qdoc
index c66add6d4..2e21b4656 100644
--- a/doc/reference/modules/nsis-module.qdoc
+++ b/doc/reference/modules/nsis-module.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -27,137 +27,24 @@
/*!
\contentspage index.html
- \page nsis-module.html
- \ingroup list-of-modules
+ \qmltype nsis
+ \inqmlmodule QbsModules
+ \since Qbs 1.2
- \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.
+ for Windows using the Nullsoft Scriptable Install System (NSIS).
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.
+ \note A typical NSIS script includes an \c OutFile command to set the
+ filename of the generated installer executable. However, \QBS overrides any
+ \c OutFile commands found in the script, and therefore, you must use the
+ \l{Product::targetName}{product.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
+ \section2 Relevant File Tags
+ \target filetags-nsis
\table
\header
@@ -189,3 +76,159 @@
with this tag.
\endtable
*/
+
+/*!
+ \qmlproperty stringList nsis::defines
+
+ A list of preprocessor macros that get passed to the compiler.
+
+ To set macro values, use the following syntax:
+
+ \badcode
+ cpp.defines: ["USE_COLORS=1", 'COLOR_STR="blanched almond"']
+ \endcode
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool nsis::disableConfig
+
+ Whether to exclude \c nsisconf.nsh.
+
+ Generally, you do not need to set this property.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty bool nsis::enableQbsDefines
+
+ Whether to define preprocessor macros corresponding to the values from the
+ \l{Project}{project} and \l{Product}{product} objects.
+
+ When building a 64-bit package, the preprocessor variable \c{Win64} will
+ also be defined.
+
+ \defaultvalue \c{true}
+*/
+
+/*!
+ \qmlproperty string nsis::warningLevel
+
+ The severity of the 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 the NSIS verbosity levels 0 through 4, inclusive. \c{normal}
+ corresponds to the default level.
+
+ \defaultvalue \c{"normal"}
+*/
+
+/*!
+ \qmlproperty stringList nsis::compilerFlags
+
+ A list of additional flags for the NSIS compiler.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string nsis::compressor
+
+ The compression algorithm used to compress files and data in the installer.
+
+ Setting this property overrides any \c 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"}.
+
+ \defaultvalue \c{"default"}
+*/
+
+/*!
+ \qmlproperty string nsis::version
+
+ The NSIS version. Consists of four numbers separated by dots. For example,
+ \c "2.46.0.0".
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int nsis::versionMajor
+
+ The NSIS major version.
+
+ \defaultvalue \c{versionParts[0]}
+*/
+
+/*!
+ \qmlproperty int nsis::versionMinor
+
+ The NSIS minor version.
+
+ \defaultvalue \c{versionParts[1]}
+*/
+
+/*!
+ \qmlproperty list nsis::versionParts
+
+ The NSIS version as a list.
+
+ For example, the NSIS version 2.46.0.0 would correspond to a value of
+ \c[2, 46, 0, 0].
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty int nsis::versionPatch
+
+ The NSIS patch level.
+
+ \defaultvalue \c{versionParts[2]}
+*/
+
+/*!
+ \qmlproperty int nsis::versionBuild
+
+ The fourth NSIS version number component.
+
+ \defaultvalue \c{versionParts[3]}
+*/
+
+/*!
+ \qmlproperty path nsis::toolchainInstallPath
+
+ The NSIS installation directory.
+
+ Determined by searching from the known registry keys and known installation
+ paths until a match is found.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue Determined automatically.
+*/
+
+/*!
+ \qmlproperty string nsis::compilerName
+
+ The name of the compiler binary.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue \c{"makensis"}
+*/
+
+/*!
+ \qmlproperty string nsis::compilerPath
+
+ The directory where the compiler binary is located.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue \l{nsis::}{compilerName}
+*/
diff --git a/doc/reference/modules/qbs-module.qdoc b/doc/reference/modules/qbs-module.qdoc
index a0069bea2..d58902701 100644
--- a/doc/reference/modules/qbs-module.qdoc
+++ b/doc/reference/modules/qbs-module.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -27,360 +27,496 @@
/*!
\contentspage list-of-modules.html
- \page qbs-module.html
- \ingroup list-of-modules
+ \qmltype qbs
+ \inqmlmodule QbsModules
+ \since Qbs 1.0
- \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 targetPlatform
- \li \c{stringList}
- \li 1.11
- \li \c{undefined}
- \li Specifies the OS you want to build the project for. This is typically set in a profile
- or for a particular product where the target OS is always known (such as an Apple Watch
- app written in native code). You should generally treat this property as \e{write-only}
- and avoid using it to test for the current target OS. Instead, use the
- \c targetOS property for conditionals. For example, instead of:
- \c{(qbs.targetPlatform === "macos" || qbs.targetPlatform === "ios" ||
- qbs.targetPlatform === "tvos" || qbs.targetPlatform === "watchos")},
- use \c{qbs.targetOS.contains("darwin")}. However, there are some cases when using
- targetPlatform would be acceptable, such as when the resulting condition would be
- simpler while still being correct: \c{(qbs.targetPlatform === "linux")} versus
- \c{(qbs.targetOS.contains("linux") && !qbs.targetOS.contains("android"))}.
- Possible values include one the following:
- \c{"aix"},
- \c{"android"},
- \c{"freebsd"},
- \c{"haiku"},
- \c{"hpux"},
- \c{"hurd"},
- \c{"integrity"},
- \c{"ios"},
- \c{"ios-simulator"},
- \c{"linux"},
- \c{"macos"},
- \c{"netbsd"},
- \c{"openbsd"},
- \c{"qnx"},
- \c{"solaris"},
- \c{"tvos"},
- \c{"tvos-simulator"},
- \c{"vxworks"},
- \c{"watchos"},
- \c{"watchos-simulator"},
- \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 toolchainType
- \li \c{string}
- \li 1.11
- \li determined automatically
- \li Specifies the toolchain that is going to be used for this build.
- You should generally treat this property as \e{write-only}
- and avoid using it to test for the current toolchain. Instead, use the
- \c toolchain property for conditionals. For example, instead of:
- \c{(qbs.toolchainType === "xcode" || qbs.toolchainType === "clang" ||
- qbs.toolchainType === "gcc")},
- use \c{qbs.toolchain.contains("gcc")}. However, there are some cases when using
- toolchainType would be acceptable, such as when the resulting condition would be
- simpler while still being correct: \c{(qbs.toolchainType === "gcc")} versus
- \c{(qbs.toolchain.contains("gcc") && !qbs.toolchain.contains("clang"))}.
- Typical values include:
- \c{"gcc"}, \c{"clang"}, \c{"mingw"}, \c{"msvc"}, \c{"xcode"}
- \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 hostPlatform
- \li \c{string}
- \li 1.11
- \li determined automatically
- \li Do not use this property.
- \row
- \li targetOS
- \li \c{stringList}
- \li 1.0
- \li \c{undefined}
- \li Specifies the OS you want to build the project for.
- You should use this property to test for a particular OS or OS family in conditionals.
- Do not use \c targetPlatform for this purpose. Possible values include one or more of:
- \c{"bsd"}, \c{"darwin"}, and \c{"unix"}, in
- addition to the possible values of \c targetPlatform.
- \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{"llvm"} in addition to the possible values of
- \c{toolchainType}.
- \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{<build dir>/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
+ \section2 Installation Properties
+
+ For more information about the properties that are specific to the \QBS
+ installation mechanism, see \l{Installing Files}.
+
+ \section2 Multiplexing Properties
+
+ The following properties are specific to \l{Multiplexing}
+ {product multiplexing}:
+
+ \list
+ \li \l{qbs::}{architectures}
+ \li \l{qbs::}{buildVariants}
+ \li \l{qbs::}{profiles}
+ \endlist
+*/
+
+/*!
+ \qmlproperty string qbs::configurationName
+ \since Qbs 1.6
+
+ The name of the current build configuration.
+
+ \defaultvalue \c{"default"}
+*/
+
+/*!
+ \qmlproperty string qbs::buildVariant
+
+ The name of the build variant for the current build.
+
+ \defaultvalue \c{"debug"}
+*/
+
+/*!
+ \qmlproperty bool qbs::debugInformation
+
+ Whether to generate debug information.
+
+ \defaultvalue \c{true} for debug builds, \c{false} otherwise.
+*/
+
+/*!
+ \qmlproperty bool qbs::enableDebugCode
+
+ Whether to compile debug code in the product.
+
+ Typically, this property is enabled for debug builds and disabled for
+ release builds.
+
+ \defaultvalue \c{true} for debug builds, \c{false} otherwise.
+*/
+
+/*!
+ \qmlproperty string qbs::optimization
+
+ The general type of optimization that should be performed by all toolchains.
+
+ Allowed values are:
+
+ \list
+ \li \c{"fast"}
+ \li \c{"none"}
+ \li \c{"small"}
+ \endlist
+
+ \defaultvalue \c{"none"} for debug builds, \c{"fast"} for release builds.
+*/
+
+/*!
+ \qmlproperty stringList qbs::targetPlatform
+ \since 1.11
+
+ The OS you want to build the project for.
+
+ This property is typically set in a profile or for a particular product
+ where the target OS is always known (such as an Apple Watch app written in
+ native code).
+
+ You should generally treat this property as \e{write-only} and avoid using
+ it to test for the current target OS. Instead, use the \l{qbs::}{targetOS}
+ property for conditionals. For example, instead of:
+
+ \code
+ qbs.targetPlatform === "macos" || qbs.targetPlatform === "ios" || qbs.targetPlatform === "tvos" || qbs.targetPlatform === "watchos"
+ \endcode
+
+ use
+
+ \code
+ qbs.targetOS.contains("darwin")
+
+ \endcode
+
+ However, in some cases using \c targetPlatform would be acceptable, such as
+ when the resulting condition would be simpler while still being correct:
+
+ \code
+ qbs.targetPlatform === "linux"
+ \endcode
+
+ versus
+ \code
+ qbs.targetOS.contains("linux") && !qbs.targetOS.contains("android")
+ \endcode
+
+ The possible values include one or more of the following:
+
+ \list
+ \li \c{"aix"}
+ \li \c{"android"}
+ \li \c{"freebsd"}
+ \li \c{"haiku"}
+ \li \c{"hpux"}
+ \li \c{"hurd"}
+ \li \c{"integrity"}
+ \li \c{"ios"}
+ \li \c{"ios-simulator"}
+ \li \c{"linux"}
+ \li \c{"lynx"}
+ \li \c{"macos"}
+ \li \c{"netbsd"}
+ \li \c{"openbsd"}
+ \li \c{"qnx"}
+ \li \c{"solaris"}
+ \li \c{"tvos"}
+ \li \c{"tvos-simulator"}
+ \li \c{"vxworks"}
+ \li \c{"watchos"}
+ \li \c{"watchos-simulator"}
+ \li \c{"windows"}
+ \endlist
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string qbs::architecture
+
+ The target platform's processor architecture.
+
+ \c{undefined} indicates that the target platform is architecture-independent
+ (for example the CLR or JVM).
+
+ This property is typically set in a profile.
+
+ Commonly used values are: \c{"x86"}, \c{"x86_64"}, and \c{"arm"}.
+
+ \nodefaultvalue
*/
+/*!
+ \qmlproperty string qbs::toolchainType
+ \since Qbs 1.11
+
+ The toolchain that is going to be used for this build.
+
+ You should generally treat this property as \e{write-only} and avoid using
+ it to test for the current toolchain. Instead, use the \l{qbs::}{toolchain}
+ property for conditionals.
+
+ For example, instead of:
+
+ \code
+ (qbs.toolchainType === "xcode" || qbs.toolchainType === "clang" || qbs.toolchainType === "gcc")
+ \endcode
+
+ use:
+
+ \code
+ qbs.toolchain.contains("gcc")
+ \endcode
+
+ However, there are some cases when using \c toolchainType would be
+ acceptable, such as when the resulting condition would be simpler while
+ still being correct:
+
+ \code
+ (qbs.toolchainType === "gcc")
+ \endcode
+
+ versus:
+
+ \code
+ (qbs.toolchain.contains("gcc") && !qbs.toolchain.contains("clang"))
+ \endcode
+
+ Typical values include: \c{"gcc"}, \c{"clang"}, \c{"mingw"}, \c{"msvc"}, and
+ \c{"xcode"}.
+
+ \defaultvalue Determined automatically.
+*/
+
+/*!
+ \qmlproperty string qbs::sysroot
+
+ The \c sysroot of the target platform.
+
+ This property is typically set in a profile for cross-compiling.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string qbs::pathListSeparator
+
+ The platform-specific separator for a path list that is used in environment
+ variables or other contexts.
+
+ \defaultvalue \c{";"} on Windows, \c{":"} on Unix.
+*/
+
+/*!
+ \qmlproperty string qbs::nullDevice
+ \since Qbs 1.4.2
+
+ The platform-specific file path corresponding to the null device.
+
+ \defaultvalue \c{"NUL"} on Windows, \c{"/dev/null"} on Unix.
+*/
+
+/*!
+ \qmlproperty path qbs::shellPath
+ \since Qbs 1.5
+
+ 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}),
+ On Unix-like platforms, this is \c{/bin/sh}.
+
+ \defaultvalue \c{"%COMSPEC%"} on Windows, \c{"/bin/sh"} on Unix
+*/
+
+/*!
+ \qmlproperty stringList qbs::hostOS
+
+ 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 \l{qbs::}{targetOS},
+ even though some of them may not be supported.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string qbs::hostOSVersion
+ \readonly
+ \since Qbs 1.2
+
+ The host operating system version. Currently, only defined for Windows and
+ Apple platforms.
+
+ Consists of two or three numbers separated by dots. For example, \c "10.9"
+ or \c "6.3.9600".
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string qbs::hostOSBuildVersion
+ \readonly
+ \since Qbs 1.2
+
+ 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 \l{qbs::}{versionPatch}. On Apple platforms, this is a standard build
+ number in the Apple versioning scheme. For example, \c "13C64".
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int qbs::hostOSVersionMajor
+ \readonly
+ \since Qbs 1.2
+
+ The host operating system major version.
+
+ \defaultvalue \c{hostOSVersionParts[0]}
+*/
+
+/*!
+ \qmlproperty int qbs::hostOSVersionMinor
+ \since Qbs 1.2
+
+ The host operating system minor version.
+
+ \defaultvalue \c{hostOSVersionParts[1]}
+*/
+
+/*!
+ \qmlproperty list qbs::hostOSVersionParts
+ \readonly
+ \since Qbs 1.2
+
+ The host operating system version as a list.
+
+ For example, Windows 8.1 (version 6.3.9600) would correspond to a value of
+ \c[6, 3, 9600].
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty int qbs::hostOSVersionPatch
+ \readonly
+ \since Qbs 1.2
+
+ The host operating system patch level.
+
+ \defaultvalue \c{hostOSVersionParts[2]}
+*/
+
+/*!
+ \qmlproperty string qbs::hostPlatform
+ \since Qbs 1.11
+
+ Do not use this property.
+
+ \defaultvalue Determined automatically.
+*/
+
+/*!
+ \qmlproperty stringList qbs::targetOS
+
+ Specifies the OS you want to build the project for.
+
+ Use this property to test for a particular OS or OS family in conditionals.
+ Do not use \l{qbs::}{targetPlatform} for this purpose.
+
+ Possible values include one or more of \c{"bsd"}, \c{"darwin"}, and
+ \c{"unix"}, in addition to the possible values of \l{qbs::}{targetPlatform}.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList qbs::toolchain
+
+ The attributes of the toolchain that is going to be used for this build.
+
+ Typical values include \c{"llvm"}, in addition to the possible values of
+ \l{qbs::}{toolchainType}.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string qbs::version
+ \readonly
+ \since Qbs 1.4.1
+
+ The version number of \QBS as a string. For example, \c "1.4.1".
+*/
+
+/*!
+ \qmlproperty int qbs::versionMajor
+ \readonly
+ \since Qbs 1.4.1
+
+ The major version number of \QBS.
+*/
+
+/*!
+ \qmlproperty int qbs::versionMinor
+ \readonly
+ \since Qbs 1.4.1
+
+ The minor version number of \QBS.
+*/
+
+/*!
+ \qmlproperty int qbs::versionPatch
+ \readonly
+ \since Qbs 1.4.1
+
+ The patch version number of \QBS.
+*/
+
+/*!
+ \qmlproperty bool qbs::install
+
+ Whether to install a certain set of files.
+
+ This property is typically set in a \l{Group} item to mark a number of files
+ as installable.
+
+ \note Artifacts for which this property is enabled automatically receive the
+ file tag \c "installable". This is useful for writing packaging-related
+ rules.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty string qbs::installSourceBase
+ \since Qbs 1.4
+
+ 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
+ \l{qbs::}{installDir}.
+
+ \defaultvalue The directory of the current file to be installed, relative to
+ the product's source directory.
+*/
+
+/*!
+ \qmlproperty string qbs::installDir
+
+ The installation directory for the files of a \l{Product}{product} or a
+ \l{Group}.
+
+ The value of this property is a path that is relative to \l{qbs::}
+ {installPrefix}.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string qbs::installPrefix
+ \since Qbs 1.1
+
+ The global installation prefix. It is implicitly prepended to all values of
+ \l{qbs::}{installDir}.
+
+ The value of this property itself is relative to the \l{qbs::}{installRoot}
+ in the context of installation.
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty string qbs::installRoot
+ \since Qbs 1.4
+
+ The global installation root. It is implicitly prepended to all values
+ of \l{qbs::}{installPrefix} in the context of installation.
+
+ \note This property is fundamentally different from \l{qbs::}{installDir}
+ and \l{qbs::}{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.
+
+ \defaultvalue \c{<build dir>/install-root}
+*/
+
+/*!
+ \qmlproperty stringList qbs::architectures
+ \since Qbs 1.9
+
+ The architectures the product will be built for.
+
+ \defaultvalue \c{["armv5te"]} on Android, same as Xcode on Apple platforms,
+ otherwise equivalent to \l{qbs::architecture}{[qbs.architecture]}.
+*/
+
+/*!
+ \qmlproperty stringList qbs::buildVariants
+ \since Qbs 1.9
+
+ The build variants the product will be built for.
+
+ \defaultvalue Equivalent to \l{qbs::buildVariant}{[qbs.buildVariant]}.
+*/
+
+/*!
+ \qmlproperty stringList qbs::profiles
+ \since Qbs 1.9
+
+ 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.
+
+ \defaultvalue \l{Project::profile}{[project.profile]}
+*/
diff --git a/doc/reference/modules/qnx-module.qdoc b/doc/reference/modules/qnx-module.qdoc
index 4ea91386f..d14f44b8f 100644
--- a/doc/reference/modules/qnx-module.qdoc
+++ b/doc/reference/modules/qnx-module.qdoc
@@ -27,67 +27,59 @@
/*!
\contentspage index.html
- \page qnx-module.html
- \ingroup list-of-modules
+ \qmltype qnx
+ \inqmlmodule QbsModules
+ \since Qbs 1.8
- \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.
+*/
+
+/*!
+ \qmlproperty string qnx::sdkDir
+
+ The SDK base directory.
+
+ \defaultvalue Determined automatically if the QNX SDK is installed at one of
+ the standard locations, such as \c ~/qnx700, \c /opt/qnx700, or
+ \c C:\\qnx700.
+*/
+
+/*!
+ \qmlproperty string qnx::configurationDir
+
+ The QNX configuration directory.
+
+ Equivalent to the \c{QNX_CONFIGURATION} environment variable.
+
+ \defaultvalue \c{~/.qnx}
+*/
+
+/*!
+ \qmlproperty string qnx::hostDir
+
+ 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 \l{qnx::}{sdkDir}.
+
+ \defaultvalue Determined automatically.
+*/
+
+/*!
+ \qmlproperty string qnx::targetDir
+
+ 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 \l{qnx::}{sdkDir}.
- \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
+ \defaultvalue Determined automatically.
*/
diff --git a/doc/reference/modules/qt-core-module.qdoc b/doc/reference/modules/qt-core-module.qdoc
new file mode 100644
index 000000000..6bfa67f19
--- /dev/null
+++ b/doc/reference/modules/qt-core-module.qdoc
@@ -0,0 +1,422 @@
+/****************************************************************************
+**
+** 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
+ \qmltype Qt.core
+ \inqmlmodule QbsModules
+ \brief Provides Qt Core support.
+
+ All other Qt modules have a dependency on the Qt.core module, and therefore
+ you do not need to list it in your dependencies if you depend on at least
+ one other \l{Qt Modules}{Qt module}.
+
+ Some of the Qt.core 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.
+
+ \section2 Relevant File Tags
+ \target filetags-qtcore
+
+ \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}
+ using the \l{Group::fileTagsFilter}{group.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
+*/
+
+/*!
+ \qmlproperty stringList Qt.core::availableBuildVariants
+
+ The build variants that this Qt installation offers.
+
+ \defaultvalue Set by \l{setup-qt}.
+*/
+
+/*!
+ \qmlproperty path Qt.core::binPath
+
+ The path in which Qt tools such as \c qmake, \c moc, and so on are located.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool Qt.core::combineMocOutput
+
+ Whether 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.
+
+ \defaultvalue \l{cpp::combineCxxSources}{cpp.combineCxxSources}
+*/
+
+/*!
+ \qmlproperty stringList Qt.core::config
+
+ Corresponds to the default value of qmake's \c CONFIG variable.
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty path Qt.core::docPath
+
+ The path in which the Qt documentation is located.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool Qt.core::enableKeywords
+
+ 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.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty bool Qt.core::frameworkBuild
+
+ Whether Qt was built as a framework. This is only relevant for Darwin
+ systems.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty path Qt.core::incPath
+
+ The base path of the Qt headers.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string Qt.core::libInfix
+
+ The library infix can be set at Qt build time to change the name of Qt's
+ libraries.
+
+ For example, if the infix is \c "Test", on Unix systems, the Qt Core library
+ will be in a file called \c{libQt5CoreTest.so} instead of the default
+ \c{libQt5Core.so}.
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty path Qt.core::libPath
+
+ The path in which the Qt libraries are located.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool Qt.core::lreleaseMultiplexMode
+
+ If this property is \c true, \c lrelease will merge all \c .ts files into
+ one \c .qm file. Otherwise, one \c .qm file will be created for each \c .ts
+ file.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty string Qt.core::lreleaseName
+
+ The base name of the \c lrelease tool. Set this if your system uses a name
+ such as \c "lrelease-qt4".
+
+ \defaultvalue \c{"lrelease"}
+*/
+
+/*!
+ \qmlproperty path Qt.core::mkspecPath
+
+ The path in which the Qt \c mkspecs are located.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList Qt.core::mocFlags
+
+ A list of additional flags to \c moc.
+
+ You will rarely need to set this property.
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty string Qt.core::mocName
+
+ The base name of the \c moc tool.
+
+ Set this if your system uses a name such as \c "moc-qt4".
+
+ \defaultvalue \c{"moc"}
+*/
+
+/*!
+ \qmlproperty string Qt.core::namespace
+
+ The Qt namespace that can be set at build time via the \c configure script.
+
+ By default, Qt is not built in a namespace.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList Qt.core::pluginMetaData
+
+ A list of additional plugin metadata.
+
+ 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:
+
+ \badcode
+ Qt.core.pluginMetaData: ["uri=thePlugin"]
+ \endcode
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty path Qt.core::pluginPath
+
+ The path in which the Qt plugins are located.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList Qt.core::qdocEnvironment
+
+ 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.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string Qt.core::qdocName
+
+ The base name of the \c qdoc tool.
+
+ \defaultvalue \c{"qdoc3"} for Qt 4, \c{"qdoc"} otherwise.
+*/
+
+/*!
+ \qmlproperty string Qt.core::qmBaseName
+
+ The base name of the \c .qm file to be built from the \c .ts files in the
+ product.
+
+ This property is ignored if \l{Qt.core::}{lreleaseMultiplexMode} is \c false.
+
+ \defaultvalue \l{Product::targetName}{product.targetName}
+*/
+
+/*!
+ \qmlproperty string Qt.core::qtBuildVariant
+
+ Specifies the type of Qt libraries to build against: \c "debug" or
+ \c "release".
+
+ \note On some systems, it is not possible to link code built in debug mode
+ against libraries built in release mode and vice versa.
+
+ \defaultvalue 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.
+*/
+
+/*!
+ \qmlproperty stringList Qt.core::qtConfig
+
+ Corresponds to the default value of qmake's \c QT_CONFIG variable.
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty path Qt.core::resourceSourceBase
+
+ For files tagged as \l{filetags-qtcore}{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.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string Qt.core::resourcePrefix
+
+ For files tagged as \l{filetags-qtcore}{qt.core.resource_data}, this
+ property determines the prefix under which they will be available in the
+ generated \c .qrc file.
+
+ \defaultvalue \c{"/"}
+*/
+
+/*!
+ \qmlproperty string Qt.core::resourceFileBaseName
+
+ For files tagged as \l{filetags-qtcore}{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
+ \l{Product}{product} rather than in a \l{Group}.
+
+ \defaultvalue \l{Product::targetName}{product.targetName}
+*/
+
+/*!
+ \qmlproperty bool Qt.core::staticBuild
+
+ Whether Qt was built statically.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string Qt.core::version
+
+ The Qt version.
+
+ Consists of three numbers separated by dots. For example "5.9.1".
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int Qt.core::versionMajor
+
+ The Qt major version.
+
+ \defaultvalue \c{versionParts[0]}
+*/
+
+/*!
+ \qmlproperty int Qt.core::versionMinor
+
+ The Qt minor version.
+
+ \defaultvalue \c{versionParts[1]}
+*/
+
+/*!
+ \qmlproperty list Qt.core::versionParts
+
+ The Qt version as a list.
+
+ For example, Qt version 5.9.1 would correspond to a value of \c[5, 9, 1].
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty int Qt.core::versionPatch
+
+ The Qt patch level.
+
+ \defaultvalue \c{versionParts[2]}
+*/
diff --git a/doc/reference/modules/qt-dbus-module.qdoc b/doc/reference/modules/qt-dbus-module.qdoc
new file mode 100644
index 000000000..dacf3f095
--- /dev/null
+++ b/doc/reference/modules/qt-dbus-module.qdoc
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** 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
+ \qmltype Qt.dbus
+ \inqmlmodule QbsModules
+ \brief Provides Qt D-Bus support.
+
+ The Qt.dbus module provides support for the Qt D-Bus module, which contains
+ classes for inter-process communication over the D-Bus protocol.
+
+ \section2 Relevant File Tags
+ \target filetags-debus
+
+ \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
+*/
+
+/*!
+ \qmlproperty string Qt.dbus::xml2cppName
+
+ The base name of the \c qdbusxml2cpp tool.
+
+ Set this property if your system uses a name different from the default
+ value.
+
+ \defaultvalue \c{"qdbusxml2cpp"}
+*/
+
+/*!
+ \qmlproperty stringList Qt.dbus::xml2CppHeaderFlags
+
+ A list of additional flags when running the \c qdbusxml2cpp tool to create
+ header files.
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty stringList Qt.dbus::xml2CppSourceFlags
+
+ A list of additional flags when running the \c qdbusxml2cpp tool to create
+ source files.
+
+ \defaultvalue \c []
+*/
diff --git a/doc/reference/modules/qt-declarative-module.qdoc b/doc/reference/modules/qt-declarative-module.qdoc
new file mode 100644
index 000000000..f7996257f
--- /dev/null
+++ b/doc/reference/modules/qt-declarative-module.qdoc
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** 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
+ \qmltype Qt.declarative
+ \inqmlmodule QbsModules
+ \brief Provides Qt Quick 1 support.
+
+ The Qt.declarative module provides support for Qt Quick 1.
+
+ \sa Qt.quick, Qt.qml
+*/
+
+/*!
+ \qmlproperty bool Qt.declarative::qmlDebugging
+
+ Whether QML debugging support is compiled into your binaries.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty string Qt.declarative::qmlImportsPath
+
+ The absolute path to the directory where Qt's QML imports are installed.
+
+ \defaultvalue Determined by \l{setup-qt}.
+*/
+
+/*!
+ \qmlproperty string Qt.declarative::qmlPath
+
+ The absolute path to the directory where Qt's QML files are installed.
+ This property is left undefined for Qt 4.
+
+ \defaultvalue Determined by \l{setup-qt}.
+*/
diff --git a/doc/reference/modules/qt-gui-module.qdoc b/doc/reference/modules/qt-gui-module.qdoc
new file mode 100644
index 000000000..16d8cf344
--- /dev/null
+++ b/doc/reference/modules/qt-gui-module.qdoc
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** 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
+ \qmltype Qt.gui
+ \inqmlmodule QbsModules
+ \brief Provides Qt GUI support.
+
+ The Qt.gui module provides support for the Qt GUI module, which contains
+ base classes for graphical user interface (GUI) components.
+
+ \section2 Relevant File Tags
+ \target filetags-gui
+
+ \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
+*/
+
+/*!
+ \qmlproperty string Qt.gui::uicName
+
+ The base name of the \c uic tool.
+
+ Set this property if your system uses a name such as \c uic-qt4.
+
+ \defaultvalue \c{"uic"}
+*/
diff --git a/doc/reference/modules/qt-modules.qdoc b/doc/reference/modules/qt-modules.qdoc
index 408a802f8..113b11dc9 100644
--- a/doc/reference/modules/qt-modules.qdoc
+++ b/doc/reference/modules/qt-modules.qdoc
@@ -28,27 +28,33 @@
/*!
\contentspage index.html
\page qt-modules.html
- \ingroup list-of-modules
+ \inmodule qbs-modules
\title Qt Modules
- \brief Provide Qt support.
+
+ \brief Provides 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:
+ The Qt modules are grouped using the prefix \c Qt. If your product depends
+ on the Qt.core and Qt.network modules, you could write:
+
\code
Depends { name: "Qt.core" }
Depends { name: "Qt.network" }
\endcode
+
Or, alternatively:
+
\code
Depends { name: "Qt"; submodules: ["core", "network" } }
\endcode
+ The Qt modules that have properties and relevant file tags are described in
+ separate topics.
+
\section1 List of Submodules
\table
@@ -69,30 +75,18 @@
\li Qt Concurrent
\li
\row
- \li core
+ \li \l{Qt.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}.
+ \li For more information, see \l{Qt.core}.
\row
- \li dbus
+ \li \l{Qt.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}.
+ \li For more information, see \l{Qt.dbus}.
\row
- \li declarative
+ \li \l{Qt.declarative}
\li Qt Quick 1
\li Provides the \c{Qt Quick 1} module. For more information, see
- \l{declarative Properties}.
+ \l{Qt.declarative}.
\row
\li designer
\li Qt Designer
@@ -102,18 +96,14 @@
\li Qt Enginio
\li
\row
- \li gui
+ \li \l{Qt.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}.
+ \li For more information , see \l {Qt.gui}.
\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
+ because that functionality is part of the Qt.core module. This
module is for using Qt classes such as \c QHelpEngine.
\row
\li multimedia
@@ -140,30 +130,22 @@
\li Qt Print Support
\li
\row
- \li quick
- \li Qt Quick (2)
+ \li \l{Qt.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}.
+ see \l{Qt.quick}.
\row
- \li qml
+ \li \l{Qt.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}.
+ \li For more information, see \l{Qt.qml}.
\row
\li script
\li Qt Script
\li
\row
- \li scxml
+ \li \l{Qt.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}.
+ \li For more information, see \l {Qt.scxml}.
\row
\li sql
\li Qt SQL
@@ -193,7 +175,7 @@
\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
+ \c Qt.core module. This module provides the deprecated DOM and SAX
classes.
\row
\li xmlpatterns
@@ -201,560 +183,4 @@
\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 \l{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{<scxml>} 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}
- using the \l{Group::fileTagsFilter}{group.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
-
*/
diff --git a/doc/reference/modules/qt-qml-module.qdoc b/doc/reference/modules/qt-qml-module.qdoc
new file mode 100644
index 000000000..722a2eb41
--- /dev/null
+++ b/doc/reference/modules/qt-qml-module.qdoc
@@ -0,0 +1,118 @@
+/****************************************************************************
+**
+** 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
+ \qmltype Qt.qml
+ \inqmlmodule QbsModules
+ \brief Provides Qt QML support.
+
+ The Qt.qml module provides support for the Qt QML module, which contains
+ classes for QML and JavaScript languages.
+
+ \note If the current value of \l{qbs::architecture}{qbs.architecture} is not
+ supported by \c qmlcachegen, the QML cache file generator rule is disabled.
+
+ \sa Qt.quick, Qt.declarative
+
+ \section2 Relevant File Tags
+ \target filetags-qml
+
+ \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
+*/
+
+/*!
+ \qmlproperty string Qt.qml::qmlImportScannerName
+
+ The base name of the QML import scanner.
+
+ Set this value if your system uses a name different from the default value.
+
+ \defaultvalue \c{"qmlimportscanner"}
+*/
+
+/*!
+ \qmlproperty string Qt.qml::qmlPath
+
+ The absolute path to the directory where Qt's QML files are installed.
+
+ \defaultvalue Determined by \l{setup-qt}.
+*/
+
+/*!
+ \qmlproperty bool Qt.qml::generateCacheFiles
+
+ Whether QML cache files are generated.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty bool Qt.qml::cachingEnabled
+ \readonly
+
+ This property is \c true if \l{Qt.qml::}{generateCacheFiles} is \c{true}
+ and the platform supports QML cache generation.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty string Qt.qml::qmlCacheGenPath
+
+ The absolute path to the \c qmlcachegen executable.
+
+ \defaultvalue Determined by \l{setup-qt}.
+*/
+
+/*!
+ \qmlproperty string Qt.qml::cacheFilesInstallDir
+
+ The path to the directory where the cache files are installed.
+
+ If this property is set, QML cache files are automatically installed.
+
+ \nodefaultvalue
+*/
diff --git a/doc/reference/modules/qt-quick-module.qdoc b/doc/reference/modules/qt-quick-module.qdoc
new file mode 100644
index 000000000..d26c65480
--- /dev/null
+++ b/doc/reference/modules/qt-quick-module.qdoc
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** 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
+ \qmltype Qt.quick
+ \inqmlmodule QbsModules
+ \brief Provides Qt Quick 2 support.
+
+ The Qt.quick module provides support for Qt Quick 2.
+
+ \sa Qt.qml, Qt.declarative
+
+ \section2 Relevant File Tags
+ \target filetags-quick
+
+ \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
+*/
+
+/*!
+ \qmlproperty bool Qt.quick::compilerAvailable
+
+ Whether the Qt installation contains the Qt Quick compiler.
+
+ \defaultvalue Determined by \l{setup-qt}.
+*/
+
+/*!
+ \qmlproperty bool Qt.quick::qmlDebugging
+
+ Whether QML debugging support should be compiled into your binaries.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty string Qt.quick::qmlImportsPath
+
+ The absolute path to the directory where Qt's QML imports are installed.
+
+ \defaultvalue Determined by \l{setup-qt}.
+*/
+
+/*!
+ \qmlproperty string Qt.quick::qmlPath
+
+ The absolute path to the directory where Qt's QML files are installed.
+
+ This property is left undefined for Qt 4.
+
+ \defaultvalue Determined by \l{setup-qt}.
+*/
diff --git a/doc/reference/modules/qt-scxml-module.qdoc b/doc/reference/modules/qt-scxml-module.qdoc
new file mode 100644
index 000000000..2be5b6be7
--- /dev/null
+++ b/doc/reference/modules/qt-scxml-module.qdoc
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** 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
+ \qmltype Qt.scxml
+ \inqmlmodule QbsModules
+ \brief Provides Qt SCXML support.
+
+ The Qt.scxml module provides support for the Qt SCXML module, which enables
+ creating state machines from SCXML files.
+
+ \section2 Relevant File Tags
+ \target filetags-scxml
+
+ \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
+*/
+
+/*!
+ \qmlproperty string Qt.scxml::className
+
+ The class name of the generated state machine.
+
+ By default, the compiler will use the \c name attribute of the input file's
+ \c{<scxml>} tag.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string Qt.scxml::namespace
+
+ The C++ namespace in which to put the generated class.
+
+ By default, the compiler will place the class in the global namespace.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string Qt.scxml::qscxmlcName
+
+ The base name of the Qt SCXML compiler.
+
+ Set this value if your system uses a name different from the default value.
+
+ \defaultvalue \c{"qscxmlc"}
+*/
diff --git a/doc/reference/modules/typescript-module.qdoc b/doc/reference/modules/typescript-module.qdoc
index edac2519b..4c65c2279 100644
--- a/doc/reference/modules/typescript-module.qdoc
+++ b/doc/reference/modules/typescript-module.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -27,141 +27,178 @@
/*!
\contentspage index.html
- \page typescript-module.html
- \ingroup list-of-modules
+ \qmltype typescript
+ \inqmlmodule QbsModules
+ \since Qbs 1.3
- \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
+ \l{TypeScript} applications and may be used in combination with the
+ \l{nodejs} module to run the applications directly from \QBS.
+*/
+
+/*!
+ \qmlproperty string typescript::warningLevel
+
+ The 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 \e any type.
+
+ \defaultvalue \c{"normal"}
+*/
+
+/*!
+ \qmlproperty string typescript::targetVersion
+
+ The ECMAScript target version for generated JavaScript code.
+
+ If left undefined, the TypeScript \l{Compiler Options}{compiler default} is
+ used.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string typescript::moduleLoader
+
+ If TypeScript modules are being used, the JavaScript module loading
+ mechanism to use in the generated JavaScript code.
+
+ If left undefined, modules are not used.
+
+ See \l{Compiler Options} for a list of possible values.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool typescript::stripComments
+
+ Whether to remove comments from the generated JavaScript files.
+
+ \defaultvalue \l{qbs::debugInformation}{!qbs.debugInformation}
+*/
+
+/*!
+ \qmlproperty bool typescript::generateDeclarations
+
+ Whether to generate the corresponding \c .d.ts files during compilation.
+ These are TypeScript's equivalent of header files.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty bool typescript::generateSourceMaps
+
+ Whether to generate the corresponding \c .map files during compilation.
+
+ \defaultvalue \l{qbs::debugInformation}{qbs.debugInformation}
+*/
+
+/*!
+ \qmlproperty stringList typescript::compilerFlags
+
+ A list of additional flags for the TypeScript compiler.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool typescript::singleFile
+
+ 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 \l{typescript}{moduleLoader}.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty string typescript::version
+
+ The TypeScript version.
+
+ Consists of four numbers separated by dots. For example, "1.0.0.0".
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int typescript::versionMajor
+
+ The TypeScript major version.
+
+ \defaultvalue \c{versionParts[0]}
+*/
+
+/*!
+ \qmlproperty int typescript::versionMinor
+
+ The TypeScript minor version.
+
+ \defaultvalue \c{versionParts[1]}
+*/
+
+/*!
+ \qmlproperty list typescript::versionParts
+
+ The TypeScript version as a list.
+
+ For example, TypeScript version 1.0 would correspond to a value of
+ \c[1, 0, 0, 0].
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty int typescript::versionPatch
+
+ The TypeScript patch level.
+
+ \defaultvalue \c{versionParts[2]}
+*/
+
+/*!
+ \qmlproperty int typescript::versionBuild
+
+ The fourth TypeScript version number component.
+
+ \defaultvalue \c{versionParts[3]}
+*/
+
+/*!
+ \qmlproperty path typescript::toolchainInstallPath
+
+ The TypeScript installation directory.
+
+ This property should not normally need to be changed if \c{tsc} is available
+ by searching the PATH environment variable.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string typescript::compilerName
+
+ The name of the compiler binary.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue \c{"tsc"}
+*/
+
+/*!
+ \qmlproperty string typescript::compilerPath
+
+ The directory where the compiler binary is located.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue \c{compilerName}
*/
diff --git a/doc/reference/modules/vcs-module.qdoc b/doc/reference/modules/vcs-module.qdoc
index ed71d0a46..c2ee0c27e 100644
--- a/doc/reference/modules/vcs-module.qdoc
+++ b/doc/reference/modules/vcs-module.qdoc
@@ -27,18 +27,20 @@
/*!
\contentspage index.html
- \page vcs-module.html
- \ingroup list-of-modules
+ \qmltype vcs
+ \inqmlmodule QbsModules
+ \since Qbs 1.10
- \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:
+ The \c vcs module provides the current state of the project's repository via
+ the \l{vcs::}{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 example:
+
\code
#include <vcs-repo-state.h>
#include <iostream>
@@ -48,52 +50,59 @@
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
+
+ Above, 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.
+*/
+
+/*!
+ \qmlproperty string vcs::headerFileName
+
+ 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.
+
+ \defaultvalue \c{"vcs-repo-state.h"}
+*/
+
+/*!
+ \qmlproperty string vcs::repoDir
+
+ The root directory of the repository.
+
+ \defaultvalue The top-level project directory (\l{Project::sourceDirectory}
+ {project.sourceDirectory}).
+*/
+
+/*!
+ \qmlproperty string vcs::repoState
+
+ The current state of the repository.
+
+ For example, in Git this is the commit hash of the current HEAD.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string vcs::toolFilePath
+
+ Set this property 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.
+
+ \defaultvalue The file name of the version control tool corresponding to
+ \l{vcs::type}{type}.
+*/
+
+/*!
+ \qmlproperty string vcs::type
+
+ The version control system used in the project.
+
+ Currently, the supported values are \c{"git"} and \c{"svn"}.
+
+ \defaultvalue auto-detected
*/
diff --git a/doc/reference/modules/wix-module.qdoc b/doc/reference/modules/wix-module.qdoc
index 84be797f2..85ffdb5fa 100644
--- a/doc/reference/modules/wix-module.qdoc
+++ b/doc/reference/modules/wix-module.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -27,208 +27,19 @@
/*!
\contentspage index.html
- \page wix-module.html
- \ingroup list-of-modules
+ \qmltype wix
+ \inqmlmodule QbsModules
+ \since Qbs 1.2
- \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}.
+ EXE setup packages with the \l{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
+ \section2 Relevant File Tags
+ \target filetags-wix
\table
\header
@@ -277,3 +88,262 @@
will be dependent on artifacts with this tag.
\endtable
*/
+
+/*!
+ \qmlproperty bool wix::debugInformation
+
+ Whether to generate debug information.
+
+ \sa {qbs::debugInformation}{qbs.debugInformation}
+
+ \defaultvalue \l{qbs::debugInformation}{qbs.debugInformation}
+*/
+
+/*!
+ \qmlproperty stringList wix::defines
+
+ A list of preprocessor macros that get passed to the compiler.
+
+ To set macro values, use the following syntax:
+
+ \badcode
+ wix.defines: ["USE_COLORS=1", 'COLOR_STR="blanched almond"']
+ \endcode
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool wix::enableQbsDefines
+
+ 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.
+
+ \defaultvalue \c{true}
+*/
+
+/*!
+ \qmlproperty bool wix::visualStudioCompatibility
+
+ Whether to pass most of the same preprocessor macros to the compiler as
+ Visual Studio does.
+
+ This allows easier authoring of WiX files that are compatible with both
+ \QBS and MSBuild.
+
+ \defaultvalue \c{true}
+*/
+
+/*!
+ \qmlproperty pathList wix::includePaths
+
+ A list of include paths.
+
+ Relative paths are considered to be relative to the \c .qbs product file
+ they are used in.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool wix::treatWarningsAsErrors
+
+ Whether warnings will be handled as errors and cause the build to fail.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty string wix::warningLevel
+
+ The severity of warnings to emit.
+
+ The higher the level, the more warnings will be shown.
+
+ Possible values include: \c{"none"}, \c{"normal"}, \c{"pedantic"}
+
+ \defaultvalue \c{"normal"}
+*/
+
+/*!
+ \qmlproperty bool wix::verboseOutput
+
+ Whether to display verbose output from the compiler and linker.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
+ \qmlproperty stringList wix::compilerFlags
+
+ A list of additional flags for the Candle compiler.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList wix::linkerFlags
+
+ A list of additional flags for the Light linker.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList wix::cultures
+
+ A list of localizations to include in the MSI.
+
+ If left undefined, includes all localizations.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList wix::extensions
+
+ A list of extension assemblies to link into the output.
+
+ Possible values include:
+
+ \list
+ \li custom assemblies
+ \li \c{"WixBalExtension"}
+ \li \c{"WixComPlusExtension"}
+ \li \c{"WixDependencyExtension"}
+ \li \c{"WixDifxAppExtension"}
+ \li \c{"WixDirectXExtension"}
+ \li \c{"WixFirewallExtension"}
+ \li \c{"WixGamingExtension"}
+ \li \c{"WixIisExtension"}
+ \li \c{"WixMsmqExtension"}
+ \li \c{"WixNetFxExtension"}
+ \li \c{"WixPSExtension"}
+ \li \c{"WixSqlExtension"}
+ \li \c{"WixTagExtension"}
+ \li \c{"WixUIExtension"}
+ \li \c{"WixUtilExtension"}
+ \li \c{"WixVSExtension"}
+ \endlist
+
+ \defaultvalue \c{["WixBalExtension"]} if the product type is an EXE setup
+ application, otherwise \c{undefined}.
+*/
+
+/*!
+ \qmlproperty string wix::version
+
+ The WiX version.
+
+ Consists of four numbers separated by dots. For example, "3.7.1224.0".
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int wix::versionMajor
+
+ The WiX major version.
+
+ \defaultvalue \c{versionParts[0]}
+*/
+
+/*!
+ \qmlproperty int wix::versionMinor
+
+ The WiX minor version.
+
+ \defaultvalue \c{versionParts[1]}
+*/
+
+/*!
+ \qmlproperty list wix::versionParts
+
+ The WiX version as a list.
+
+ For example, WiX version 3.7.1224.0 would correspond to a value of
+ \c[3, 7, 1224, 0].
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty int wix::versionPatch
+
+ The WiX patch level.
+
+ \defaultvalue \c{versionParts[2]}
+*/
+
+/*!
+ \qmlproperty int wix::versionBuild
+
+ The fourth WiX version number component.
+
+ \defaultvalue \c{versionParts[3]}
+*/
+
+/*!
+ \qmlproperty path wix::toolchainInstallPath
+
+ The WiX installation directory.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue Determined automatically by searching the registry for the
+ latest version.
+*/
+
+/*!
+ \qmlproperty path wix::toolchainInstallRoot
+
+ The WiX binaries directory.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue Determined automatically by searching the registry for the
+ latest version.
+*/
+
+/*!
+ \qmlproperty string wix::compilerName
+
+ The name of the compiler binary.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue \c{"candle.exe"}
+*/
+
+/*!
+ \qmlproperty string wix::compilerPath
+
+ The directory where the compiler binary is located.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue \l{wix::}{compilerName}
+*/
+
+/*!
+ \qmlproperty string wix::linkerName
+
+ The name of the linker binary.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue \c{"light.exe"}
+*/
+
+/*!
+ \qmlproperty string wix::linkerPath
+
+ The directory where the linker binary is located.
+
+ This property should not normally need to be changed.
+
+ \defaultvalue \l{wix::}{linkerName}
+*/
diff --git a/doc/reference/modules/xcode-module.qdoc b/doc/reference/modules/xcode-module.qdoc
index a945504b1..bf38feea1 100644
--- a/doc/reference/modules/xcode-module.qdoc
+++ b/doc/reference/modules/xcode-module.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Copyright (C) 2015 Jake Petroules.
** Contact: https://www.qt.io/licensing/
**
@@ -27,115 +27,140 @@
****************************************************************************/
/*!
\contentspage index.html
- \page xcode-module.html
- \ingroup list-of-modules
+ \qmltype xcode
+ \inqmlmodule QbsModules
+ \since Qbs 1.5
- \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
+ This module provides the foundation for several other modules on Apple
+ platforms, including the \l{cpp} and \l{ib} modules.
+*/
+
+/*!
+ \qmlproperty path xcode::developerPath
+
+ The developer directory of the Xcode installation.
+
+ Corresponds to the \c DEVELOPER_DIR environment variable.
+
+ \defaultvalue The developer directory of the Xcode installation at its
+ default location in \c /Applications. For example,
+ \c{"/Applications/Xcode.app/Contents/Developer"}.
+
+*/
+
+/*!
+ \qmlproperty string xcode::sdk
+
+ The version of the Xcode SDK used to build products.
+
+ This can be specified as a full canonical SDK name (\c{"macosx10.10"}), a
+ platform version number (\c{"10.10"}), or a platform identifier
+ (\c{"macosx"}), in which case the latest SDK available for that platform
+ will be used.
+
+ \defaultvalue The latest SDK available in the Xcode installation for the
+ current platform. Determined by \l{qbs::targetOS}{qbs.targetOS}.
+*/
+
+/*!
+ \qmlproperty stringList xcode::targetDevices
+
+ A list of the Apple devices targeted by this product.
+
+ For macOS, watchOS, and tvOS, this should always be \c "mac", \c "watch",
+ and \c "tv", respectively. For iOS, this can be one or both of \c "iphone"
+ and \c "ipad".
+
+ \defaultvalue The list of all device types supported by the current
+ platform. Determined by \l{qbs::targetOS}{qbs.targetOS}.
+*/
+
+/*!
+ \qmlproperty string xcode::sdkName
+ \readonly
+
+ The canonical name of the SDK used to build products.
+
+ For example, \c macosx10.9.
+
+ \defaultvalue \l{xcode::}{sdk}
+*/
+
+/*!
+ \qmlproperty string xcode::sdkVersion
+ \readonly
+
+ The version number of the SDK used to build products.
+
+ For example, 10.9.
+
+ \defaultvalue \l{xcode::}{sdk}
+*/
+
+/*!
+ \qmlproperty string xcode::latestSdkName
+ \readonly
+
+ The canonical name of the latest SDK available in the Xcode installation.
+
+ For example, \c {macosx10.10}.
+
+ \defaultvalue \l{xcode::}{developerPath}
+*/
+
+/*!
+ \qmlproperty string xcode::latestSdkVersion
+ \readonly
+
+ The version number of the latest SDK available in the Xcode installation.
+
+ For example, 10.10.
+
+ \defaultvalue \l{xcode::}{developerPath}
+*/
+
+/*!
+ \qmlproperty stringList xcode::availableSdkNames
+ \readonly
+
+ The canonical names of all SDKs available in the Xcode installation for the
+ current platform.
+
+ For example, \c {[macosx10.9, macosx10.10]}.
+
+ \defaultvalue \l{xcode::}{developerPath}
+*/
+
+/*!
+ \qmlproperty stringList xcode::availableSdkVersions
+ \readonly
+
+ The version numbers of all SDK available in the Xcode installation for the
+ current platform.
+
+ For example, \c {[10.9, 10.10]}.
+
+ \defaultvalue \l{xcode::}{developerPath}
+*/
+
+/*!
+ \qmlproperty path xcode::platformPath
+ \readonly
+
+ The path of the platform directory containing \l{xcode::}{sdkPath}.
+
+ \defaultvalue \l{xcode::}{developerPath}
+*/
+
+/*!
+ \qmlproperty path xcode::sdkPath
+ \readonly
+
+ The path of the SDK used to build products. Equivalent to
+ \l{qbs::sysroot}{qbs.sysroot}.
+
+ \defaultvalue Determined by \l{xcode::}{developerPath} and \l{xcode::}{sdk}.
*/
diff --git a/doc/reference/reference.qdoc b/doc/reference/reference.qdoc
index 40c8a893e..b5fe87962 100644
--- a/doc/reference/reference.qdoc
+++ b/doc/reference/reference.qdoc
@@ -67,9 +67,13 @@
/*!
\contentspage reference.html
- \group list-of-modules
+ \qmlmodule QbsModules
\title List of Modules
These are the modules shipped with \QBS.
+
+ For a list of \QBS modules that provide support for Qt modules, see
+ \l{Qt Modules}. Only the Qt modules that have properties and relevant file
+ tags are described in separate topics.
*/
/*!
diff --git a/doc/targets/qbs-target-android.qdoc b/doc/targets/qbs-target-android.qdoc
index 04141ea1e..e5d52337f 100644
--- a/doc/targets/qbs-target-android.qdoc
+++ b/doc/targets/qbs-target-android.qdoc
@@ -59,16 +59,15 @@
packages for Android. The properties of the AndroidApk item specify the
locations of the APK source files.
- The AndroidApk item has a dependency on the \l{Module Android.sdk}
- {Android.sdk} module, which contains the properties and rules to create
- Android application packages from source files.
+ The AndroidApk item has a dependency on the \l{Android.sdk} module, which
+ contains the properties and rules to create Android application packages
+ from source files.
You can use the \l{DynamicLibrary} item to build native
Android libraries that are bundled into the APK. The \c qbs.architectures
property specifies the architectures to build for, with the default value
\c armv7a.
- The \l{DynamicLibrary} item has a dependency on the
- \l{Module Android.ndk}{Android.ndk} module, and contains the properties
- and rules to create native libraries.
+ The \l{DynamicLibrary} item has a dependency on the \l{Android.ndk} module,
+ and contains the properties and rules to create native libraries.
*/
diff --git a/doc/targets/qbs-target-apple-common.qdocinc b/doc/targets/qbs-target-apple-common.qdocinc
index e403af8af..9b49d1554 100644
--- a/doc/targets/qbs-target-apple-common.qdocinc
+++ b/doc/targets/qbs-target-apple-common.qdocinc
@@ -30,8 +30,8 @@
\note \QBS does not yet support the Swift programming language.
- The \l{Module xcode}{xcode} module contains properties and rules for
- Xcode-based development.
+ The \l{xcode} module contains properties and rules for Xcode-based
+ development.
//! [xcode]
@@ -39,7 +39,7 @@
\section1 Building User Interfaces
- The \l{Module ib}{ib} module contains properties and rules for building
+ The \l{ib} module contains properties and rules for building
Interface Builder documents, storyboards, asset catalogs, and icon sets.
//! [building user interfaces]
@@ -48,13 +48,13 @@
\section1 Creating App Bundles
- The \l{Module bundle}{bundle} module contains properties and rules for
+ The \l{bundle} module contains properties and rules for
building and working with Core Foundation bundles (application bundles and
frameworks) on Apple platforms.
To build an application product as a bundle, or a dynamic or static library
product as a framework, add a dependency on the bundle module and set the
- \c bundle.isBundle property to \c true:
+ \l{bundle::isBundle}{bundle.isBundle} property to \c true:
\code
Depends { name: "bundle" }
diff --git a/doc/targets/qbs-target-macos.qdoc b/doc/targets/qbs-target-macos.qdoc
index d9605bdac..8d956fc63 100644
--- a/doc/targets/qbs-target-macos.qdoc
+++ b/doc/targets/qbs-target-macos.qdoc
@@ -42,7 +42,7 @@
\section1 Building macOS Disk Images
The \l{AppleDiskImage} and \l{AppleApplicationDiskImage} items have a
- dependency on the \l{Module dmg}{dmg} module. The former represents a
+ dependency on the \l{dmg} module. The former represents a
product that is a basic Apple disk image, while the latter extends the
former to create a drag 'n' drop disk image installer used for installing
single application bundles.
diff --git a/doc/targets/qbs-target-qnx.qdoc b/doc/targets/qbs-target-qnx.qdoc
index 94568e1c2..fc03ce677 100644
--- a/doc/targets/qbs-target-qnx.qdoc
+++ b/doc/targets/qbs-target-qnx.qdoc
@@ -44,8 +44,8 @@
of the QNX host and target directories.
If the QNX SDP path could not be determined automatically, you must add a
- dependency to the \l{Module qnx}{qnx} module to your application and set the
- \c qnx.sdkDir property:
+ dependency to the \l{qnx} module to your application and set the
+ \l{qnx::sdkDir}{qnx.sdkDir} property:
\code
import qbs
diff --git a/doc/targets/qbs-target-windows.qdoc b/doc/targets/qbs-target-windows.qdoc
index 2d8dbb856..258a5b445 100644
--- a/doc/targets/qbs-target-windows.qdoc
+++ b/doc/targets/qbs-target-windows.qdoc
@@ -41,7 +41,7 @@
\section1 Windows Resources
- The \l{Module ico}{ico} module contains rules and properties for building
+ The \l{ico} module contains rules and properties for building
Windows icon (.ico) and cursor (.cur) files from a set of raw PNGs.
\section1 Universal Windows Platform
@@ -53,12 +53,13 @@
Relevant properties include:
\list
- \li \c cpp.windowsApiFamily
- \li \c cpp.windowsApiAdditionalPartitions
- \li \c requireAppContainer
+ \li \l{cpp::windowsApiFamily}{cpp.windowsApiFamily}
+ \li \l{cpp::windowsApiAdditionalPartitions}
+ {cpp.windowsApiAdditionalPartitions}
+ \li \l{cpp::requireAppContainer}{cpp.requireAppContainer}
\endlist
- See the \l{Module cpp}{cpp} module for more information.
+ See the \l{cpp} module for more information.
\note \QBS does not (and will not) support building Windows Runtime
applications targeting Windows 8 or Windows 8.1. We encourage users to
@@ -71,8 +72,8 @@
installers using a number of different technologies:
\list
- \li \l{Module innosetup}{innosetup} - Inno Setup
- \li \l{Module nsis}{nsis} - Nullsoft Scriptable Install System
- \li \l{Module wix}{wix} - Windows Installer XML Toolset
+ \li \l{innosetup} - Inno Setup
+ \li \l{nsis} - Nullsoft Scriptable Install System
+ \li \l{wix} - Windows Installer XML Toolset
\endlist
*/