Система сборки для встроенного проекта C / C ++

Я ищу систему / инструмент сборки высокого уровня, который поможет организовать мой встроенный проект C в «модули» и «компоненты». Обратите внимание, что эти два термина очень субъективны, поэтому мои определения приведены ниже.

  • Модуль - это связная коллекция файлов c и h, но только с одним общедоступным файлом h, который виден другим модулям.
  • Компонент (или уровень), с другой стороны, представляет собой набор модулей (например, уровень приложения, уровень библиотеки, уровень драйвера, уровень RTOS и т. Д.).

Система / инструмент сборки должны -

  • Предотвращать циклические зависимости между компонентами и модулями (циклические зависимости внутри модулей допустимы)
  • предотвращать доступ к частным барьерам модуля. Если другие модули пытаются включить файл заголовка, который является частным для модуля, система сборки должна выдать ошибку. Однако файлы внутри частного барьера должны иметь возможность включать другие файлы внутри этого барьера.
  • поддержка создания и автоматического выполнения модульных тестов (быстрый цикл обратной связи для TDD) на хосте
  • поддержка модульных тестов для запуска на целевом симуляторе
  • поддержка статического анализа кода
  • поддержка генерации кода
  • поддержка кода обнаружение дублирования (обеспечение соблюдения принципа DRY)
  • поддержка улучшения кода
  • поддержка генерации метрик покрытия кода модульными тестами
  • поддержка генерации метрик качества кода
  • независимость от платформы

Я мог бы написать свой собственный инструмент сборки и потратить на это много времени. Однако это не моя область знаний, и я бы не стал изобретать колесо заново, если кто-то уже создал такой инструмент.

8
задан thegreendroid 20 May 2012 в 05:35
поделиться