qmake/generators/unix/unixmake2.cpp
changeset 30 5dc02b23752f
parent 18 2f34d5167611
--- a/qmake/generators/unix/unixmake2.cpp	Wed Jun 23 19:07:03 2010 +0300
+++ b/qmake/generators/unix/unixmake2.cpp	Tue Jul 06 15:10:48 2010 +0300
@@ -81,7 +81,7 @@
 
     writeHeader(t);
     if(!project->values("QMAKE_FAILED_REQUIREMENTS").isEmpty()) {
-        t << "QMAKE    = "        << (project->isEmpty("QMAKE_QMAKE") ? QString("qmake") : var("QMAKE_QMAKE")) << endl;
+        t << "QMAKE    = " << var("QMAKE_QMAKE") << endl;
         QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
         for(QStringList::ConstIterator it = qut.begin(); it != qut.end(); ++it)
             t << *it << " ";
@@ -148,13 +148,13 @@
     if(!project->isActiveConfig("staticlib")) {
         t << "LINK          = " << var("QMAKE_LINK") << endl;
         t << "LFLAGS        = " << var("QMAKE_LFLAGS") << endl;
-        t << "LIBS          = " << "$(SUBLIBS) " << var("QMAKE_FRAMEWORKDIR_FLAGS") << " "
+        t << "LIBS          = " << "$(SUBLIBS) " << var("QMAKE_FRAMEWORKPATH_FLAGS") << " "
           << var("QMAKE_LIBDIR_FLAGS") << " " << var("QMAKE_LIBS") << " " << var("QMAKE_LIBS_PRIVATE") << endl;
     }
 
     t << "AR            = " << var("QMAKE_AR") << endl;
     t << "RANLIB        = " << var("QMAKE_RANLIB") << endl;
-    t << "QMAKE         = " << (project->isEmpty("QMAKE_QMAKE") ? QString("qmake") : var("QMAKE_QMAKE")) << endl;
+    t << "QMAKE         = " << var("QMAKE_QMAKE") << endl;
     t << "TAR           = " << var("QMAKE_TAR") << endl;
     t << "COMPRESS      = " << var("QMAKE_GZIP") << endl;
     if(project->isActiveConfig("compile_libtool"))
@@ -177,6 +177,12 @@
     if(!project->isEmpty("QMAKE_MACOSX_DEPLOYMENT_TARGET"))
         t << "export MACOSX_DEPLOYMENT_TARGET = " //exported to children processes
           << project->first("QMAKE_MACOSX_DEPLOYMENT_TARGET") << endl;
+
+    if (!project->isEmpty("QMAKE_SYMBIAN_SHLIB")) {
+        t << "vpath %.dso " << project->values("QMAKE_LIBDIR").join(":") << endl;
+        t << "vpath %.lib " << project->values("QMAKE_LIBDIR").join(":") << endl;
+    }
+
     t << endl;
 
     t << "####### Output directory" << endl << endl;
@@ -233,6 +239,8 @@
         if(!project->isEmpty("QMAKE_BUNDLE")) {
             t << "TARGETD       = " << escapeFilePath(var("TARGET_x.y")) << endl;
             t << "TARGET0       = " << escapeFilePath(var("TARGET_")) << endl;
+        } else if(!project->isEmpty("QMAKE_SYMBIAN_SHLIB")) {
+            t << "TARGETD       = " << escapeFilePath(var("TARGET")) << endl;
         } else if(project->isEmpty("QMAKE_HPUX_SHLIB")) {
             t << "TARGETD       = " << escapeFilePath(var("TARGET_x.y.z")) << endl;
             t << "TARGET0       = " << escapeFilePath(var("TARGET_")) << endl;
@@ -332,7 +340,8 @@
         t << "SUBLIBS       = ";
         QStringList &l = project->values("SUBLIBS");
         for(QStringList::Iterator it = l.begin(); it != l.end(); ++it)
-            t << libdir << "lib" << (*it) << ".a ";
+            t << libdir << project->first("QMAKE_PREFIX_STATICLIB") << (*it) << "."
+              << project->first("QMAKE_EXTENSION_STATICLIB") << " ";
         t << endl << endl;
     }
     if(project->isActiveConfig("depend_prl") && !project->isEmpty("QMAKE_PRL_INTERNAL_FILES")) {
@@ -545,6 +554,17 @@
             if(!project->isEmpty("QMAKE_POST_LINK"))
                 t << "\n\t" << var("QMAKE_POST_LINK");
             t << endl << endl;
+        } else if(!project->isEmpty("QMAKE_SYMBIAN_SHLIB")) {
+            t << "\n\t"
+              << "-$(DEL_FILE) $(TARGET)" << "\n\t"
+              << var("QMAKE_LINK_SHLIB_CMD");
+            if(!destdir.isEmpty())
+                t << "\n\t"
+                  << "-$(DEL_FILE) " << destdir << "$(TARGET)\n\t"
+                  << "-$(MOVE) $(TARGET) " << destdir;
+            if(!project->isEmpty("QMAKE_POST_LINK"))
+                t << "\n\t" << var("QMAKE_POST_LINK");
+            t << endl << endl;
         } else if(project->isEmpty("QMAKE_HPUX_SHLIB")) {
             t << "\n\t"
               << "-$(DEL_FILE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2)" << "\n\t"
@@ -860,7 +880,8 @@
             libdir = project->first("SUBLIBS_DIR");
         QStringList &l = project->values("SUBLIBS");
         for(it = l.begin(); it != l.end(); ++it)
-            t << libdir << "lib" << (*it) << ".a" << ":\n\t"
+            t << libdir << project->first("QMAKE_PREFIX_STATICLIB") << (*it) << "."
+              << project->first("QMAKE_EXTENSION_STATICLIB") << ":\n\t"
               << var(QString("MAKELIB") + (*it)) << endl << endl;
     }
 
@@ -875,9 +896,10 @@
         t << "\t-$(LIBTOOL) --mode=clean $(DEL_FILE) " << "$(TARGET)" << endl;
     } else if(!project->isActiveConfig("staticlib") && project->values("QMAKE_APP_FLAG").isEmpty() &&
        !project->isActiveConfig("plugin")) {
-        t << "\t-$(DEL_FILE) " << destdir << "$(TARGET)" << " " << endl
-          << "\t-$(DEL_FILE) " << destdir << "$(TARGET0) " << destdir << "$(TARGET1) "
-          << destdir << "$(TARGET2) $(TARGETA)" << endl;
+        t << "\t-$(DEL_FILE) " << destdir << "$(TARGET)" << " " << endl;
+        if (project->values("QMAKE_SYMBIAN_SHLIB").isEmpty())
+            t << "\t-$(DEL_FILE) " << destdir << "$(TARGET0) " << destdir << "$(TARGET1) "
+              << destdir << "$(TARGET2) $(TARGETA)" << endl;
     } else {
         t << "\t-$(DEL_FILE) " << "$(TARGET)" << " " << endl;
     }
