Подтвердить что ты не робот

Перспективные альтернативы?

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

Кто-нибудь нашел какие-то хорошие альтернативы, чтобы сделать это не слишком сложно проблема?

4b9b3361

Ответ 1

проверьте SCons. Например, Doom 3 и Blender используют его.

Ответ 2

У меня много друзей, которые клянутся CMake для кросс-платформенной разработки:

http://www.cmake.org/

Это система сборки, используемая для VTK (среди прочего), которая представляет собой С++-библиотеку с кросс-платформенным Python, Tcl, и привязки Java. Я думаю, что это, вероятно, наименее сложная вещь, которую вы найдете с множеством возможностей.

Вы всегда можете попробовать стандартный autotools. Файлы Automake довольно легко собрать, если вы работаете только в Unix, и если вы придерживаетесь C/С++. Интеграция сложнее, а autotools далека от самой простой системы.

Ответ 3

Некоторые из проектов GNOME переносятся на waf.

Это Python-based, как и Scons, но также и автономно - поэтому вместо того, чтобы требовать от других разработчиков, чтобы ваш любимый инструмент сборки был установлен, вы просто копируете автономную сборку script в свой проект.

Ответ 4

Я рекомендую использовать Rake. Это самый простой инструмент, который я нашел.

Другие хорошие инструменты, которые я использовал, хотя Ruby не ваша вещь:

  • AAP (Python)
  • SCons (Python)
  • Ant (Java, config в XML, довольно сложный)

Ответ 5

doit - это инструмент python. Он основан на концепциях создания инструментов, но более общих.

  • вы можете определить, как задача/правило является актуальным (не только проверка временных меток, целевых файлов не требуется).
  • зависимости могут быть вычислены динамически с помощью других задач.
  • Действия задачи могут быть функциями python или командами оболочки

Ответ 6

Обратите внимание на инструмент ninja (v1.8.2, сентябрь 2017), на который влияет tup и redo.

Генератор файла сборки cmake (например, для Unix Make файлов, Visual Studio, XCode, Eclipse CDT,...) также может сгенерируйте файлы ninja build с версии 2.8.8 (апрель 2012 г.) и, afaik, ninja теперь даже инструмент построения по умолчанию, используемый cmake.

Предполагается, что он превосходит инструмент make (лучшее отслеживание зависимостей и также распараллеливается).

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

Обратите внимание, что для c/С++ улучшение времени компиляции иногда ограничено из-за заголовков, включенных через препроцессор (в частности, при использовании только для заголовков libs, например boost и eigen), которые, надеюсь, будут заменены предложением modules (в техническом обзоре С++ 11 или в конечном итоге в С++ 1y). Ознакомьтесь с этой презентацией для получения подробной информации по этой проблеме.

Ответ 7

Я написал инструмент под названием sake, который пытался сделать записи, подобные makefile, очень легкими для чтения и записи.

Ответ 8

Это зависит от того, что вы пытаетесь сделать. Если все, что вам нужно, это целевые зависимости make-style и вызов команды, то Make на самом деле является одним из лучших инструментов для этой задачи.:-) Рейк очень приятный, но может быть неуклюжим для некоторых простых случаев. Ant - это, конечно, многословие, но он имеет лучшую поддержку для создания Java-подобных языков (включая Scala и Groovy). Кроме того, Ant доступен везде. Это основная причина, по которой я его использую. Поскольку он работает последовательно в Windows, он на самом деле даже более кросс-платформенный, чем Make.

Если вы хотите управлять зависимостями для Java-подобных библиотек, Maven - это канонический выбор, но мне лично нравится Buildr намного лучше. Это быстрее и намного проще настроить (он основан на Rake). К сожалению, это еще не так повсеместно, как Maven.

Ответ 9

Я по-прежнему предпочитаю делать, рассмотрев кучу альтернатив. Когда вы автоматически создаете зависимости либо через компилятор, либо что-то вроде fastdep, делать нечего. В частности, я не хочу, чтобы моя сборка script была привязана к языку реализации, и мне не нравится писать материал в XML, когда доступны более доступные для чтения альтернативы. Однако инструмент, который раскрывает язык общего назначения, заслуживает внимания, но другой интерпретируемый язык не является (afaik). Что не так с Make? может понравиться вашей точке зрения о том, чтобы отойти от make.

/Allan

Ответ 10

Система Ruby make называется rake: http://rake.rubyforge.org/

Выглядит довольно многообещающе.

Всегда Ant: http://ant.apache.org, который я лично считаю ужасным. Однако это де-факто стандарт для разработки Java.

Ответ 11

Я не уверен, что вы задаете правильный вопрос здесь.

Вы после упрощенного make? В этом случае вам нужно получить кого-то, кто очень хорошо знаком с make, чтобы создать серию (M | m) akefiles, которая упростит вашу проблему.

Или вы хотите посмотреть на базовую технологию? Хотим ли мы внедрить архитектуру дизайна по контракту, которая встроена и внедрена в дизайн кода? Или, возможно, сам язык, например. Ада и ее концепция спецификаций (интерфейсов) и тел (реализаций)?

В каком направлении вы будете определенно влиять на потенциальные результаты такого вопроса?

В принципе, новые способы построения систем только из тех компонентов, которые действительно изменились по сравнению с внедрением новых технологий, которые имеют такие механизмы, построенные по дизайну.

Жаль, что это не прямой ответ. Просто хотел попытаться дать вам возможность оценить, какой путь вам нужен.

веселит,

Rob

Ответ 12

FlowTracer из RTDA - еще один хороший выбор, который я видел в коммерческом масштабе в крупномасштабной среде (десятки тысяч рабочих мест): http://www.rtda.com/flowtracer-design-flow-infrastructure-software

Он имеет графический интерфейс, который показывает граф зависимостей с цветными кодами для заданий и овалов для файлов. Когда количество заданий и файлов становится высоким, инструмент, основанный на графическом интерфейсе, такой как FlowTracer, очень важен.

Первоначальная стоимость установки выше, чем Make. Там есть кривая обучения для настройки вашего первого потока, используя его. После этого он ускоряется.