Довольно часто на работе я создаю отдельные проекты для реализации независимых компонент большого приложения, которое собирается симейком. В последнее время рутина по созданию этих маленьких проектов, и поддержание актуальности списка исходников в CMakeLists.txt во время разработки стали раздражать. И тут я подумал, что было бы неплохо иметь какое-то подобие cargo для плюсов. cbake - утилита, которая берёт рутинную работу с симейком на себя. Она позволяет быстро сгенерировать структуру проекта, обновляет список исходников в СMakeLists.txt, билдит и ранит проект в дебаг и релиз конфигурациях, и не мешает работать с CMakeLists.txt руками
Создание проекта:
Я задумывал 3 проектных структуры:
- Минимальная:
Проект/
— build/
— исходники…
— СMakeLists.txt - Плоская:
Проект/
— build/
— include/
------ headers…
— src/
------ sources…
— CMakeLists.txt - Иерархия:
Проект/
— build/
— module1/
------ sources
------ CMakeLists.txt
…
— moduleN/
— main.cpp
— CMakeLists.txt
На данный момент реализована только минимальная. Проект в целом довольно сырой, хотелось бы как минимум добавить опций для генерации исходного СMakeLists.txt, но мои потребности уже покрывает. Мне очень бы не помешало код ревью прежде, чем я приступлю к плоской структуре, я пока не очень понимаю как делать удобный АПИ на расте, несчастный сmake::generator.rs переписывал раза 4.