2012-01-23 2 views
6

С make install Я могу скопировать мои двоичные файлы, configs etcetera в целевую папку для выполнения.cmake «make install» для удаленной машины?

Теперь у меня есть следующая ситуация: у нас есть установка виртуальной машины как сборки хост и другая реальная машина Linux в качестве целевой платформы .

Я хотел бы иметь make install скопировать файлы непосредственно в папку на моей удаленной машине (через scp или аналогичную). Как я могу это достичь?

+0

Хорошо, давайте сделаем выполнение 'scp'. –

ответ

1

make может работать с конкретным префиксом во время установки:

make prefix=$dest/usr install 

Решение вашей проблемы заключается в

  • смонтировать файловую систему целевой машины на вашей машине построения. Это может быть сделано с помощью NFS (постоянной) или через SSHFS (проще),
  • набор $ Dest к точке и выполнить команду выше
+0

префикс ничего не делает. DESTDIR работает (как и в другом ответе). Однако установка - это способ пойти, чтобы заставить все работать сразу (и сервер может быть удален с использованием SSH-монтирования для компьютеров локальной сети.) –

5

Вы часто могли бы сделать

make install DESTDIR=/tmp/mydest/ 

затем архив, каталог назначения

tar czvf /tmp/mydest.tgz -C /tmp mydest 

затем скопировать этот архив на удаленном месте

scp /tmp/mydest.tgz remote:tmp/ 

наконец, распаковываем архив на пульте дистанционного управления и скопировать его в соответствующем месте

+0

На самом деле я хотел бы предотвратить все эти промежуточные шаги. Я думаю, что cmake использует команду copy (cp) для копирования файлов. Там ДОЛЖНО как-то быть способ сказать cmake использовать scp вместо этого ... – Danoo

+0

DESTDIR работал с cmake Makefiles. Именно то, что мне нужно. –

+0

Часто источник поставляется с файлом с именем «README». Содержимое этого файла может дать ключ. Например, pcre-8.39 предлагает использовать 'make dist' и/или' make distcheck' для создания tarball. –

1

Использование CMake 2.8.14, команда «add_custom_command» в CMakeLists.txt, могут быть также использованы:

add_custom_command(TARGET my_target POST_BUILD COMMAND scp $<TARGET_FILE:my_target> [email protected]_host:dest_dir_path) 

Преимущество: вызов только при восстановлении цели.

Смежные вопросы