6.1.1 대상 defines(Target defines)
6.1.1 대상 defines(Target defines)
현재 대상에 따라 다음 플래그 중 적어도 하나가 정의됩니다. 이것들은 컴파일러에 출력을 지정하기 위해 제공되는 인자와 같습니다.
cpp— C++ 코드 또는 cppia 스크립트 생성 시 정의됨.cppia— cppia 스크립트 생성 시 정의됨.cs— C# 코드 생성 시 정의됨.eval—--interp로 코드 실행 시, 또는 매크로 문맥에서 실행 시 정의됨.hl— HashLink 코드 생성 시 정의됨.java— Java 또는 JVM 코드 생성 시 정의됨.js— JavaScript 코드 생성 시 정의됨.lua— Lua 코드 생성 시 정의됨.neko— Neko 바이너리 생성 시 정의됨.php— PHP 코드 생성 시 정의됨.python— Python 코드 생성 시 정의됨.swf— SWF 파일 생성 시 정의됨.
추가로 코드의 일부가 매크로 문맥이나 display completion 중에 사용될 수 있어요. 다음 플래그로 그런지 확인할 수 있습니다:
display— 코드 완성 제공 시 정의됨.macro— 매크로 문맥에서 정의됨.
지원 기능(Supported features)
sys— 대상이 sys API를 지원하면 정의됨.
Haxe 4.0.0 이후 — 현재 대상에서 어떤 기능이 지원되는지 수동으로 확인하지 않고 더 세밀한 지식을 제공하기 위해, Haxe 4는
target.*defines를 제공합니다:
target.static(또는static) — 대상이 static이면 정의됨.target.sys(또는 위에 언급된sys) — 대상이 sys API를 지원하면 정의됨.target.utf16(또는utf16) — 대상이 내부 문자열 표현에 UTF-16을 사용하면 정의됨.target.threaded— 대상이 통합 스레딩 API를 지원하면 정의됨.target.name— 예를 들어js처럼 대상의 이름으로 정의됨.
출처: Target defines
본문
대상 플래그
각 컴파일 대상(cpp, js, java 등)마다 해당 플래그가 정의됩니다. display(코드 완성)와 macro(매크로 문맥) 플래그도 있습니다.
sys
sys 플래그는 대상이 sys API를 지원하면 정의됩니다.
target.* defines
Haxe 4의 target.static, target.sys, target.utf16, target.threaded, target.name 로 더 세밀한 대상 기능을 확인할 수 있어요.