Why should I know this?

LLVM Window에서 Build 및 Test 하기 본문

nope

LLVM Window에서 Build 및 Test 하기

die4taoam 2024. 6. 15. 01:10

 

PR한 패치가 자꾸 윈도우에서 문제가 발생하는 이유로,

윈도우에서 한번 빌드 및 테스트를 해보기로 결정했다.

 

 

1. Visual Studio 2022 설치

https://visualstudio.microsoft.com/ko/downloads/

 

Visual Studio Tools 다운로드 - Windows, Mac, Linux용 무료 설치

Visual Studio IDE 또는 VS Code를 무료로 다운로드하세요. Windows 또는 Mac에서 Visual Studio Professional 또는 Enterprise Edition을 사용해 보세요.

visualstudio.microsoft.com

 

2. git 설치 (혹은 visual studio 2022 설치 할 때 설치됨)

https://www.git-scm.com/download/win

 

Git - Downloading Package

Download for Windows Click here to download the latest (2.45.2) 32-bit version of Git for Windows. This is the most recent maintained build. It was released 11 days ago, on 2024-06-03. Other Git for Windows downloads Standalone Installer 32-bit Git for Win

www.git-scm.com

그러나 vs2022 다운 받는 동안 할게 없으므로 다운 및 설치

 

3. git clone https://github.com/llvm/llvm-project.git

 

GitHub - llvm/llvm-project: The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. - llvm/llvm-project

github.com

반드시 git config --system core.autocrlf false 를 하자.

특정 테스트가 \r\n \n 차이를 감지해서 fail 시킴.

 

4. scoop 설치

https://scoop.sh/

 

https://scoop.sh/

 

scoop.sh

 

5. scoop으로 sccache 설치

https://github.com/mozilla/sccache?tab=readme-ov-file

 

GitHub - mozilla/sccache: Sccache is a ccache-like tool. It is used as a compiler wrapper and avoids compilation when possible.

Sccache is a ccache-like tool. It is used as a compiler wrapper and avoids compilation when possible. Sccache has the capability to utilize caching in remote storage environments, including various...

github.com

 

 

6.  visual studio 를 설치
할 때 C++ 개발환경을 반드시 선택.

 

visual studio 설치가 제대로 되었다면 다음과 같은 cmd 실행 환경이 설치됨

 

7. visual studio 내의 python package 설치 numpy, pybind11, psutil

 

 

 

8. 준비는 모두 끝났다... CMAKE

 

c:\llvm-project\build2>cmake ../llvm -D LLVM_ENABLE_PROJECTS='clang;clang-tools-extra;flang;lld;llvm;mlir;polly' -G Ninja -D CMAKE_BUILD_TYPE=Release -D LLVM_ENABLE_ASSERTIONS=ON -D LLVM_BUILD_EXAMPLES=ON -D COMPILER_RT_BUILD_LIBFUZZER=OFF -DLLVM_LIT_ARGS="-v --xunit-xml-output C:\llvm-project\build2\test-results.xml --timeout=1200 --time-tests" -D COMPILER_RT_BUILD_ORC=OFF -D CMAKE_C_COMPILER_LAUNCHER=sccache -D CMAKE_CXX_COMPILER_LAUNCHER=sccache -D MLIR_ENABLE_BINDINGS_PYTHON=ON -D CMAKE_EXE_LINKER_FLAGS=/MANIFEST:NO -D CMAKE_MODULE_LINKER_FLAGS=/MANIFEST:NO -D CMAKE_SHARED_LINKER_FLAGS=/MANIFEST:NO

 

위 커맨드가 현지 LLVM-PROJECT에서 테스트 할 때 사용되는 옵션들이다.

 

 -DLLVM_LIT_ARGS="-v --xunit-xml-output C:\llvm-project\build2\test-results.xml --timeout=1200 --time-tests"

위의 옵션의 경로를 변경해야 합니다.

 

 

9. 빌드! ninja

 

빌드가 안된다! 추가해보자.

-DLLVM_TARGETS_TO_BUILD=X86

 

 

10. 최종 성공 빌드

c:\llvm-project\build2>cmake ../llvm -D LLVM_ENABLE_PROJECTS='clang' -G Ninja -D CMAKE_BUILD_TYPE=Release -D LLVM_ENABLE_ASSERTIONS=ON -D LLVM_BUILD_EXAMPLES=ON  -DLLVM_LIT_ARGS="-v --xunit-xml-output C:\llvm-project\build2\test-results.xml --timeout=1200 --time-tests"

 

 

cpc949 관련 문제가 발생한다면 참고하자!

https://m.blog.naver.com/gyul611/222194321084

'nope' 카테고리의 다른 글

WSL2 커널 업데이트  (0) 2021.10.11
Comments