반응형
platforms과 select 함수
빌드되는 platforms 정보에 따라 서로 다른 옵션을 설정해야 할 경우가 있다.
MODULE.bazel 파일이 다음의 의존성 모듈을 정보를 입력한다.
bazel_dep(name = "platforms", version = "0.0.8")
사용하는 BUILD.bazel 파일에서 다음처럼 사용할 수 있다.
select 함수를 통해서 환경 정보가 만족하면 사용할 구문을 : 이후에 적어주면 된다.
genrule(
name = "os",
outs = ["os.txt"],
cmd = select ( {
"@platforms//os:linux" : "echo 'linux' > $@",
"@platforms//os:windows" : "echo 'windows' > $@",
"//conditions:default": "echo 'nothing' > $@",
}),
)
실행 결과는 다음과 같다.
CMD> bazelisk build //src:os
INFO: Analyzed target //src:os (5 packages loaded, 8 targets configured).
INFO: Found 1 target...
Target //src:os up-to-date:
bazel-bin/src/os.txt
INFO: Elapsed time: 5.827s, Critical Path: 5.28s
INFO: 2 processes: 1 internal, 1 local.
INFO: Build completed successfully, 2 total actions
CMD> bash.exe -c "cat bazel-bin/src/os.txt"
windows
예제 파일
728x90
반응형
'building system > bazel' 카테고리의 다른 글
msvc 환경에서 bazel /MD 모드로 컴파일하기 (1) | 2024.02.01 |
---|---|
generated file 활용하기 (0) | 2024.01.30 |
dependency attribute란? (0) | 2024.01.27 |
StarLark 언어로 만들어 보는 기본 예제 MD5 파일 생성하기 (1) | 2024.01.24 |
NASM으로 asm 파일을 컴파일해 사용하는 bazel 빌드 예제 (0) | 2024.01.24 |