/****************************************************************************
**
** 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_LIBDIR} variable
    for the \c{pkg-config} tool.

    \nodefaultvalue
*/

/*!
    \qmlproperty stringList qbspkgconfig::extraPaths

    Set this if you need to add extra search directories.

    This property is the equivalent of the \c{PKG_CONFIG_PATH} variable
    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
*/

/*!
    \qmlproperty bool qbspkgconfig::mergeDependencies

    Holds whether dependencies should be merged by pkg-config or \QBS.

    If set to true, dependencies are merged by pkg-config meaning each generated module
    is self-contained and does not depend on other modules. If set to false, generated modules
    may depend on other modules and property merging is done by \QBS. The latter approach gives
    \QBS more information about dependencies, but may have performance implications during resolve
    phase, e.g. when using ABSEIL library.

    \defaultvalue \c true
*/
