상위 질문
타임라인
채팅
관점
닌자 (빌드 시스템)
속도에 중점을 둔 소형 빌드 시스템 위키백과, 무료 백과사전
Remove ads
닌자(Ninja)는 속도에 중점을 둔 소형 빌드 시스템이다. 다른 빌드 시스템과 다른 점은 상위 레벨 빌드 시스템에서 입력 파일을 생성하도록 설계되었으며 최대한 빨리 빌드를 실행하도록 설계된 것이다.
Make는 증분 빌드(또는 무연산 빌드)를 수행할 때 안정성을 위해 속도가 상대적으로 느려진다.[3][4] 이렇게하면 예를 들어 약39,000 개의 입력 파일을 하나의 실행 파일로 컴파일하는[5] 크로미움(chromium) 과 같은 대규모 프로젝트에서 작업하는 개발자의 작업 속도가 상당히 느려질 수 있다. 실제로 크롬(chrome)은 Ninja[6]의 주요 사용자이다. 이러한 의미로 닌자(Ninja)는 Make를 대체하기 위한 것일 수 있다.
Make 와는 달리 Ninja 빌드 파일은 손으로 직접 작성하지 않으므로 Ninja에는 문자열 조작과 같은 기능이 없다. 대신 닌자(Ninja) 빌드 파일을 생성하려면 "빌드 생성기"를 사용해야 한다. 전통적인 CMake 같은 다른 빌드 관리 소프트웨어도[7] 닌자(Ninja)[8]에 대한 빌드 파일 생성을 지원한다.
일부 대형 프로젝트에서는 닌자 빌드 파일 생성기를 별도로 제공하는데, 일례로 크로미움 프로젝트는 GN이라는 닌자 빌드 파일 생성기를 소스코드 관련 툴(depot tolos)을 배포시 포함한다.[9]
Remove ads
기타 기능
예시
rule cc
command = gcc -c -o $out $in
description = CC $out
rule link
command = gcc -o $out $in
description = LINK $out
build source1.o: cc source1.c
build source2.o: cc source2.c
build myprogram: link source1.o source2.o
같이 보기
각주
외부 링크
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads