57 #define PRE_TARGETDEPS_TARGET "pre_targetdeps" |
57 #define PRE_TARGETDEPS_TARGET "pre_targetdeps" |
58 #define COMPILER_CLEAN_TARGET "compiler_clean" |
58 #define COMPILER_CLEAN_TARGET "compiler_clean" |
59 #define FINALIZE_TARGET "finalize" |
59 #define FINALIZE_TARGET "finalize" |
60 #define GENERATED_SOURCES_TARGET "generated_sources" |
60 #define GENERATED_SOURCES_TARGET "generated_sources" |
61 #define ALL_SOURCE_DEPS_TARGET "all_source_deps" |
61 #define ALL_SOURCE_DEPS_TARGET "all_source_deps" |
62 //:QTP:QTPROD-92 Deployment of plugins requires WINSCW build before ARM build |
|
63 #define DEPLOYMENT_TARGET "deployment" |
62 #define DEPLOYMENT_TARGET "deployment" |
64 #define DEPLOYMENT_CLEAN_TARGET "deployment_clean" |
63 #define DEPLOYMENT_CLEAN_TARGET "deployment_clean" |
65 #define WINSCW_DEPLOYMENT_TARGET "winscw_deployment" |
64 #define WINSCW_DEPLOYMENT_TARGET "winscw_deployment" |
66 #define WINSCW_DEPLOYMENT_CLEAN_TARGET "winscw_deployment_clean" |
65 #define WINSCW_DEPLOYMENT_CLEAN_TARGET "winscw_deployment_clean" |
67 /* :QTP:QTPROD-155: Don't write .make.cache during the compilation, it causes dependency problems in |
66 #define STORE_BUILD_TARGET "store_build" |
68 * the parallel build clusters |
|
69 */ |
|
70 #define STORE_BUILD_TARGET "" |
|
71 |
67 |
72 SymbianAbldMakefileGenerator::SymbianAbldMakefileGenerator() : SymbianMakefileGenerator() { } |
68 SymbianAbldMakefileGenerator::SymbianAbldMakefileGenerator() : SymbianMakefileGenerator() { } |
73 SymbianAbldMakefileGenerator::~SymbianAbldMakefileGenerator() { } |
69 SymbianAbldMakefileGenerator::~SymbianAbldMakefileGenerator() { } |
74 |
70 |
75 void SymbianAbldMakefileGenerator::writeMkFile(const QString& wrapperFileName, bool deploymentOnly) |
71 void SymbianAbldMakefileGenerator::writeMkFile(const QString& wrapperFileName, bool deploymentOnly) |
117 QString cleanDeps; |
113 QString cleanDeps; |
118 QString finalDeps; |
114 QString finalDeps; |
119 QString cleanDepsWinscw; |
115 QString cleanDepsWinscw; |
120 QString finalDepsWinscw; |
116 QString finalDepsWinscw; |
121 QStringList wrapperTargets; |
117 QStringList wrapperTargets; |
122 //:QTP:QTPROD-92 Deployment of plugins requires WINSCW build before ARM build |
|
123 if (deploymentOnly) { |
118 if (deploymentOnly) { |
124 buildDeps.append(STORE_BUILD_TARGET); |
119 buildDeps.append(STORE_BUILD_TARGET); |
125 cleanDeps.append(DEPLOYMENT_CLEAN_TARGET); |
120 cleanDeps.append(DEPLOYMENT_CLEAN_TARGET); |
126 cleanDepsWinscw.append(WINSCW_DEPLOYMENT_CLEAN_TARGET); |
121 cleanDepsWinscw.append(WINSCW_DEPLOYMENT_CLEAN_TARGET " " DEPLOYMENT_CLEAN_TARGET); |
127 finalDeps.append(DEPLOYMENT_TARGET); |
122 finalDeps.append(DEPLOYMENT_TARGET); |
128 finalDepsWinscw.append(WINSCW_DEPLOYMENT_TARGET); |
123 finalDepsWinscw.append(WINSCW_DEPLOYMENT_TARGET " " DEPLOYMENT_TARGET); |
129 wrapperTargets << WINSCW_DEPLOYMENT_TARGET |
124 wrapperTargets << WINSCW_DEPLOYMENT_TARGET |
130 << WINSCW_DEPLOYMENT_CLEAN_TARGET |
125 << WINSCW_DEPLOYMENT_CLEAN_TARGET |
131 << DEPLOYMENT_TARGET |
126 << DEPLOYMENT_TARGET |
132 << DEPLOYMENT_CLEAN_TARGET |
127 << DEPLOYMENT_CLEAN_TARGET |
133 << STORE_BUILD_TARGET; |
128 << STORE_BUILD_TARGET; |
134 } else { |
129 } else { |
135 buildDeps.append(CREATE_TEMPS_TARGET " " PRE_TARGETDEPS_TARGET " " STORE_BUILD_TARGET); |
130 buildDeps.append(CREATE_TEMPS_TARGET " " PRE_TARGETDEPS_TARGET " " STORE_BUILD_TARGET); |
136 cleanDeps.append(EXTENSION_CLEAN " " DEPLOYMENT_CLEAN_TARGET); |
131 cleanDeps.append(EXTENSION_CLEAN " " DEPLOYMENT_CLEAN_TARGET); |
137 cleanDepsWinscw.append(EXTENSION_CLEAN " " WINSCW_DEPLOYMENT_CLEAN_TARGET); |
132 cleanDepsWinscw.append(EXTENSION_CLEAN " " WINSCW_DEPLOYMENT_CLEAN_TARGET " " DEPLOYMENT_CLEAN_TARGET); |
138 finalDeps.append(FINALIZE_TARGET " " DEPLOYMENT_TARGET); |
133 finalDeps.append(FINALIZE_TARGET " " DEPLOYMENT_TARGET); |
139 finalDepsWinscw.append(FINALIZE_TARGET " " WINSCW_DEPLOYMENT_TARGET); |
134 finalDepsWinscw.append(FINALIZE_TARGET " " WINSCW_DEPLOYMENT_TARGET " " DEPLOYMENT_TARGET); |
140 wrapperTargets << PRE_TARGETDEPS_TARGET |
135 wrapperTargets << PRE_TARGETDEPS_TARGET |
141 << CREATE_TEMPS_TARGET |
136 << CREATE_TEMPS_TARGET |
142 << EXTENSION_CLEAN |
137 << EXTENSION_CLEAN |
143 << FINALIZE_TARGET |
138 << FINALIZE_TARGET |
144 << WINSCW_DEPLOYMENT_CLEAN_TARGET |
139 << WINSCW_DEPLOYMENT_CLEAN_TARGET |
261 QStringList debugPlatforms = allPlatforms; |
256 QStringList debugPlatforms = allPlatforms; |
262 QStringList releasePlatforms = allPlatforms; |
257 QStringList releasePlatforms = allPlatforms; |
263 releasePlatforms.removeAll("winscw"); // No release for emulator |
258 releasePlatforms.removeAll("winscw"); // No release for emulator |
264 |
259 |
265 QString testClause; |
260 QString testClause; |
266 if (project->isActiveConfig("symbian_test")) |
261 if (project->isActiveConfig(SYMBIAN_TEST_CONFIG)) |
267 testClause = QLatin1String(" test"); |
262 testClause = QLatin1String(" test"); |
268 else |
263 else |
269 testClause = QLatin1String(""); |
264 testClause = QLatin1String(""); |
270 |
265 |
271 QTextStream t(&wrapperFile); |
266 QTextStream t(&wrapperFile); |
284 t << "MAKEFILE = " << wrapperFile.fileName() << endl; |
279 t << "MAKEFILE = " << wrapperFile.fileName() << endl; |
285 t << "QMAKE = " << Option::fixPathToTargetOS(var("QMAKE_QMAKE")) << endl; |
280 t << "QMAKE = " << Option::fixPathToTargetOS(var("QMAKE_QMAKE")) << endl; |
286 t << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl; |
281 t << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl; |
287 t << "DEL_DIR = " << var("QMAKE_DEL_DIR") << endl; |
282 t << "DEL_DIR = " << var("QMAKE_DEL_DIR") << endl; |
288 t << "MOVE = " << var("QMAKE_MOVE") << endl; |
283 t << "MOVE = " << var("QMAKE_MOVE") << endl; |
|
284 t << "CHK_DIR_EXISTS = " << var("QMAKE_CHK_DIR_EXISTS") << endl; |
|
285 t << "MKDIR = " << var("QMAKE_MKDIR") << endl; |
289 t << "XCOPY = xcopy /d /f /h /r /y /i" << endl; |
286 t << "XCOPY = xcopy /d /f /h /r /y /i" << endl; |
290 t << "ABLD = ABLD.BAT" << endl; |
287 t << "ABLD = ABLD.BAT" << endl; |
291 t << "DEBUG_PLATFORMS = " << debugPlatforms.join(" ") << endl; |
288 t << "DEBUG_PLATFORMS = " << debugPlatforms.join(" ") << endl; |
292 t << "RELEASE_PLATFORMS = " << releasePlatforms.join(" ") << endl; |
289 t << "RELEASE_PLATFORMS = " << releasePlatforms.join(" ") << endl; |
293 t << "MAKE = make" << endl; |
290 t << "MAKE = make" << endl; |
448 QList<MakefileGenerator::SubTarget*> subtargets = findSubDirsSubTargets(); |
445 QList<MakefileGenerator::SubTarget*> subtargets = findSubDirsSubTargets(); |
449 writeSubTargets(t, subtargets, SubTargetSkipDefaultVariables | SubTargetSkipDefaultTargets); |
446 writeSubTargets(t, subtargets, SubTargetSkipDefaultVariables | SubTargetSkipDefaultTargets); |
450 qDeleteAll(subtargets); |
447 qDeleteAll(subtargets); |
451 } |
448 } |
452 |
449 |
453 writeDeploymentTargets(t); |
450 // Deploymend targets for both emulator and rom deployment |
454 //:QTP:QTPROD-92 Deployment of plugins requires WINSCW build before ARM build |
451 writeDeploymentTargets(t, false); |
455 writeDeploymentTargets(t, true); |
452 writeDeploymentTargets(t, true); |
456 |
453 |
457 writeSisTargets(t); |
454 writeSisTargets(t); |
458 |
455 |
459 /* :QTP:QTPROD-155: Don't write .make.cache during the compilation, it causes dependency problems in |
|
460 * the parallel build clusters |
|
461 writeStoreBuildTarget(t); |
456 writeStoreBuildTarget(t); |
462 */ |
|
463 |
457 |
464 generateDistcleanTargets(t); |
458 generateDistcleanTargets(t); |
465 |
459 |
466 t << "clean: $(ABLD)" << endl; |
460 t << "clean: $(ABLD)" << endl; |
467 t << "\t-$(ABLD)" << testClause << " reallyclean" << endl; |
461 t << "\t-$(ABLD)" << testClause << " reallyclean" << endl; |
498 // We don't use extensions for anything in abld |
492 // We don't use extensions for anything in abld |
499 Q_UNUSED(t); |
493 Q_UNUSED(t); |
500 Q_UNUSED(iconTargetFile); |
494 Q_UNUSED(iconTargetFile); |
501 } |
495 } |
502 |
496 |
503 //:QTP:QTPROD-92 Deployment of plugins requires WINSCW build before ARM build |
497 bool SymbianAbldMakefileGenerator::writeDeploymentTargets(QTextStream &t, bool isRom) |
504 bool SymbianAbldMakefileGenerator::writeDeploymentTargets(QTextStream &t, bool isRelease /*= false*/) |
498 { |
505 { |
499 if (isRom) |
506 if (isRelease) |
|
507 t << DEPLOYMENT_TARGET ":" << endl; |
500 t << DEPLOYMENT_TARGET ":" << endl; |
508 else |
501 else |
509 t << WINSCW_DEPLOYMENT_TARGET ":" << endl; |
502 t << WINSCW_DEPLOYMENT_TARGET ":" << endl; |
510 |
503 |
511 QString remoteTestPath = epocRoot() + QLatin1String( isRelease?"epoc32\\data\\z\\private\\":"epoc32\\winscw\\c\\private\\") |
504 QString remoteTestPath = epocRoot() |
512 + privateDirUid; // default 4 OpenC; 4 all Symbian too |
505 + QLatin1String(isRom ? "epoc32\\data\\z\\private\\" : "epoc32\\winscw\\c\\private\\") |
|
506 + privateDirUid; |
513 DeploymentList depList; |
507 DeploymentList depList; |
514 |
508 |
515 initProjectDeploySymbian(project, depList, remoteTestPath, false, QLatin1String(isRelease?"armv5":"winscw"), QLatin1String(isRelease?"urel":"udeb"), |
509 initProjectDeploySymbian(project, depList, remoteTestPath, false, |
516 generatedDirs, generatedFiles); |
510 QLatin1String(isRom ? ROM_DEPLOYMENT_PLATFORM : EMULATOR_DEPLOYMENT_PLATFORM), |
|
511 QString(), generatedDirs, generatedFiles); |
517 |
512 |
518 if (depList.size()) |
513 if (depList.size()) |
519 t << "\t-echo Deploying changed files..." << endl; |
514 t << "\t-echo Deploying changed files..." << endl; |
|
515 |
520 for (int i = 0; i < depList.size(); ++i) { |
516 for (int i = 0; i < depList.size(); ++i) { |
521 // Xcopy prompts for selecting file or directory if target doesn't exist, |
517 // Xcopy prompts for selecting file or directory if target doesn't exist, |
522 // and doesn't provide switch to force file selection. It does provide dir forcing, though, |
518 // and doesn't provide switch to force file selection. It does provide dir forcing, though, |
523 // so strip the last part of the destination. |
519 // so strip the last part of the destination. |
524 t << "\t-$(XCOPY) \"" << depList.at(i).from << "\" \"" << depList.at(i).to.left(depList.at(i).to.lastIndexOf("\\") + 1) << "\"" << endl; |
520 t << "\t-$(XCOPY) \"" << depList.at(i).from << "\" \"" |
525 } |
521 << depList.at(i).to.left(depList.at(i).to.lastIndexOf("\\") + 1) << "\"" << endl; |
526 |
522 } |
527 t << endl; |
523 |
528 |
524 t << endl; |
529 if (isRelease) |
525 |
|
526 if (isRom) |
530 t << DEPLOYMENT_CLEAN_TARGET ":" << endl; |
527 t << DEPLOYMENT_CLEAN_TARGET ":" << endl; |
531 else |
528 else |
532 t << WINSCW_DEPLOYMENT_CLEAN_TARGET ":" << endl; |
529 t << WINSCW_DEPLOYMENT_CLEAN_TARGET ":" << endl; |
533 |
530 |
534 QStringList cleanList; |
531 QStringList cleanList; |