Cbake - утилита с cargo интерфейсом для создания и сборки простых C/C++ проектов на базе СMake


#1

Довольно часто на работе я создаю отдельные проекты для реализации независимых компонент большого приложения, которое собирается симейком. В последнее время рутина по созданию этих маленьких проектов, и поддержание актуальности списка исходников в CMakeLists.txt во время разработки стали раздражать. И тут я подумал, что было бы неплохо иметь какое-то подобие cargo для плюсов. cbake - утилита, которая берёт рутинную работу с симейком на себя. Она позволяет быстро сгенерировать структуру проекта, обновляет список исходников в СMakeLists.txt, билдит и ранит проект в дебаг и релиз конфигурациях, и не мешает работать с CMakeLists.txt руками

Создание проекта:

Я задумывал 3 проектных структуры:

  1. Минимальная:
    Проект/
    — build/
    исходники…
    — СMakeLists.txt
  2. Плоская:
    Проект/
    — build/
    — include/
    ------ headers…
    — src/
    ------ sources…
    — CMakeLists.txt
  3. Иерархия:
    Проект/
    — build/
    — module1/
    ------ sources
    ------ CMakeLists.txt

    — moduleN/
    — main.cpp
    — CMakeLists.txt

На данный момент реализована только минимальная. Проект в целом довольно сырой, хотелось бы как минимум добавить опций для генерации исходного СMakeLists.txt, но мои потребности уже покрывает. Мне очень бы не помешало код ревью прежде, чем я приступлю к плоской структуре, я пока не очень понимаю как делать удобный АПИ на расте, несчастный сmake::generator.rs переписывал раза 4.

На сrates.io проект пока не лил, всё на гите