CMake: как создавать внешние проекты с использованием Autotools?

#cmake #cross-platform #autotools

#cmake #кросс-платформенный #autotools

Вопрос:

Я работаю над проектом, который использует CMake для сборки. У меня есть несколько внешних зависимостей, и я начал использовать команду ExternalProject_Add для их компиляции. Все работает нормально для зависимостей, которые используют CMake в качестве системы сборки, но у меня есть одна зависимость, которая использует Autotools, и поэтому ее можно скомпилировать под управлением Linux

 ./configure amp;amp; make amp;amp; make install
  

Под Linux мне удалось использовать ExternalProject_Add без проблем.
В Windows я обнаружил некоторые проблемы:

  • для запуска configure требуется оболочка
  • Мне нужна работающая команда make

Мне удалось заставить этап настройки работать, используя bash, поставляемый с Git, но мне не удалось заставить работать этап сборки.

Каков наилучший способ решения этой проблемы? Как я могу использовать ExternalProject_Add (или другой метод на основе cmake) для компиляции внешних проектов на основе Autotools в Windows?

Спасибо

Комментарии:

1. CMake — это ExternalProject не волшебный инструмент, который предоставляет инструменты, которых нет в вашей среде. Чтобы иметь возможность использовать Autotools в Windows, вам необходимо иметь среду, в которой он работает без CMake . Например, это может быть MinGW. После того, как вы сможете использовать Autotools в своей системе в целом , вы можете попытаться настроить CMake ExternalProject_Add для выполнения необходимых шагов.

2. Обратите внимание также, что проекты с системами сборки на основе Autotools часто имеют зависимости как от сборки, так и от времени выполнения вне самой системы сборки, которые не удовлетворяются типичной средой Windows. Обычно их тоже может удовлетворить MinGW или аналогичная среда, но не всегда. То, что у вас есть исходный код, не обязательно означает, что вы можете создавать или запускать на какой-либо конкретной ОС.