diff options
| author | Christian Kandeler <christian.kandeler@digia.com> | 2012-11-28 11:54:46 +0100 |
|---|---|---|
| committer | Joerg Bornemann <joerg.bornemann@digia.com> | 2012-11-29 14:43:08 +0100 |
| commit | db19dd50d435cfba1b25ebcda613df8839b9b7e3 (patch) | |
| tree | 5395691ffe928f374f7491ba004ef24b8b139249 /src/lib/buildgraph/transformer.h | |
| parent | 87e31015d671e324e699f8bfc9a9e40f126fe393 (diff) | |
| download | qbs-db19dd50d435cfba1b25ebcda613df8839b9b7e3.tar.gz | |
Reduce compile dependencies.
While it seems elegant at first glance to do typedefs in class scope, it
has one serious drawback: Forward declarations become impossible unless
they use the non-typedef'ed type name, which defeats the purpose. As a
result, dozens of headers currently include language.h and buildgraph.h,
even though they technically don't have to.
Fix this by introducing special forward-declaring headers and doing the
typedefs there, outside the class scope. Now changes to header files
included in language.h or buildgraph.h don't ripple through half the
project anymore.
Along the way, also remove unneeded and potentially harmful INCLUDEPATH
statements from various pri files.
Change-Id: Ib50db850876955216db7f39b6099c32d1239092b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/lib/buildgraph/transformer.h')
| -rw-r--r-- | src/lib/buildgraph/transformer.h | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/lib/buildgraph/transformer.h b/src/lib/buildgraph/transformer.h index 8b7285ef2..3ec1c270c 100644 --- a/src/lib/buildgraph/transformer.h +++ b/src/lib/buildgraph/transformer.h @@ -31,9 +31,10 @@ #define TRANSFORMER_H #include "artifactlist.h" +#include "forward_decls.h" +#include <language/forward_decls.h> #include <tools/persistentobject.h> -#include <QSharedPointer> #include <QScriptEngine> namespace qbs { @@ -46,15 +47,13 @@ class Rule; class Transformer : public PersistentObject { public: - typedef QSharedPointer<Transformer> Ptr; - - static Ptr create() { return Ptr(new Transformer); } + static TransformerPtr create() { return TransformerPtr(new Transformer); } ~Transformer(); ArtifactList inputs; // can be different from "children of all outputs" ArtifactList outputs; - QSharedPointer<const Rule> rule; + RuleConstPtr rule; QList<AbstractCommand *> commands; static QScriptValue translateFileConfig(QScriptEngine *scriptEngine, |
