Rez 패키지 빌드 가이드 요약
빌드 환경
- Rez는 rez-build 도구를 사용하여 패키지를 빌드하고 설치합니다.
- 빌드 절차:
- 패키지의 variants를 반복적으로 확인.
- 각 variant에 대해 빌드 환경을 구성.
- 빌드 시스템(예: CMake)을 빌드 환경 내에서 실행.
- 빌드 환경의 구성 요소:
- 패키지의 requires 목록.
- build_requires: 빌드에 필요한 종속성.
- private_build_requires: 해당 패키지 전용 빌드 종속성.
- 패키지의 variants에 따른 추가 종속성.
- 빌드 환경 내에서 필요한 환경 변수는 Rez가 자동으로 설정합니다.
빌드 시간 종속성
- 특정 패키지가 빌드 과정에서만 필요한 경우 build_requires 또는 private_build_requires에 이를 정의합니다.
- 예시:
- build_requires: 다른 패키지도 의존성을 상속받음 (전이적).
- private_build_requires: 현재 패키지 빌드에서만 사용.
- 사용 사례:
- 문서 생성 도구(예: Doxygen, Sphinx).
- 빌드 유틸리티(예: CMake 매크로).
- 예시:
패키지 간의 통신
- Rez는 패키지를 직접 빌드하지는 않으며, 환경을 구성한 뒤 빌드 시스템(예: CMake)에 이를 위임합니다.
- 빌드 중인 패키지에서 사용하는 특별한 환경 변수 building을 통해 다른 패키지가 빌드 관련 정보를 전달할 수 있습니다.
- 예시: CMake의 CMAKE_MODULE_PATH를 사용하여 특정 패키지의 경로를 전달.
빌드 시스템
- Rez는 다양한 빌드 시스템을 지원하며, 새 빌드 시스템을 플러그인으로 추가할 수 있습니다.
- 기본적으로 Rez는 패키지의 루트 디렉터리에서 빌드 파일(예: CMakeLists.txt)을 감지하여 적절한 빌드 시스템을 자동으로 선택합니다.
- 명령 전달 방법:
- rez-build 명령에 직접 옵션 전달:
-
rez-build -- -DMYVAR=YES
- 패키지에 build_command 속성을 정의:
-
build_command = "bash {root}/build.sh {install}"
로컬 설치
- 로컬 설치는 패키지를 사용자가 설정한 로컬 디렉터리에 설치하여 테스트할 수 있도록 합니다.
- 절차:
- 코드 수정.
- rez-build --install 명령으로 로컬 패키지 설치.
- rez-env 패키지명으로 테스트 환경 구성.
- 설치 경로:
- 기본 경로는 ~/packages.
- 각 패키지는 버전별로 디렉터리에 설치됨 (예: ~/packages/maya_utils/1.0.5).
- 절차:
- 패키지 확인:
- 출력에 (local) 레이블이 표시되면 로컬 설치된 패키지가 사용 중임을 나타냄.
rez-env sequence
추가 빌드 커스터마이징
- 사용자 정의 명령:
- parse_build_args.py를 사용하여 빌드 스크립트에 옵션 추가 가능.
- 추가된 옵션은 환경 변수로 저장되며, 빌드 스크립트에서 이를 참조 가능.
- Make 사용 예시:
# Makefile
hai: ${REZ_BUILD_SOURCE_PATH}/lib/main.cpp
g++ -o hai ${REZ_BUILD_SOURCE_PATH}/lib/main.cpp
.PHONY: install
install: hai
mkdir -p ${REZ_BUILD_INSTALL_PATH}/bin
cp $< ${REZ_BUILD_INSTALL_PATH}/bin/hai
https://rez.readthedocs.io/en/stable/building_packages.html
'REZ > REZ?' 카테고리의 다른 글
Context (0) | 2024.12.24 |
---|---|
Releasing packages (0) | 2024.12.24 |
Basic concepts (0) | 2024.12.24 |
Getting started (0) | 2024.12.24 |
installation (0) | 2024.12.24 |