1 | /****************************************************************************
|
---|
2 | ** $Id: option.h 2 2005-11-16 15:49:26Z dmik $
|
---|
3 | **
|
---|
4 | ** Definition of Option class.
|
---|
5 | **
|
---|
6 | ** Copyright (C) 1992-2003 Trolltech AS. All rights reserved.
|
---|
7 | **
|
---|
8 | ** This file is part of qmake.
|
---|
9 | **
|
---|
10 | ** This file may be distributed under the terms of the Q Public License
|
---|
11 | ** as defined by Trolltech AS of Norway and appearing in the file
|
---|
12 | ** LICENSE.QPL included in the packaging of this file.
|
---|
13 | **
|
---|
14 | ** This file may be distributed and/or modified under the terms of the
|
---|
15 | ** GNU General Public License version 2 as published by the Free Software
|
---|
16 | ** Foundation and appearing in the file LICENSE.GPL included in the
|
---|
17 | ** packaging of this file.
|
---|
18 | **
|
---|
19 | ** Licensees holding valid Qt Enterprise Edition licenses may use this
|
---|
20 | ** file in accordance with the Qt Commercial License Agreement provided
|
---|
21 | ** with the Software.
|
---|
22 | **
|
---|
23 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
---|
24 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
---|
25 | **
|
---|
26 | ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
|
---|
27 | ** information about Qt Commercial License Agreements.
|
---|
28 | ** See http://www.trolltech.com/qpl/ for QPL licensing information.
|
---|
29 | ** See http://www.trolltech.com/gpl/ for GPL licensing information.
|
---|
30 | **
|
---|
31 | ** Contact info@trolltech.com if any conditions of this licensing are
|
---|
32 | ** not clear to you.
|
---|
33 | **
|
---|
34 | **********************************************************************/
|
---|
35 |
|
---|
36 | #ifndef __OPTION_H__
|
---|
37 | #define __OPTION_H__
|
---|
38 |
|
---|
39 | #include "project.h"
|
---|
40 | #include <qstring.h>
|
---|
41 | #include <qstringlist.h>
|
---|
42 | #include <qfile.h>
|
---|
43 |
|
---|
44 | #define QMAKE_VERSION_MAJOR 1
|
---|
45 | #define QMAKE_VERSION_MINOR 7
|
---|
46 | #define QMAKE_VERSION_PATCH 0
|
---|
47 | const char *qmake_version();
|
---|
48 |
|
---|
49 | void fixEnvVariables(QString &x);
|
---|
50 | void debug_msg(int level, const char *fmt, ...);
|
---|
51 | enum QMakeWarn {
|
---|
52 | WarnNone = 0x00,
|
---|
53 | WarnParser = 0x01,
|
---|
54 | WarnLogic = 0x02,
|
---|
55 | WarnAll = 0xFF
|
---|
56 | };
|
---|
57 | void warn_msg(QMakeWarn t, const char *fmt, ...);
|
---|
58 |
|
---|
59 | struct Option
|
---|
60 | {
|
---|
61 | //simply global convenience
|
---|
62 | static QString libtool_ext;
|
---|
63 | static QString pkgcfg_ext;
|
---|
64 | static QString prf_ext;
|
---|
65 | static QString prl_ext;
|
---|
66 | static QString ui_ext;
|
---|
67 | static QStringList h_ext;
|
---|
68 | static QStringList cpp_ext;
|
---|
69 | static QString h_moc_ext;
|
---|
70 | static QString cpp_moc_ext;
|
---|
71 | static QString obj_ext;
|
---|
72 | static QString lex_ext;
|
---|
73 | static QString yacc_ext;
|
---|
74 | static QString h_moc_mod;
|
---|
75 | static QString cpp_moc_mod;
|
---|
76 | static QString lex_mod;
|
---|
77 | static QString yacc_mod;
|
---|
78 | static QString dir_sep;
|
---|
79 | //both of these must be called..
|
---|
80 | static bool parseCommandLine(int argc, char **argv); //parse cmdline
|
---|
81 | static bool postProcessProject(QMakeProject *);
|
---|
82 |
|
---|
83 | //and convenience functions
|
---|
84 | static QString fixPathToLocalOS(const QString& in, bool fix_env=TRUE, bool canonical=TRUE);
|
---|
85 | static QString fixPathToTargetOS(const QString& in, bool fix_env=TRUE, bool canonical=TRUE);
|
---|
86 |
|
---|
87 | //global qmake mode, can only be in one mode per invocation!
|
---|
88 | enum QMAKE_MODE { QMAKE_GENERATE_NOTHING, QMAKE_GENERATE_PROJECT, QMAKE_GENERATE_MAKEFILE,
|
---|
89 | QMAKE_GENERATE_PRL, QMAKE_SET_PROPERTY, QMAKE_QUERY_PROPERTY };
|
---|
90 | static QMAKE_MODE qmake_mode;
|
---|
91 |
|
---|
92 | //all modes
|
---|
93 | static QFile output;
|
---|
94 | static QString output_dir;
|
---|
95 | static int debug_level;
|
---|
96 | static int warn_level;
|
---|
97 | static QStringList before_user_vars, after_user_vars;
|
---|
98 | enum TARG_MODE { TARG_UNIX_MODE, TARG_WIN_MODE, TARG_MACX_MODE, TARG_MAC9_MODE, TARG_QNX6_MODE };
|
---|
99 | static TARG_MODE target_mode;
|
---|
100 | static QString user_template, user_template_prefix;
|
---|
101 |
|
---|
102 |
|
---|
103 | //QMAKE_*_PROPERTY options
|
---|
104 | struct prop {
|
---|
105 | static QStringList properties;
|
---|
106 | };
|
---|
107 |
|
---|
108 | //QMAKE_GENERATE_PROJECT options
|
---|
109 | struct projfile {
|
---|
110 | static bool do_pwd;
|
---|
111 | static bool do_recursive;
|
---|
112 | static QStringList project_dirs;
|
---|
113 | };
|
---|
114 |
|
---|
115 | //QMAKE_GENERATE_MAKEFILE options
|
---|
116 | struct mkfile {
|
---|
117 | static QString qmakespec;
|
---|
118 | static bool do_cache;
|
---|
119 | static bool do_deps;
|
---|
120 | static bool do_mocs;
|
---|
121 | static bool do_dep_heuristics;
|
---|
122 | static bool do_preprocess;
|
---|
123 | static QString cachefile;
|
---|
124 | static int cachefile_depth;
|
---|
125 | static QStringList project_files;
|
---|
126 | static QString qmakespec_commandline;
|
---|
127 | };
|
---|
128 |
|
---|
129 | private:
|
---|
130 | static int internalParseCommandLine(int, char **, int=0);
|
---|
131 | };
|
---|
132 |
|
---|
133 |
|
---|
134 | #endif /* __OPTION_H__ */
|
---|