diff options
author | Ivan Komissarov <abbapoh@gmail.com> | 2021-05-14 00:55:15 +0200 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2021-10-14 10:03:50 +0000 |
commit | 3187199a17e013882b0d0ea7aff9c7b9411e4cd1 (patch) | |
tree | 5e82271f0702e037898c723bcdaf6ab426eba342 /doc | |
parent | e7cc3a2cf13db0f786727ce2469f7c66324f35a2 (diff) | |
download | qbs-3187199a17e013882b0d0ea7aff9c7b9411e4cd1.tar.gz |
Implement eager pkg-config provider
This implements provider that generates modules based on all .pc files
present in system. This allows to get rid of the multi-shot providers
such as fallback provider.
Fixes: QBS-1614
Change-Id: Icf87ac609bc34bd26e8ed94ae547a7e649835a3a
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'doc')
-rw-r--r-- | doc/qbs.qdoc | 1 | ||||
-rw-r--r-- | doc/reference/module-providers/qbspkgconfig-module-provider.qdoc | 99 | ||||
-rw-r--r-- | doc/reference/reference.qdoc | 6 |
3 files changed, 106 insertions, 0 deletions
diff --git a/doc/qbs.qdoc b/doc/qbs.qdoc index ac7bf20c2..f297ea2cf 100644 --- a/doc/qbs.qdoc +++ b/doc/qbs.qdoc @@ -81,6 +81,7 @@ \li \l{List of Built-in Services} \li \l{Command-Line Interface} \li \l{List of Modules} + \li \l{List of Module Providers} \li \l{Command and JavaScriptCommand} \endlist diff --git a/doc/reference/module-providers/qbspkgconfig-module-provider.qdoc b/doc/reference/module-providers/qbspkgconfig-module-provider.qdoc new file mode 100644 index 000000000..80afe3667 --- /dev/null +++ b/doc/reference/module-providers/qbspkgconfig-module-provider.qdoc @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** Copyright (C) 2021 Ivan Komissarov (abbapoh@gmail.com) +** 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$ +** +****************************************************************************/ + +/*! + \qmltype qbspkgconfig + \inqmlmodule QbsModuleProviders + \since 1.20 + + \brief Module provider based on the qbspkg-config library. + + \QBS uses a built-in parser of the \c{*.pc} files and does not require the presence of the + \c pkg-config tool in the system. However, if the \c pkg-config tool is present, \QBS will + use the same libDirs as the system pkg-config uses by default; otherwise, a built-in list of + paths is used. + + In order to enable usage of this provider in your Product, set the + \l{Product::qbsModuleProviders}{qbsModuleProviders} property as shown in the example below: + \snippet ../examples/pkgconfig-provider/pkgconfig-provider.qbs 0 +*/ + +/*! + \qmlproperty string qbspkgconfig::executableFilePath + + The path to the \c {pkg-config} executable. If not set, the pkg-config from PATH is used. + + \defaultvalue undefined +*/ + +/*! + \qmlproperty stringList qbspkgconfig::libDirs + + Set this if you need to overwrite the default search directories. + \note You do not need to set this for cross-compilation in order to point + to the sysroot. \QBS does that for you. + + This property is the equivalent of the \c{PKG_CONFIG_PATH} / \c{PKG_CONFIG_LIBDIR} variables + for the \c{pkg-config} tool. + + \nodefaultvalue +*/ + +/*! + \qmlproperty bool qbspkgconfig::staticMode + + If this property is \c true, then \QBS will include "private" libs and dependencies of the + package. This property is the equivalent of the + \c{--static} option for the \c{pkg-config} tool. + + Set this if your product is to be linked statically. + + \defaultvalue \c false +*/ + +/*! + \qmlproperty path qbspkgconfig::sysroot + + Set this property if you need to overwrite the default search sysroot path used by + \c pkg-config. + + This can be useful if \c pkg-config files are located in the directory other than qbs.sysroot. + This is the case on macOS platform - all XCode profiles are sysrooted to the SDK + directory, but \c pkg-config is typically intalled using Brew and resides in the + \c /usr/local directory. + + Setting this property to \c undefined or empty (\c "") value will use pkg-config's default + search paths: + \code + qbs build module-providers.pkgconfig.sysroot:undefined + \endcode + + This property is the equivalent of the \c{PKG_CONFIG_SYSROOT_DIR} variable for the + \c{pkg-config} tool. + + \defaultvalue \c "" on macOS, \c qbs.sysroot on other platforms +*/ diff --git a/doc/reference/reference.qdoc b/doc/reference/reference.qdoc index 63b8c187d..f2992b287 100644 --- a/doc/reference/reference.qdoc +++ b/doc/reference/reference.qdoc @@ -75,6 +75,12 @@ */ /*! + \qmlmodule QbsModuleProviders + \title List of Module Providers + These are the module providers shipped with \QBS. +*/ + +/*! \group list-of-items \title List of All Items |