fix 'Unexpected item type' error message
[qt-labs:qbs.git] / src / lib / language / builtindeclarations.h
1 /****************************************************************************
2 **
3 ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/legal
5 **
6 ** This file is part of the Qt Build Suite.
7 **
8 ** Commercial License Usage
9 ** Licensees holding valid commercial Qt licenses may use this file in
10 ** accordance with the commercial license agreement provided with the
11 ** Software or, alternatively, in accordance with the terms contained in
12 ** a written agreement between you and Digia.  For licensing terms and
13 ** conditions see http://qt.digia.com/licensing.  For further information
14 ** use the contact form at http://qt.digia.com/contact-us.
15 **
16 ** GNU Lesser General Public License Usage
17 ** Alternatively, this file may be used under the terms of the GNU Lesser
18 ** General Public License version 2.1 as published by the Free Software
19 ** Foundation and appearing in the file LICENSE.LGPL included in the
20 ** packaging of this file.  Please review the following information to
21 ** ensure the GNU Lesser General Public License version 2.1 requirements
22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23 **
24 ** In addition, as a special exception, Digia gives you certain additional
25 ** rights.  These rights are described in the Digia Qt LGPL Exception
26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27 **
28 ****************************************************************************/
29
30 #ifndef QBS_BUILTINDECLARATIONS_H
31 #define QBS_BUILTINDECLARATIONS_H
32
33 #include "propertydeclaration.h"
34
35 #include <QByteArray>
36 #include <QMap>
37
38 namespace qbs {
39 namespace Internal {
40
41 class Item;
42
43 class BuiltinDeclarations
44 {
45 public:
46     BuiltinDeclarations();
47
48     QString languageVersion() const;
49     QByteArray qmlTypeInfo() const;
50     bool containsType(const QString &typeName) const;
51     QList<PropertyDeclaration> declarationsForType(const QString &typeName) const;
52     void setupItemForBuiltinType(qbs::Internal::Item *item) const;
53
54 private:
55     void addArtifactItem();
56     void addDependsItem();
57     void addExportItem();
58     void addFileTaggerItem();
59     void addGroupItem();
60     void addModuleItem();
61     void addProbeItem();
62     void addProductItem();
63     void addProjectItem();
64     void addPropertyOptionsItem();
65     void addRuleItem();
66     void addSubprojectItem();
67     void addTransformerItem();
68
69     QString m_languageVersion;
70     QMap<QString, QList<PropertyDeclaration> > m_builtins;
71 };
72
73 } // namespace Internal
74 } // namespace qbs
75
76 #endif // QBS_BUILTINDECLARATIONS_H