-rw-r--r-- | qmake/main.cpp | 51 |
1 files changed, 38 insertions, 13 deletions
diff --git a/qmake/main.cpp b/qmake/main.cpp index cc2d08a..a731314 100644 --- a/qmake/main.cpp +++ b/qmake/main.cpp @@ -1,11 +1,9 @@ /**************************************************************************** -** $Id$ ** -** Definition of ________ class. ** -** Created : 970521 +** ??? ** -** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** Copyright (C) 1992-2003 Trolltech AS. All rights reserved. ** -** This file is part of the network module of the Qt GUI Toolkit. +** This file is part of qmake. ** @@ -38,2 +36,3 @@ #include "project.h" +#include "property.h" #include "option.h" @@ -52,2 +51,6 @@ #undef main +#ifdef Q_OS_MAC +// for qurl +bool qt_resolve_symlinks = FALSE; +#endif @@ -61,11 +64,32 @@ int main(int argc, char **argv) QString oldpwd = sunworkshop42workaround.currentDirPath(); - Option::output_dir = oldpwd; //for now this is the output dir #ifdef Q_WS_WIN - if ( !(Option::output_dir.length() == 3 && Option::output_dir[0].isLetter() && Option::output_dir.endsWith(":/") ) ) + if(!(oldpwd.length() == 3 && oldpwd[0].isLetter() && oldpwd.endsWith(":/") ) ) #endif { - if(Option::output_dir.right(1) != QString(QChar(QDir::separator()))) - Option::output_dir += QDir::separator(); + if(oldpwd.right(1) != QString(QChar(QDir::separator()))) + oldpwd += QDir::separator(); } - QMakeProject proj; + Option::output_dir = oldpwd; //for now this is the output dir + + if(Option::output.name() != "-") { + QFileInfo fi(Option::output); + QString dir; + if(fi.isDir()) { + dir = fi.filePath(); + } else { + QString tmp_dir = fi.dirPath(); + if(!tmp_dir.isEmpty() && QFile::exists(tmp_dir)) + dir = tmp_dir; + } + if(!dir.isNull() && dir != ".") + Option::output_dir = dir; + if(QDir::isRelativePath(Option::output_dir)) + Option::output_dir.prepend(oldpwd); + } + + QMakeProperty prop; + if(Option::qmake_mode == Option::QMAKE_QUERY_PROPERTY || Option::qmake_mode == Option::QMAKE_SET_PROPERTY) + return prop.exec() ? 0 : 101; + + QMakeProject proj(&prop); int exit_val = 0; @@ -79,3 +103,3 @@ int main(int argc, char **argv) Option::qmake_mode == Option::QMAKE_GENERATE_PRL) { - QString fn = (*pfile); + QString fn = Option::fixPathToLocalOS((*pfile)); @@ -87,3 +111,3 @@ int main(int argc, char **argv) debug_msg(1, "Changing dir to: %s", fn.left(di).latin1()); - if(!QDir::setCurrent(fn.left(fn.findRev(Option::dir_sep)))) + if(!QDir::setCurrent(fn.left(di))) fprintf(stderr, "Cannot find directory: %s\n", fn.left(di).latin1()); @@ -125,2 +149,3 @@ int main(int argc, char **argv) Option::output.setName(proj.first("QMAKE_MAKEFILE")); + Option::output_dir = oldpwd; if(!mkfile->openOutput(Option::output)) { @@ -151,3 +176,3 @@ int main(int argc, char **argv) for(QMap<QString, QStringList>::Iterator it = vars.begin(); it != vars.end(); ++it) { - if(it.key().left(1) != "." && !it.data().isEmpty()) + if(!it.key().startsWith(".") && !it.data().isEmpty()) debug_msg(1, "%s === %s", it.key().latin1(), it.data().join(" :: ").latin1()); |