summaryrefslogtreecommitdiffstats
path: root/qmake
diff options
context:
space:
mode:
Diffstat (limited to 'qmake')
-rw-r--r--qmake/Makefile.win3219
-rw-r--r--qmake/Makefile.win32-g++10
-rw-r--r--qmake/Makefile.win32-g++-sh8
-rw-r--r--qmake/Makefile.win32-mwc8
-rw-r--r--qmake/generators/makefile.cpp2
-rw-r--r--qmake/generators/metamakefile.cpp86
-rw-r--r--qmake/generators/symbian/initprojectdeploy_symbian.cpp5
-rw-r--r--qmake/generators/symbian/symmake.cpp340
-rw-r--r--qmake/generators/symbian/symmake.h19
-rw-r--r--qmake/generators/symbian/symmake_abld.cpp12
-rw-r--r--qmake/generators/symbian/symmake_abld.h6
-rw-r--r--qmake/generators/symbian/symmake_sbsv2.cpp7
-rw-r--r--qmake/generators/symbian/symmake_sbsv2.h5
-rw-r--r--qmake/project.cpp10
-rw-r--r--qmake/qmake.pri4
-rw-r--r--qmake/qpopen.cpp3
16 files changed, 259 insertions, 285 deletions
diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32
index 40b08eb..929f950 100644
--- a/qmake/Makefile.win32
+++ b/qmake/Makefile.win32
@@ -86,11 +86,11 @@ CFLAGS = $(CFLAGS) -DQMAKE_OPENSOURCE_EDITION
QTOBJS= \
qbitarray.obj \
qbuffer.obj \
- qcryptographichash.obj \
+ qcryptographichash.obj \
qfsfileengine.obj \
qfsfileengine_iterator.obj \
qbytearray.obj \
- qvsnprintf.obj \
+ qvsnprintf.obj \
qbytearraymatcher.obj \
qdatetime.obj \
qdir.obj \
@@ -107,7 +107,7 @@ QTOBJS= \
qlistdata.obj \
qlinkedlist.obj \
qlocale.obj \
- qmalloc.obj \
+ qmalloc.obj \
qmap.obj \
qregexp.obj \
qtextcodec.obj \
@@ -121,9 +121,9 @@ QTOBJS= \
qsettings.obj \
qlibraryinfo.obj \
qvariant.obj \
- qurl.obj \
+ qurl.obj \
qsettings_win.obj \
- qmetatype.obj \
+ qmetatype.obj \
qnumeric.obj \
qscriptasm.obj \
qscriptast.obj \
@@ -181,7 +181,7 @@ clean::
-del qfsfileengine.obj
-del qfsfileengine_iterator.obj
-del qbytearray.obj
- -del qvsnprintf.obj
+ -del qvsnprintf.obj
-del qbytearraymatcher.obj
-del qdatetime.obj
-del qdir.obj
@@ -211,9 +211,9 @@ clean::
-del qsettings.obj
-del qlibraryinfo.obj
-del qvariant.obj
- -del qurl.obj
+ -del qurl.obj
-del qsettings_win.obj
- -del qmetatype.obj
+ -del qmetatype.obj
-del project.obj
-del main.obj
-del makefile.obj
@@ -431,6 +431,7 @@ qmap.obj: $(SOURCE_PATH)\src\corelib\tools\qmap.cpp
qunicodetables.obj: $(SOURCE_PATH)\src\corelib\tools\qunicodetables.cpp
$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qunicodetables.cpp
+
makefile.obj: $(SOURCE_PATH)/qmake/generators\makefile.cpp
$(CXX) $(CXXFLAGS) generators\makefile.cpp
@@ -471,7 +472,7 @@ symmake_sbsv2.obj: $(SOURCE_PATH)/qmake/generators/symbian/symmake_sbsv2.cpp
$(CXX) $(CXXFLAGS) generators/symbian/symmake_sbsv2.cpp
initprojectdeploy_symbian.obj: $(SOURCE_PATH)/qmake/generators/symbian/initprojectdeploy_symbian.cpp
- $(CXX) $(CXXFLAGS) generators/symbian/initprojectdeploy_symbian.cpp
+ $(CXX) $(CXXFLAGS) generators/symbian/initprojectdeploy_symbian.cpp
md5.obj: $(SOURCE_PATH)\src\3rdparty\md5\md5.cpp
$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\3rdparty\md5\md5.cpp
diff --git a/qmake/Makefile.win32-g++ b/qmake/Makefile.win32-g++
index a3ddf11..c18201e 100644
--- a/qmake/Makefile.win32-g++
+++ b/qmake/Makefile.win32-g++
@@ -19,13 +19,13 @@ CFLAGS = -c -o$@ -O \
-I$(BUILD_PATH)/include -I$(BUILD_PATH)/include/QtCore \
-I$(SOURCE_PATH)/include -I$(SOURCE_PATH)/include/QtCore \
-I$(BUILD_PATH)/src/corelib/global \
- -I$(BUILD_PATH)/include/QtScript \
+ -I$(BUILD_PATH)/include/QtScript \
-I$(BUILD_PATH)/src/corelib/xml \
-I$(SOURCE_PATH)/mkspecs/win32-g++ \
-DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_PCRE \
- -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP \
- -DQT_BUILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \
- -DQT_BOOTSTRAPPED
+ -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP \
+ -DQT_BUILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \
+ -DQT_BOOTSTRAPPED
CXXFLAGS = $(CFLAGS)
LFLAGS =
LIBS = -lole32 -luuid
@@ -50,7 +50,7 @@ QTOBJS= \
qbitarray.o \
qbuffer.o \
qbytearray.o \
- qcryptographichash.o \
+ qcryptographichash.o \
qvsnprintf.o \
qbytearraymatcher.o \
qconfig.o \
diff --git a/qmake/Makefile.win32-g++-sh b/qmake/Makefile.win32-g++-sh
index 85a7e45..e02a021 100644
--- a/qmake/Makefile.win32-g++-sh
+++ b/qmake/Makefile.win32-g++-sh
@@ -19,13 +19,13 @@ CFLAGS = -c -o$@ -O \
-I$(BUILD_PATH)/include -I$(BUILD_PATH)/include/QtCore \
-I$(SOURCE_PATH)/include -I$(SOURCE_PATH)/include/QtCore \
-I$(BUILD_PATH)/src/corelib/global \
- -I$(BUILD_PATH)/include/QtScript \
+ -I$(BUILD_PATH)/include/QtScript \
-I$(BUILD_PATH)/src/corelib/xml \
-I$(SOURCE_PATH)/mkspecs/win32-g++ \
-DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_PCRE \
- -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP \
- -DQT_BUILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \
- -DQT_BOOTSTRAPPED
+ -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP \
+ -DQT_BUILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \
+ -DQT_BOOTSTRAPPED
CXXFLAGS = $(CFLAGS)
LFLAGS =
LIBS = -lole32 -luuid
diff --git a/qmake/Makefile.win32-mwc b/qmake/Makefile.win32-mwc
index 08b6c49..b3b1b71 100644
--- a/qmake/Makefile.win32-mwc
+++ b/qmake/Makefile.win32-mwc
@@ -14,7 +14,7 @@ endif
CXX = mwccsym2
CFLAGS = -gccinc \
-w on -w nonotused -w nonotinlined -w noimplicit -w nopadding -w noemptydecl \
- -w nounusedexpr -w nopossible -c -o $@ -O \
+ -w nounusedexpr -w nopossible -c -o $@ -O \
-I. -Igenerators -Igenerators\unix \
-Igenerators\win32 -Igenerators\mac \
-Igenerators\symbian \
@@ -23,8 +23,8 @@ CFLAGS = -gccinc \
-I$(BUILD_PATH)\src\corelib\global \
-I$(SOURCE_PATH)\mkspecs\win32-mwc \
-DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_PCRE \
- -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -DHAVE_QCONFIG_CPP \
- -DQT_BUILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \
+ -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -DHAVE_QCONFIG_CPP \
+ -DQT_BUILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \
-DQT_NO_LIBRARY -I$(BUILD_PATH)\include\QtScript \
-I$(SOURCE_PATH)\corelib\xml -DQT_BOOTSTRAPPED
@@ -52,7 +52,7 @@ QTOBJS= \
qbitarray.o \
qbuffer.o \
qbytearray.o \
- qcryptographichash.o \
+ qcryptographichash.o \
qvsnprintf.o \
qbytearraymatcher.o \
qconfig.o \
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index c1d4601..0db24ae 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -275,7 +275,7 @@ MakefileGenerator::initOutPaths()
int slash = path.lastIndexOf(Option::dir_sep);
if(slash != -1) {
path = path.left(slash);
- // Make out path only if it does not contains makefile variables
+ // Make out path only if it does not contain makefile variables
if(!path.contains("${"))
if(path != "." &&
!mkdir(fileFixify(path, qmake_getpwd(), Option::output_dir)))
diff --git a/qmake/generators/metamakefile.cpp b/qmake/generators/metamakefile.cpp
index d36be3c..a16a0d4 100644
--- a/qmake/generators/metamakefile.cpp
+++ b/qmake/generators/metamakefile.cpp
@@ -420,8 +420,8 @@ SubdirsMetaMakefileGenerator::~SubdirsMetaMakefileGenerator()
subs.clear();
}
-class SymbianSubdirsMetaMakefileGenerator : public SubdirsMetaMakefileGenerator {
-
+class SymbianSubdirsMetaMakefileGenerator : public SubdirsMetaMakefileGenerator
+{
public:
SymbianSubdirsMetaMakefileGenerator(QMakeProject *p, const QString &n, bool op) : SubdirsMetaMakefileGenerator(p, n, op) { }
virtual ~SymbianSubdirsMetaMakefileGenerator();
@@ -441,29 +441,23 @@ protected:
private:
QString cleanFromSpecialCharacters(QString& str);
-
};
QMap<QString, QString> SymbianSubdirsMetaMakefileGenerator::mmpPaths;
QMultiMap<QString, QString> SymbianSubdirsMetaMakefileGenerator::mmpDependency;
-QStringList SymbianSubdirsMetaMakefileGenerator::getDependencyList(QString mmpFilename, int recursionDepth) {
-
+QStringList SymbianSubdirsMetaMakefileGenerator::getDependencyList(QString mmpFilename, int recursionDepth)
+{
QStringList list;
- // printf("Entering recursion mmpFilename = %s and depth = %d \n", qPrintable(mmpFilename), recursionDepth);
-
QList<QString> values = mmpDependency.values(mmpFilename);
if(recursionDepth < 0) {
- // special case
- // just first dependency level
+ // special case; just first dependency level
list = values;
return list;
-
}
if(values.size() == 0) {
-
//reached recursion END condition
if(recursionDepth == 0) {
--recursionDepth;
@@ -477,16 +471,13 @@ QStringList SymbianSubdirsMetaMakefileGenerator::getDependencyList(QString mmpFi
} else {
recursionDepth++;
for (int i = 0; i < values.size(); ++i) {
- QString current = values.at(i);
- QStringList tailList = getDependencyList(current, recursionDepth);
- for(int j = 0; j < tailList.size(); ++j) {
- //QString path = mmpFilename + tailList.at(j);
- QString path = tailList.at(j);
- list.append(path);
- //printf("MMPDEPENDENCY: %s\n", path.toAscii().data());
- }// for(int j = 0; j < values.size(); ++j)
- //list.append(current);
- } // for (int i = 0; i < values.size(); ++i)
+ QString current = values.at(i);
+ QStringList tailList = getDependencyList(current, recursionDepth);
+ for(int j = 0; j < tailList.size(); ++j) {
+ QString path = tailList.at(j);
+ list.append(path);
+ }
+ }
if(recursionDepth > 0) {
//for mmp somewhere in middle
@@ -495,15 +486,17 @@ QStringList SymbianSubdirsMetaMakefileGenerator::getDependencyList(QString mmpFi
recursionDepth--;
return list;
}
-
}
+
SymbianSubdirsMetaMakefileGenerator::~SymbianSubdirsMetaMakefileGenerator() { }
-bool SymbianSubdirsMetaMakefileGenerator::write(const QString &oldpwd) {
+bool SymbianSubdirsMetaMakefileGenerator::write(const QString &oldpwd)
+{
return SubdirsMetaMakefileGenerator::write(oldpwd);
}
-QString SymbianSubdirsMetaMakefileGenerator::cleanFromSpecialCharacters(QString& str) {
+QString SymbianSubdirsMetaMakefileGenerator::cleanFromSpecialCharacters(QString& str)
+{
QString tmp = str;
tmp.replace(QString("/"), QString("_"));
@@ -515,26 +508,14 @@ QString SymbianSubdirsMetaMakefileGenerator::cleanFromSpecialCharacters(QString&
return tmp;
}
-bool SymbianSubdirsMetaMakefileGenerator::init() {
-
+bool SymbianSubdirsMetaMakefileGenerator::init()
+{
if(init_flag)
return false;
init_flag = true;
- /*
- Not neccessary as it was
- causing second pass through
- subdir elements
-
- SubdirsMetaMakefileGenerator::init();
- */
-
- /*
- if we are here then we have template = subdirs
-
- so... go for it ...
- */
+ // If we are here then we have template == subdirs
Option::recursive = true;
@@ -577,7 +558,6 @@ bool SymbianSubdirsMetaMakefileGenerator::init() {
if(subdir.isDir()) {
subdir = QFileInfo(subdir.filePath() + "/" + subdir.fileName() + Option::pro_ext);
childMmpFilename = subdir.fileName();
- // TODO: create Option::mmp_ext
childMmpFilename = subdir.absoluteFilePath();
childMmpFilename.replace(Option::pro_ext, QString(""));
childMmpFilename.append(".mmp");
@@ -599,7 +579,7 @@ bool SymbianSubdirsMetaMakefileGenerator::init() {
if(subdir.isRelative() && old_output_dir != oldpwd) {
sub->output_dir = old_output_dir + "/" + subdir.path();
printf("Reading %s [%s]\n", subdir.absoluteFilePath().toLatin1().constData(), sub->output_dir.toLatin1().constData());
- } else { //what about shadow builds?
+ } else {
sub->output_dir = sub->input_dir;
printf("Reading %s\n", subdir.absoluteFilePath().toLatin1().constData());
}
@@ -654,10 +634,8 @@ bool SymbianSubdirsMetaMakefileGenerator::init() {
Subdir *self = new Subdir;
self->input_dir = qmake_getpwd();
- // to fully expand find all dependencies
- // do as recursion, then
- // insert result
- // as subdirs data in project
+ // To fully expand find all dependencies:
+ // Do as recursion, then insert result as subdirs data in project
QString newpwd = qmake_getpwd();
if(!newpwd.endsWith('/'))
newpwd += '/';
@@ -667,7 +645,7 @@ bool SymbianSubdirsMetaMakefileGenerator::init() {
mmpFilename.prepend(newpwd);
mmpFilename = mmpFilename.append(".mmp");
- // map mmpfile to its absolut filepath
+ // map mmpfile to its absolute filepath
mmpPaths.insert(mmpFilename, newpwd);
QStringList directDependencyList = getDependencyList(mmpFilename, -1);
@@ -676,27 +654,14 @@ bool SymbianSubdirsMetaMakefileGenerator::init() {
}
QStringList dependencyList = getDependencyList(mmpFilename, 0);
-/*
- printf("\n \n PRINTING DEPENDENCY FOR: %s \n", mmpFilename.toAscii().data());
- // print it for debug
- for(int i = 0; i < dependencyList.size(); ++i) {
- printf("FINAL MMP DEPENDENCIES: %s\n", dependencyList.at(i).toAscii().data());
- }
- printf("\n \n");
- printf("\n \n PRINTING DIRECT DEPENDENCY FOR: %s \n", mmpFilename.toAscii().data());
- // print it for debug
- for(int i = 0; i < directDependencyList.size(); ++i) {
- printf("DIRECT MMP DEPENDENCIES: %s\n", directDependencyList.at(i).toAscii().data());
- }
- printf("\n \n");
-*/
self->output_dir = Option::output_dir;
if(!Option::recursive || (!Option::output.fileName().endsWith(Option::dir_sep) && !QFileInfo(Option::output).isDir()))
self->output_file = Option::output.fileName();
self->makefile = new BuildsMetaMakefileGenerator(project, name, false);
self->makefile->init();
subs.append(self);
+
return true;
}
@@ -714,7 +679,6 @@ QStringList SymbianSubdirsMetaMakefileGenerator::calculateRelativePaths(QString
mmpRelativePaths.append(childDir);
else
directory.relativeFilePath(relativePath);
- //mmpRelativePaths.append(directory.relativeFilePath(childDir) + "/" + mmpChildren.at(i));
}
}
return mmpRelativePaths;
diff --git a/qmake/generators/symbian/initprojectdeploy_symbian.cpp b/qmake/generators/symbian/initprojectdeploy_symbian.cpp
index 22e4aad..8e3e20b 100644
--- a/qmake/generators/symbian/initprojectdeploy_symbian.cpp
+++ b/qmake/generators/symbian/initprojectdeploy_symbian.cpp
@@ -118,9 +118,7 @@ void initProjectDeploySymbian(QMakeProject* project,
}
QString deploymentDrive = targetPathHasDriveLetter ? targetPath.left(2) : QLatin1String("c:");
- // foreach item in DEPLOYMENT
foreach(QString item, project->values("DEPLOYMENT")) {
- // get item.path
QString devicePath = project->first(item + ".path");
if (!deployBinaries
&& !devicePath.isEmpty()
@@ -172,7 +170,6 @@ void initProjectDeploySymbian(QMakeProject* project,
continue;
}
- // foreach d in item.sources
foreach(QString source, project->values(item + ".sources")) {
source = Option::fixPathToLocalOS(source);
QString nameFilter;
@@ -216,7 +213,7 @@ void initProjectDeploySymbian(QMakeProject* project,
QDirIterator iterator(searchPath, QStringList() << nameFilter
, QDir::Files | QDir::NoDotAndDotDot | QDir::NoSymLinks
, dirSearch ? QDirIterator::Subdirectories : QDirIterator::NoIteratorFlags );
- // foreach dirIterator-entry in d
+
while(iterator.hasNext()) {
iterator.next();
QFileInfo iteratorInfo(iterator.filePath());
diff --git a/qmake/generators/symbian/symmake.cpp b/qmake/generators/symbian/symmake.cpp
index 374d058..1f22c70 100644
--- a/qmake/generators/symbian/symmake.cpp
+++ b/qmake/generators/symbian/symmake.cpp
@@ -146,7 +146,8 @@ QString SymbianMakefileGenerator::canonizePath(const QString& origPath)
SymbianMakefileGenerator::SymbianMakefileGenerator() : MakefileGenerator() { }
SymbianMakefileGenerator::~SymbianMakefileGenerator() { }
-void SymbianMakefileGenerator::writeHeader(QTextStream &t) {
+void SymbianMakefileGenerator::writeHeader(QTextStream &t)
+{
t << "// ============================================================================" << endl;
t << "// * Makefile for building: " << escapeFilePath(var("TARGET")) << endl;
t << "// * Generated by qmake (" << qmake_version() << ") (Qt " << QT_VERSION_STR << ") on: ";
@@ -155,13 +156,10 @@ void SymbianMakefileGenerator::writeHeader(QTextStream &t) {
t << "// * user." << endl;
t << "// * Project: " << fileFixify(project->projectFile()) << endl;
t << "// * Template: " << var("TEMPLATE") << endl;
- //if(!project->isActiveConfig("build_pass"))
- // t << "// = Command: " << build_args().replace("$(QMAKE)",
- // (project->isEmpty("QMAKE_QMAKE") ? QString("qmake") : var("QMAKE_QMAKE"))) << endl;
t << "// ============================================================================" << endl;
t << endl;
- // defining define for bld.inf
+ // Defining define for bld.inf
QString shortProFilename = project->projectFile();
shortProFilename.replace(0, shortProFilename.lastIndexOf("/") + 1, QString(""));
@@ -177,7 +175,8 @@ void SymbianMakefileGenerator::writeHeader(QTextStream &t) {
t << "#define " << bldinfDefine.toUpper() << endl << endl;
}
-bool SymbianMakefileGenerator::writeMakefile(QTextStream &t) {
+bool SymbianMakefileGenerator::writeMakefile(QTextStream &t)
+{
writeHeader(t);
QString numberOfIcons;
@@ -268,11 +267,13 @@ bool SymbianMakefileGenerator::writeMakefile(QTextStream &t) {
return true;
}
-bool SymbianMakefileGenerator::generatePkgFile(const QString &compiler, const QString &config, const QString &iconFile) {
- QString pkgFilename = QString("%1_%2_%3.%4")
+bool SymbianMakefileGenerator::generatePkgFile(const QString &compiler, const QString &config, const QString &iconFile)
+{
+ QString build = ( config == "udeb" ) ? "debug" : "release";
+ QString pkgFilename = QString("%1_%2-%3.%4")
.arg(fileInfo(project->projectFile()).completeBaseName())
+ .arg(build)
.arg(compiler)
- .arg(config)
.arg("pkg");
QFile pkgFile(pkgFilename);
if (!pkgFile.open(QIODevice::WriteOnly | QIODevice::Text))
@@ -280,48 +281,79 @@ bool SymbianMakefileGenerator::generatePkgFile(const QString &compiler, const QS
generatedFiles << pkgFile.fileName();
- // header info
+ // Header info
QTextStream t(&pkgFile);
t << QString("; %1 generated by qmake at %2").arg(pkgFilename).arg(QDateTime::currentDateTime().toString(Qt::ISODate)) << endl;
t << "; This file is generated by qmake and should not be modified by the user" << endl;
t << ";" << endl << endl;
- // language, (*** hardcoded to english atm)
- t << "; Language" << endl;
- t << "&EN" << endl << endl;
+ // Construct QStringList from pkg_prerules since we need search it before printed to file
+ QStringList rawPkgPreRules;
+ foreach(QString deploymentItem, project->values("DEPLOYMENT")) {
+ foreach(QString pkgrulesItem, project->values(deploymentItem + ".pkg_prerules")) {
+ QStringList pkgrulesValue = project->values(pkgrulesItem);
+ // If there is no stringlist defined for a rule, use rule name directly
+ // This is convenience for defining single line mmp statements
+ if (pkgrulesValue.isEmpty()){
+ rawPkgPreRules << pkgrulesItem;
+ } else {
+ foreach(QString pkgrule, pkgrulesValue) {
+ rawPkgPreRules << pkgrule;
+ }
+ }
+ }
+ }
+
+ // Apply some defaults if specific data does not exist in PKG pre-rules
+
+ if(!containsStartWithItem('&', rawPkgPreRules)) {
+ // language, (*** hardcoded to english atm, should be parsed from TRANSLATIONS)
+ t << "; Language" << endl;
+ t << "&EN" << endl << endl;
+ } else {
+ // In case user defines langs, he must take care also about SIS header
+ if(!containsStartWithItem('#', rawPkgPreRules))
+ fprintf(stderr, "Warning: If language is defined with DEPLOYMENT pkg_prerules, also the SIS header must be defined\n");
+ }
// name of application, UID and version
QString applicationName = project->first("TARGET");
int last = applicationName.lastIndexOf(QLatin1Char('/'));
applicationName = applicationName.mid( last == -1 ? 0 : last+1 );
-
QString applicationVersion = project->first("VERSION").isEmpty() ? "1,0,0" : project->first("VERSION").replace('.', ',');
- t << "; SIS header: name, uid, version" << endl;
- t << QString("#{\"%1\"},(%2),%3").arg(applicationName).arg(uid3).arg(applicationVersion) << endl << endl;
-
- // vendor names (*** hardcoded for now)
- t << "; Localised Vendor name" << endl;
- t << "%{\"Nokia, Qt Software\"}" << endl << endl;
- t << "; Unique Vendor name" << endl;
- t << ":\"Nokia, Qt Software\"" << endl << endl;
-
- // Dependencies
- t << "; Dependencies" << endl;
- foreach(QString item, project->values("DEPLOYMENT")) {
- QStringList dependencies = project->values(item + ".depends");
- foreach(QString dependency, dependencies) {
- t << dependency << endl;
+ if(!containsStartWithItem('#', rawPkgPreRules)) {
+ t << "; SIS header: name, uid, version" << endl;
+ t << QString("#{\"%1\"},(%2),%3").arg(applicationName).arg(uid3).arg(applicationVersion) << endl << endl;
+ }
+
+ // Localized vendor name
+ if(!containsStartWithItem('%', rawPkgPreRules)) {
+ t << "; Localised Vendor name" << endl;
+ t << "%{\"Vendor\"}" << endl << endl;
+ }
+
+ // Unique vendor name
+ if(!containsStartWithItem(':', rawPkgPreRules)) {
+ t << "; Unique Vendor name" << endl;
+ t << ":\"Vendor\"" << endl << endl;
+ }
+
+ // PKG pre-rules - these are added before actual file installations i.e. SISX package body
+ if(rawPkgPreRules.size()) {
+ t << "; Manual PKG pre-rules from PRO files" << endl;
+ foreach(QString item, rawPkgPreRules) {
+ t << item << endl;
}
+ t << endl;
}
- t << endl;
- // install paths on the phone *** should be dynamic at some point
+ // Install paths on the phone *** should be dynamic at some point
QString installPathBin = "!:\\sys\\bin";
QString installPathResource = "!:\\resource\\apps";
QString installPathRegResource = "!:\\private\\10003a3f\\import\\apps";
- // find location of builds
+ // Find location of builds
QString epocReleasePath = QString("%1epoc32/release/%2/%3")
.arg(epocRoot())
.arg(compiler)
@@ -377,11 +409,43 @@ bool SymbianMakefileGenerator::generatePkgFile(const QString &compiler, const QS
.arg(QString(depList.at(i).from).replace('\\','/'))
.arg(depList.at(i).to) << endl;
}
+ t << endl;
+
+ // PKG post-rules - these are added after actual file installations i.e. SIS package body
+ t << "; Manual PKG post-rules from PRO files" << endl;
+ foreach(QString deploymentItem, project->values("DEPLOYMENT")) {
+ foreach(QString pkgrulesItem, project->values(deploymentItem + ".pkg_postrules")) {
+ QStringList pkgrulesValue = project->values(pkgrulesItem);
+ // If there is no stringlist defined for a rule, use rule name directly
+ // This is convenience for defining single line statements
+ if (pkgrulesValue.isEmpty()){
+ t << pkgrulesItem << endl;
+ } else {
+ foreach(QString pkgrule, pkgrulesValue) {
+ t << pkgrule << endl;
+ }
+ }
+ t << endl;
+ }
+ }
return true;
}
-bool SymbianMakefileGenerator::writeCustomDefFile() {
+bool SymbianMakefileGenerator::containsStartWithItem(const QChar &c, const QStringList& src)
+{
+ bool result = false;
+ foreach (QString str, src) {
+ if (str.startsWith(c)) {
+ result = true;
+ break;
+ }
+ }
+ return result;
+}
+
+bool SymbianMakefileGenerator::writeCustomDefFile()
+{
if(targetType.compare("plugin", Qt::CaseInsensitive) == 0 && !project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive)) {
// Create custom def file for plugin
QFile ft(QLatin1String(PLUGIN_COMMON_DEF_FILE_ACTUAL));
@@ -419,10 +483,7 @@ bool SymbianMakefileGenerator::writeCustomDefFile() {
void SymbianMakefileGenerator::init()
{
MakefileGenerator::init();
-/*
- DUMP_VAR("GENERATED_SOURCES");
-*/
- // fixing again !!!
+
if(0 != project->values("QMAKE_PLATFORM").size())
platform = varGlue("QMAKE_PLATFORM", "", " ", "");
@@ -439,29 +500,25 @@ void SymbianMakefileGenerator::init()
// .mmp
initMmpVariables();
- // UID1
- uid1 = generateUID1();
-
- // check TARGET.UID2 and TARGET.UID3 presence
+ // Check TARGET.UID2 and TARGET.UID3 presence
if(0 != project->values("TARGET.UID3").size()) {
uid3 = project->first("TARGET.UID3");
} else {
uid3 = generateUID3();
}
- // some fix
if((project->values("TEMPLATE")).contains("app"))
targetType = "exe";
else if((project->values("TEMPLATE")).contains("lib")) {
- // check CONFIG to see if we are to build staticlib or dll
+ // Check CONFIG to see if we are to build staticlib or dll
if(project->values("CONFIG").contains("staticlib") || project->values("CONFIG").contains("static"))
targetType = "staticlib";
else if (project->values("CONFIG").contains("plugin"))
targetType = "plugin";
- else // for now it will be default
+ else
targetType = "dll";
}
- else // fix
+ else
targetType = "subdirs";
if(0 != project->values("TARGET.UID2").size()) {
@@ -471,11 +528,10 @@ void SymbianMakefileGenerator::init()
} else {
if(getTargetExtension() == "exe") {
if(project->values("QT").contains("gui", Qt::CaseInsensitive)) {
- // exe and also gui
+ // exe and gui -> uid2 needed
uid2 = "0x100039CE";
} else {
- // exe but not gui.. uid2 is ignored anyway
- // set it to 0
+ // exe but not gui: uid2 is ignored anyway -> set it to 0
uid2 = "0";
}
} else if(getTargetExtension() == "dll" || getTargetExtension() == "lib") {
@@ -500,7 +556,8 @@ void SymbianMakefileGenerator::init()
}
}
-QString SymbianMakefileGenerator::getTargetExtension() {
+QString SymbianMakefileGenerator::getTargetExtension()
+{
QString ret;
if(targetType.compare("exe", Qt::CaseInsensitive) == 0 || targetType.compare("app", Qt::CaseInsensitive) == 0) {
ret.append("exe");
@@ -509,41 +566,30 @@ QString SymbianMakefileGenerator::getTargetExtension() {
} else if (targetType.compare("dll", Qt::CaseInsensitive) == 0 || targetType.compare("plugin", Qt::CaseInsensitive) == 0) {
ret.append("dll");
} else if (targetType.compare("subdirs", Qt::CaseInsensitive) == 0) {
- // just fix
ret.append("subdirs");
} else {
- // if nothing said then assume "exe"
+ // If nothing else set, default to exe
ret.append("exe");
}
return ret;
}
-bool SymbianMakefileGenerator::isConfigSetToSymbian() {
+bool SymbianMakefileGenerator::isConfigSetToSymbian()
+{
return project->values("CONFIG").contains("symbian", Qt::CaseInsensitive);
}
-QString SymbianMakefileGenerator::generateUID1() {
- // just for now
- return QString("");
-}
-
-QString SymbianMakefileGenerator::generateUID2() {
- // standard stuff; picked form symbian
- // later meybe read from somewhere
- return QString("");
-}
-
-QString SymbianMakefileGenerator::generateUID3() {
-
+QString SymbianMakefileGenerator::generateUID3()
+{
QString target = project->first("TARGET");
QString currPath = qmake_getpwd();
target.prepend("/").prepend(currPath);
return generate_test_uid(target);
-
}
-bool SymbianMakefileGenerator::initMmpVariables() {
+bool SymbianMakefileGenerator::initMmpVariables()
+{
QStringList sysincspaths;
QStringList srcincpaths;
QStringList srcpaths;
@@ -592,9 +638,7 @@ bool SymbianMakefileGenerator::initMmpVariables() {
appendIfnotExist(sysincspaths, includepath + QString("/" QT_EXTRA_INCLUDE_DIR));
}
- // remove duplicate include path entries
- // convert to native directory separators
- // to check if includepaths are same
+ // Remove duplicate include path entries
QStringList temporary;
for(int i = 0; i < sysincspaths.size(); ++i) {
QString origPath = sysincspaths.at(i);
@@ -608,7 +652,7 @@ bool SymbianMakefileGenerator::initMmpVariables() {
if(origPathInfo.absoluteFilePath() == tmpPathInfo.absoluteFilePath()) {
bFound = true;
if(!tmpPathInfo.isRelative() && origPathInfo.isRelative()) {
- // we keep the relative notation
+ // We keep the relative notation
temporary.removeOne(tmpPath);
temporary << origPath;
}
@@ -628,8 +672,8 @@ bool SymbianMakefileGenerator::initMmpVariables() {
return true;
}
-bool SymbianMakefileGenerator::removeDuplicatedStrings(QStringList& stringList) {
-
+bool SymbianMakefileGenerator::removeDuplicatedStrings(QStringList& stringList)
+{
QStringList tmpStringList;
for(int i = 0; i < stringList.size(); ++i) {
@@ -645,7 +689,8 @@ bool SymbianMakefileGenerator::removeDuplicatedStrings(QStringList& stringList)
return true;
}
-bool SymbianMakefileGenerator::writeMmpFileHeader(QTextStream &t){
+bool SymbianMakefileGenerator::writeMmpFileHeader(QTextStream &t)
+{
t << "// ==============================================================================" << endl;
t << "// Generated by qmake (" << qmake_version() << ") (Qt " << QT_VERSION_STR << ") on: ";
t << QDateTime::currentDateTime().toString(Qt::ISODate) << endl;
@@ -663,8 +708,6 @@ bool SymbianMakefileGenerator::writeMmpFile(QString &filename, QStringList &symb
if(ft.open(QIODevice::WriteOnly)) {
generatedFiles << ft.fileName();
- //printf("WRITING: %s \n", qPrintable(filename));
-
QTextStream t(&ft);
writeMmpFileHeader(t);
@@ -712,8 +755,8 @@ bool SymbianMakefileGenerator::writeMmpFile(QString &filename, QStringList &symb
return true;
}
-bool SymbianMakefileGenerator::writeMmpFileMacrosPart(QTextStream& t) {
-
+bool SymbianMakefileGenerator::writeMmpFileMacrosPart(QTextStream& t)
+{
t << endl;
if(isConfigSetToSymbian())
@@ -741,32 +784,34 @@ bool SymbianMakefileGenerator::writeMmpFileMacrosPart(QTextStream& t) {
return true;
}
-bool SymbianMakefileGenerator::addMacro(QTextStream& t, const QString& value) {
+bool SymbianMakefileGenerator::addMacro(QTextStream& t, const QString& value)
+{
t << "MACRO" << "\t\t" << value << endl;
return true;
}
-bool SymbianMakefileGenerator::writeMmpFileTargetPart(QTextStream& t) {
+bool SymbianMakefileGenerator::writeMmpFileTargetPart(QTextStream& t)
+{
if(getTargetExtension() == "exe") {
t << "TARGET" << "\t\t" << removePathSeparators(escapeFilePath(fileFixify(project->first("TARGET"))).append(".exe")) << "\n";
if (project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive))
t << "TARGETTYPE" << "\t\t" << "STDEXE" << endl;
else
t << "TARGETTYPE" << "\t\t" << "EXE" << endl;
- } else if (getTargetExtension() == "dll"){
+ } else if (getTargetExtension() == "dll"){
t << "TARGET" << "\t\t" << removePathSeparators(escapeFilePath(fileFixify(project->first("TARGET"))).append(".dll")) << "\n";
if (project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive))
t << "TARGETTYPE" << "\t\t" << "STDDLL" << endl;
else
t << "TARGETTYPE" << "\t\t" << "DLL" << endl;
- } else if (getTargetExtension() == "lib"){
+ } else if (getTargetExtension() == "lib"){
t << "TARGET" << "\t\t" << removePathSeparators(escapeFilePath(fileFixify(project->first("TARGET"))).append(".lib")) << "\n";
if (project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive))
t << "TARGETTYPE" << "\t\t" << "STDLIB" << endl;
else
t << "TARGETTYPE" << "\t\t" << "LIB" << endl;
- } else {
+ } else {
printf("unexpected target and targettype %s\n", getTargetExtension().toAscii().data());
}
@@ -783,7 +828,7 @@ bool SymbianMakefileGenerator::writeMmpFileTargetPart(QTextStream& t) {
t << "SECUREID" << "\t\t" << uid3 << endl;
}
- // default value used from mkspecs..qconfig.h is 0
+ // default value used from mkspecs is 0
if(0 != project->values("TARGET.VID").size()) {
t << "VENDORID" << "\t\t" << project->values("TARGET.VID").join(" ") << endl;
}
@@ -798,7 +843,7 @@ bool SymbianMakefileGenerator::writeMmpFileTargetPart(QTextStream& t) {
t << "EPOCALLOWDLLDATA" << endl;
if(targetType.compare("plugin", Qt::CaseInsensitive) == 0 && !project->values("CONFIG").contains("stdbinary", Qt::CaseInsensitive)) {
- // use custom def file for Qt plugins
+ // Use custom def file for Qt plugins
t << "DEFFILE " PLUGIN_COMMON_DEF_FILE_FOR_MMP << endl;
}
@@ -809,12 +854,11 @@ bool SymbianMakefileGenerator::writeMmpFileTargetPart(QTextStream& t) {
/*
- Application registration resource files
- should be installed to the
-
+ Application registration resource files should be installed to the
\private\10003a3f\import\apps directory.
*/
-bool SymbianMakefileGenerator::writeMmpFileResourcePart(QTextStream& t, QStringList &symbianLangCodes) {
+bool SymbianMakefileGenerator::writeMmpFileResourcePart(QTextStream& t, QStringList &symbianLangCodes)
+{
if((getTargetExtension() == "exe") &&
!project->values("CONFIG").contains("no_icon", Qt::CaseInsensitive)) {
QString target = escapeFilePath(fileFixify(project->first("TARGET")));
@@ -834,15 +878,10 @@ bool SymbianMakefileGenerator::writeMmpFileResourcePart(QTextStream& t, QStringL
t << "TARGETPATH\t\t\t" RESOURCE_DIRECTORY_MMP<< endl;
t << "END" << endl << endl;
- // now append extension
QString regTarget = target;
regTarget.append("_reg.rss");
- // must state SOURCEPATH for resources
- // relative placement (relative to dir where .mmp located)
- // absolute placement (!RELATIVE! to EPOCROOT dir)
-
- t << "SOURCEPATH\t\t\t. " << endl;
+ t << "SOURCEPATH\t\t\t." << endl;
t << "START RESOURCE\t\t" << regTarget << endl;
if (isForSymbianSbsv2())
t << "DEPENDS " << target << ".rsg" << endl;
@@ -852,7 +891,8 @@ bool SymbianMakefileGenerator::writeMmpFileResourcePart(QTextStream& t, QStringL
return true;
}
-bool SymbianMakefileGenerator::writeMmpFileSystemIncludePart(QTextStream& t) {
+bool SymbianMakefileGenerator::writeMmpFileSystemIncludePart(QTextStream& t)
+{
QDir current = QDir::current();
@@ -869,14 +909,16 @@ bool SymbianMakefileGenerator::writeMmpFileSystemIncludePart(QTextStream& t) {
return true;
}
-bool SymbianMakefileGenerator::writeMmpFileIncludePart(QTextStream& t) {
+bool SymbianMakefileGenerator::writeMmpFileIncludePart(QTextStream& t)
+{
writeMmpFileSystemIncludePart(t);
return true;
}
-bool SymbianMakefileGenerator::writeMmpFileLibraryPart(QTextStream& t) {
+bool SymbianMakefileGenerator::writeMmpFileLibraryPart(QTextStream& t)
+{
QStringList &libs = project->values("LIBS");
libs << project->values("QMAKE_LIBS");
@@ -884,8 +926,7 @@ bool SymbianMakefileGenerator::writeMmpFileLibraryPart(QTextStream& t) {
for(int i = 0; i < libs.size(); ++i) {
QString lib = libs.at(i);
- // The -L flag is uninteresting, since all symbian libraries exist in the
- // same directory.
+ // The -L flag is uninteresting, since all symbian libraries exist in the same directory.
if(lib.startsWith("-l")) {
lib.remove(0,2);
QString mmpStatement;
@@ -898,7 +939,7 @@ bool SymbianMakefileGenerator::writeMmpFileLibraryPart(QTextStream& t) {
} else {
// Hacky way to find out what kind of library it is. Check the
// ARMV5 build directory for library type. We default to shared
- // library, since that is probably more common.
+ // library, since that is more common.
QString udebStaticLibLocation(epocRoot());
QString urelStaticLibLocation(udebStaticLibLocation);
udebStaticLibLocation += QString("epoc32/release/armv5/udeb/%1.lib").arg(lib);
@@ -918,7 +959,8 @@ bool SymbianMakefileGenerator::writeMmpFileLibraryPart(QTextStream& t) {
return true;
}
-bool SymbianMakefileGenerator::writeMmpFileCapabilityPart(QTextStream& t) {
+bool SymbianMakefileGenerator::writeMmpFileCapabilityPart(QTextStream& t)
+{
if(0 != project->first("TARGET.CAPABILITY").size()) {
QStringList &capabilities = project->values("TARGET.CAPABILITY");
t << "CAPABILITY" << "\t\t";
@@ -936,7 +978,8 @@ bool SymbianMakefileGenerator::writeMmpFileCapabilityPart(QTextStream& t) {
return true;
}
-bool SymbianMakefileGenerator::writeMmpFileCompilerOptionPart(QTextStream& t) {
+bool SymbianMakefileGenerator::writeMmpFileCompilerOptionPart(QTextStream& t)
+{
QString cw, armcc;
if(0 != project->values("QMAKE_CXXFLAGS.CW").size()) {
@@ -982,13 +1025,13 @@ bool SymbianMakefileGenerator::writeMmpFileCompilerOptionPart(QTextStream& t) {
t << "OPTION" << '\t' << " CW " << cw << endl;
if (!armcc.isEmpty())
t << "OPTION" << '\t' << " ARMCC "<< armcc << endl;
- // others to come
t << endl;
return true;
}
-bool SymbianMakefileGenerator::writeMmpFileBinaryVersionPart(QTextStream& t) {
+bool SymbianMakefileGenerator::writeMmpFileBinaryVersionPart(QTextStream& t)
+{
QString applicationVersion = project->first("VERSION");
QStringList verNumList = applicationVersion.split('.');
uint major = 0;
@@ -1025,7 +1068,8 @@ bool SymbianMakefileGenerator::writeMmpFileBinaryVersionPart(QTextStream& t) {
return true;
}
-bool SymbianMakefileGenerator::writeMmpFileRulesPart(QTextStream& t) {
+bool SymbianMakefileGenerator::writeMmpFileRulesPart(QTextStream& t)
+{
foreach(QString item, project->values("MMP_RULES")) {
t << endl;
// If there is no stringlist defined for a rule, use rule name directly
@@ -1041,7 +1085,8 @@ bool SymbianMakefileGenerator::writeMmpFileRulesPart(QTextStream& t) {
return true;
}
-bool SymbianMakefileGenerator::writeBldInfContent(QTextStream &t, bool addDeploymentExtension) {
+bool SymbianMakefileGenerator::writeBldInfContent(QTextStream &t, bool addDeploymentExtension)
+{
// Read user defined bld inf rules
QMap<QString, QStringList> userBldInfRules;
for(QMap<QString, QStringList>::iterator it = project->variables().begin(); it != project->variables().end(); ++it) {
@@ -1083,7 +1128,7 @@ bool SymbianMakefileGenerator::writeBldInfContent(QTextStream &t, bool addDeploy
removeDuplicatedStrings(mmpProjects);
removeDuplicatedStrings(shadowProjects);
- // go in reverse order ... as that is the way how I build the list
+ // Go in reverse order as that is the way how we build the list
QListIterator<QString> iT(mmpProjects);
iT.toBack();
while(iT.hasPrevious()) {
@@ -1104,10 +1149,9 @@ bool SymbianMakefileGenerator::writeBldInfContent(QTextStream &t, bool addDeploy
relativePath = directory.relativeFilePath(fullProFilename);
bldinfFilename = BLD_INF_FILENAME "." + cleanMmpName;
if(relativePath.contains("/")) {
- // shadow .pro not in same
- // directory as parent .pro
+ // Shadow .pro not in same directory as parent .pro
if(relativePath.startsWith("..")) {
- // shadow .pro out of parent .pro
+ // Shadow .pro out of parent .pro
relativePath.replace(relativePath.lastIndexOf("/"), relativePath.length(), QString(""));
bldinfFilename.prepend("/").prepend(relativePath);
} else {
@@ -1115,11 +1159,10 @@ bool SymbianMakefileGenerator::writeBldInfContent(QTextStream &t, bool addDeploy
bldinfFilename.prepend("/").prepend(relativePath);
}
} else {
- // shadow .pro and parent .pro in same directory
+ // Shadow .pro and parent .pro in same directory
bldinfFilename.prepend("./");
}
} else { // regular project
- // calc relative path
QDir directory(currentPath);
relativePath = directory.relativeFilePath(fullProFilename);
relativePath.replace(relativePath.lastIndexOf("/"), relativePath.length(), QString(""));
@@ -1198,13 +1241,14 @@ bool SymbianMakefileGenerator::writeBldInfContent(QTextStream &t, bool addDeploy
return true;
}
-bool SymbianMakefileGenerator::writeRegRssFile(QString &appName, QStringList &userItems) {
+bool SymbianMakefileGenerator::writeRegRssFile(QString &appName, QStringList &userItems)
+{
QString filename(appName);
filename.append("_reg.rss");
QFile ft(filename);
if(ft.open(QIODevice::WriteOnly)) {
generatedFiles << ft.fileName();
- QTextStream t(&ft);
+ QTextStream t(&ft);
t << "// ============================================================================" << endl;
t << "// * Generated by qmake (" << qmake_version() << ") (Qt " << QT_VERSION_STR << ") on: ";
t << QDateTime::currentDateTime().toString(Qt::ISODate) << endl;
@@ -1212,34 +1256,35 @@ bool SymbianMakefileGenerator::writeRegRssFile(QString &appName, QStringList &us
t << "// * user." << endl;
t << "// ============================================================================" << endl;
t << endl;
- t << "#include <" << appName << ".rsg>" << endl;
- t << "#include <appinfo.rh>" << endl;
+ t << "#include <" << appName << ".rsg>" << endl;
+ t << "#include <appinfo.rh>" << endl;
+ t << endl;
+ //t << "#include <data_caging_paths.hrh>" << "\n" << endl;
+ t << "UID2 " << "KUidAppRegistrationResourceFile" << endl;
+ t << "UID3 " << uid3 << endl << endl;
+ t << "RESOURCE APP_REGISTRATION_INFO" << endl;
+ t << "\t{" << endl;
+ t << "\tapp_file=\"" << appName << "\";" << endl;
+ t << "\tlocalisable_resource_file=\"" RESOURCE_DIRECTORY_RESOURCE << appName << "\";" << endl;
t << endl;
- //t << "#include <data_caging_paths.hrh>" << "\n" << endl;
- t << "UID2 " << "KUidAppRegistrationResourceFile" << endl;
- t << "UID3 " << uid3 << endl << endl;
- t << "RESOURCE APP_REGISTRATION_INFO" << endl;
- t << "\t{" << endl;
- t << "\tapp_file=\"" << appName << "\";" << endl;
- t << "\tlocalisable_resource_file=\"" RESOURCE_DIRECTORY_RESOURCE << appName << "\";" << endl;
- t << endl;
foreach(QString item, userItems)
t << "\t" << item << endl;
- t << "\t}" << endl;
+ t << "\t}" << endl;
} else {
return false;
}
return true;
}
-bool SymbianMakefileGenerator::writeRssFile(QString &appName, QString &numberOfIcons, QString &iconFile) {
+bool SymbianMakefileGenerator::writeRssFile(QString &appName, QString &numberOfIcons, QString &iconFile)
+{
QString filename(appName);
filename.append(".rss");
QFile ft(filename);
if(ft.open(QIODevice::WriteOnly)) {
generatedFiles << ft.fileName();
- QTextStream t(&ft);
+ QTextStream t(&ft);
t << "// ============================================================================" << endl;
t << "// * Generated by qmake (" << qmake_version() << ") (Qt " << QT_VERSION_STR << ") on: ";
t << QDateTime::currentDateTime().toString(Qt::ISODate) << endl;
@@ -1251,11 +1296,11 @@ bool SymbianMakefileGenerator::writeRssFile(QString &appName, QString &numberOfI
t << "#include \"" << appName << ".loc\"" << endl;
t << endl;
t << "RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info" << endl;
- t << "\t{" << endl;
+ t << "\t{" << endl;
t << "\tshort_caption = STRING_r_short_caption;" << endl;
t << "\tcaption_and_icon =" << endl;
t << "\tCAPTION_AND_ICON_INFO" << endl;
- t << "\t\t{" << endl;
+ t << "\t\t{" << endl;
t << "\t\tcaption = STRING_r_caption;" << endl;
if(numberOfIcons.isEmpty() || iconFile.isEmpty() ) {
@@ -1268,22 +1313,23 @@ bool SymbianMakefileGenerator::writeRssFile(QString &appName, QString &numberOfI
t << "\t\tnumber_of_icons = " << numberOfIcons << ";" << endl;
t << "\t\ticon_file = \"" << iconFile << "\";" << endl;
}
- t << "\t\t};" << endl;
- t << "\t}" << endl;
- t << endl;
- } else {
+ t << "\t\t};" << endl;
+ t << "\t}" << endl;
+ t << endl;
+ } else {
return false;
}
return true;
}
-bool SymbianMakefileGenerator::writeLocFile(QString &appName, QStringList &symbianLangCodes) {
+bool SymbianMakefileGenerator::writeLocFile(QString &appName, QStringList &symbianLangCodes)
+{
QString filename(appName);
filename.append(".loc");
QFile ft(filename);
if(ft.open(QIODevice::WriteOnly)) {
generatedFiles << ft.fileName();
- QTextStream t(&ft);
+ QTextStream t(&ft);
t << "// ============================================================================" << endl;
t << "// * Generated by qmake (" << qmake_version() << ") (Qt " << QT_VERSION_STR << ") on: ";
t << QDateTime::currentDateTime().toString(Qt::ISODate) << endl;
@@ -1311,7 +1357,8 @@ bool SymbianMakefileGenerator::writeLocFile(QString &appName, QStringList &symbi
return true;
}
-void SymbianMakefileGenerator::readRssRules(QString &numberOfIcons, QString &iconFile, QStringList &userRssRules) {
+void SymbianMakefileGenerator::readRssRules(QString &numberOfIcons, QString &iconFile, QStringList &userRssRules)
+{
for(QMap<QString, QStringList>::iterator it = project->variables().begin(); it != project->variables().end(); ++it) {
if (it.key().startsWith(RSS_RULES_BASE)) {
QString newKey = it.key().mid(sizeof(RSS_RULES_BASE)-1);
@@ -1392,7 +1439,8 @@ void SymbianMakefileGenerator::readRssRules(QString &numberOfIcons, QString &ico
}
}
-QStringList SymbianMakefileGenerator::symbianLangCodesFromTsFiles() {
+QStringList SymbianMakefileGenerator::symbianLangCodesFromTsFiles()
+{
QStringList tsfiles;
QStringList symbianLangCodes;
tsfiles << project->values("TRANSLATIONS");
@@ -1413,7 +1461,8 @@ QStringList SymbianMakefileGenerator::symbianLangCodesFromTsFiles() {
return symbianLangCodes;
}
-void SymbianMakefileGenerator::fillQt2S60LangMapTable() {
+void SymbianMakefileGenerator::fillQt2S60LangMapTable()
+{
qt2S60LangMapTable.reserve(170); // 165 items at time of writing.
qt2S60LangMapTable.insert("ab", "SC"); //Abkhazian //
qt2S60LangMapTable.insert("om", "SC"); //Afan //
@@ -1634,19 +1683,6 @@ void SymbianMakefileGenerator::generateCleanCommands(QTextStream& t,
}
}
-QString SymbianMakefileGenerator::getWithoutSpecialCharacters(QString& str)
-{
- QString tmp = str;
-
- tmp.replace(QString("/"), QString("_"));
- tmp.replace(QString("\\"), QString("_"));
- tmp.replace(QString("-"), QString("_"));
- tmp.replace(QString(":"), QString("_"));
- tmp.replace(QString("."), QString("_"));
-
- return tmp;
-}
-
void SymbianMakefileGenerator::removeSpecialCharacters(QString& str)
{
str.replace(QString("/"), QString("_"));
diff --git a/qmake/generators/symbian/symmake.h b/qmake/generators/symbian/symmake.h
index 52c3c4d..3bf9f1d 100644
--- a/qmake/generators/symbian/symmake.h
+++ b/qmake/generators/symbian/symmake.h
@@ -46,25 +46,16 @@
QT_BEGIN_NAMESPACE
-// In the Qt evaluation and educational version, we have a postfix in the
-// library name (e.g. qtmteval301.dll). QTDLL_POSTFIX is used for this.
-// A script modifies these lines when building eval/edu version, so be careful
-// when changing them.
-#ifndef QTDLL_POSTFIX
-#define QTDLL_POSTFIX ""
-#endif
-
#define BLD_INF_FILENAME "bld.inf"
#define MAKEFILE_DEPENDENCY_SEPARATOR " \\\n\t"
#define QT_EXTRA_INCLUDE_DIR "tmp"
-class SymbianMakefileGenerator : public MakefileGenerator {
-
+class SymbianMakefileGenerator : public MakefileGenerator
+{
protected:
QString platform;
- QString uid1;
QString uid2;
QString uid3;
QString privateDirUid;
@@ -80,20 +71,18 @@ protected:
QHash<QString, QString> qt2S60LangMapTable;
void removeSpecialCharacters(QString& str);
- QString getWithoutSpecialCharacters(QString& str);
QString fixPathForMmp(const QString& origPath, const QDir& parentDir);
QString canonizePath(const QString& origPath);
virtual bool writeMakefile(QTextStream &t);
bool generatePkgFile(const QString &compiler, const QString &config, const QString &iconFile);
+ bool containsStartWithItem(const QChar &c, const QStringList& src);
virtual void init();
QString getTargetExtension();
bool isConfigSetToSymbian();
- QString generateUID1();
- QString generateUID2();
QString generateUID3();
bool initMmpVariables();
@@ -150,8 +139,6 @@ public:
SymbianMakefileGenerator();
~SymbianMakefileGenerator();
-
};
#endif // SYMMAKEFILE_H
-
diff --git a/qmake/generators/symbian/symmake_abld.cpp b/qmake/generators/symbian/symmake_abld.cpp
index ccda9f2..17c365d 100644
--- a/qmake/generators/symbian/symmake_abld.cpp
+++ b/qmake/generators/symbian/symmake_abld.cpp
@@ -64,7 +64,6 @@ SymbianAbldMakefileGenerator::~SymbianAbldMakefileGenerator() { }
bool SymbianAbldMakefileGenerator::writeMkFile(const QString& wrapperFileName, bool deploymentOnly)
{
-
QString gnuMakefileName = QLatin1String("Makefile_") + uid3;
removeSpecialCharacters(gnuMakefileName);
gnuMakefileName.append(".mk");
@@ -204,9 +203,9 @@ void SymbianAbldMakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, bool
t << "endif" << endl;
t << endl;
t << "DEFINES" << '\t' << " = "
- << varGlue("PRL_EXPORT_DEFINES","-D"," -D"," ")
- << varGlue("QMAKE_COMPILER_DEFINES", "-D", "-D", " ")
- << varGlue("DEFINES","-D"," -D","") << endl;
+ << varGlue("PRL_EXPORT_DEFINES","-D"," -D"," ")
+ << varGlue("QMAKE_COMPILER_DEFINES", "-D", "-D", " ")
+ << varGlue("DEFINES","-D"," -D","") << endl;
t << "INCPATH" << '\t' << " = ";
@@ -365,7 +364,7 @@ void SymbianAbldMakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, bool
t << "\t-bldmake clean" << endl;
t << endl;
- // create execution target
+ // Create execution target
if (debugPlatforms.contains("winscw") && getTargetExtension() == "exe") {
t << "run:" << endl;
t << "\t-call " << epocRoot() << "epoc32\\release\\winscw\\udeb\\" << removePathSeparators(escapeFilePath(fileFixify(project->first("TARGET"))).append(".exe")) << endl << endl;
@@ -391,7 +390,7 @@ bool SymbianAbldMakefileGenerator::writeDeploymentTargets(QTextStream &t)
t << "\t-echo Deploying changed files..." << endl;
for (int i=0; i<depList.size(); ++i) {
- // xcopy prompts for selecting file or directory if target doesn't exist,
+ // Xcopy prompts for selecting file or directory if target doesn't exist,
// and doesn't provide switch to force file selection. It does provide dir forcing, though,
// so strip the last part of the destination.
t << "\t-$(XCOPY) \"" << depList.at(i).from << "\" \"" << depList.at(i).to.left(depList.at(i).to.lastIndexOf("\\")+1) << "\"" << endl;
@@ -425,4 +424,3 @@ void SymbianAbldMakefileGenerator::writeBldInfMkFilePart(QTextStream& t, bool ad
t << "gnumakefile " << gnuMakefileName << endl;
}
}
-
diff --git a/qmake/generators/symbian/symmake_abld.h b/qmake/generators/symbian/symmake_abld.h
index d323813..7de6510 100644
--- a/qmake/generators/symbian/symmake_abld.h
+++ b/qmake/generators/symbian/symmake_abld.h
@@ -46,8 +46,8 @@
QT_BEGIN_NAMESPACE
-class SymbianAbldMakefileGenerator : public SymbianMakefileGenerator {
-
+class SymbianAbldMakefileGenerator : public SymbianMakefileGenerator
+{
protected:
// Inherited from parent
@@ -62,8 +62,6 @@ public:
SymbianAbldMakefileGenerator();
~SymbianAbldMakefileGenerator();
-
};
#endif // SYMMAKE_ABLD_H
-
diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp
index 0266bac..34585e8 100644
--- a/qmake/generators/symbian/symmake_sbsv2.cpp
+++ b/qmake/generators/symbian/symmake_sbsv2.cpp
@@ -78,7 +78,9 @@ void SymbianSbsv2MakefileGenerator::exportFlm()
if (QFile::copy(item.absoluteFilePath(), destInfo.absoluteFilePath()))
generatedFiles << destInfo.absoluteFilePath();
else
- fprintf(stderr, "Error: Could not copy '%s' -> '%s'\n", qPrintable(item.absoluteFilePath()), qPrintable(destInfo.absoluteFilePath()));
+ fprintf(stderr, "Error: Could not copy '%s' -> '%s'\n",
+ qPrintable(item.absoluteFilePath()),
+ qPrintable(destInfo.absoluteFilePath()));
}
}
flmExportDone = true;
@@ -354,8 +356,6 @@ bool SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t
t << endl;
- // ### TODO: Linux emulator (platsim?) deployment
-
// Write post link rules
if(!project->isEmpty("QMAKE_POST_LINK")) {
t << "START EXTENSION qt/qmake_post_link" << endl;
@@ -418,4 +418,3 @@ void SymbianSbsv2MakefileGenerator::writeBldInfMkFilePart(QTextStream& t, bool a
Q_UNUSED(t);
Q_UNUSED(addDeploymentExtension);
}
-
diff --git a/qmake/generators/symbian/symmake_sbsv2.h b/qmake/generators/symbian/symmake_sbsv2.h
index e55d177..caa491d 100644
--- a/qmake/generators/symbian/symmake_sbsv2.h
+++ b/qmake/generators/symbian/symmake_sbsv2.h
@@ -46,8 +46,8 @@
QT_BEGIN_NAMESPACE
-class SymbianSbsv2MakefileGenerator : public SymbianMakefileGenerator {
-
+class SymbianSbsv2MakefileGenerator : public SymbianMakefileGenerator
+{
protected:
// Inherited from parent
@@ -69,4 +69,3 @@ private:
};
#endif // SYMMAKE_SBSV2_H
-
diff --git a/qmake/project.cpp b/qmake/project.cpp
index 2da2e3b..2bba765 100644
--- a/qmake/project.cpp
+++ b/qmake/project.cpp
@@ -3333,26 +3333,24 @@ QStringList &QMakeProject::values(const QString &_var, QMap<QString, QStringList
// UIDs starting with 0xE are test UIDs in symbian
-QString generate_test_uid(const QString& target) {
+QString generate_test_uid(const QString& target)
+{
QString tmp = generate_uid(target);
tmp.replace(0,1,"E");
tmp.prepend("0x");
- // printf("generate_test_uid for %s is %s \n", qPrintable(target), qPrintable(tmp));
-
return tmp;
}
// UIDs starting with 0xE are test UIDs in symbian
-QString generate_uid(const QString& target) {
-
+QString generate_uid(const QString& target)
+{
static QMap<QString, QString> targetToUid;
QString tmp = targetToUid[target];
if(!tmp.isEmpty()) {
- // printf("generate_uid for %s is %s \n", qPrintable(target), qPrintable(tmp));
return tmp;
}
diff --git a/qmake/qmake.pri b/qmake/qmake.pri
index 6808f68..65bd7d4 100644
--- a/qmake/qmake.pri
+++ b/qmake/qmake.pri
@@ -17,14 +17,14 @@ SOURCES += project.cpp property.cpp main.cpp generators/makefile.cpp \
generators/symbian/symmake.cpp \
generators/symbian/symmake_abld.cpp \
generators/symbian/symmake_sbsv2.cpp \
- generators/symbian/initprojectdeploy_symbian.cpp
+ generators/symbian/initprojectdeploy_symbian.cpp
# MWC does not provide an implementation of popen() so fake it.
win32-mwc {
SOURCES += qpopen.cpp \
}
-
+
HEADERS += project.h property.h generators/makefile.h \
generators/unix/unixmake.h meta.h option.h cachekeys.h \
generators/win32/winmakefile.h generators/projectgenerator.h \
diff --git a/qmake/qpopen.cpp b/qmake/qpopen.cpp
index ebde035..7acff92 100644
--- a/qmake/qpopen.cpp
+++ b/qmake/qpopen.cpp
@@ -69,7 +69,6 @@ bool QPopen::init(const char *command, const char* /* mode */)
// Ensure that the write handle to the child process's pipe for STDIN is not inherited.
SetHandleInformation( childStdInW, HANDLE_FLAG_INHERIT, 0);
- //TCHAR szCmdline[strlen(command)]=TEXT(command);
TCHAR *szCmdLine = new TCHAR[strlen(command)+1];
strcpy(szCmdLine, command);
@@ -126,7 +125,6 @@ int QPopen::fwrite(char* buffer, int maxBytes)
return 0;
}
-
int QPopen::fread(char* buffer, int maxBytes)
{
DWORD bytesRead;
@@ -140,4 +138,3 @@ int QPopen::fread(char* buffer, int maxBytes)
return 0;
}
-