changeset 238:1349940724eb

Generate a classes list for cmake.
author SokoL_SD
date Mon, 20 Jul 2009 06:04:17 +0000
parents 62d0dce52dac
children 4716eaf4a67e
files generator/cppheadergenerator.cpp generator/cppimplgenerator.cpp generator/generator.pro generator/jumptable.cpp generator/metainfogenerator.cpp generator/prigenerator.cpp generator/prigenerator.h
diffstat 7 files changed, 31 insertions(+), 36 deletions(-) [+]
line wrap: on
line diff
--- a/generator/cppheadergenerator.cpp	Mon Jul 20 06:00:55 2009 +0000
+++ b/generator/cppheadergenerator.cpp	Mon Jul 20 06:04:17 2009 +0000
@@ -168,11 +168,11 @@
     writeWrapperClass(s, java_class);
 */
     s << endl;
-    QString pro_file_name = java_class->package().replace(".", "_") + "/" + java_class->package().replace(".", "_") + ".pri";
+    
 
     if (!java_class->generateShellClass()) {
         s << "#endif" << endl << endl;
-        priGenerator->addHeader(pro_file_name, fileNameForClass(java_class));
+        priGenerator->addHeader(java_class->package(), fileNameForClass(java_class));
         return ;
     }
 
@@ -247,7 +247,8 @@
     s  << "};" << endl << endl
        << "#endif // " << include_block << endl;
 
-    priGenerator->addHeader(pro_file_name, fileNameForClass(java_class));
+    priGenerator->addHeader(java_class->package(), fileNameForClass(java_class));
+    priGenerator->addClass(java_class->package(), java_class->name());
 }
 
 
--- a/generator/cppimplgenerator.cpp	Mon Jul 20 06:00:55 2009 +0000
+++ b/generator/cppimplgenerator.cpp	Mon Jul 20 06:04:17 2009 +0000
@@ -725,8 +725,7 @@
 
     s << endl << endl;
 
-    QString pro_file_name = java_class->package().replace(".", "_") + "/" + java_class->package().replace(".", "_") + ".pri";
-    priGenerator->addSource(pro_file_name, fileNameForClass(java_class));
+    priGenerator->addSource(java_class->package(), fileNameForClass(java_class));
 }
 
 void CppImplGenerator::writeVirtualDispatchFunction(QTextStream &s, const AbstractMetaFunction *function, bool d_export)
--- a/generator/generator.pro	Mon Jul 20 06:00:55 2009 +0000
+++ b/generator/generator.pro	Mon Jul 20 06:04:17 2009 +0000
@@ -1,7 +1,7 @@
-contains(QT_CONFIG, release) { 
-    CONFIG -= debug
-    CONFIG += release
-}
+#contains(QT_CONFIG, release) { 
+#    CONFIG -= debug
+#    CONFIG += release
+#}
 
 # Input
 HEADERS += classlistgenerator.h \
--- a/generator/jumptable.cpp	Mon Jul 20 06:00:55 2009 +0000
+++ b/generator/jumptable.cpp	Mon Jul 20 06:04:17 2009 +0000
@@ -291,7 +291,7 @@
     FileOut file(tableFile);
 
     QString pkgSubDir = QString(packageName).replace(".", "_");
-    m_prigenerator->addSource(pkgSubDir + "/" + pkgSubDir + ".pri", "nativejumptable.cpp");
+    m_prigenerator->addSource(packageName, "nativejumptable.cpp");
 
     printf("Generating jump table (.cpp): %s\n", qPrintable(tableFile));
 
--- a/generator/metainfogenerator.cpp	Mon Jul 20 06:00:55 2009 +0000
+++ b/generator/metainfogenerator.cpp	Mon Jul 20 06:04:17 2009 +0000
@@ -382,8 +382,7 @@
 
             fileHash.insert(cls->package(), f);
 
