qmake/generators/symbian/symmake_abld.cpp
changeset 30 5dc02b23752f
parent 19 fcece45ef507
child 33 3e2da88830cd
--- a/qmake/generators/symbian/symmake_abld.cpp	Wed Jun 23 19:07:03 2010 +0300
+++ b/qmake/generators/symbian/symmake_abld.cpp	Tue Jul 06 15:10:48 2010 +0300
@@ -71,14 +71,11 @@
 void SymbianAbldMakefileGenerator::writeMkFile(const QString& wrapperFileName, bool deploymentOnly)
 {
     QString gnuMakefileName = QLatin1String("Makefile_") + uid3;
-    removeSpecialCharacters(gnuMakefileName);
+    removeEpocSpecialCharacters(gnuMakefileName);
     gnuMakefileName.append(".mk");
 
     QFile ft(gnuMakefileName);
     if (ft.open(QIODevice::WriteOnly)) {
-        if (Option::mkfile::listgen) {
-            generatePrint(fileInfo(ft.fileName()).absoluteFilePath());
-        }
         generatedFiles << ft.fileName();
         QTextStream t(&ft);
 
@@ -152,7 +149,15 @@
         t << "CLEAN: " << cleanDeps << endl;
         t << "endif" << endl << endl;
         t << "CLEANLIB: " DO_NOTHING_TARGET << endl << endl;
-
+        
+		//QTP: org 47 start
+		/*t << "RESOURCE: " DO_NOTHING_TARGET << endl << endl;
+        t << "FREEZE: " DO_NOTHING_TARGET << endl << endl;
+        t << "SAVESPACE: " DO_NOTHING_TARGET << endl << endl;
+        t << "RELEASABLES: " DO_NOTHING_TARGET << endl << endl;*/
+		//QTP: org 47 end
+		
+        //QTP: loc change start
         QStringList trFileNames;
         if (!project->values("SYMBIANTRANSLATIONS").isEmpty()) {
             QString translationFilename = project->first("TRANSLATIONS");
@@ -166,8 +171,8 @@
                 t << "create_qm : " << endl;
                 foreach (const QString &symbianTrans, symbianTranslations) {
                     QString translationTsFilename(translationFilename);
-                    translationTsFilename.chop(3);
-                    translationTsFilename.insert(0,symbianTrPath);
+                    translationFilename = fileInfo(translationFilename).completeBaseName();
+                    translationTsFilename.insert(0, symbianTrPath);
                     translationTsFilename.append(QString::fromLatin1("_"));
                     translationTsFilename.append(symbianTrans);
                     QString translationQmFilename(translationTsFilename);
@@ -176,26 +181,26 @@
                     // output path for armv5 qm files./epoc32/data/z/resource/qt/translations/
                     translationQmFilename.append(QString::fromLatin1(".qm"));
 
-										// input path for ts files. /epoc32/include/platform/qt/translations/
+					// input path for ts files. /epoc32/include/platform/qt/translations/
                     QString translationTsSrcFilename(translationFilename);
-                    translationTsSrcFilename.chop(3);
-                    translationTsSrcFilename.insert(0,symbianTrSrcPath);
+                    translationFilename = fileInfo(translationFilename).completeBaseName();
+                    translationTsSrcFilename.insert(0, symbianTrSrcPath);
                     translationTsSrcFilename.append(QString::fromLatin1("_"));
                     translationTsSrcFilename.append(symbianTrans);	
                     translationTsSrcFilename.append(QString::fromLatin1(".ts"));
                     	
-										// output path for winscw qm files. /epoc32/release/winscw/udeb/z/resource/qt/translations/
+					// output path for winscw qm files. /epoc32/release/winscw/udeb/z/resource/qt/translations/
                     QString translationQmWinscwUdebFilename(translationFilename);
-                    translationQmWinscwUdebFilename.chop(3);
-                    translationQmWinscwUdebFilename.insert(0,symbianWinscwUdebQmPath);
+                    translationFilename = fileInfo(translationFilename).completeBaseName();
+                    translationQmWinscwUdebFilename.insert(0, symbianWinscwUdebQmPath);
                     translationQmWinscwUdebFilename.append(QString::fromLatin1("_"));
                     translationQmWinscwUdebFilename.append(symbianTrans);
                     translationQmWinscwUdebFilename.append(QString::fromLatin1(".qm"));                    	
 
-										// output path for winscw qm files. /epoc32/release/winscw/urel/z/resource/qt/translations/
+					// output path for winscw qm files. /epoc32/release/winscw/urel/z/resource/qt/translations/
                     QString translationQmWinscwUrelFilename(translationFilename);
-                    translationQmWinscwUrelFilename.chop(3);
-                    translationQmWinscwUrelFilename.insert(0,symbianWinscwUrelQmPath);
+                    translationFilename = fileInfo(translationFilename).completeBaseName();
+                    translationQmWinscwUrelFilename.insert(0, symbianWinscwUrelQmPath);
                     translationQmWinscwUrelFilename.append(QString::fromLatin1("_"));
                     translationQmWinscwUrelFilename.append(symbianTrans);	
                     translationQmWinscwUrelFilename.append(QString::fromLatin1(".qm"));  
@@ -211,25 +216,29 @@
                     trFileNames.append(translationQmWinscwUrelFilename);
                 }
                 t << endl;
-            }
-            else
-            t << "RESOURCE: " DO_NOTHING_TARGET << endl << endl;
+            } else { 
+                t << "RESOURCE: " DO_NOTHING_TARGET << endl << endl;
+			}   	
         } else {
             t << "RESOURCE: " DO_NOTHING_TARGET << endl << endl;
         }
