2012-01-23 6 views
6

Dzięki make install mogę skopiować pliki binarne, konfiguruje etcetera do folderu docelowego w celu wykonania.cmake "zainstaluj" na zdalnym komputerze?

Teraz mam następującą sytuację: mamy konfigurację maszyny wirtualnej jako gospodarz build i innym prawdziwej maszyny Linux jako platforma docelowej.

Chciałbym mieć make install skopiować pliki bezpośrednio do folderu na moim komputerze zdalnym (przez scp lub podobne). Jak mogę to osiągnąć?

+0

Cóż, pozwólmy wykonać polecenie 'scp'. –

Odpowiedz

1

make może pracować z określonym prefiksem podczas instalacji:

make prefix=$dest/usr install 

Rozwiązaniem problemu jest

  • zamontować system plików na komputerze docelowym na komputerze kompilacji. Można to zrobić poprzez NFS (trwałe) lub za pośrednictwem sshfs (łatwiej),
  • zestaw $ dest do montowania i uruchom komendę nad
+0

Prefiks nie wydaje się nic. DESTDIR działa (jak w drugiej odpowiedzi). Jednak montaż jest sposobem, aby wszystko działało od razu (a serwer może być zdalny za pomocą mocowania SSH dla komputerów z sieci lokalnej.) –

5

często może zrobić

make install DESTDIR=/tmp/mydest/ 

następnie archiwum że katalog docelowy

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

skopiuj to archiwum do odległego miejsca

scp /tmp/mydest.tgz remote:tmp/ 

wreszcie rozpakować archiwum w zdalnym i skopiować go na odpowiednim miejscu

+0

Właściwie chciałbym zapobiec wszystkim tym pośrednim etapom. Sądzę, że cmake używa polecenia copy (cp) do kopiowania plików. Tam MUSISZ w jakiś sposób być sposobem, żeby cmake użył scp zamiast ... – Danoo

+0

DESTDIR pracował z Makefile cmake. Dokładnie to, czego potrzebowałem. –

+0

Często źródłem jest plik o nazwie "README". Treść tego pliku może dać wskazówkę. Na przykład pcre-8.39 sugeruje użycie 'make dist' i/lub' make distcheck' do tworzenia archiwum tar. –

1

Korzystanie cmake 2.8.14, polecenie „add_custom_command” w CMakeLists.txt, może być stosowany również:

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

Zaleta: dzwonisz tylko, gdy cel zostanie odbudowany.