News:

When registered with our forums, feel free to send a "here I am" post here to differ human beings from SPAM bots.

Main Menu

#defines and D language

Started by afb, March 29, 2007, 09:11:34 AM

Previous topic - Next topic

afb

Seems like the compiler options dialog doesn't work well when setting "" as the #define flag...

Since there are no #defines in the D language (only in C/C++), there is no proper value for the flag. I set it to a bogus value and it "works", but not sure if that's the best workaround ? But before we have support for multiple programming languages, it might do. (at least it closes the bug reported with the compiler interface...)

http://www.algonet.se/~afb/wx/codeblocks-svn-dmddefines.patch

mandrav

Your patch seems to do the trick. If you tested it and it works too, then just commit it.
Better support for other languages/compilers will come after version 1.0 is released.

I would just use a more descriptive name for the switch instead of "\a". Something like "NoDefinesAllowed" :).
Be patient!
This bug will be fixed soon...

afb

#2
OK, that's a better name... :-)

But I thought of something else, D doesn't have #defines but it does have "versions". So instead of just making that area unusable, we might rename the field for defines into versions when setting it for a D compiler. Then it's just a matter of using the -version or -fversion compiler switches...

So where for C/C++ you would set "__WXMAC__" and it would pass -D__WXMAC__ to the compiler, in D you would set "__WXMAC__" and it would pass -version=__WXMAC__ to it.

This define/version is then used by the conditionally compiled code like:
Code (C++) Select

#ifdef __WXMAC__
    ....
#endif


Code (D) Select

version (__WXMAC__)
{
    ....
}


http://www.algonet.se/~afb/wx/codeblocks-svn-dmdversions.patch