summaryrefslogtreecommitdiffstats
path: root/qmake/qmakelibraryinfo.h
blob: c3240efd15610f4404dcfe1795b7356251051cda (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
// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0

#ifndef QMAKELIBRARYINFO_H
#define QMAKELIBRARYINFO_H

#include <qlibraryinfo.h>
#include <qstring.h>
#include <qstringlist.h>

QT_BEGIN_NAMESPACE

class QSettings;

struct QMakeLibraryInfo
{
    static QString path(int loc);

    /* This enum has to start after the last value in QLibraryInfo::LibraryPath(NOT SettingsPath!).
     * See qconfig.cpp.in and QLibraryInfo for details.
     * When adding enum values between FirstHostPath and LastHostPath, make sure to adjust
     * the hostToTargetPathEnum(int) function.
     */
    enum LibraryPathQMakeExtras {
        HostBinariesPath = QLibraryInfo::TestsPath + 1,
        FirstHostPath = HostBinariesPath,
        HostLibraryExecutablesPath,
        HostLibrariesPath,
        HostDataPath,
        HostPrefixPath,
        LastHostPath = HostPrefixPath,
        TargetSpecPath,
        HostSpecPath,
        SysrootPath,
        SysrootifyPrefixPath
    };
    enum PathGroup { FinalPaths, EffectivePaths, EffectiveSourcePaths, DevicePaths };
    static QString rawLocation(int loc, PathGroup group);
    static void reload();
    static bool haveGroup(PathGroup group);
    static void sysrootify(QString &path);
};

QT_END_NAMESPACE

#endif // QMAKELIBRARYINFO_H