1 /****************************************************************************
3 ** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
5 ** This file is part of the Qt Script Generator project on Trolltech Labs.
7 ** This file may be used under the terms of the GNU General Public
8 ** License version 2.0 as published by the Free Software Foundation
9 ** and appearing in the file LICENSE.GPL included in the packaging of
10 ** this file. Please review the following information to ensure GNU
11 ** General Public Licensing requirements will be met:
12 ** http://www.trolltech.com/products/qt/opensource.html
14 ** If you are unsure which license is appropriate for your use, please
15 ** review the following information:
16 ** http://www.trolltech.com/products/qt/licensing.html or contact the
17 ** sales department at sales@trolltech.com.
19 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
22 ****************************************************************************/
24 #include "generatorsetqtscript.h"
25 #include "reporthandler.h"
26 #include "classgenerator.h"
27 #include "shellheadergenerator.h"
28 #include "shellimplgenerator.h"
29 #include "docgenerator.h"
31 GeneratorSet
*GeneratorSet::getInstance() {
32 return new GeneratorSetQtScript();
35 GeneratorSetQtScript::GeneratorSetQtScript()
38 QString
GeneratorSetQtScript::usage() {
41 " --nothing-to-report-yet \n";
46 bool GeneratorSetQtScript::readParameters(const QMap
<QString
, QString
> args
) {
47 return GeneratorSet::readParameters(args
);
50 void GeneratorSetQtScript::buildModel(const QString pp_file
) {
51 // Building the code inforamation...
52 ReportHandler::setContext("MetaJavaBuilder");
53 builder
.setFileName(pp_file
);
57 void GeneratorSetQtScript::dumpObjectTree() {
61 QString
GeneratorSetQtScript::generate() {
62 AbstractMetaClassList classes
= builder
.classesTopologicalSorted();
63 QSet
<QString
> declaredTypeNames
= builder
.qtMetaTypeDeclaredTypeNames();
65 PriGenerator priGenerator
;
66 priGenerator
.setOutputDirectory(outDir
);
68 SetupGenerator setupGenerator
;
69 setupGenerator
.setOutputDirectory(outDir
);
70 setupGenerator
.setQtMetaTypeDeclaredTypeNames(declaredTypeNames
);
72 ClassGenerator
classGenerator(&priGenerator
, &setupGenerator
);
73 classGenerator
.setOutputDirectory(outDir
);
74 classGenerator
.setClasses(classes
);
75 classGenerator
.setQtMetaTypeDeclaredTypeNames(declaredTypeNames
);
76 classGenerator
.generate();
78 ShellImplGenerator
shellImplGenerator(&priGenerator
);
79 shellImplGenerator
.setOutputDirectory(outDir
);
80 shellImplGenerator
.setClasses(classes
);
81 shellImplGenerator
.setQtMetaTypeDeclaredTypeNames(declaredTypeNames
);
82 shellImplGenerator
.generate();
84 ShellHeaderGenerator
shellHeaderGenerator(&priGenerator
);
85 shellHeaderGenerator
.setOutputDirectory(outDir
);
86 shellHeaderGenerator
.setClasses(classes
);
87 shellHeaderGenerator
.generate();
89 DocGenerator docGenerator
;
90 docGenerator
.setOutputDirectory(outDir
);
91 docGenerator
.setClasses(classes
);
92 docGenerator
.generate();
94 priGenerator
.generate();
95 setupGenerator
.generate();
97 return QString("Classes in typesystem: %1\n"
99 " - classes...: %2 (%3)\n"
100 " - header....: %4 (%5)\n"
101 " - impl......: %6 (%7)\n"
102 " - modules...: %8 (%9)\n"
103 " - pri.......: %10 (%11)\n"
105 .arg(builder
.classes().size())
106 .arg(classGenerator
.numGenerated())
107 .arg(classGenerator
.numGeneratedAndWritten())
109 .arg(shellHeaderGenerator
.numGenerated())
110 .arg(shellHeaderGenerator
.numGeneratedAndWritten())
112 .arg(shellImplGenerator
.numGenerated())
113 .arg(shellImplGenerator
.numGeneratedAndWritten())
115 .arg(setupGenerator
.numGenerated())
116 .arg(setupGenerator
.numGeneratedAndWritten())
118 .arg(priGenerator
.numGenerated())
119 .arg(priGenerator
.numGeneratedAndWritten());