Build a Chromium-based Web Browser
우당탕탕 인고의 삽질과 시간, 크롬 하나 빌드하는데...
하루종일 설정⇢ 오류 ⇢ 빌드 ⇢ 오류 ⇢ 빌드 반복의 날이다 (2일째...)
유툽 영상을 심리스하게 저장하기 위해 시도하려다 여기까지 왔다.
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
set GYP_MSVS_VERSION=2022
GN 설정
is_debug=true (디버그 빌드, Debug) / is_debug=false (최적화 켜짐, Release 최적화)
is_component_build=true (컴포넌트/DLL 분리 → 링크 빠름) / is_component_build=false (단일 바이너리 → 시작/런타임 오버헤드 ↓)
symbol_level=1 (심볼 일부: 샘플링 프로파일러/스택 추적 용) / symbol_level=0 (심볼 최소)
is_official_build=true (공식 빌드 플래그 묶음; 보안/최적화/특정 체크 변경)
proprietary_codecs=true (상용 코덱 허용 스위치)
ffmpeg_branding="Chrome" (FFmpeg 브랜딩: H.264/AAC 등 활성 경로)
dcheck_always_on=true
// 개발용(Development / Dev-Fast)
gn gen out\DevFast --args="is_debug=true is_component_build=true symbol_level=1 target_cpu=\"x64\""
// 성능테스트용(Performance / Bench)
gn gen out\Perf --args="is_debug=false is_component_build=true symbol_level=1 target_cpu=\"x64\" optimize_for_size=false"
// 릴리즈용(Release / Shipping)
gn gen out\Release --args="is_debug=false is_official_build=true is_component_build=false symbol_level=0 target_cpu=\"x64\""
// 현재 args 보기/수정
gn args out\DevFast
gn args out\Perf
gn args out\Release
// 현재 arg 확인 및 고정
gn args out\DevFast --list
// 크롬 빌드
autoninja -C out\DevFast chrome
autoninja -C out\Perf chrome
autoninja -C out\Release chrome
// 설치파일 빌드
autoninja -C out\Release mini_installer
// 빌드 설명
autoninja -C out\DevFast chrome -d explain
// 빌드 시뮬레이트
autoninja -C out\DevFast chrome -n
// 실행 (--enable-features=MediaCache)
out\DevFast\chrome.exe --user-data-dir=Z:\chromium\user-dev --enable-logging=stderr --v=1
out\Perf\chrome.exe --user-data-dir=Z:\chromium\user-perf --enable-logging=stderr --v=0
out\Release\chrome.exe --user-data-dir=Z:\chromium\user-release --no-first-run --no-default-browser-check
// 뭔가 이상하다 싶을때
gclient runhooks
gn clean out\DevFast (폴더 삭제와 비슷)
// 일반 적인 순서
개발 루프: out\DevFast (컴파일/링크 최속)
벤치/튜닝: out\Perf (릴리즈와 거의 같은 성능 + 반복속도 어느 정도)
최종 검증/배포: out\Release (공식 최적화/단일 바이너리)
아, 그나저나 "닌자"... 고등학교때 닌자처럼 허리 숙이고 뛰는 것을 멋질 줄 알고,
그 친구 앞에서 뛰었는데, "병신같아" 라는 말을 듣고 안하게 되었다 낄낄
마지막 수정