49.MODULE_UNI_FILE/PACKAGE_UNI_FILE/[UserExtensions.TianoCore."ExtraFiles"]의 도움으로 UNI 파일 선언하기
지난 레슨에서 애플리케이션 INF 파일의 Sources
섹션 아래에 UNI 문자열 파일을 선언했었다.
그러나 EDKII 코드베이스 내에서 UNI 파일을 포함하는 몇 가지 다른 방법을 찾을 수 있다.
INF 파일 내의 MODULE_UNI_FILE 키 값
INF 파일의 [UserExtensions.TianoCore."ExtraFiles"] 섹션 아래
DEC 파일 내의 PACKAGE_UNI_FILE 키 값
DEC 파일의 [UserExtensions.TianoCore."ExtraFiles"] 섹션 아래
가장 중요한 것은 이러한 방법으로 포함된 UNI 파일이 EDKII 빌드 도구에 의해 처리되지 않는다는 것이다. UEFI 패키징 사양(https://uefi.org/sites/default/files/resources/Dist_Package_Spec_1_1.pdf)과 관련된 파일이다. 위 항목들은 The Intel(R) UEFI Packaging Tool
에서만 사용된다. 패키지를 배포하는 데 The Intel(R) UEFI Packaging Tool
을 사용하지 않는 경우 이러한 파일을 모두 무시해도 된다.
이 레슨에서도 직접 사용하지 않기 때문에 자세한 내용은 다루지 않겠지만 다음은 이러한 파일이 어떻게 생겼는지에 대한 예이다.
INF 파일 내 MODULE_UNI_FILE/[UserExtensions.TianoCore."ExtraFiles"]
일반적으로 MODULE_UNI_FILE
키 아래의 UNI 파일은 INF 파일과 동일한 이름을 갖는다.
그리고 이러한 파일에는 STR_MODULE_ABSTRACT 및 STR_MODULE_DESCRIPTION의 2개 문자열만 포함된다.
[UserExtensions.TianoCore."ExtraFiles"] 섹션 아래의 UNI 파일은 일반적으로 INF 파일의 이름과 Extra
라는 접미사를 붙인 이름을 갖는다.
그리고 이러한 파일에는 STR_PROPERTIES_MODULE_NAME
이라는 1개의 문자열만 포함된다.
DEC 파일 내 PACKAGE_UNI_FILE/[UserExtensions.TianoCore."ExtraFiles"]
예를 들어 https://github.com/tianocore/edk2/blob/master/MdeModulePkg/MdeModulePkg.dec를 볼 수 있다.
여기도 INF파일에서 썼던 명명 체계가 비슷하게 적용되는 것을 알 수 있다.
PACKAGE_UNI_FILE
키의 값으로 선언된 파일은 DEC 파일과 정확히 같은 이름이다.[UserExtensions.TianoCore."ExtraFiles"]
아래에 선언된 파일의 이름은 동일하며 Extra 접미사를 붙인다.
파일의 내용도 INF 파일과 유사하다. 모든 문자열 토큰 이름이 <Module>이 <Package>로 변경되는 것이 유일한 차이점이다.
MdeModulePkg.uni (https://github.com/tianocore/edk2/blob/master/MdeModulePkg/MdeModulePkg.uni)
MdeModulePkgExtra.uni (https://github.com/tianocore/edk2/blob/master/MdeModulePkg/MdeModulePkgExtra.uni)
그 외에도 MdeModulePkg.uni
에서 PCD에 대한 일부 문자열을 관찰할 수 있다.
결론
다시 말하지만 이러한 모든 UNI 파일은 우리가 쓰는 빌드 도구와 관련이 없다. 그러나 이러한 파일은 EDKII 코드베이스 전체에 존재하므로 최소한 이러한 개념에 익숙해져야 한다.
Last updated