building system/bazel
platforms module 사용하기
opencpp
2024. 1. 29. 22:57
반응형
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
반응형