Joonas' Note

Joonas' Note

Chromium 빌드 본문

개발/C++

Chromium 빌드

2019. 5. 7. 17:19 joonas

    요구사항

    • 최소 8GB RAM, 권장 16GB RAM
    • 100GB 디스크 공간
    • Visual Studio 2017 이상
    • Windows 7 이상

    환경 설정

    Visual Studio

    • Desktop development with C++ (C++를 사용한 데스크탑 개발)
    • MFC/ATL support (x86 및 x64용 Visual C++ MFC)
    • 워크로드에서 위 항목들을 설치해야 합니다. VS 2017 이상부터는 Visual Studio Installer에서 설치할 수 있습니다.

    Windows 10 SDK

    • https://developer.microsoft.com/ko-kr/windows/downloads/sdk-archive
      • 버전 10.0.17134 이상
    • (선택) SDK Debugging Tools
      • Window 10 SDK가 이미 설치되어 있다면, 제어판 -> 프로그램 -> 프로그램 및 기능 -> Windows Software Development Kit - WIndows 10.0.17134.0 -> 우클릭 후 변경 -> "Change" -> Debugging Tools For Windows 선택 -> Change 클릭

    depot_tools 설치

    git, gn, python, ninja 등 chromium 빌드 등에 필요한 도구들의 집합

    다운로드: https://storage.googleapis.com/chrome-infra/depot_tools.zip

    압축 해제한 디렉토리를 환경 변수에 추가해준다. 단, 기존에 설치된 python보다 위에 추가해야 한다. (빌드 과정에서 이 곳의 파이썬 버전을 사용하기 때문)

    환경 변수에 DEPOT_TOOLS_WIN_TOOLCHAIN을 추가해주고 그 값을 0으로 설정한다.

    이후 cmd창에서 gclient를 입력하면, 불러오기가 실행된다. 하지만 다음과 같이 간혹 안되는 경우가 있다.

    C:\src\depot_tools> gclient sync
    Error: client not configured; see 'gclient config' 

    이는 .gclient 파일이 없어서 그렇다. 아래처럼 커맨드를 입력하거나,

    C:\src\depot_tools> gclient config https://chromium.googlesource.com/chromium/src.git 
    C:\src\depot_tools> gclient runhooks 
    C:\src\depot_tools> gclient sync

    .gclient 파일을 아래처럼 직접 작성한 후 다시 실행하면 된다.

    이 과정은 약 1시간 정도 소요된다. (네트워크 속도를 감안해야 한다.)

    fetch

    먼저 git을 설정한다.

    git config --global user.name "My Name"
    git config --global user.email "my-name@chromium.org"
    git config --global core.autocrlf false
    git config --global core.filemode false
    git config --global branch.autosetuprebase always

    디렉토리 위치는 상관없고, 프로젝트 디렉토리를 따로 만든 후 이동한다.

    $ mkdir chromium && cd chromium

    소스코드를 가져온다.

    $ fetch chromium

    빌드

    빌드를 위해 프로젝트 디렉토리 아래에 있는 src로 이동한다.

    $ cd src

    소스코드를 생성한다.

    $ gn args out/Default

    기본 에디터(메모장, 서브라임 등)이 뜨면서 설정을 입력하라고 할 것인데, 아래와 같이 덮어씌우고 에디터를 종료한다.

    is_debug = true
    is_component_build = true
    blink_symbol_level = 0

    파일 생성이 완료되었다는 문구가 나왔다면 성공.

    컴파일

    컴파일은 아래와 같이 입력한다. (DOS CMD 기준)

    > ninja -C out\Default ui\views\examples:views_examples_exe

    git bash 등의 쉘이라면 경로의 \ 들을 /로 적절히 바꿔준다.

    위 과정은 약 1시간 정도 걸린다. (실행 환경: i7-8550U CPU @ 1.80GHz (1시간), i7-7700K CPU @ 4.20GHz (40분 정도))

    Chrome 브라우저를 빌드하고 싶다면 아래의 명령을 실행한다.

    > ninja -C out\Default chrome

    크롬 빌드는 거의 4시간정도 걸렸다.

    실행

    위에서 컴파일한 views_examples_exe 실행은:

    > .\out\Default\views_examples_exe

    버튼 클릭, 슬라이더 등 브라우저에서 요소들이 어떻게 보이는 지 예시들이 보이는 게 끝이다.

    빌드된 chrome은 아래의 명령어로 실행한다.

    > .\out\Default\chrome.exe 

    위 파일들 모두 바이너리(exe) 파일이기 때문에, 프로젝트 디렉토리에서 찾아서 더블 클릭해도 실행된다.

    Comments