0
CMake를 사용하여 트리 닌자 빌드를 생성 할 때 CI 서버의 디스크 공간을 절약하기 위해 중간 빌드 제품 (예 : 오브젝트 파일 및 정적 라이브러리)을 제거하는 것이 유용 할 수 있습니다. 이것을 할 수있는 방법이 있습니까?Ninja 빌드 시스템을 사용하여 중간 빌드 제품을 청소할 수 있습니까?
CMake를 사용하여 트리 닌자 빌드를 생성 할 때 CI 서버의 디스크 공간을 절약하기 위해 중간 빌드 제품 (예 : 오브젝트 파일 및 정적 라이브러리)을 제거하는 것이 유용 할 수 있습니다. 이것을 할 수있는 방법이 있습니까?Ninja 빌드 시스템을 사용하여 중간 빌드 제품을 청소할 수 있습니까?
Ninja를 사용하여 규칙별로 정리하는 것이 가능하지만 Ninja만으로는 중간 생성물을 생성하는 규칙을 알 수 없습니다. 대신 우리는 쉘 스크립트에 의존해야합니다
grep "^rule.*\(_COMPILER_\|_STATIC_LIBRARY_\)" rules.ninja | \
cut -d' ' -f2 | xargs -n1 ninja -t clean -r
이 후, 오브젝트 파일과 정적 라이브러리를 생성하는 규칙에 대한 rules.ninja 파일을 greps 실제 세척을하기 위해 각 ninja -t clean -r <rule>
를 호출합니다. Windows에서 동일한 기능이 달성된다
FOR /f "tokens=2" %%R IN ('findstr "_COMPILER_ _STATIC_LIBRARY_" rules.ninja') DO (
ninja -t clean -r %%~R
)
, 문서화 그래서 가치 그것은 확실히 해킹,하지만 우리에게 디스크 공간의 상당한 금액을 절약, 나는 생각했다.