Using two flags in conditonal compilation (version)

2014-06-25 Thread Danyal Zia via Digitalmars-d-learn
Hi, In the development of my library, I'm in a position where I need to add support for multiple compilers. For instance, supporting both the assembly of LDC/DMD and GDC. I want to do something like: version(DigitalMars && LDC) { } However, it doesn't compile which forces me to rewrote the sa

Re: Using two flags in conditonal compilation (version)

2014-06-25 Thread bearophile via Digitalmars-d-learn
Danyal Zia: Is there a way to check both versions at the same time? (I can't seem to find the solution through google, sorry) This is close to being the best solution in D (untested): version(DigitalMars) enum myMars = true; else enum myMars = false; version(LDC) enum myLdc = true; else enum

Re: Using two flags in conditonal compilation (version)

2014-06-25 Thread Justin Whear via Digitalmars-d-learn
On Wed, 25 Jun 2014 20:24:30 +, Danyal Zia wrote: > Hi, In the development of my library, I'm in a position where I need to > add support for multiple compilers. For instance, supporting both the > assembly of LDC/DMD and GDC. I want to do something like: > > version(DigitalMars && LDC) > { >

Re: Using two flags in conditonal compilation (version)

2014-06-25 Thread Danyal Zia via Digitalmars-d-learn
On Wednesday, 25 June 2014 at 20:30:28 UTC, Justin Whear wrote: I think you mean ||, not &&. The best way I know around this is to define enums: version (DigitalMars) enum compiler_DigitalMars = true; else enum compiler_DigitalMars = false; //... similar for LDC static if (compiler_Dig

Re: Using two flags in conditonal compilation (version)

2014-06-25 Thread Chris Nicholson-Sauls via Digitalmars-d-learn
version(DigitalMars) version = DMDAsm; version(LDC) version = DMDAsm; version(DMDAsm) asm { //dmd/ldc asm here } version(GDC) asm { //gdc asm here } http://dlang.org/version.html#VersionSpecification