Conditional compilation and DDoc
Lutger
lutger.blijdestijn at gmail.com
Thu Aug 17 04:21:32 PDT 2006
Lutger wrote:
> 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");
> }
It works, thanks to build.
More information about the Digitalmars-d-learn
mailing list