кросс-платформенная автоматическая сборка не-C проектов - PullRequest
1 голос
/ 19 декабря 2011

На самом деле мне нужно собрать двоичные файлы для разных языков - Java, Pascal (Delphi / FPC), C ++, C # и т. Д. На платформах Windows / Linux.

Как это можно сделать?Я сейчас использую CMake для проектов на C, вот так:

cmake --build . с CMakeLists.txt обеспечить.

Ответы [ 2 ]

3 голосов
/ 19 декабря 2011

Каждая *make система не подходит для проекта Java, потому что make в основном предполагает одно из: «Один файл в, один файл в выходном файле» (например, .c до .o) или «N файлов в, один файл из"(например, *.o к одному из .a, .dll, .exe).С этими "примитивами" выполняется сборка.

Но компилятору Java по своей природе требуется "полное входное дерево исходников, выходное дерево классов завершено".

Эти две парадигмы не совпадают, и попытка сделать это рано или поздно вызовет больше маленьких неприятных проблем, чем их ценность.Был там, сделал это.

Лучшее, что вы можете сделать, это вызвать Ant или Maven (или что-то еще) из Makefile верхнего уровня.

Редактировать : Не забывать еще две вещи:

  • Компиляция Java с помощью make - мрачное, загадочное искусство.Вы не найдете много людей, которые знают как Java, так и make, и которые могут решить проблемы с этой комбинацией.Муравей / Maven и Java является стандартной комбинацией.С этой комбинацией просто не возникает проблем с поиском помощи или советов.

  • Многие фреймворки в Java требуют специальных шагов компиляции.Практически во всех случаях доступны плагины для Ant и Maven.С помощью make вам придется каждый раз заново изобретать колесо.

1 голос
/ 19 декабря 2011

Free Pascal предоставляет свои собственные системы сборки.См., Например,

http://www.stack.nl/~marcov/buildfaq.pdf

make-файлы по умолчанию (основанные в основном на сгенерированных make-файлах gmake) уже совместимы.

Я не знаю никого, ктоиспользует cmake с Free Pascal, и я был в их списках рассылки более десяти лет.

...