diff options
-rw-r--r-- | qmake/generators/metamakefile.cpp | 18 | ||||
-rw-r--r-- | qmake/generators/metamakefile.h | 3 | ||||
-rw-r--r-- | qmake/option.cpp | 31 | ||||
-rw-r--r-- | qmake/option.h | 1 | ||||
-rw-r--r-- | qmake/project.cpp | 44 |
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")) { |