Я нашел Scons, язык сборки на основе Python, похожий на Make. Однако я не могу найти Clojure/LISP, эквивалентный этому типу инструмента языка сборки (несмотря на то, что LISP кажутся хорошо подходящими для этой работы). Существует ли такой инструмент и где он находится?
Предыстория: я рассматриваю возможность использования Clojure/Leningen в качестве потенциального кандидата на замену Make в качестве языка сборки для проекта C++, над которым я работаю. Стоит ли это усилий? Действительно ли Clojure и/или LISP являются полезными языками сборки для проекта C++?
Вы можете использовать Scheme в файлах make. Я знаю, что это не Clojure, но... Просто мысль.





Я сомневаюсь, что вы найдете что-то столь же краткое, как Make, в мире Clojure, поскольку Make адаптирован для своих целей.
Однако следующая ближайшая вещь — это, наверное, Бабашка. Вот пример работы с зависимостями задач и временем модификации:
{:tasks {:requires ([babashka.fs :as fs])
:init (do (def target-dir "target")
(def jar-file "target/foo.jar"))
-target {:task (fs/create-dirs target-dir)}
jar {:depends [-target]
:task (when (seq (fs/modified-since jar-file
(fs/glob "src" "**.clj")))
(spit jar-file "test")
(println "made jar!"))}
uberjar {:depends [jar]
:task (println "creating uberjar!")}}}
Мне нравится
make. Я презираю Сконс. Они выполняют схожие роли, но я не думаю, что они вообще похожи. И это важно, потому что существует большая разница между «Я ищу инструмент для управления сборкой» и «Я ищу такой инструмент, какmake» или «Я ищу такой инструмент, как Scons».