12.6.3.5 Compiler
12.6.3.5 Compiler
Compilers는 target의 각 파일 그룹에서 변경된 각 파일에 대해 실행되어 객체 파일을 만들고, 이를 target에 링크합니다. 수정 날짜나 해시로 파일을 다시 컴파일해야 하는지, 또는 객체 파일을 재사용할 수 있는지 판단합니다.
flag- 컴파일러 커맨드 라인에 단일 인자를 추가합니다.value- 커맨드 라인에 추가된 플래그.tag- 일치하는 tag를 가진 파일로 플래그를 제한하는 선택적 필터. Tags 참조.
<flag value="value" tag="tag" />
cflag/cppflag/objcflag/mmflag- 특정 파일 유형을 컴파일할 때 플래그를 추가합니다.cflag-.c(C) 파일에만 추가됨.cppflag-.cpp(C++) 파일에만 추가됨.objcflag-.objc(Objective-C) 파일에만 추가됨.mmflag-.mm(Objective-C++) 파일에만 추가됨.
<cflag value="value" />
<cppflag value="value" />
<objcflag value="value" />
<mmflag value="value" />
pchflag- 미리 컴파일된 헤더.h파일을 컴파일할 때 플래그를 추가합니다.pchflag- 헤더의 "정체성"을 지정하려면 apple의 경우 보통["-x", "c++-header"].
<pchflag value="value" />
pch- 미리 컴파일된 헤더 스타일을 설정합니다 -gcc또는msvc.
<pch value="gcc|msvc" />
objdir- 객체 파일을 저장하는 데 사용되는 디렉토리 이름을 설정합니다. 잘못된 아키텍처에 대해 링크하지 않도록 주어진 컴파일러 플래그 집합에 대해 고유해야 합니다.value- 보통 프로그래밍 방식으로 만들어짐, 예:obj/msvc${MSVC_VER}-rt${OBJEXT}${OBJCACHE}${XPOBJ}.
<objdir value="obj/somewhere" />
output- 컴파일러의 출력을 지정하는 데 사용되는 플래그를 설정합니다.value- 플래그 값. 실제 이름이 별도의 인자여야 하면 공백 문자를 포함해야 하고(예:-o<space>), 이름이 직접 추가되어야 하면-o/-out:처럼 사용하세요.
<output value="-flag" />
exe- 컴파일러 속성에서 지정된 실행 명령을 재정의합니다.name- 명령. 보통path를 사용해 실행 파일이 포함된 디렉토리를 추가한 다음 이 속성에서 파일 이름 부분만 지정합니다.
<exe name="command" />
ext- 객체 파일 확장자를 설정합니다.name- 확장자, "." 포함. Linux와 Mac에서.o, Windows에서.obj.
<ext name=".obj" />
getversion- 컴파일러 버전을 얻는 데 사용되는 명령을 설정합니다. 이는 컴파일러가 변경되었는지, 따라서 객체를 다시 컴파일해야 하는지 확인하는 데 사용됩니다.value- 실행할 명령. 기본값은gcc기반 컴파일러에서 작동하는(compiler) --version입니다. 빈 값으로 설정하면 캐싱을 비활성화합니다.
<getversion value="command" />
section- 요소 블록을 그룹화합니다 - 보통 모두 같은if/unless조건을 존중하는 것들.
<section ...>...</section>
include- 다른 파일의 컴파일러 옵션을 포함합니다. 대부분의 컴파일러는hxcpp가 사용하는 defines를 추가하기 위해<include name="toolchain/common-defines.xml" />를 포함해야 합니다.
<include name="filename" />
출처: Compiler