Актуальная строительная система для D - PullRequest
7 голосов
/ 12 марта 2012

Я знаю, что есть DSSS, BUD / build, Orbit от Jacob Carlborg и официального rdmd. И только Орбита, кажется, активна. Итак, какие из них наиболее пригодны для создания огромных, сложных программ D с множеством зависимостей? Упаковка не требуется, просто приятный и понятный помощник в процессе сборки.

Ответы [ 3 ]

4 голосов
/ 16 марта 2012

Это тоже шаблон для использования makefile здесь: MakefileForD

зачем его использовать:

  • прост в использовании
  • поддержка всех компиляторов
  • может создавать как общую, так и статическую библиотеку или исполняемый файл
  • // сборка
4 голосов
/ 13 марта 2012

Не готовый продукт, но ....

У DMD уже есть флаг -deps , который должен автоматически создавать файлы make.

1 голос
/ 29 марта 2015

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

rdmd [rdmd args] [compiler args] <source file>[.d] [executable args]

Во всех моих проектах D я просто использовал скрипты Bash (с Cygwin, если на Windows), и это прекрасно работает.Вот некоторые из моих любимых фрагментов:

Run

Весь смысл rdmd в том, чтобы упростить цикл компиляции-редактирования-запуска для редактирования-запуска, и это делает это довольнопросто:

rdmd helloworld.d [args]

rdmd не будет запускать файлы с менее свежей отметкой времени, чем последняя компиляция, поэтому в следующий раз, когда вы запустите тот же исходный файл без редактирования, он просто перейдет к предыдущемускомпилированный исполняемый файл.

Выбор компилятора

Несмотря на название, вы можете использовать большинство компиляторов с rdmd, например, GDC, LDC и DMD, например:

rdmd --compiler=dmd ...

Сборка:

Обычно rdmd хранит исполняемый файл и *.obj файлы из вашего источника во временном каталоге, используя tmpDir() в rdmd источнике - это, по сути, некоторая магия, чтобы дать rdmd ощущениезапуска *.d файлов в виде скриптов.Однако вы можете указать выходной файл с флагом -of:

rdmd -of"helloworld.exe" helloworld.d
...