#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 в своей системе в целом , вы можете попытаться настроить CMakeExternalProject_Add
для выполнения необходимых шагов.2. Обратите внимание также, что проекты с системами сборки на основе Autotools часто имеют зависимости как от сборки, так и от времени выполнения вне самой системы сборки, которые не удовлетворяются типичной средой Windows. Обычно их тоже может удовлетворить MinGW или аналогичная среда, но не всегда. То, что у вас есть исходный код, не обязательно означает, что вы можете создавать или запускать на какой-либо конкретной ОС.