Skip to content
/ darc Public

Dart로 작성된 현대적인 C/C++ 빌드 도구

License

Notifications You must be signed in to change notification settings

ericlee05/darc

Repository files navigation

Darc

Dart로 작성된 현대적인 C/C++ 빌드 도구

Dart + C를 합친 Darc(다르크)는 yaml을 바탕으로 현대적이고 친숙한 빌드 환경을 제공합니다.

Darc CLI

프로젝트 설정하기

darc init를 이용하여 기존 C/C++ 프로젝트를 손쉽게 darc 프로젝트로 전환할 수 있습니다.

darc init

프로젝트 빌드

darc build 명령을 통해 Darc 프로젝트를 컴파일할 수 있습니다.

darc build

이외에도 아래와 같은 다양한 옵션을 제공합니다:

  • -c, --compiler: 빌드에 사용할 컴파일러의 명칭을 지정합니다.
    • 기본값: g++
  • (예정) -t, --toolchain: 빌드에 사용할 툴체인을 지정합니다.
    • 툴체인의 디렉터리 경로를 입력하여야 합니다.
  • -d, --debug: 디버그 가능한 바이너리를 빌드합니다.

darc.yml

빌드하기를 원하는 디렉터리에 darc.yml을 정의하여 원하는 C/C++ 프로젝트를 손쉽게 바이너리로 빌드할 수 있습니다.

project:
   name: first-cpp-app
   author: darc
   version: 1.0.0 Alpha

dependency:
   - include: ./name.h

빌드 엔진

현재 Darc는 Pennon 빌드 엔진을 기본으로 사용합니다. 오픈 소스 기여자들은 다양한 엔진을 개발하여 Darc에 추가할 수 있습니다.

Pennon (Alpha Version)

가장 기초적인 형태의 엔진으로, 모든 소스 코드를 스캔하여 Object 파일로 변환한 뒤 하나의 바이너리로 통합합니다. 소스 코드 해석이 지원되지 않으므로, Object 파일 빌드 시 불필요한 자원 낭비가 발생할 수 있습니다.

추후 소스 코드 해석을 이용하여 선별적인 헤더 파일 포함 기능, 병렬 빌드 기능 등을 제공할 예정입니다.

Darc의 한계

Darc는 기존의 cmake를 대체하고자 개발된 것이 아닌, 소형 규모 프로젝트의 빌드를 지원하기 위해 설계되었습니다. 현재 안정성 있는 Build 환경을 보장하지 못하며, cmake 등에서 제공하는 각종 기능들 또한 제공되지 아니합니다.

개발진 또한 이 문제를 잘 인지하고 있으며, 중형~대형 프로젝트에서도 무리 없이 사용할 수 있도록 설계를 개선하고 기능을 추가할 예정입니다.

About

Dart로 작성된 현대적인 C/C++ 빌드 도구

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published