Developer forums (C::B DEVELOPMENT STRICTLY!) > Development

#defines and D language

(1/1)

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

* [ Bug #10658 ] CB breaking DMD compiler options
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" :).

afb:
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++) ---#ifdef __WXMAC__
    ....
#endif

--- End code ---


--- Code: (D) ---version (__WXMAC__)
{
    ....
}

--- End code ---

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

Navigation

[0] Message Index

Go to full version