Version Identifiers for Platforms / Architectures not supported by DMD

Manu turkeyman at gmail.com
Mon Nov 7 02:55:23 PST 2011


>
> Both Mac OS X and iOS builds on the same foundation.


True-ish, but they're not even slightly the same from a developer
perspective. People often make that mistake, where technologies are
similar, but neglect the fact that you have to do fundamentally different
things on the devices.
They need to be distinguished. If darwin is defined, then it ALSO needs a
OSX/iOS for disambiguation in addition.


> I've been tinkering with PSP... what about Android, PS3, XBox(/360), etc...
>> Some of these platforms exist on multiple architectures... how to
>> distinguish the architecture from the platform? Standardisation of arch
>> names?
>>
>
> There are version identifiers for different architectures as well, e.g.
> X86, X86_64 and so on.


Yes, but they need to be declared standard, and listed somewhere. If
they're not reliable, then you'll inevitably be in the same mess as cross
platform C apps where you need a global header that parses and munges a
huge pile of arbitrary defines into useful macros for your app.

For any platform/architecture, there should ALWAYS be available at least
identifiers for PLATFORM, OS, and ARCHITECTURE.
An identifier for TOOLCHAIN is often useful too, since different toolchains
for the same system might be slight different, eg. console game dev in
particular... GCC, SN, Codewarrior, proprietary compilers; all target
exactly the same thing, but require some toolchain specific code.

Basically I think if those three (I'd argue for 4) things aren't present,
standardised, and dependable, there will always eventually be the mess we
all love in the top of C header files.

For instance, the OSX example above, I'd suggest something like:
 PLATFORM = darwin
 OS = OSX/iOS
 ARCHITECTURE = X86/PPC/ARM
 TOOLCHAIN = [whatever]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20111107/5ac36beb/attachment-0001.html>


More information about the Digitalmars-d mailing list