Всем привет! Понадобилось сейчас запустить один очень специфичный софт(корпоративный), который работает только на бубунте. А так как у меня есть только macbook pro 2020 года, который на m1. То пришлось поднять бубунту на нем.
Система сборки SCons в настоящее время не пользуется популярностью,
а зря – это не самый плохой выбор для вашего проекта (даже если его части на разных языках),
особенно, если учесть, что его скрипт сборки может выполнять вызовы языка Python напрямую,
что значительно расширяет возможности управления процессом сборки, списками файлов и т.п.
SCons не использует внешние низкоуровневые системы сборки, как это делают CMake
или Meson, полагаясь на свою собственную встроенную. Есть экспериментальная поддержка
внешней низкоуровневой системы сборки Ninja, но её поддержка очень экспериментальная.
Если скорость сборки вашего проекта слишком критична (это должен быть очень большой проект), то, возможно, SCons вам скорее не подойдёт.
Оценка разницы в скорости здесь всё равно не приводится, но желающие могут протестировать её на примере
проекта The Battle for Wesnoth, где помимо файла проекта SCons (файл SConstruct)
поддерживается система сборки CMake.
Я не использую какую-либо систему сборки на регулярной основе (да я вообще не программист!),
поэтому не знаю даже базовых тонкостей той или иной системы, в том числе и рассматриваемой.
По этой причине сравнения между ними здесь приводиться не будет.
Возможно, что даже описанные ниже вещи можно сделать в рамках SCons проще и иначе.
SCons, по умолчанию, не проверяет изменился ли файл на основе временных меток.
Вместо этого он проверяет контрольные суммы файлов. Но данное поведение настраивается:
взамен можно выбрать проверку временных меток, либо смешанную – одновременно на основе проверки контрольной суммы и временных меток.
Разумеется, что возможности SCons далеко не исчерпываются тем,
что рассматривается в данной статье. С более подробной справкой можно ознакомиться: