/****************************************************************************
**
** 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.

    \defaultvalue \c false
*/
