본문 바로가기
웹/Chromium

[Mac] 크로미움 설치 및 빌드

by msm1029 2023. 2. 22.
반응형

💡크로미움 공식 문서

 

depot_tools

크로미움을 설치하고 빌드하기 위해서는 depot_tools라는 것이 필요하다. 간단히

$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

을 통해 받아올 수 있다.

 

설치가 완료되면

$ export PATH="$PATH:/path/to/depot_tools"

으로 PATH를 설정해준다.

 

 

Get the code

$ mkdir chromium && cd chromium

크로미움을 받아올 폴더가 필요하다. 원하는 폴더명으로 폴더를 생성한 후 이동하여

 

$ export PATH="$PATH:/path/to/depot_tools"

로 경로를 설정해준다.

 

내 경우에는 depot_tools 폴더를 홈 폴더 아래에 설치하여

$ export PATH="$PATH:${HOME}/depot_tools"

로 설정해주니 PATH가 정상적으로 설정되었다.

 

위의 PATH는 터미널을 껐다 키면 초기화되므로 영구적으로 적용하려면 본인의 쉘에 맞게

~/.bash_profile 또는 ~/.zshrc 의 맨 마지막 부분에 위의 PATH를 넣어주어야한다.

 

depot_tools의 경로가 설정되었다면 fetch나 gclient같은 명령어를 사용할 수 있다.

앞서 생성한 폴더에서

$ caffeinate fetch chromium

로 크로미움 소스를 받아온다.

약 70GB이기 때문에 상당히 오래걸린다.

 

다운이 모두 완료되었다면

$ cd src

로 이동하여

$ gn gen out/Default

out/Default라는 빌드 디렉토리를 생성한다.

크로미움은 Ninja라는 빌드 툴을 사용하니 내용을 더 알고 싶다면 링크로 들어가 읽어보는 것을 추천한다.

 

이제 빌드 준비가 모두 완료되었다. 크로미움 폴더 안에는 빌드할 수 있는 다양한 것들이 있다.

chrome 폴더 안의 BUILD.gn을 살펴보면 executable("chrome_initial")이라는 것이 있고

content/shell 안의 BUILD.gn을 살펴보면 executable("content_shell")

ui/views/examples 안의 BUILD.gn을 살펴보면 executable("views_examples_with_content") 가 있다.

$ gn ls out/Default

으로 빌드 타겟 리스트를 알 수 있다.

 

크롬은 chrome_initial로 되어있지만 주석을 읽어보면 그냥 chrome으로 빌드하면 되는 것을 알 수 있다.

    # Because chrome_initial sets its output name to "chrome", running commands

    # such as `ninja chrome` causes chrome_initial to be built instead. All

    # deps and data_deps should be added to the chrome_initial target instead.

$ autoninja -C out/Default chrome

를 실행하면 chrome에 대한 빌드가 시작된다.

비슷하게, content_shell을 빌드하고 싶으면 위의 chrome 대신에 content_shell을

views_examples_with_content를 빌드하고 싶으면 chrome 대신에 입력하면 된다.

 

크로미움을 처음 접한다고 가정했을 때
크롬을 갖고 놀면 어려울 것 같아서 나는 views_examples_with_content을 빌드해보았다.

 

빌드가 완료되면

$ ./out/Default/views_examples_with_content

로 실행할 수 있다.

크롬은 가이드 문서에 따르면 조금 다르게

$ ./out/Default/Chromium.app/Contents/MacOS/Chromium

로 실행할 수 있나보다.

 

 

아래는 실행 결과이다.

이제 이 코드들을 바꿔보며 크로미움 코드에 익숙해지면 된다.

해당 내용은 다음 글에서 다뤄보려고 한다.

반응형