Computer Assited Medical Intervention Tool Kit
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ExtensionGenerator.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * $CAMITK_LICENCE_BEGIN$
3  *
4  * CamiTK - Computer Assisted Medical Intervention ToolKit
5  * (c) 2001-2013 UJF-Grenoble 1, CNRS, TIMC-IMAG UMR 5525 (GMCAO)
6  *
7  * Visit http://camitk.imag.fr for more information
8  *
9  * This file is part of CamiTK.
10  *
11  * CamiTK is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * CamiTK is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License version 3 for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * version 3 along with CamiTK. If not, see <http://www.gnu.org/licenses/>.
22  *
23  * $CAMITK_LICENCE_END$
24  ****************************************************************************/
25 #ifndef EXTENSIONGENERATOR_H
26 #define EXTENSIONGENERATOR_H
27 
28 #if defined(_WIN32) && !defined(__MINGW32__) // MSVC only
29 #pragma warning( disable : 4290 )
30 #endif // MSVC only
31 
32 
33 // includes from Qt
34 #include <QString>
35 #include <QFileInfo>
36 #include <QDir>
37 
38 // Includes from coreschema
39 #include <Extension.hxx>
40 
41 using namespace coreschema;
42 
43 
44 
46 
47 public :
53  UNKNOWN
54  };
55 
56  static bool generateExtensionFiles(QString xmlFileName, QString devDirectoryName);
57 
58 
59 protected:
60  ExtensionGenerator(QString xmlFileName, QString devDirectoryName) throw (QString);
61 
62  void setXmlFileName(QString xmlFileName) throw (QString);
63  void setDevDirectoryName(QString devDirectoryName) throw (QString);
64  void createTestDataFiles() throw (QString);
65 
66  void generateCMakeLists() throw (QString);
67  void generateExtensionFiles() throw (QString);
68  void generateInternFilesList() throw (QString);
69  void generateInternFiles() throw (QString);
70 
71  void generateActionExtensionFiles() throw (QString);
72  void generateActionsList() throw (QString);
73  void generateActionFiles() throw (QString);
74 
75  void generateComponentExtensionFiles() throw (QString);
76  void generateComponentsList() throw (QString);
77  void generateComponentFiles() throw (QString);
78 
79  void showReport();
80  void writeReport();
81 
82 
83 
84  QFileInfo xmlFileName;
85  QDir devDirectoryName;
86  QDir srcDir;
87 
88  std::auto_ptr<Extension> theExtension;
89 
91 
92  std::vector<QFileInfo> elementsList;
93  std::vector<QString> generatedClassList;
94 
95 
96 };
97 
98 #endif