digitalmars.D.learn - Conditional compilation and DDoc
- Derek Parnell (32/32) Aug 17 2006 I'm having trouble producing conditional documentation.
- Lutger (9/41) Aug 17 2006 I can't get this to work either. I can think of one, less than ideal
- Lutger (2/45) Aug 17 2006 It works, thanks to build.
- Derek Parnell (6/16) Aug 17 2006 LOL ... nice little tool, that ;-)
- Derek Parnell (8/54) Aug 17 2006 Confirmed. Using Build to include the macro Ddoc file works.
- Lutger (2/50) Aug 17 2006 Well aren't you lucky somebody wrote that fine little app...
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? -- Derek (skype: derek.j.parnell) Melbourne, Australia "Down with mediocrity!" 17/08/2006 6:10:04 PM
Aug 17 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"); }
Aug 17 2006
Lutger wrote:Derek Parnell wrote:It works, thanks to build.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"); }
Aug 17 2006
On Thu, 17 Aug 2006 13:21:32 +0200, Lutger wrote:LOL ... nice little tool, that ;-) -- Derek Parnell Melbourne, Australia "Down with mediocrity!"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.
Aug 17 2006
On Thu, 17 Aug 2006 13:21:32 +0200, Lutger wrote:Lutger wrote:Confirmed. Using Build to include the macro Ddoc file works. -- Derek (skype: derek.j.parnell) Melbourne, Australia "Down with mediocrity!" 18/08/2006 10:08:51 AMDerek Parnell wrote:It works, thanks to build.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"); }
Aug 17 2006
Derek Parnell wrote:On Thu, 17 Aug 2006 13:21:32 +0200, Lutger wrote:Well aren't you lucky somebody wrote that fine little app...Lutger wrote:Confirmed. Using Build to include the macro Ddoc file works.Derek Parnell wrote:It works, thanks to build.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"); }
Aug 17 2006