9
votes

CMAKE "Make Install" à la machine distante?

avec faire installer Je peux copier mes fichiers binaires, configure etcetera vers un dossier cible pour l'exécution.

Maintenant, j'ai la situation suivante: nous avons une configuration de la machine virtuelle en tant qu'hôte de construction et une machine de linux réelle différente comme une plate-forme ci cible .

Je voudrais avoir faire installer copier les fichiers directement dans un dossier de ma machine distante (via SCP ou similaire). Comment puis-je atteindre cela?


1 commentaires

Eh bien, laissez exécuter scp .


5 Réponses :


2
votes

faire peut fonctionner avec un préfixe spécifique lors de l'installation: xxx

une solution à votre problème est de

  • Montez le système de fichiers de la machine cible sur votre machine de construction. Cela peut être fait via NFS (persistant) ou via des SSHFS (plus facile),
  • SET $ DESTS AU MOUNTPOINT et exécutez la commande ci-dessus

1 commentaires

Le préfixe ne semble rien faire. Letdir travaille (comme dans l'autre réponse.) Cependant, le montage est la voie à suivre pour tout travailler à la fois (et le serveur peut être à distance à l'aide d'une monture SSH pour les ordinateurs réseau locaux.)



7
votes

Vous pouvez souvent faire

 scp /tmp/mydest.tgz remote:tmp/


3 commentaires

En fait, je voudrais empêcher toutes ces étapes intermédiaires. Je suppose que Clake utilise une commande copie (cp) pour copier des fichiers. Il faut en quelque sorte être un moyen de dire à la cmake d'utiliser SCP à la place ...


Souvent, la source est livrée avec un fichier nommé "README". Le contenu de ce fichier pourrait donner un indice. Par exemple, PCRE-8.39 suggère d'utiliser faire dist et / ou faire distcheck pour faire des builles.


@Basile StarynKevitch Pourquoi pas endommager directement à la place appropriée sans la copie?



2
votes

Utilisation de CUMAKE 2.8.14, commande "add_custom_command" dans les CmAkelists.txt, peut également être utilisée: xxx

avantage: appeler uniquement lorsque la cible est reconstruisant. < / p>


0 commentaires

0
votes

avec user Un ussurofile sur la machine distant et une clé SSH configuré de manière préprière: xxx

copie les fichiers binaires installés localement sur le télécommande uniquement lorsque l'installation est invoquée.


0 commentaires

1
votes

J'utilise cette solution:

install (CODE "execute_process(COMMAND scp -r -i /home/user/.ssh/id_rsa ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/. user@remote:/path/to/copy/)")


0 commentaires