공부/Unreal Engine 4

Build.cs, Target.cs, .uproject, .uplugin 의 사용성

Lero God 2022. 8. 26. 11:55

 

build.cs

 

각 모듈에는 각자만의 build.cs가 있다.

build.cs 는 컴파일 타임에 로드되고 처리되는 전처리기 같은 거라고 한다. (런타임에서는 로드 안 됨)
build.cs 에서 해당 모듈에서 참조할 다른 모듈 목록을 지정할 수 있는 등 다양한 옵션을 제공하고 있다.

 

아래는 build.cs 에서 지정해줄 수 있는 유용한 기능들을 정리해보았다.

 

  • RuntimeDependencies

 

사용 예시는 아래와 같다.

RuntimeDependencies.Add("$(TargetOutputDir)/cjson.dll", Path.Combine(ModuleDirectory, DllCjsonPath + "cjson.dll"), StagedFileType.SystemNonUFS);

패키징할 때 특정 경로에 특정 파일을 복사하고 싶을 때 이용한다.

 

 

target.cs

 

빌드할 모듈 목록을 지정할 수 있다.

빌드한 모듈의 DLL을 Bianries 폴더에 생성한다.    

 

언리얼 빌드 툴이 실행되면 프로젝트의 Source 폴더를 먼저 찾는다.    

Source 폴더 아래에 빌드 할 대상 정보를 지정한 Target.cs 파일을 조사해서 빌드한 모듈들의 목록 찾아냄.    

 

Source 폴더 조사가 끝나면, Intermediate - ProjectFiles 폴더에 조사한 프로젝트의 소스 구조를 정리해서

프로젝트 파일을 생성하고, 언리얼 엔진이 설치된 폴더에서 엔진의 프로젝트 파일을 복사해온다.  

  

마지막으로 두 개의 프로젝트 파일을 합친 솔루션 파일을 생성한다.

 

 

.uproject

 

게임이나 에디터에서 불러들일 모듈 목록을 지정할 수 있다.
그리고 실행 중에 uproject 모듈 목록에 있는 모듈의 DLL을 로드한다.

 

 

.uplugin

 

uproject 와 비슷하지만 플러그인에서 사용할 모듈의 정보들을 기입할 수 있다.

언리얼에서는 프로젝트의 .uplugin 파일을 검색하는 것으로 플러그인을 찾는다고 한다.

uproject 와 마찬가지로 Json 파일 포맷을 이용해 작성한다.