3 votes

cmake pour placer les fichiers intermédiaires dans un certain répertoire

Je suis assez novice en matière de cmake et je me demande comment je peux faire cela avec cmake. Je veux placer tous les fichiers intermédiaires (comme les fichiers .o) dans un certain répertoire (disons "build") et ensuite, une fois la construction terminée, je veux copier certains fichiers dont j'ai besoin (par exemple, les fichiers .exe, .dll comme le produit final) du répertoire build vers le répertoire "stage". comment puis-je spécifier le chemin vers ces deux répertoires (build et stage) ? Cmake vérifie également si le répertoire build/stage existe ou non. S'il n'existe pas, il créera les répertoires pour moi.

Toute aide sera appréciée.

2voto

arrowdodger Points 7611

Ce que vous demandez est le cas d'utilisation le plus fréquent de CMake.

Pour que l'ensemble du processus de construction se déroule dans un répertoire arbitraire, vous devez exécuter cmake /path/to/your/project à partir de ce répertoire (ou utiliser cmake-gui).

Votre répertoire source ne sera pas touché jusqu'à ce que vous disiez explicitement à CMake de sortir des fichiers à cet endroit.

Quant au point 2 :

Vous devez placer install() dans votre fichier CMakeLists.txt (voir la documentation sur le fichier install() ) et mettez CMAKE_INSTALL_PREFIX dans le répertoire où vous souhaitez que les fichiers soient copiés. Après cela, vous pouvez exécuter make install o cmake -P cmake_install.cmake de votre répertoire de construction pour installer ces fichiers.

1voto

tune2fs Points 3253

Je propose une autre approche.

  1. faire des constructions hors source voir ici afin que tous les éléments de construction se trouvent dans un dossier distinct.
  2. copier vos exécutables depuis votre répertoire de construction dans un dossier propre avec copie explicite voir ici

Au lieu de choisir l'étape 2, vous pouvez également fournir une routine d'installation dans laquelle les exécutables nécessaires sont installés dans un chemin donné. voir ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X