OSDN Git Service

d4551bfea5e6ffe30510548d0dbf2d1d8c7ce3f4
[qt-creator-jp/qt-creator-jp.git] / src / plugins / qt4projectmanager / qt-maemo / maemotoolchain.h
1 /**************************************************************************
2 **
3 ** This file is part of Qt Creator
4 **
5 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
6 **
7 ** Contact: Nokia Corporation (qt-info@nokia.com)
8 **
9 ** No Commercial Usage
10 **
11 ** This file contains pre-release code and may not be distributed.
12 ** You may use this file in accordance with the terms and conditions
13 ** contained in the Technology Preview License Agreement accompanying
14 ** this package.
15 **
16 ** GNU Lesser General Public License Usage
17 **
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file.  Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 **
25 ** In addition, as a special exception, Nokia gives you certain additional
26 ** rights.  These rights are described in the Nokia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 **
29 ** If you have questions regarding the use of this file, please contact
30 ** Nokia at qt-info@nokia.com.
31 **
32 **************************************************************************/
33
34 #ifndef MAEMOTOOLCHAIN_H
35 #define MAEMOTOOLCHAIN_H
36
37 #include <projectexplorer/gcctoolchain.h>
38 #include <projectexplorer/toolchainconfigwidget.h>
39
40 namespace Qt4ProjectManager {
41 class QtVersion;
42
43 namespace Internal {
44
45 // --------------------------------------------------------------------------
46 // MaemoToolChain
47 // --------------------------------------------------------------------------
48
49 class MaemoToolChain : public ProjectExplorer::GccToolChain
50 {
51 public:
52     ~MaemoToolChain();
53
54     QString typeName() const;
55     ProjectExplorer::Abi targetAbi() const;
56
57     bool isValid() const;
58     bool canClone() const;
59
60     void addToEnvironment(Utils::Environment &env) const;
61     QString sysroot() const;
62
63     bool operator ==(const ProjectExplorer::ToolChain &) const;
64
65     ProjectExplorer::ToolChainConfigWidget *configurationWidget();
66
67
68     QVariantMap toMap() const;
69     bool fromMap(const QVariantMap &data);
70
71     void setQtVersionId(int);
72     int qtVersionId() const;
73
74 private:
75     void updateId();
76
77     explicit MaemoToolChain(bool);
78     MaemoToolChain(const MaemoToolChain &);
79
80     int m_qtVersionId;
81     mutable QString m_sysroot;
82     ProjectExplorer::Abi m_targetAbi;
83
84     friend class MaemoToolChainFactory;
85 };
86
87 // --------------------------------------------------------------------------
88 // MaemoToolChainConfigWidget
89 // --------------------------------------------------------------------------
90
91 class MaemoToolChainConfigWidget : public ProjectExplorer::ToolChainConfigWidget
92 {
93     Q_OBJECT
94
95 public:
96     MaemoToolChainConfigWidget(MaemoToolChain *);
97
98     void apply();
99     void discard();
100     bool isDirty() const;
101 };
102
103 // --------------------------------------------------------------------------
104 // MaemoToolChainFactory
105 // --------------------------------------------------------------------------
106
107 class MaemoToolChainFactory : public ProjectExplorer::ToolChainFactory
108 {
109     Q_OBJECT
110
111 public:
112     MaemoToolChainFactory();
113
114     QString displayName() const;
115     QString id() const;
116
117     QList<ProjectExplorer::ToolChain *> autoDetect();
118
119 private slots:
120     void handleQtVersionChanges(const QList<int> &);
121     QList<ProjectExplorer::ToolChain *> createToolChainList(const QList<int> &);
122 };
123
124 } // namespace Internal
125 } // namespace Qt4ProjectManager
126
127 #endif // MAEMOTOOLCHAIN_H