comparison generator/prigenerator.cpp @ 238:1349940724eb

Generate a classes list for cmake.
author SokoL_SD
date Mon, 20 Jul 2009 06:04:17 +0000
parents e78566595089
children
comparison
equal deleted inserted replaced
237:62d0dce52dac 238:1349940724eb
41 41
42 #include "prigenerator.h" 42 #include "prigenerator.h"
43 #include "reporthandler.h" 43 #include "reporthandler.h"
44 #include "fileout.h" 44 #include "fileout.h"
45 45
46 void PriGenerator::addHeader(const QString &folder, const QString &header) 46 void PriGenerator::addHeader(QString package, const QString &header)
47 { 47 {
48 priHash[folder].headers << header; 48 priHash[package.replace(".", "_")].headers << header;
49 } 49 }
50 50
51 void PriGenerator::addSource(const QString &folder, const QString &source) 51 void PriGenerator::addSource(QString package, const QString &source)
52 { 52 {
53 priHash[folder].sources << source; 53 priHash[package.replace(".", "_")].sources << source;
54 }
55
56 void PriGenerator::addClass(QString package, const QString &class_name)
57 {
58 priHash[package.replace(".", "_")].classes << class_name;
54 } 59 }
55 60
56 void PriGenerator::generate() 61 void PriGenerator::generate()
57 { 62 {
58 QHashIterator<QString, Pri> pri(priHash); 63 QHashIterator<QString, Pri> pri(priHash);
59 while (pri.hasNext()) { 64 while (pri.hasNext()) {
60 pri.next(); 65 pri.next();
61 66
62 FileOut file(m_out_dir + "/cpp/" + pri.key()); 67 FileOut file(m_out_dir + "/cpp/" + pri.key() + "/" + pri.key() + ".txt");
63 file.stream << "HEADERS += \\\n"; 68 file.stream << "set (classes \n";
64 QStringList list = pri.value().headers; 69 QStringList list = pri.value().classes;
65 qSort(list.begin(), list.end()); 70 qSort(list.begin(), list.end());
66 foreach (const QString &entry, list) { 71 foreach (const QString &entry, list) {
67 file.stream << " $$PWD/" << entry << " \\\n"; 72 file.stream << " " << entry << "\n";
68 } 73 }
69 74 file.stream << ")\n";
70 file.stream << "\n";
71 file.stream << "SOURCES += \\\n";
72 list = pri.value().sources;
73 qSort(list.begin(), list.end());
74 foreach (const QString &entry, list) {
75 file.stream << " $$PWD/" << entry << " \\\n";
76 }
77 file.stream << "\n\n";
78 75
79 if (file.done()) 76 if (file.done())
80 ++m_num_generated_written; 77 ++m_num_generated_written;
81 ++m_num_generated; 78 ++m_num_generated;
82 } 79 }