+       
+        
         t << "FREEZE: " DO_NOTHING_TARGET << endl << endl;
         t << "SAVESPACE: " DO_NOTHING_TARGET << endl << endl;
-
-        if (!project->values("SYMBIANTRANSLATIONS").isEmpty()) {
+        
+         if (!project->values("SYMBIANTRANSLATIONS").isEmpty()) {
             t << "RELEASABLES: list_qm" << endl << endl;
             t << "list_qm : " << endl;
             foreach (const QString &trFilename, trFileNames) {
                 t << "\t@echo " << trFilename << endl;
-              }
+            }
             t << endl;
         } else {
             t << "RELEASABLES: " DO_NOTHING_TARGET << endl << endl;
         }
+        //QTP: loc change end
+        
         t << "ifeq \"$(PLATFORM)\" \"WINSCW\"" << endl;
         t << "FINAL: " << finalDepsWinscw << endl;
         t << "else" << endl;
@@ -276,23 +285,28 @@
     t << "# ==============================================================================" << "\n" << endl;
     t << endl;
 
-    t << "MAKEFILE          = " << wrapperFile.fileName() << endl;
-    t << "QMAKE             = " << Option::fixPathToTargetOS(var("QMAKE_QMAKE")) << endl;
+    t << "MAKEFILE          = " << fileInfo(wrapperFile.fileName()).fileName() << endl;
+    t << "QMAKE             = " << var("QMAKE_QMAKE") << endl;
     t << "DEL_FILE          = " << var("QMAKE_DEL_FILE") << endl;
     t << "DEL_DIR           = " << var("QMAKE_DEL_DIR") << endl;
     t << "MOVE              = " << var("QMAKE_MOVE") << endl;
     t << "CHK_DIR_EXISTS    = " << var("QMAKE_CHK_DIR_EXISTS") << endl;
     t << "MKDIR             = " << var("QMAKE_MKDIR") << endl;
+#ifdef Q_OS_WIN32
     t << "XCOPY             = xcopy /d /f /h /r /y /i" << endl;
     t << "ABLD              = ABLD.BAT" << endl;
+#else
+    t << "XCOPY             = cp -u -v" << endl;
+    t << "ABLD              = abld" << endl;
+#endif
     t << "DEBUG_PLATFORMS   = " << debugPlatforms.join(" ") << endl;
     t << "RELEASE_PLATFORMS = " << releasePlatforms.join(" ") << endl;
     t << "MAKE              = make" << endl;
     t << endl;
     t << "ifeq (WINS,$(findstring WINS, $(PLATFORM)))" << endl;
-    t << "ZDIR=$(EPOCROOT)epoc32\\release\\$(PLATFORM)\\$(CFG)\\Z" << endl;
+    t << "ZDIR=$(EPOCROOT)" << QDir::toNativeSeparators("epoc32/release/$(PLATFORM)/$(CFG)/z") << endl;
     t << "else" << endl;
-    t << "ZDIR=$(EPOCROOT)epoc32\\data\\z" << endl;
+    t << "ZDIR=$(EPOCROOT)" << QDir::toNativeSeparators("epoc32/data/z") << endl;
     t << "endif" << endl;
     t << endl;
     t << "DEFINES" << '\t' << " = "
@@ -386,14 +400,16 @@
         // generate command lines like this ...
         // -@ if NOT EXIST  ".\somedir"         mkdir ".\somedir"
         QStringList dirsToClean;
