2008年9月4日

標準条件シンボル

Delphiで予め定義済のシンボルを標準条件シンボル(standard conditional symbols)と呼び、以下のようなものがあります。

VER<nnn>
コンパイラバージョン
DCC
(全ての環境で定義)
CONSOLE
コンソールアプリケーション
NATIVECODE
ネイティブコード(Delphi.net以降の.NET環境以外で定義)
MSWINDOWS
Windows(Kylix/OS X以外で定義)
WIN32
Windows x86環境で定義(Delphi 6以降)
WIN64
Windows x64環境で定義(Delphi XE2以降)
MACOS
MacOS環境で定義(Delphi XE2以降)
MACOS32
MacOS 32bit環境で定義(Delphi XE2以降)
POSIX
MacOSを含むPOSIX環境で定義(Kykix/Delphi XE2以降)
POSIX32
MacOSを含むPOSIX 32bit環境で定義(Kykix/Delphi XE2以降)
IOS
iOS(デバイス/シミュレータ)環境で定義(Delphi XE4以降)
ANDROID
Android環境で定義(Delphi XE5以降)
CLR
.NET環境で定義
CPU386
i386以降のCPU
CPUX86
x86のCPU(Delphi XE2以降)
CPUX64
x64のCPU(Delphi XE2以降)
CPUXARM
ARMのCPU(Delphi XE4以降)
CPUARM32
32bit版ARMのCPU(Delphi XE8以降)
CPUARM64
64bit版ARMのCPU(Delphi XE8以降)
CPU32BITS
32bitのCPU(Delphi XE8以降)
CPU64BITS
64bitのCPU(Delphi XE8以降)
ASSEMBLER
アセンブラ構文(asm)を使用できるかどうか
UNICODE
Unicode環境で定義(Delphi 2009以降)
CONDITIONALEXPRESSIONS
条件評価($IF指令)を使用できるかどうか
ALIGN_STACK
OS Xコンパイラやその他の(Linux)コンパイラなどの厳密なスタックアライメント要求がない環境で定義(Delphi XE2以降)
PC_MAPPED_EXCEPTIONS
例外の巻き戻しにアドレスマップを使用するプラットフォーム用コンパイラで定義(Delphi XE2以降)
PIC
OS XのようにPIC(位置独立コード)が要求されるプラットフォームで定義(Delphi XE2以降)
AUTOREFCOUNT
ARC(Automatic Reference Counting)をサポートする環境で定義(Delphi XE4以降)
EXTERNALLINKER
外部リンカを使用する環境で定義(Delphi XE4以降)
NEXTGEN
LLVMベースのコンパイラで定義(Delphi XE4以降)
UNDERSCOREIMPORTNAME
インポートされた名前が"_"(アンダースコア)付きになる環境で定義(Delphi XE4以降)
WEAKREF
弱い参照(weak reference)が有効な環境で定義(Delphi XE4以降)
WEAKINSTREF
弱い参照がインスタンスに定義される環境で定義(Delphi XE4以降)
WEAKINTREF
弱い参照がインタフェースに定義される環境で定義(Delphi XE4以降)
BCB
C++Builderで定義
LINUX
Kylixで定義
WINDOWS
Win16環境で定義
ヘルプにはCPU32BITS/CPU64BITSはDelphi XE2以降との記述がありますが、実際にはDelphi XE8以降で有効です。

またVER<nnn>はそれぞれ以下のプロダクトで定義されています(VER180はDelphi/C++Builder 2006と2007の両方で定義済、VER185はDelphi/C++Builder 2007のみで定義済)。

VER40
Turbo Pascal 4.0
VER50
Turbo Pascal 5.0
VER55
Turbo Pascal 5.5
VER60
Turbo Pascal 6.0
VER10
Turbo Pascal for Windows 1.0
VER15
Turbo Pascal for Windows 1.5
VER70
Borland Pascal 7.0
VER80
Delphi 1
VER90
Delphi 2
VER93
C++Builder 1
VER100
Delphi 3
VER110
C++Builder 3
VER120
Delphi 4
VER125
C++Builder 4
VER130
Delphi 5, C++Builder 5
VER140
Delphi 6, C++Builder 6, Kylix 1, Kylix 2, Kylix 3
VER150
Delphi 7, 7.1
VER160
Delphi 8 for .NET, C#Builder
VER170
Delphi 2005, C++Builder 2005 (Ver9)
VER180
Delphi 2006, C++Builder 2006 (Ver10), Delphi 2007, C++Builder 2007 (Ver11)
VER185
Delphi 2007, C++Builder 2007 (Ver11)
VER190
Delphi 2007 for .NET (Ver11)
VER200
Delphi 2009, C++Builder 2009 (Ver12)
VER210
Delphi 2010, C++Builder 2010 (Ver14)
VER220
Delphi XE, C++Builder XE (Ver15)
VER230
Delphi XE2, C++Builder XE2 (Ver16)
VER240
Delphi XE3, C++Builder XE3 (Ver17)
VER250
Delphi XE4, C++Builder XE4 (Ver18)
VER260
Delphi XE5, C++Builder XE5, Appmethod 1.13 (Ver19)
VER265
Appmethod 1.13 (Ver19.5)
VER270
Delphi XE6, C++Builder XE6, Appmethod 1.14 (Ver20)
VER280
Delphi XE7, C++Builder XE7, Appmethod 1.15 (Ver21)
VER290
Delphi XE8, C++Builder XE8, Appmethod 1.16 (Ver22)
VER300
Delphi 10 Seattle, C++Builder 10 Seattle (Ver23)
VER310
Delphi 10.1 Berlin, C++Builder 10.1 Berlin (Ver24)
VER320
Delphi 10.2 Tokyo, C++Builder 10.2 Tokyo (Ver25)

ねた元はDelphi Tips - 0086とかDelphi Compiler Version Directives: {$IFDEF VER180}とか多数。もうちょっとヘルプが親切ならなぁ。オンラインヘルプの条件付きコンパイル(Delphi)およびコンパイラ バージョンに完全な定義が掲載されました。素晴らしい。

2008/12/23追記: Borland Compiler Conditional Defines - Delphiを参考にちょこちょこっと修正。

2009/09/02追記: Delphi/C++Builder 2010のVER210を追加。

2010/10/12追記: Delphi/C++Builder XEのVER220を追加。

2011/09/02追記: Delphi/C++Builder XE2関係を追加。

2012/09/02追記: Delphi/C++Builder XE3のVER240を追加。

2013/04/20追記: Delphi/C++Builder XE4のVER250/iOS/CPUARM/AUTOREFCOUNT/EXTERNAL_LINKER/NEXTGEN/UNDERSCOREIMPORTNAME/WEAKREF/WEAKINSTREF/WEAKINTREFを追加。

2013/09/12追記: Delphi/C++Builder XE5のVER260/Androidを追加。

2014/04/15追記: Appmethod 1のVER265とDelphi/C++Builder XE6のVER270を追加。

2014/09/02追記: Delphi/C++Builder XE7のVER280を追加。

2015/04/07追記: Delphi/C++Builder XE8のVER290を追加。

2015/09/01追記: Delphi/C++Builder 10 SeattleのVER300を追加。

2015/11/16追記: Delphi/C++Builder XE8以降のCPU32BITS/CPU64BITSを追加。

2016/04/20追記: Delphi/C++Builder 10.1 BerlinのVER310を追加。

2016/08/19追記: Compiler Versionsを参考に微妙に修正。

2017/03/23追記: Delphi/C++Builder 10.2 TokyoのVER320を追加。

0 件のコメント: