# chromium mac build 설명 https://chromium.googlesource.com/chromium/src/+/lkcr/docs/mac_build_instructions.md
# gn(ninja generator) 사용법 https://chromium.googlesource.com/chromium/src/+/lkcr/tools/gn/docs/quick_start.md
# ccache(compiler cache) 사용법 https://chromium.googlesource.com/chromium/src/+/lkcr/docs/ccache_mac.md
# 아래 명령으로 OS X SDK 10.12 버전 이상의 디렉토리가 존재하는지 확인해보고,
# 없으면 앱스토어에서 최신 Xcode 앱을 설치한다.
ls `xcode-select -p`/Platforms/MacOSX.platform/Developer/SDKs
# 작업 시작 위치
mkdir -p ${HOME}/workspace/
cd ${HOME}/workspace/
# chromium 소스를 다운로드 및 빌드를 위해서는 depot_tools 가 필요하다.
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
# chromium 다운로드 및 빌드에 depot_tools 명령들이 필요하기 때문에 PATH 환경변수에 설정되어 있어야 한다.
export PATH="$PATH:${HOME}/workspace/depot_tools"
# chromium 디렉토리 만들고 다운로드 받기
mkdir chromium && cd chromium
# 맥에서 한글 파일명을 제대로 인식하지 못하는등이 문제가 있어 유니코드 파일명로 처리하도록 git 환경 설정
git config --global core.precomposeUnicode true
# depot_tools/fetch 로 chromium 다운로드
# 소스가 커서 다운로드가 시간이 오래걸리기 때문에 --no-history 로 필요없는 히스토리데이터는 제외시키자.
fetch --no-history chromium
# fetch 는 새로 checkout 받을때만 사용하고 소스를 업데이트할 경우
gclient sync
# src 로 이동해서 depot_tools/gn 을 이용하여 out/default 에 ninja 구동환경을 만든다.
cd src
gn gen out/default
# 빌드 속도를 높이기위해 다음으로 args 를 수정할 수 있다.
gn args out/default
# 다음 내용을 추가 후 저장
is_debug = false
is_component_build = true
symbol_level = 0
# ccache 로 변경없는 컴파일 오브젝트를 캐싱하여 재빌드 속도를 높일 수 있다.
# ccache 를 설치하기 위해선 asciidoc autoconf gperf xsltproc(libxslt) zlib 가 설치되어 있어야 한다.
brew install asciidoc autoconf gperf libxslt zlib ccache
# ccache 환경변수 설정
export CCACHE_CPP2=yes
export CCACHE_SLOPPINESS=time_macros
# chromium/src 위치에서
export PATH=`pwd`/third_party/llvm-build/Release+Asserts/bin:$PATH
# ccache 인자를 추가하여 다시 생성
gn gen out-gn --args='cc_wrapper="ccache"'
# ninja 가 없다면 설치
brew info ninja
# ninja 로 빌드(시간이 아주 오래걸린다.ㅠ)
ninja -C out/default chrome
# chromium 실행
out/default/Chromium.app/Contents/MacOS/Chromium