+        QString dirExists = var("QMAKE_CHK_DIR_EXISTS");
+        QString mkdir = var("QMAKE_MKDIR");
         for (QMap<QString, QStringList>::iterator it = systeminclude.begin(); it != systeminclude.end(); ++it) {
             QStringList values = it.value();
             for (int i = 0; i < values.size(); ++i) {
                 if (values.at(i).endsWith("/" QT_EXTRA_INCLUDE_DIR)) {
                     QString fixedValue(QDir::toNativeSeparators(values.at(i)));
                     dirsToClean << fixedValue;
-                    t << "\t-@ if NOT EXIST \""  << fixedValue << "\" mkdir \""
-                      << fixedValue << "\"" << endl;
+                    t << "\t-@ " << dirExists << " \""  << fixedValue << "\" "
+                      << mkdir << " \"" << fixedValue << "\"" << endl;
                 }
             }
         }
@@ -402,7 +418,7 @@
         // Note: EXTENSION_CLEAN will get called many times when doing reallyclean
         //       This is why the "2> NUL" gets appended to generated clean targets in makefile.cpp.
         t << EXTENSION_CLEAN ": " COMPILER_CLEAN_TARGET << endl;
-        generateCleanCommands(t, dirsToClean, var("QMAKE_DEL_DIR"), " /S /Q ", "", "");
+        generateCleanCommands(t, dirsToClean, var("QMAKE_DEL_TREE"), "", "", "");
         t << endl;
 
         t << PRE_TARGETDEPS_TARGET ":"
@@ -451,10 +467,6 @@
     writeDeploymentTargets(t, false);
     writeDeploymentTargets(t, true);
 
-    writeSisTargets(t);
-
-    writeStoreBuildTarget(t);
-
     generateDistcleanTargets(t);
 
     t << "clean: $(ABLD)" << endl;
@@ -506,7 +518,7 @@
         + privateDirUid;
     DeploymentList depList;
 
-    initProjectDeploySymbian(project, depList, remoteTestPath, false,
+    initProjectDeploySymbian(project, depList, remoteTestPath, false, true,
         QLatin1String(isRom ? ROM_DEPLOYMENT_PLATFORM : EMULATOR_DEPLOYMENT_PLATFORM),
         QString(), generatedDirs, generatedFiles);
 
@@ -542,32 +554,13 @@
     return true;
 }
 
-void SymbianAbldMakefileGenerator::writeStoreBuildTarget(QTextStream &t)
-{
-    t << STORE_BUILD_TARGET ":" << endl;
-    t << "\t@echo # ============================================================================== > " MAKE_CACHE_NAME << endl;
-    t << "\t@echo # This file is generated by make and should not be modified by the user >> " MAKE_CACHE_NAME << endl;
-    t << "\t@echo #  Name        : " << MAKE_CACHE_NAME << " >> " MAKE_CACHE_NAME << endl;
-    t << "\t@echo #  Part of     : " << project->values("TARGET").join(" ") << " >> " MAKE_CACHE_NAME << endl;
-    t << "\t@echo #  Description : This file is used to cache last build target for >> " MAKE_CACHE_NAME << endl;
-    t << "\t@echo #                make sis target. >> " MAKE_CACHE_NAME << endl;
-    t << "\t@echo #  Version     :  >> " MAKE_CACHE_NAME << endl;
-    t << "\t@echo # >> " MAKE_CACHE_NAME << endl;
-    t << "\t@echo # ============================================================================== >> " MAKE_CACHE_NAME <<  endl;
-    t << "\t@echo. >> " MAKE_CACHE_NAME <<  endl;
-    t << "\t@echo QT_SIS_TARGET ?= $(QT_SIS_TARGET) >> " MAKE_CACHE_NAME << endl;
-    t << endl;
-
-    generatedFiles << MAKE_CACHE_NAME;
-}
-
 void SymbianAbldMakefileGenerator::writeBldInfMkFilePart(QTextStream& t, bool addDeploymentExtension)
 {
     // Normally emulator deployment gets done via regular makefile, but since subdirs
     // do not get that, special deployment only makefile is generated for them if needed.
     if (targetType != TypeSubdirs || addDeploymentExtension) {
         QString gnuMakefileName = QLatin1String("Makefile_") + uid3;
-        removeSpecialCharacters(gnuMakefileName);
+        removeEpocSpecialCharacters(gnuMakefileName);
         gnuMakefileName.append(".mk");
         t << "gnumakefile " << gnuMakefileName << endl;
     }