-            QString pro_file_name = cls->package().replace(".", "_") + "/" + cls->package().replace(".", "_") + ".pri";
-            priGenerator->addSource(pro_file_name, cppFilename());
+            priGenerator->addSource(cls->package(), cppFilename());
         }
 
         if (!(cls->attributes() & AbstractMetaAttributes::Fake)) {
@@ -491,8 +490,7 @@
 
             fileHash.insert(cls->package(), true);
 
-            QString pro_file_name = cls->package().replace(".", "_") + "/" + cls->package().replace(".", "_") + ".pri";
-            priGenerator->addHeader(pro_file_name, headerFilename());
+            priGenerator->addHeader(cls->package(), headerFilename());
 
             if( file.done() )
                 ++m_num_generated_written;
@@ -615,9 +613,7 @@
             s << ";" << endl
               << "}" << endl << endl;
 
-            QString pro_file_name = QString(package).replace(".", "_");
-
-            priGenerator->addSource(pro_file_name + "/" + pro_file_name + ".pri", "qtjambi_libraryinitializer.cpp");
+            priGenerator->addSource(package, "qtjambi_libraryinitializer.cpp");
 
             if( fileOut.done() )
                 ++m_num_generated_written;
--- a/generator/prigenerator.cpp	Mon Jul 20 06:00:55 2009 +0000
+++ b/generator/prigenerator.cpp	Mon Jul 20 06:04:17 2009 +0000
@@ -43,14 +43,19 @@
 #include "reporthandler.h"
 #include "fileout.h"
 
-void PriGenerator::addHeader(const QString &folder, const QString &header)
+void PriGenerator::addHeader(QString package, const QString &header)
 {
-    priHash[folder].headers << header;
+    priHash[package.replace(".", "_")].headers << header;
 }
 
-void PriGenerator::addSource(const QString &folder, const QString &source)
+void PriGenerator::addSource(QString package, const QString &source)
 {
-    priHash[folder].sources << source;
+    priHash[package.replace(".", "_")].sources << source;
+}
+
+void PriGenerator::addClass(QString package, const QString &class_name)
+{
+    priHash[package.replace(".", "_")].classes << class_name;
 }
 
 void PriGenerator::generate()
@@ -59,22 +64,14 @@
     while (pri.hasNext()) {
         pri.next();
 
-        FileOut file(m_out_dir + "/cpp/" + pri.key());
-        file.stream << "HEADERS += \\\n";
-        QStringList list = pri.value().headers;
+        FileOut file(m_out_dir + "/cpp/" + pri.key() + "/" + pri.key() + ".txt");
+        file.stream << "set (classes \n";
+        QStringList list = pri.value().classes;
         qSort(list.begin(), list.end());
         foreach (const QString &entry, list) {
-            file.stream << "           $$PWD/" << entry << " \\\n";
+            file.stream << "    " << entry << "\n";
         }
-
-        file.stream << "\n";
-        file.stream << "SOURCES += \\\n";
-        list = pri.value().sources;
-        qSort(list.begin(), list.end());
-        foreach (const QString &entry, list) {
-            file.stream << "           $$PWD/" << entry << " \\\n";
-        }
-        file.stream << "\n\n";
+        file.stream << ")\n";
 
         if (file.done())
             ++m_num_generated_written;
--- a/generator/prigenerator.h	Mon Jul 20 06:00:55 2009 +0000
+++ b/generator/prigenerator.h	Mon Jul 20 06:04:17 2009 +0000
@@ -51,6 +51,7 @@
 {
     QStringList headers;
     QStringList sources;
+    QStringList classes;
 };
 
 class PriGenerator : public Generator
@@ -60,8 +61,9 @@
  public:
     virtual void generate();
 
-    void addHeader(const QString &folder, const QString &header);
-    void addSource(const QString &folder, const QString &source);
+    void addHeader(QString package, const QString &header);
+    void addSource(QString package, const QString &source);
+    void addClass(QString package, const QString &class_name);
 
  private:
     QHash<QString, Pri> priHash;