본문 바로가기

bazel

msvc 환경에서 bazel /MD 모드로 컴파일하기 생각보다 간단하다. .bazelrc 파일에 'build --features=static_link_msvcrt'를 추가하면 된다. 디버그 모드는 'build --features=dbg'를 추가하면 된다. 위에 스샷은 static_link_msvcrt가 정상적으로 작동하는지 실행 파일에 대한 의존성 검사 화면!! 더보기
dependency attribute란? 개요 이번 게시글에서는 이전 게시글 예제를 기반으로 dependency attribute 의미를 알아보자. 의존성이 설정된 파일이 변경되면, 의존하고 있는 target는 다시 빌드한다. 파일이 변경된 여부는 파일 생성 시점이 아닌 파일의 해쉬 데이터으로 확인한다. make_md5_binary.bzl 파일 다시 보기 make_md5_binary.bzl 코딩은 아래와 같다. 참고로 _ 로 시작한 이름은 private 접근 권한을 갖는다. # make_md5_binary.bzl def _make_md5_binary_impl(ctx): ctx.actions.run_shell( outputs = [ctx.outputs.out], inputs = [ctx.file.src], command = "md5sum {} >.. 더보기
StarLark 언어로 만들어 보는 기본 예제 MD5 파일 생성하기 개요 이번 게시글에서는 StarLark 언어를 사용해 md5 파일 생성하는 예제를 구현한다. 본 예제를 통해 사용자 정의 rule를 만들고, rule 기능을 수행하는 implementation function를 구현한다. 풀어야 할 과제 다음과 같은 파일로 구성된다. main.cc 파일의 md5 해쉬값을 생성할 것이다. .bazelrc BUILD.bazel main.cc make_md5_binary.bzl MODULE.bazelconsole 창에 아래 명령어를 입력하면 윈도우 환경에서 해쉬값을 얻어낼 수 있다. [윈도우] certutil -hashfile main.cc md5 [윈도우] bash.exe -c "md5sum main.cc" [우분투] md5sum main.cc결과 화면 CMD> certut.. 더보기
bzlMod 기반 GoogleTest 기본 예제 구현하기 개요 이번 게시글에서는 새로운 의존성 모델인 bzlMod는 BCR(Bazel Centeral Registry)를 중심으로 다양한 라이브러리에 접근할 수 있도록 설계했다. 이미 많은 라이브러리를 사용할 수 있고, 빠른 속도로 다양한 라이브러리를 추가하고 있다. 그 중에 GoogleTest 라이브러리를 사용해 unittest 기본 예제를 만들어보는 것이 목표다. 실제 구체적인 GTest에 대한 구체적인 사용법은 관련 사이트를 통해 얻어낼 수 있고, 여기서는 단순히 unittest 빌드 시스템 구축이 목표다. 풀어야 할 문제 폴더 구조는 아래와 같다. maic.cc 파일을 컴파일할 수 있도록 나머지 파일 내용을 완성하는 것이 풀어야 할 문제다. │ .bazelrc │ MODULE.bazel │ └─projec.. 더보기