Cmake: возможна ли перекрестная генерация систем сборки из Linux?

Можно ли с помощью cmake создавать системы сборки на одной платформе для другой? Например, и случай, который меня больше всего интересует, можно ли сгенерировать набор файлов решений Visual Studio, или файлы Makefile mingw32-make, или файлы nmake для проекта из Linux?

Намерение состоит в том, чтобы сделать что-то аналогичное тому, что производит цель make dist в automake. Однако мне не нужно, чтобы он делал столько же, сколько make dist, т.е. я просто хочу сгенерировать файлы решения, как если бы я запускал cmake в Windows.

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

Если это возможно, как мне это сделать? Cmake не сообщает, что генераторы на базе Windows доступны в Linux.


person crobar    schedule 19.06.2015    source источник


Ответы (1)


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

Одним из решений для Windows может быть объединение исполняемого файла cmake с вашими файлами и замена определения CMAKE_COMMAND (например), добавленного в make-файлы, на путь к вашей связанной версии cmake. Это всего лишь предложение, я не пробовал и даже не исследовал его. Если вы это сделаете, пожалуйста, опубликуйте процесс в качестве комментария или ответьте здесь.

person crobar    schedule 22.06.2015