diff options
Diffstat (limited to 'src/shared/proparser/qmakeglobals.h')
-rw-r--r-- | src/shared/proparser/qmakeglobals.h | 63 |
1 files changed, 47 insertions, 16 deletions
diff --git a/src/shared/proparser/qmakeglobals.h b/src/shared/proparser/qmakeglobals.h index 2211274e08..18ae12e687 100644 --- a/src/shared/proparser/qmakeglobals.h +++ b/src/shared/proparser/qmakeglobals.h @@ -33,14 +33,18 @@ #include "qmake_global.h" #include "proitems.h" -#include <QHash> -#include <QStringList> +#ifdef QT_BUILD_QMAKE +# include <property.h> +#endif + +#include <qhash.h> +#include <qstringlist.h> #ifndef QT_BOOTSTRAPPED -# include <QProcess> +# include <qprocess.h> #endif #ifdef PROEVALUATOR_THREAD_SAFE -# include <QMutex> -# include <QWaitCondition> +# include <qmutex.h> +# include <qwaitcondition.h> #endif QT_BEGIN_NAMESPACE @@ -76,6 +80,15 @@ public: QMakeEvaluator *evaluator; }; +class QMAKE_EXPORT QMakeCmdLineParserState +{ +public: + QMakeCmdLineParserState(const QString &_pwd) : pwd(_pwd), after(false) {} + QString pwd; + QStringList precmds, preconfigs, postcmds, postconfigs; + bool after; +}; + class QMAKE_EXPORT QMakeGlobals { public: @@ -85,37 +98,55 @@ public: bool do_cache; QString dir_sep; QString dirlist_sep; - QString qmakespec; - QString xqmakespec; QString cachefile; -#ifndef QT_BOOTSTRAPPED +#ifdef PROEVALUATOR_SETENV QProcessEnvironment environment; #endif - QString sysroot; QString qmake_abslocation; + + QString qmakespec, xqmakespec; QString user_template, user_template_prefix; + QString precmds, postcmds; - // -nocache, -cache, -spec, QMAKESPEC - // -set persistent value - void setCommandLineArguments(const QStringList &args); +#ifdef PROEVALUATOR_DEBUG + int debugLevel; +#endif + + enum ArgumentReturn { ArgumentUnknown, ArgumentMalformed, ArgumentsOk }; + ArgumentReturn addCommandLineArguments(QMakeCmdLineParserState &state, + QStringList &args, int *pos); + void commitCommandLineArguments(QMakeCmdLineParserState &state); + void setCommandLineArguments(const QString &pwd, const QStringList &args); + void useEnvironment(); void setDirectories(const QString &input_dir, const QString &output_dir); -#ifdef PROEVALUATOR_INIT_PROPS - bool initProperties(); +#ifdef QT_BUILD_QMAKE + void setQMakeProperty(QMakeProperty *prop) { property = prop; } + ProString propertyValue(const ProKey &name) const { return property->value(name); } #else +# ifdef PROEVALUATOR_INIT_PROPS + bool initProperties(); +# else void setProperties(const QHash<QString, QString> &props); -#endif +# endif ProString propertyValue(const ProKey &name) const { return properties.value(name); } +#endif QString expandEnvVars(const QString &str) const; + QString shadowedPath(const QString &fileName) const; private: QString getEnv(const QString &) const; QStringList getPathListEnv(const QString &var) const; + QString cleanSpec(QMakeCmdLineParserState &state, const QString &spec); + QString source_root, build_root; - QString precmds, postcmds; +#ifdef QT_BUILD_QMAKE + QMakeProperty *property; +#else QHash<ProKey, ProString> properties; +#endif #ifdef PROEVALUATOR_THREAD_SAFE QMutex mutex; |