12.6.3.9 Xml Injection

12.6.3.9 Xml Injection

hxcpp에서 외부 코드를 사용할 때 빌드 과정에 라이브러리, include 경로 또는 컴파일러 플래그를 추가하는 것이 유용한 경우가 많습니다. 이는 @:buildXml 클래스 메타데이터로 수행할 수 있습니다. 예:

@:buildXml("
<files id='haxe'>
  <compilerflag value='-Iinclude'/>
</files>
")
@:keep
class StaticNme { ... }

주어진 클래스를 참조하면(단순히 import로, @:keep 메타데이터가 있어서 제대로 사용할 필요 없음), XML 조각도 포함됩니다.

여기서 XML 조각은 생성된 Build.xml에 표준 파일 목록 직후에 문자 그대로 복사됩니다. 이 예는 haxe target에 라이브러리를 추가하지만, files 노드에 플래그를 추가하거나 다른 files 노드나 target에 파일을 추가할 수도 있습니다. 또 다른 가능성은 include 명령을 추가해 전체 외부 XML 파일을 가져오는 것입니다. 이는 메타데이터에서 문자열을 인용할 때 필요한 구문 어색함을 피하는 데 도움이 되며, 일반 XML 편집기를 사용할 수 있게 합니다.

__main__ 파일 그룹을 대체해 표준 초기화 코드를 건너뛰고 커스텀 부트스트랩 절차를 사용하는 것도 가능합니다.

출처: Xml Injection

더 알아보기