Conditional compilation and DDoc
Lutger
lutger.blijdestijn at gmail.com
Thu Aug 17 03:50:45 PDT 2006
Derek Parnell wrote:
> I'm having trouble producing conditional documentation.
>
> Here's what I'm doing ...
>
> version(XYZZY)
> {
> /**
> * macros:
> * Extra = If you access this when the value is not set,
> * an exception is thrown.
> */
> }
> module foo_m;
> /**
> * Defines the capabilities and attributes of a Foo.
> *
> * $(Extra)
> */
> class Foo
> {
> . . .
> }
>
> This doesn't work because the 'module' statement must be the first
> statement and the earlier version statement messes that up.
>
> If I move the module to above the version statement, the macro doesn't get
> defined.
>
> Anyone got any ideas about how to produce conditional DDoc documentation
> without duplicating a lot of source code?
>
I can't get this to work either. I can think of one, less than ideal
workaround (haven't tried it yet): using build, move the macro's to ddoc
files and then use something like this:
version (Foo)
{
version (build) { pragma(include, macros\foo.ddoc); }
else pragma(msg, "warning, foo doc macro not included, use build");
}
More information about the Digitalmars-d-learn
mailing list