7.2 전역 컴파일러 플래그(Global Compiler Flags)
7.2 전역 컴파일러 플래그(Global Compiler Flags)
Haxe 3.0부터 haxe --help-defines를 실행해 지원되는 컴파일러 플래그 목록을 얻을 수 있어요.
전체 플래그 목록(플래그 / 인자 / 설명 / 플랫폼):
일반(all):
absolute-path— trace 출력에 절대 파일 경로를 출력한다.advanced-telemetry(flash) — SWF를 Monocle 도구로 측정할 수 있게 한다.analyzer-optimize— 고급 최적화를 수행한다.analyzer-times(<level: 0 | 1 | 2>)(all) — 분석기에 대한 상세 타이머를 기록한다.annotate-source(cpp) — 생성된 소스 코드에 추가 주석을 붙인다.check-xml-proxy— XML 프록시의 사용된 필드를 검사한다.core-api— 코어 API 문맥에서 정의된다.core-api-serialize(cs) — 일부 생성된 코어 API 클래스를 C#에서Serializable속성으로 표시한다.cppia— cpp instruction assembly를 생성한다.cs-ver(<version>, cs) — 대상 C# 버전.nocppiaast— 레거시 cppia 생성을 사용한다.dce(<mode: std | full | no>, all) — dead code elimination 모드를 설정한다(기본 std). cr-dce 참조.dce-debug— DCE 로그를 보여준다. cr-dce 참조.debug—-debug로 컴파일할 때 활성화.disable-unicode-strings(cpp) —String타입의 유니코드 지원을 비활성화.display— 완성 중 활성화. cr-completion 참조.display-stdin—--display에 지정된 파일의 내용을 표준 입력에서 읽는다.dll-export(cpp) — GenCPP 실험 링킹.dll-import(cs) — Haxe 생성 .NET DLL import를 처리한다.doc-gen— 문서를 올바르게 생성하기 위해 제거/변경을 수행하지 않는다.dump(<mode: pretty | record | position | legacy>, all) — 지정된 모드 또는 기본(비-prettified) 모드로 dump 하위 디렉터리에 타입 AST를 덤프한다.dump-path(<path>, all) — dump를 생성할 경로(기본 "dump").dump-dependencies— dump 하위 디렉터리에 클래스 의존성을 덤프한다.dump-ignore-var-ids— 비-pretty dump에서 변수 ID를 제거한다(diff에 도움).dynamic-interface-closures(cpp) — 공간을 절약하기 위해 인터페이스 클로저에 느린 경로를 사용한다.erase-generics(cs) — C#에서 제네릭 클래스를 지운다.eval-call-stack-depth(<depth>, eval) — eval의 최대 콜 스택 깊이(기본 1000).eval-debugger(eval) — 매크로/interp 모드에서 디버거를 지원한다.host:port값을 허용해 소켓을 연다. eval-stack을 수반한다.eval-print-depth(<depth>, eval) — eval의 최대 출력 깊이(기본 5).eval-pretty-print(eval) — eval 출력에 들여쓰기 출력을 활성화한다.eval-stack(eval) — 매크로/interp 모드에서 스택 정보를 기록한다.eval-times(eval) — 매크로/interp 모드에서 메서드별 실행 시간을 기록한다. eval-stack을 수반한다.filter-times—--times시 필터별 실행 시간을 기록한다.fast-cast(cs, java) — C#과 Java에서 실험적 캐스트 정리를 활성화한다.fdb(flash) — FDB 대화형 디버깅을 위한 전체 flash 디버그 정보를 활성화한다.file-extension(cpp) — cpp 소스 코드의 출력 파일 이름 확장자.flash-strict(flash) — flash 대상에 대해 더 엄격한 타이핑.flash-use-stage(flash) — SWF 라이브러리의 초기 스테이지를 유지한다.force-lib-check(cs, java) — 컴파일러가--net-lib과--java-lib으로 추가된 클래스를 검사하도록 강제한다(내부).force-native-property(cpp) — 3.1 호환성을 위해 모든 속성을:nativeProperty메타데이터로 태그한다.gencommon-debug(cs, java) — GenCommon 내부.haxe3compat— Haxe 3.x에서 Haxe 4.0으로의 전환에 대한 경고를 준다.haxe-boot(flash) — flash 부트 클래스에 생성된 이름 대신 'haxe' 이름을 준다.haxe-ver— 현재 Haxe 버전 값을 소수로. 예: 3.4.7에 대해 3.407.haxe— 현재 Haxe 버전 값을 SemVer 형식으로.haxe-next— 다음 Haxe 버전에 공개될 실험 기능을 활성화한다.HAXE_OUTPUT_FILE(<name>, cpp) — 라이브러리 접두사와 디버그 접미사 없이 실행 파일/라이브러리의 전체 출력 이름을 강제한다.HAXE_OUTPUT_PART(<name>, cpp) — 실행 파일/라이브러리의 출력 이름(기본: 메인 클래스 이름).hl-ver(<version>, hl) — 대상 HashLink 버전(기본 1.10.0).hxcpp-api-level(cpp) — hxcpp 버전 간 호환성을 허용하기 위해 제공된다.HXCPP-GC-GENERATIONAL(cpp) — 실험적 가비지 컬렉터.HXCPP-DEBUGGER(cpp) — hxcpp-debugger를 위한 추가 정보를 포함한다.hxcpp-smart-strings(cpp) — hxcpp에서 와이드 문자열을 사용한다(-D disable-unicode-strings가 지정되지 않으면 기본적으로 켜짐).include-prefix(cpp) — 생성된 include 파일에 경로를 앞에 붙인다.interp— 코드가--interp로 실행되도록 컴파일된다.jar-legacy-loader(java) — JVM 대상에서 .jar 파일을 로드하는 레거시 로더를 사용한다.java-ver(<version: 5-7>, java) — 대상 Java 버전을 설정한다.js-classic(js) — JS 출력에서 함수 래퍼와 strict 모드를 사용하지 않는다.js-es(<version: 3 | 5 | 6>, js) — 주어진 ES 표준 버전에 맞는 JS를 생성한다(기본 5). target-javascript-es6 참조.js-enums-as-arrays(js) — enum 표현을 객체 대신 배열로 생성한다.js_global(js) — 전역 객체 이름을 사용자 지정한다.js-unflatten(js) — 패키지와 타입에 중첩 객체를 생성한다.js-source-map(js) — 비-디버그 모드에서도 JavaScript 소스 맵을 생성한다.-D source-map선호로 더 이상 사용되지 않음.source-map(php, js) — 컴파일된 파일에 대한 소스 맵을 생성한다.jvm(java) — jvm을 직접 생성한다.jvm.compression-level(java) — 생성된 파일의 압축 수준을 0(무압축)~9(최고)로 설정한다. 기본 6.jvm.dynamic-level(java) — 생성되는 동적 지원 코드의 양을 제어한다. 0 = 없음, 1 = 필드 읽기/쓰기 최적화(기본), 2 = 컴파일 타임 메서드 클로저.keep-old-output(cs, java) — 출력 디렉터리에 이전 소스 파일을 유지한다.loop-unroll-max-cost(<cost>, all) — 루프 언롤링이 취소되기 전의 최대 비용(식 수 * 반복)(기본 250).lua-jit(lua) — lua용 jit 컴파일러를 활성화한다(5.2 버전만).lua-vanilla(lua) — 컴파일된 extern lib 지원(예: utf8)이 없는 코드를 생성한다.lua-ver(<version>, lua) — 대상 lua 버전.macro— 매크로 문맥에서 코드가 컴파일될 때 정의된다. macro 참조.macro-times—--times와 함께 사용할 때 매크로별 타이밍을 표시한다.net-ver(<version: 20-50>, cs) — 대상 .NET 버전을 설정한다.netcore-ver(<version: x.x.x>, cs) — 대상 .NET core 버전을 설정한다.net-target(<name>, cs) — .NET 대상을 설정한다.netcore,xbox,micro,compact가 유효한 값. 기본net.neko-source(neko) — 바이트코드 대신 neko 소스를 출력한다.neko-no-haxelib-paths(neko) — 하드코딩된 Haxelib ndll 경로를 비활성화한다.neko-v1(neko) — Neko 1.x 호환성을 유지한다.network-sandbox(flash) — 로컬 파일 접근 대신 로컬 네트워크 샌드박스를 사용한다.no-compilation(cs, java, cpp, hl) — 최종 컴파일을 비활성화한다.no-debug— cpp 출력에서 모든 디버그 매크로를 제거한다.no-deprecation-warnings—@:deprecated로 표시된 필드가 사용될 때 경고하지 않는다.no-flash-override(flash) — 일부 기본 클래스의 override를 HX 접미사 메서드로 변경한다.no-opt— 최적화를 비활성화한다.no-inline— 인라이닝을 비활성화한다. class-field-inline 참조.keep-inline-positions— 인라인된 표현식의 위치를 인라인 장소의 위치로 대체하지 않는다.no-root(cs) — 최상위 타입을haxe.root네임스페이스에 생성한다.no-macro-cache— 매크로 문맥 캐싱을 비활성화한다.no-swf-compress(flash) — SWF 출력 압축을 비활성화한다.no-traces— 모든 trace 호출을 비활성화한다.objc(cpp) — hxcpp 출력을 Objective-C++ 클래스로 설정한다. interop에 정의되어야 한다.old-error-format— 새 one-based 형식 대신 Haxe 3.x zero-based 컬럼 오류 메시지를 사용한다.php-prefix(<dot-separated namespace>, php) — 생성된 php 클래스의 루트 네임스페이스. 예:-D php-prefix=some.sub로 컴파일하면 모든 클래스가\some\sub네임스페이스에 생성된다.php-lib(<folder name>, php) — php lib 폴더의 이름을 선택한다.php-front(<filename>, php) — php 프론트 파일의 이름을 선택한다(기본index.php).python-version(<version>, python) — 대상 python 버전(기본 3.3).real-position(cs, java, php) — C# 타겟팅 시 Haxe 소스 매핑을 비활성화하고 Java·PHP 출력의 위치 주석을 제거한다.replace-files(cs, java) — GenCommon 내부.retain-untyped-meta— 타이핑 시 임의 표현식 메타데이터가 폐기되는 것을 방지한다.scriptable(cpp) — GenCPP 내부.shallow-expose(js) — window 객체에 쓰지 않고 타입을 Haxe 생성 클로저의 주변 스코프에 노출한다.source-header— 생성된 파일 맨 위에 값을 주석으로 출력하고, 비활성화하려면 '' 값을 사용한다.source-map-content(js) — Haxe 소스를 JS 소스 맵의 일부로 포함한다.static— 현재 대상이 static이면 정의된다.std-encoding-utf8(java, cs, python) — stdin, stdout, stderr에 utf8 인코딩을 강제한다.swc(flash) — SWF 대신 SWC를 출력한다.swf-compress-level(<level: 1-9>, flash) — SWF 출력의 압축량을 설정한다.swf-debug-password(<password>, flash) — 디버깅을 위한 암호를 설정한다.swf-direct-blit(flash) — 그래픽 블릿에 하드웨어 가속을 사용한다.swf-gpu(flash) — 그래픽 그리기에 GPU 합성 기능을 사용한다.swf-header(flash) — SWF 헤더를 정의한다(width:height:fps:color).swf-metadata(<file>, flash) — 주어진 파일의 내용을 SWF의 메타데이터로 포함한다.swf-preloader-frame(flash) — SWF에 빈 첫 프레임을 삽입한다.swf-protected(flash) — SWF에서 Haxeprivate을public대신protected로 컴파일한다.swf-script-timeout(<time in seconds>, flash) — 스크립트 중단 대화상자가 표시되기 전의 최대 ActionScript 처리 시간.swf-use-doabc(flash) —DoAbcDefine대신DoAbcSWF 태그를 사용한다.sys— 모든 시스템 플랫폼에 대해 정의된다.unsafe(cs) — C# 타겟팅 시 안전하지 않은 코드를 허용한다.use-nekoc(neko) — 내부 대신nekoc컴파일러를 사용한다.utf16— UCS-2 API와 함께 UTF-16 문자열 인코딩을 사용하는 모든 플랫폼에 대해 정의된다.vcproj(cpp) — GenCPP 내부.warn-var-shadowing— 변수 섀도잉 선언에 대해 경고한다.no-tre— 꼬리 재귀 제거(tail recursion elimination)를 비활성화한다.message.reporting(<mode: classic | pretty | indent>) — 컴파일러 출력의 메시지 보고 모드를 선택한다(기본 classic).message.no-color— 메시지 보고에서 ANSI 색상 코드를 비활성화한다.message.log-file— 일반 출력 외에도 메시지 보고를 쓸 텍스트 파일 경로.message.log-format(<format: classic | pretty | indent>) — 메시지 로그 파일의 메시지 보고 모드를 선택한다(기본 indent).
본문
전역 플래그
haxe --help-defines로 지원되는 모든 컴파일러 플래그를 볼 수 있어요. 이 표는 각 플래그, 인자, 설명, 적용 플랫폼을 보여줍니다.
갈래
DCE, 디버깅, 리소스, 대상별 코드 생성(js/cs/java/cpp/php/python/lua/hl/flash/neko/eval) 설정, 메시지 보고 등 매우 다양한 플래그가 있습니다. 각 항목은 -D <flag>로 설정합니다.