GN (빌드 시스템)

GN(Generates Ninja build files)은  닌자(Ninja)로 응용프로그램 프로젝트를 구축 할 수 있도록 Ninja 빌드 파일을 생성하는 메타 빌드 시스템이다.

GYP의 차세대 메타 빌드시스템
GN 파일은 GYP 파일보다 읽기 쉽고 유지 관리가 쉽다.
GN은 GYP보다 최대 약20 배 빠르다.
GN은 빌드의 일부로 Ninja가 필요에 따라 자동으로 다시 실행되도록 지원한다. 이렇게하면 빌드 파일을 변경할 때 GN을 다시 실행하는 것을 기억할 필요가 없다.
GN은 의존성 적용을 위한 더 나은 도구를 제공한다 (gn check 및 visibility, public_deps 및 data_deps 옵션 참조).
GN은 빌드 트리 그래프를 쿼리하기 위한 도구를 제공한다. 예를 들어 "X가 의존하는 것"과 "X에 의존하는 것"을 조회할 수 있다.

크로미움 프로젝트와의 관계
크로미움 프로젝트에의한 GN 프로젝트는  닌자(Ninja)로 크로미움(Chromium)을 빌드 할 수 있도록 Ninja 빌드 파일을 생성하는 메타 빌드 시스템이다.

2016년 10월 기준으로 모든 Chromium 빌드가  GYP에서 GN으로 전환되었다.
거의 모든 GYP 파일이 크로미움 저장소(Chromium repos)에서 대체되었다. 결과적으로 더 이상 GYP로 빌드 할 수 없다.

변환할 필요가있는 "Closure Compilation"빌더를위한 GYP 파일이 여전히 남겨져있다.
일부 관련 프로젝트 (예 : V8, Skia)는 여전히 자체적인 이유로 GYP를 지원할 수 있다.
아직도 gclient가 GYP_DEFINES를 사용하는 것과 같은 기능을 남겨놓고 있다.

같이 보기 
  닌자(Ninja)

각주 

컴퓨터 프로그래밍