12.6.3.2 Files
12.6.3.2 Files
files 노드는 상대 디렉토리, 기본 컴파일러 플래그, 의존성을 포함한 같은 속성을 공유하는 파일 그룹을 정의합니다. 이 노드는 다른 파일이 의존할 수 있는 헤더 파일 집합이나, 컴파일되어 타깃에 포함될 소스 파일 집합을 정의하는 데 사용할 수 있습니다.
depend- 그룹의 모든 파일이 다른 파일이나 다른 파일 그룹에 의존함을 선언합니다.name- 명명된 파일이 변경되면 그룹의 모든 파일을 다시 컴파일해야 합니다.files- 명명된 그룹의 파일 중 하나라도 변경되면 그룹의 모든 파일을 다시 컴파일해야 합니다.
<depend name="filename" />
<depend files="filesId" />
options- 컴파일러 플래그가 포함된 파일의 이름을 설정합니다. 캐시가 사용되지 않을 때Options.txt는 옵션이 변경되었는지, 따라서 파일을 다시 컴파일해야 하는지를 감지하는 데 도움이 됩니다.
<options name="Options.txt" />
config- 코드가 컴파일되었을 때 활성화된 C++ 전처리기 defines를 포함하는 생성할 파일의 이름을 설정합니다.
<config name="outfile.h" />
tag- 그룹의 모든 파일에 기본 컴파일러 tag를 추가합니다. Tags 참조.
<tag value="tag" />
addTwice- 라이브러리로 컴파일될 때 링크 줄에 라이브러리를 두 번(시작에 한 번, 끝에 한 번) 추가하여 Linux 선택적 링킹을 만족시킵니다.
<addTwice value="true" />
cache- 그룹의 파일에 대한 컴파일러 캐시를 활성화합니다. 자세한 내용은 컴파일 캐시를 참조하세요.project- 캐시에서 객체 파일을 관리하고 그룹화하는 데 사용되는 프로젝트 이름.asLibrary- 객체(.obj)를.lib파일로 링크합니다. 불필요한 객체를 건너뛸 수 있지만, 정적 초기화에 의존해 핸들러를 등록하는 것도 건너뛰므로 주의하세요.
<cache value="true" project="name" asLibrary="true" />
include- 외부 파일 목록을 포함합니다.
<include name="filename.xml" />
section- 요소 블록을 그룹화합니다 - 보통 모두 같은if/unless조건을 존중하는 것들.
<section name="id" />...
compilerflag- 그룹의 파일을 컴파일할 때 컴파일러 플래그를 추가합니다.name과value- 컴파일할 때 커맨드 라인 인자 2개를 추가합니다.value- 컴파일할 때 커맨드 라인 인자 1개를 추가합니다.
<compilerflag name="name" value="value" />
<compilerflag value="value" />
nvcc- 이 그룹은 nvcc로 컴파일됩니다.
<nvcc />
objprefix- 유사한 객체의 알파벳순 그룹화를 허용하기 위해 생성된 객체(.obj) 이름에 접두로 붙는 id를 설정합니다.
<objprefix value="prefix" />
precompiledheader- 그룹을 컴파일할 때 주어진 이름의 미리 컴파일된 헤더를 사용합니다.name- (.h없이) 파일을 미리 컴파일할 때 사용되는 include.directory- 이 파일의 위치.- 예:
#include <lib/Header.h>의 경우:name="lib/Header",directory="${haxelib:somelib}/include"
<precompiledheader name="name" dir="directory" />
file- 선택적 속성과 함께 그룹에 파일을 추가합니다.name- 파일 이름 -dir에 대해 절대적이거나 상대적일 수 있습니다.tags- 그룹 tags를 재정의합니다. Tags 참조. (선택)filterout- 명명된 define이 존재하면 컴파일 타임에 파일을 건너뛸 수 있게 합니다. 이는 파일 목록이 파싱된 후 어느 시점에 define이 설정될 때 유용합니다.embed- 파일을 지정된 이름의 extern C++const char *문자열 상수로 임베드하게 합니다.<depend name="..." />(자식 노드) - 추가 의존성 파일 이름.
<file name="filename" tags="tag,tag1" filterout="define" embedName="embed" >
<depend name="filename1" />
<depend name="filename2" />
</file>
출처: Files