Cook


Cook - это программа автоматизации сборки проектов на D. В отличие от аналогичных инструментов (Make, CMake, Scons, Jam, DSSS и др.), Cook не требует конфигурационного файла: всю информацию о проекте она получает самостоятельно, сканируя модули (файлы *.d). При этом программа отслеживает прямые и обратные зависимости между модулями: если модуль был изменен, необходимо скомпилировать заново не только его, но и все модули, которые от него зависят (это важно, если был изменен внешний интерфейс модуля: объявления классов, семантика шаблонов и т.д.). Для этого Cook производит лексический анализ модулей - но не всех, а только тех, которые были изменены со времени последнего анализа. Данные анализа кэшируются в файл для повторного использования (кэш автоматически обновляется при пересборке). Cook работает в Windows и Linux.

Репозиторий проекта на GitHub:
https://github.com/gecko0307/cook2

3 комментария:

  1. А в чем преимущества/недостатки по сравнению с CDC - (http://dsource.org/projects/cdc/)?

    ОтветитьУдалить
    Ответы
    1. C этой программой не работал, но при беглом взгляде вижу главное отличие - нет конфигурабельности. В Cook поддерживаются файлы конфигурации, в которых можно указать свои команды компиляции/линковки, путь к компилятору на диске, различные другие параметры. Я тоже начинал с простого однофайлового скрипта, сейчас Cook гораздо сложнее.
      А вы уверены, что CDC жив? Последнее изменение SVN было 2 года тому назад - он, пожалуй, и не соберется современными версиями DMD...

      Удалить
  2. Этот комментарий был удален автором.

    ОтветитьУдалить