Lua 기반 빌드 시스템 Kindler, 어디서든 빌드 가능!

by DD
4개월 전
조회수 10

Lua 기반 빌드 시스템 Kindler가 출시되어, 다양한 환경에서의 실행을 목표로 함

Makefiles, Ninja 파일 생성 방식을 통해 기존 빌드 시스템과의 호환성을 확보

Cmake, Meson과 달리, 유연성과 이식성에 초점을 맞춘 설계가 특징임

GitHub 미러 부재에 대한 아쉬움이 커뮤니티에서 언급됨

Kindler의 핵심 설계 철학: 이식성

Kindler는 '어디서든 실행 가능'을 목표로 설계되었으며, 이를 위해 Lua를 사용하고 있다. Lua는 높은 이식성을 가진 언어로서, 다양한 운영체제 및 환경에서 문제없이 동작하도록 설계되었다. 특히, Kindler는 선언적 구문(Declarative Syntax)을 채택하여, 복잡한 스크립팅 없이 빌드 파일을 생성할 수 있도록 지원한다. 이러한 설계는 Kindler가 특정 컴파일러나 툴체인에 종속되지 않고, 다양한 환경에서 유연하게 사용될 수 있도록 한다.

Kindler와 기존 빌드 시스템의 차이점

Kindler는 Cmake나 Meson과 같은 기존 빌드 시스템을 대체하기 위한 것이 아니라, 보완적인 역할을 수행한다. Kindler는 Makefiles 또는 Ninja 파일을 생성하는 메타 빌드 시스템으로, 실제 빌드는 네이티브 빌드 도구에 의해 수행된다. 특히, Kindler는 CI/CD 환경에서의 사용을 고려하여 설계되었으며, 프로젝트 파일 생성을 위한 Globbing 지원을 제공한다. 이러한 특징은 Kindler가 기존 빌드 시스템보다 더 유연하고, 다양한 환경에 쉽게 적용될 수 있도록 한다.

Kindler의 캐싱 메커니즘

Kindler는 부트스트랩(Bootstrap)을 사용하여 OS 종속성 정보, 컴파일러 상호 작용 규칙, 헤더 및 라이브러리 가용성 등, 빌드에 필요한 정보를 생성하고 캐싱한다. 이는 시스템을 매번 스캔하는 대신, 캐싱된 정보를 활용하여 빌드 속도를 향상시키는 데 기여한다. 또한, Kindler는 pkgconf를 사용하여 종속성 트리를 확인하므로, OS 변경과 같은 특정 상황에서만 재 생성이 필요하다. 이러한 캐싱 메커니즘은 Kindler의 빌드 효율성을 높이는 핵심 요소 중 하나이다.

커뮤니티의 피드백 및 개선점

커뮤니티에서는 Kindler의 GitHub 미러 부재에 대한 아쉬움을 표명하며, 프로젝트의 접근성을 높이기 위한 개선을 요구했다. GitHub는 개발자들이 프로젝트를 북마크(Bookmark)하고, 추후에 활용하기 위한 일반적인 플랫폼으로 사용된다. 이러한 피드백은 Kindler가 더 많은 개발자들에게 접근하고, 널리 사용되기 위해 필요한 개선 사항을 시사한다. 또한, Kindler가 지원하는 툴체인(Toolchain)에 대한 정보가 부족하다는 점도 개선점으로 지적되었다.

Kindler: A New, lua-based build system designed to run anywhere