Я ценю make-файлы и делаю во всей их славе, но интересно, нет ли более интуитивного способа поддержать мой c/c ++ сборки.
Кто-либо попытался заменить их make-файлы рубиновыми сценариями для обеспечения сложных и адаптивных сборок, не жертвуя удобочитаемостью? Есть ли драгоценные камни, которые делают это легче?
Взгляните на Rake , замену make, написанную на Ruby. По сути, это небольшой предметно-ориентированный язык, ориентированный на типичные задачи, подобные make
, с возможностью написания нормального кода Ruby в Rakefile
.
Я преобразовал большие, множественные и сложные проекты C с помощью Rake и несколько небольших проектов Java.
И я никогда не вернусь к make-файлам! На мой взгляд, rake-файлы гораздо более читабельны, чем make-файлы или ant.
У Rake и ruby действительно есть свой набор проблем, главная из которых - хорошая документация, и для создания достойных систем сборки все равно потребуется некоторое обучение и опыт, если вы не очень хорошо разбираетесь в Ruby.
Это очень старая идея, которая была опробована на многих языках сценариев. SRC Modula-3 поставлялся с языком под названием "Quake", на котором были написаны все m3makefile
для проекта. Задача состоит в том, чтобы предоставить что-то, приближающееся к лаконичности и прозрачности Makefile, но с гораздо большей выразительностью. Rake должен пройти еще один путь, прежде чем он приблизится к простоте и ясности создания или землетрясения, но он в высшей степени удобен. Я думаю, что некоторая удобочитаемость принесена в жертву по сравнению с таким инструментом, как Plan 9 mk , но Rake гораздо более читабелен, чем более необычные варианты использования Gnu Make.