Depending on the current target, at least one of the following flags will be defined. Note that they are the same as the argument provided to the compiler to specify the output.
cpp
Defined when generating C++ code or a cppia script.cppia
Defined when generating a cppia script.cs
Defined when generating C# code.eval
Defined when running the code with --interp
, or when running in a macro context.hl
Defined when generating HashLink code.java
Defined when generating Java or JVM code.js
Defined when generating JavaScript code.lua
Defined when generating Lua code.neko
Defined when generating a Neko binary.php
Defined when generating PHP code.python
Defined when generating Python code.swf
Defined when generating a SWF file.Additionally, parts of code may be used in a macro context or during display completion. These flags can be used to check if this is the case:
display
Defined when providing code completion.macro
Defined in a macro context.sys
Defined if the target supports the sys API.To provide more fine-grained knowledge about the features supported on the current target without having to manually check which target supports what, Haxe 4 provides the target.*
defines:
target.static
(or static
) Defined if the target is static.target.sys
(or sys
as noted above) Defined if the target supports the sys API.target.utf16
(or utf16
) Defined if the target uses UTF-16 for its internal string representation.target.threaded
Defined if the target supports the unified threading API.target.name
Defined to be the name of the target, e.g. js
.