Qdoc: put hardcoded url as workaround QTBUG-28500
[profile/ivi/qtbase.git] / qmake / option.h
index ce680b0..6f4e3b3 100644 (file)
@@ -1,38 +1,38 @@
 /****************************************************************************
 **
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
 **
 ** This file is part of the qmake application of the Qt Toolkit.
 **
 ** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.  For licensing terms and
+** conditions see http://qt.digia.com/licensing.  For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
 ** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 **
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
+** In addition, as a special exception, Digia gives you certain additional
+** rights.  These rights are described in the Digia Qt LGPL Exception
 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 **
 ** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
 **
 **
 ** $QT_END_LICENSE$
 #ifndef OPTION_H
 #define OPTION_H
 
-#include "project.h"
+#include <qmakeglobals.h>
+#include <qmakeparser.h>
+#include <qmakeevaluator.h>
+
 #include <qstring.h>
 #include <qstringlist.h>
 #include <qfile.h>
 
 QT_BEGIN_NAMESPACE
 
-#define QMAKE_VERSION_MAJOR 2
-#define QMAKE_VERSION_MINOR 1
-#define QMAKE_VERSION_PATCH 0
-const char *qmake_version();
+#define QMAKE_VERSION_STR "3.0"
 
 QString qmake_getpwd();
 bool qmake_setpwd(const QString &p);
@@ -69,10 +69,27 @@ enum QMakeWarn {
 };
 void warn_msg(QMakeWarn t, const char *fmt, ...);
 
+class QMakeProject;
+
+class EvalHandler : public QMakeHandler {
+public:
+    void message(int type, const QString &msg, const QString &fileName, int lineNo);
+
+    void fileMessage(const QString &msg);
+
+    void aboutToEval(ProFile *, ProFile *, EvalFileType);
+    void doneWithEval(ProFile *);
+};
+
 struct Option
 {
+    static EvalHandler evalHandler;
+
+    static QMakeGlobals *globals;
+    static ProFileCache *proFileCache;
+    static QMakeParser *parser;
+
     //simply global convenience
-    static QString js_ext;
     static QString libtool_ext;
     static QString pkgcfg_ext;
     static QString prf_ext;
@@ -81,20 +98,15 @@ struct Option
     static QStringList h_ext;
     static QStringList cpp_ext;
     static QStringList c_ext;
-    static QString h_moc_ext;
     static QString cpp_moc_ext;
     static QString obj_ext;
     static QString lex_ext;
     static QString yacc_ext;
     static QString h_moc_mod;
-    static QString cpp_moc_mod;
     static QString lex_mod;
     static QString yacc_mod;
     static QString dir_sep;
-    static QString dirlist_sep;
-    static QString sysenv_mod;
     static QString pro_ext;
-    static QString mmp_ext;
     static QString res_ext;
     static char field_sep;
     static const char *application_argv0;
@@ -108,8 +120,7 @@ struct Option
 
     //both of these must be called..
     static int init(int argc=0, char **argv=0); //parse cmdline
-    static void applyHostMode();
-    static bool prepareProject(const QString &pfile);
+    static void prepareProject(const QString &pfile);
     static bool postProcessProject(QMakeProject *);
 
     enum StringFixFlags {
@@ -166,22 +177,12 @@ struct Option
     static QMAKE_MODE qmake_mode;
 
     //all modes
-    static QString qmake_abslocation;
+    static QStringList qmake_args;
     static QFile output;
     static QString output_dir;
     static int debug_level;
     static int warn_level;
-    enum QMAKE_RECURSIVE { QMAKE_RECURSIVE_DEFAULT, QMAKE_RECURSIVE_YES, QMAKE_RECURSIVE_NO };
-    static QMAKE_RECURSIVE recursive;
-    static QStringList before_user_vars, after_user_vars;
-    enum HOST_MODE { HOST_UNKNOWN_MODE, HOST_UNIX_MODE, HOST_WIN_MODE, HOST_MACX_MODE };
-    static HOST_MODE host_mode;
-    enum TARG_MODE { TARG_UNKNOWN_MODE, TARG_UNIX_MODE, TARG_WIN_MODE, TARG_MACX_MODE,
-                     TARG_INTEGRITY_MODE };
-    static TARG_MODE target_mode;
-    static bool target_mode_overridden;
-    static QString user_template, user_template_prefix;
-    static QStringList shellPath;
+    static bool recursive;
 
     //QMAKE_*_PROPERTY options
     struct prop {
@@ -196,27 +197,21 @@ struct Option
 
     //QMAKE_GENERATE_MAKEFILE options
     struct mkfile {
-        static QString qmakespec;
-        static bool do_cache;
         static bool do_deps;
         static bool do_mocs;
         static bool do_dep_heuristics;
         static bool do_preprocess;
         static bool do_stub_makefile;
-        static QString project_root;
-        static QString project_build_root;
-        static QString cachefile;
         static int cachefile_depth;
         static QStringList project_files;
-        static QString qmakespec_commandline;
     };
 
 private:
-    static int parseCommandLine(int, char **, int=0);
+    static int parseCommandLine(QStringList &args);
 };
 
 inline QString fixEnvVariables(const QString &x) { return Option::fixString(x, Option::FixEnvVars); }
-inline QStringList splitPathList(const QString &paths) { return paths.split(Option::dirlist_sep); }
+inline QStringList splitPathList(const QString &paths) { return paths.isEmpty() ? QStringList() : paths.split(Option::globals->dirlist_sep); }
 
 QT_END_NAMESPACE