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