12.6.4 Defines

12.6.4 Defines

hxcpp 빌드를 제어하는 데 사용할 수 있는 여러 표준 defines가 있습니다. 이 중 일부는 Haxe 컴파일러가 사용하며 생성된 코드에 영향을 줍니다. 다른 것들은 빌드 도구에 적용되어 코드가 컴파일되는 방식에 영향을 줍니다.

코드 생성(Code generation)

코드가 생성되는 방식에 영향을 주는 defines. 이들은 haxe를 호출할 때 커맨드 라인에 있어야 합니다.

Define 의미
HXCPP_DEBUGGER 디버거가 요구하는 추가 매크로 추가. 보통 디버거 haxelib이 자동으로 추가함.
HXCPP_GC_GENERATIONAL 실험적인 세대별 가비지 컬렉터를 활성화.
annotate_source 생성된 소스 코드에 추가 주석 추가 - hxcpp 개발에 유용.
dll_export hxcpp 런타임 심볼을 내보냄.
file_extension 생성된 파일의 확장자(점 없이)를 설정. 예: Objective-C++ 코드의 경우 -D file_extension=mm.
force_native_property 필드에 대한 동적 접근이 적절할 때 프로퍼티 getter/setter를 호출하게 함.
include_prefix 모든 생성된 include 파일을 하위 디렉토리에 배치. 예: -D include_prefix=hxinc. 이름 충돌을 피하는 데 유용.
no-compilation 코드를 생성하지만 컴파일하지 않음.
no-debug 코드에 디버그 매크로를 생성하지 않음.
nocppiaast 새 최근 변경 대신 레거시 cppia 생성을 사용.
objc Objective-C++ 클래스 생성.
scriptable 스크립팅에 필요한 추가 런타임 정보 활성화.
컴파일(Compilation)

코드가 컴파일되는 방식에 영향을 주는 defines. 이들은 haxe를 호출할 때 커맨드 라인에 있거나 hxcpp 빌드 환경을 통해 추가될 수 있습니다.

Define 의미
HXCPP_GC_MOVING 가비지 컬렉터가 단편화를 줄이기 위해 메모리를 이동하게 허용.
HXCPP_GC_SUMMARY 프로그램이 종료될 때 작은 프로파일링 요약을 출력.
HXCPP_GC_DYNAMIC_SIZE GC 시간을 모니터링하고 필요하면 메모리 작업 공간을 확장.
HXCPP_GC_BIG_BLOCKS 1기가바이트보다 큰 작업 메모리 허용.
HXCPP_GC_DEBUG_LEVEL GC의 추가 디버깅을 나타내는 레벨(1-4) 지정.
HXCPP_DEBUG_LINK 릴리스 모드에서도 최종 바이너리에 심볼 추가.
HXCPP_STACK_TRACE 릴리스 모드에서도 유효한 함수 수준 스택 추적.
HXCPP_STACK_LINE 릴리스 모드에서도 스택 추적에 줄 정보 포함.
HXCPP_CHECK_POINTER 릴리스 모드에서도 null 포인터 검사 추가.
HXCPP_PROFILER 프로파일러 지원 추가.
HXCPP_TELEMETRY 텔레메트리 지원 추가.
HXCPP_CPP11 C++11 기능과 링크 라이브러리 사용.
exe_link 실행 파일 생성(Android에서 동적 라이브러리 대신).
static_link 정적 라이브러리 생성.
dll_link 동적 라이브러리 생성.
기타(Other)
Define 의미
HXCPP_VERBOSE 빌드 도구에서 추가 출력을 출력.
HXCPP_TIMES 기본 프로파일링 정보 표시.
HXCPP_NEKO_BUILDTOOL 컴파일된 BuildTool.exe 대신 hxcpp.n 사용을 강제.
HXCPP_NO_COLOR 빌드 도구 출력에 색상 코드를 추가하지 않음.
HXCPP_KEEP_TEMP 파일 embedName 옵션을 위해 만든 파일을 삭제하지 않음.
타깃 아키텍처(Target architecture)
Define 의미
HXCPP_M32 현재 데스크톱에 대해 32비트 컴파일 강제.
HXCPP_M64 현재 데스크톱에 대해 64비트 컴파일 강제.
HXCPP_ARMV6 armv6용 ARM 기반 장치 컴파일.
HXCPP_ARM64 64비트용 ARM 기반 장치 컴파일.
HXCPP_ARMV7 armv7용 ARM 기반 장치 컴파일.
HXCPP_ARMV7S armv7s용 ARM 기반 장치 컴파일.
HXCPP_LINUX_ARMV7 Linux ARMv7 장치용 컴파일.
HXCPP_LINUX_ARM64 Linux ARM64 장치용 컴파일.
winrt windowsRt/windows UWP용 컴파일.
android Android용 컴파일.
PLATFORM NDK 컴파일을 위한 Android 플랫폼 지정.
ANDROID_NDK_ROOT Android NDK toolchain의 위치 지정.
ANDROID_NDK_DIR Android NDK toolchain을 찾기 위한 검색 위치 지정.
HXCPP_X86 x86 아키텍처용 android 컴파일.
iphoneos iPhone iOS용 컴파일.
iphonesim iPhone 시뮬레이터용 컴파일.
appletvos Apple tvOS용 컴파일.
appletvsim Apple tvOS 시뮬레이터용 컴파일.
watchos Apple watchOS용 컴파일.
watchsimulator Apple watchOS 시뮬레이터용 컴파일.
webos webOS용 컴파일.
tizen Tizen용 컴파일.
blackberry Blackberry용 컴파일.
emscripten Emscripten용 컴파일.
cygwin Cygwin을 사용해 Windows용 컴파일.
linux (크로스) Linux용 컴파일.
rpi (크로스) Raspberry Pi용 컴파일.
mingw MinGW를 사용해 Windows용 컴파일.
HXCPP_MINGW MinGW를 사용해 Windows용 컴파일.
NO_AUTO_MSVC MSVC 위치를 감지하지 말고 실행 파일 경로에 이미 있는 것을 사용.

출처: Defines

더 알아보기