cmake per posizionare i file intermedi in una determinata directory

Sono abbastanza nuovo da fare e mi chiedo come posso fare questo è cmake. Voglio mettere tutti i file intermedi (come i file .o) da inserire in una determinata directory (ad esempio “build”) e poi, una volta completata la creazione, voglio copiare alcuni file di cui ho bisogno (ad esempio, l’exe,. mi piace il prodotto finale) dalla directory di build alla directory “stage”. come posso specificare il percorso di queste due directory (build e stage)? Cmake controllerà anche se la directory build / stage esiste o meno. Se non esiste, creerà le directory per me.

Qualsiasi aiuto sarà apprezzato.

Quello che chiedi è il caso d’uso CMake più spesso.

Per far sì che l’intero processo di compilazione si verifichi nella directory arbitaria, devi eseguire cmake /path/to/your/project da quella directory (o usare cmake-gui).

La directory di origine non sarà toccata fino a quando non dirai esplicitamente a CMake di inviare alcuni file lì.

Per quanto riguarda il punto 2:

Dovresti inserire invocazioni install() nel tuo CMakeLists.txt (vedi documentazione su install() ) e impostare CMAKE_INSTALL_PREFIX nella directory in cui desideri copiare i file. Dopodiché puoi eseguire make install o cmake -P cmake_install.cmake dalla cmake -P cmake_install.cmake di compilazione per installare questi file.

Suggerirei un altro approccio.

  1. fai in modo che le build out-of-source vedano qui , in modo che tutta la roba di compilazione si trovi in ​​una propria cartella
  2. copia i tuoi eseguibili dalla tua cartella di compilazione in una propria cartella con copia esplicita vedi qui

Oppure, invece di scegliere il passo 2, puoi anche fornire una routine di installazione in cui sono installati gli eseguibili necessari in un percorso give. Vedere qui