@@ -992,12 +1014,13 @@
        if (!project->values("QMAKE_CYGWIN_EXE").isEmpty())
             project->values("TARGET_EXT").append(".exe");
     } else if (project->isActiveConfig("staticlib")) {
-        project->values("TARGET").first().prepend("lib");
-        project->values("TARGET").first() += ".a";
+        project->values("TARGET").first().prepend(project->first("QMAKE_PREFIX_STATICLIB"));
+        project->values("TARGET").first() += "." + project->first("QMAKE_EXTENSION_STATICLIB");
         if(project->values("QMAKE_AR_CMD").isEmpty())
             project->values("QMAKE_AR_CMD").append("$(AR) $(TARGET) $(OBJECTS)");
     } else {
-        project->values("TARGETA").append(project->first("DESTDIR") + "lib" + project->first("TARGET") + ".a");
+        project->values("TARGETA").append(project->first("DESTDIR") + project->first("QMAKE_PREFIX_STATICLIB")
+                + project->first("TARGET") + "." + project->first("QMAKE_EXTENSION_STATICLIB"));
         if(project->isActiveConfig("compile_libtool"))
             project->values("TARGET_la") = QStringList(project->first("DESTDIR") + "lib" + project->first("TARGET") + Option::libtool_ext);
 
@@ -1045,7 +1068,8 @@
                                                         project->first("VER_MAJ"));
             project->values("TARGET") = project->values("TARGET_x");
         } else if (!project->isEmpty("QMAKE_AIX_SHLIB")) {
-            project->values("TARGET_").append("lib" + project->first("TARGET") + ".a");
+            project->values("TARGET_").append(project->first("QMAKE_PREFIX_STATICLIB") + project->first("TARGET")
+                    + "." + project->first("QMAKE_EXTENSION_STATICLIB"));
             if(project->isActiveConfig("lib_version_first")) {
                 project->values("TARGET_x").append("lib" + project->first("TARGET") + "." +
                                                         project->first("VER_MAJ") + "." +
@@ -1074,6 +1098,10 @@
                                                             project->first("VER_PAT"));
             }
             project->values("TARGET") = project->values("TARGET_x.y.z");
+        } else if (!project->isEmpty("QMAKE_SYMBIAN_SHLIB")) {
+            project->values("TARGET_").append(project->first("TARGET") + "." +
+                                                   project->first("QMAKE_EXTENSION_SHLIB"));
+            project->values("TARGET") = project->values("TARGET_");
         } else {
             project->values("TARGET_").append("lib" + project->first("TARGET") + "." +
                                                    project->first("QMAKE_EXTENSION_SHLIB"));