Описание тега build-system
Системы сборки - это программные инструменты, предназначенные для автоматизации процесса компиляции программ. Системы сборки бывают разных форм и используются для множества задач сборки программного обеспечения. Их основная цель - эффективно создавать исполняемые файлы и библиотеки.
По своей сути системы сборки - это функциональные языки, отображающие набор исходных ресурсов (в большинстве случаев, файлов) на целевой (исполняемый файл). Основное предположение системы сборки состоит в том, что каждое из действий сборки идемпотентно. То есть каждый вызов команды сборки с одними и теми же входными данными и параметрами будет создавать одинаковые выходные данные. Это предположение позволяет системе сборки запоминать действия, которые уже были выполнены, и выполнять действия сборки только с измененными ресурсами.