summaryrefslogtreecommitdiffstats
path: root/qmake
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2012-04-16 17:12:53 +0200
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2012-06-27 09:39:50 +0200
commit0ce1a6ba244c934b5b4504abb980806793d54515 (patch)
tree6d361c443dab353a2af8995baf0d1b8caa879b08 /qmake
parentfc1bca86081dc0698a7dd3f9c955edd194d5a798 (diff)
don't let the make spec determine the host mode any more
(some of) the generators are (moderately) x-platform, so it makes no sense to nail the host platform to a generator (and thus a spec). overriding the host platform is only a debugging mesasure anyway, so one can use the (now undocumented) -unix/-macx/-win32 options for that. Change-Id: If2a059f1feeb2c726e5838625ede1c7add829985 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Diffstat (limited to 'qmake')
-rw-r--r--qmake/generators/metamakefile.cpp18
-rw-r--r--qmake/generators/metamakefile.h3
-rw-r--r--qmake/option.cpp31
-rw-r--r--qmake/option.h1
-rw-r--r--qmake/project.cpp44
5 files changed, 33 insertions, 64 deletions
diff --git a/qmake/generators/metamakefile.cpp b/qmake/generators/metamakefile.cpp
index a1ab4ada75..3243aebb3b 100644
--- a/qmake/generators/metamakefile.cpp
+++ b/qmake/generators/metamakefile.cpp
@@ -515,37 +515,21 @@ MetaMakefileGenerator::createMetaGenerator(QMakeProject *proj, const QString &na
#endif // QT_QMAKE_PARSER_ONLY
bool
-MetaMakefileGenerator::modesForGenerator(const QString &gen,
- Option::HOST_MODE *host_mode, Option::TARG_MODE *target_mode)
+MetaMakefileGenerator::modeForGenerator(const QString &gen, Option::TARG_MODE *target_mode)
{
if (gen == "UNIX") {
#ifdef Q_OS_MAC
- *host_mode = Option::HOST_MACX_MODE;
*target_mode = Option::TARG_MACX_MODE;
-#elif defined(Q_OS_WIN)
- *host_mode = Option::HOST_WIN_MODE;
- *target_mode = Option::TARG_UNIX_MODE;
#else
- *host_mode = Option::HOST_UNIX_MODE;
*target_mode = Option::TARG_UNIX_MODE;
#endif
} else if (gen == "MSVC.NET" || gen == "BMAKE" || gen == "MSBUILD") {
- *host_mode = Option::HOST_WIN_MODE;
*target_mode = Option::TARG_WIN_MODE;
} else if (gen == "MINGW") {
-#if defined(Q_OS_MAC)
- *host_mode = Option::HOST_MACX_MODE;
-#elif defined(Q_OS_UNIX)
- *host_mode = Option::HOST_UNIX_MODE;
-#else
- *host_mode = Option::HOST_WIN_MODE;
-#endif
*target_mode = Option::TARG_WIN_MODE;
} else if (gen == "PROJECTBUILDER" || gen == "XCODE") {
- *host_mode = Option::HOST_MACX_MODE;
*target_mode = Option::TARG_MACX_MODE;
} else if (gen == "GBUILD") {
- *host_mode = Option::HOST_UNIX_MODE;
*target_mode = Option::TARG_INTEGRITY_MODE;
} else {
fprintf(stderr, "Unknown generator specified: %s\n", gen.toLatin1().constData());
diff --git a/qmake/generators/metamakefile.h b/qmake/generators/metamakefile.h
index 4e2e7c502e..a6889fd6cd 100644
--- a/qmake/generators/metamakefile.h
+++ b/qmake/generators/metamakefile.h
@@ -67,8 +67,7 @@ public:
static MetaMakefileGenerator *createMetaGenerator(QMakeProject *proj, const QString &name, bool op=true, bool *success = 0);
static MakefileGenerator *createMakefileGenerator(QMakeProject *proj, bool noIO = false);
- static bool modesForGenerator(const QString &generator,
- Option::HOST_MODE *host_mode, Option::TARG_MODE *target_mode);
+ static bool modeForGenerator(const QString &generator, Option::TARG_MODE *target_mode);
inline QMakeProject *projectFile() const { return project; }
diff --git a/qmake/option.cpp b/qmake/option.cpp
index 73c2e32abc..defe2bff28 100644
--- a/qmake/option.cpp
+++ b/qmake/option.cpp
@@ -401,6 +401,13 @@ static QStringList detectShellPath()
int
Option::init(int argc, char **argv)
{
+#if defined(Q_OS_MAC)
+ Option::host_mode = Option::HOST_MACX_MODE;
+#elif defined(Q_OS_UNIX)
+ Option::host_mode = Option::HOST_UNIX_MODE;
+#else
+ Option::host_mode = Option::HOST_WIN_MODE;
+#endif
Option::application_argv0 = 0;
Option::cpp_moc_mod = "";
Option::h_moc_mod = "moc_";
@@ -554,32 +561,24 @@ Option::init(int argc, char **argv)
}
} else if (Option::qmake_mode == Option::QMAKE_GENERATE_PROJECT) {
#if defined(Q_OS_MAC)
- Option::host_mode = Option::HOST_MACX_MODE;
Option::target_mode = Option::TARG_MACX_MODE;
#elif defined(Q_OS_UNIX)
- Option::host_mode = Option::HOST_UNIX_MODE;
Option::target_mode = Option::TARG_UNIX_MODE;
#else
- Option::host_mode = Option::HOST_WIN_MODE;
Option::target_mode = Option::TARG_WIN_MODE;
#endif
}
//defaults for globals
- if (Option::host_mode != Option::HOST_UNKNOWN_MODE)
- applyHostMode();
- return QMAKE_CMDLINE_SUCCESS;
-}
+ if (Option::host_mode == Option::HOST_WIN_MODE) {
+ Option::dir_sep = "\\";
+ Option::obj_ext = ".obj";
+ } else {
+ Option::dir_sep = "/";
+ Option::obj_ext = ".o";
+ }
-void Option::applyHostMode()
-{
- if (Option::host_mode == Option::HOST_WIN_MODE) {
- Option::dir_sep = "\\";
- Option::obj_ext = ".obj";
- } else {
- Option::dir_sep = "/";
- Option::obj_ext = ".o";
- }
+ return QMAKE_CMDLINE_SUCCESS;
}
void Option::prepareProject(const QString &pfile)
diff --git a/qmake/option.h b/qmake/option.h
index 88ad989b82..10d696ec68 100644
--- a/qmake/option.h
+++ b/qmake/option.h
@@ -106,7 +106,6 @@ struct Option
//both of these must be called..
static int init(int argc=0, char **argv=0); //parse cmdline
- static void applyHostMode();
static void prepareProject(const QString &pfile);
static bool postProcessProject(QMakeProject *);
diff --git a/qmake/project.cpp b/qmake/project.cpp
index 360c0958f1..1eb41ecfda 100644
--- a/qmake/project.cpp
+++ b/qmake/project.cpp
@@ -1600,37 +1600,27 @@ QMakeProject::read(uchar cmd)
void QMakeProject::validateModes()
{
- if (Option::host_mode == Option::HOST_UNKNOWN_MODE
- || Option::target_mode == Option::TARG_UNKNOWN_MODE) {
- Option::HOST_MODE host_mode;
+ if (Option::target_mode == Option::TARG_UNKNOWN_MODE) {
Option::TARG_MODE target_mode;
const QStringList &gen = base_vars.value("MAKEFILE_GENERATOR");
if (gen.isEmpty()) {
fprintf(stderr, "%s:%d: Using OS scope before setting MAKEFILE_GENERATOR\n",
parser.file.toLatin1().constData(), parser.line_no);
- } else if (MetaMakefileGenerator::modesForGenerator(gen.first(),
- &host_mode, &target_mode)) {
- if (Option::host_mode == Option::HOST_UNKNOWN_MODE) {
- Option::host_mode = host_mode;
- Option::applyHostMode();
- }
-
- if (Option::target_mode == Option::TARG_UNKNOWN_MODE) {
- const QStringList &tgt = base_vars.value("TARGET_PLATFORM");
- if (!tgt.isEmpty()) {
- const QString &os = tgt.first();
- if (os == "unix")
- Option::target_mode = Option::TARG_UNIX_MODE;
- else if (os == "macx")
- Option::target_mode = Option::TARG_MACX_MODE;
- else if (os == "win32")
- Option::target_mode = Option::TARG_WIN_MODE;
- else
- fprintf(stderr, "Unknown target platform specified: %s\n",
- os.toLatin1().constData());
- } else {
- Option::target_mode = target_mode;
- }
+ } else if (MetaMakefileGenerator::modeForGenerator(gen.first(), &target_mode)) {
+ const QStringList &tgt = base_vars.value("TARGET_PLATFORM");
+ if (!tgt.isEmpty()) {
+ const QString &os = tgt.first();
+ if (os == "unix")
+ Option::target_mode = Option::TARG_UNIX_MODE;
+ else if (os == "macx")
+ Option::target_mode = Option::TARG_MACX_MODE;
+ else if (os == "win32")
+ Option::target_mode = Option::TARG_WIN_MODE;
+ else
+ fprintf(stderr, "Unknown target platform specified: %s\n",
+ os.toLatin1().constData());
+ } else {
+ Option::target_mode = target_mode;
}
}
}
@@ -1752,7 +1742,6 @@ QMakeProject::doProjectInclude(QString file, uchar flags, QHash<QString, QString
if(flags & IncludeFlagFeature) {
if(!file.endsWith(Option::prf_ext))
file += Option::prf_ext;
- validateModes(); // init dir_sep
if(file.indexOf(QLatin1Char('/')) == -1 || !QFile::exists(file)) {
QStringList *&feature_roots = all_feature_roots[host_build];
if(!feature_roots) {
@@ -3737,7 +3726,6 @@ QStringList &QMakeProject::values(const QString &_var, QHash<QString, QStringLis
var = ".BUILTIN." + var;
place[var] = QStringList(qmake_getpwd());
} else if(var == QLatin1String("DIR_SEPARATOR")) {
- validateModes();
var = ".BUILTIN." + var;
place[var] = QStringList(Option::dir_sep);
} else if(var == QLatin1String("DIRLIST_SEPARATOR")) {