aboutsummaryrefslogtreecommitdiffstats
path: root/doc/reference/module-providers/qbspkgconfig-module-provider.qdoc
blob: a7f6fe6b7a22f6490aa63b9201dbbab86b007615 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/****************************************************************************
**
** 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 bool qbspkgconfig::definePrefix

    If this property is \c true, then \QBS will override the ${prefix} variable in the packages
    with a value that is guessed based on the location of the .pc file.

    This option corresponds to the \c --define-prefix / \c --dont-define-prefix command line
    options of the \c pkg-config tool.

    \defaultvalue \c true on Windows, \c false otherwise
*/

/*!
    \qmlproperty stringList qbspkgconfig::executableNames

    The names of the \c pkg-config executable to search for.

    Note that since newer distributions use \l{http://pkgconf.org}{pkgconf} by default, it has
    higher priority over \c pkg-config.

    \defaultvalue \c{["pkgconf", "pkg-config"]}
*/

/*!
    \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 resolve moduleProviders.qbspkgconfig.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
*/