Modification de l'emplacement standard des fichiers CMake
J'ai un répertoire source avec un dossier appelé "fantôme-dir/" où j'ai mis tous les fichiers générés je n'ai pas besoin. J'ai envie de mettre tous les fichiers générés par CMake à l'intérieur de ce fantôme répertoire (avec d'autres généré et "laid" des fichiers).
Un mini exemple:
$ mkdir cmake-test
$ cd cmake-test
$ echo 'message("Hello World!")' > CMakeLists.txt
$ cmake . | grep "Hello"
Hello World!
$ tree
.
├── CMakeCache.txt
├── CMakeFiles
│ ├── CMakeCCompiler.cmake
│ ├── cmake.check_cache
│ ├── CMakeCXXCompiler.cmake
│ ├── CMakeDetermineCompilerABI_C.bin
│ ├── CMakeDetermineCompilerABI_CXX.bin
│ ├── CMakeDirectoryInformation.cmake
│ ├── CMakeOutput.log
│ ├── CMakeSystem.cmake
│ ├── CMakeTmp
│ ├── CompilerIdC
│ │ ├── a.out
│ │ └── CMakeCCompilerId.c
│ ├── CompilerIdCXX
│ │ ├── a.out
│ │ └── CMakeCXXCompilerId.cpp
│ ├── Makefile2
│ ├── Makefile.cmake
│ ├── progress.marks
│ └── TargetDirectories.txt
├── cmake_install.cmake
├── CMakeLists.txt
└── Makefile
4 directories, 20 files
Par défaut, tous les fichiers CMake (CMakeCache.txt, cmake_install.cmake, Makefile, CMakeFiles) sont écrits dans le répertoire de travail. Mais, je veux quelque chose comme ça:
$ mkdir cmake-test
$ cd cmake-test
$ mkdir phantom-dir
$ echo 'message("Hello World!")' > CMakeLists.txt
$ //editing CMakeLists.txt to set some cmake variables.
$ cmake . | grep "Hello"
Hello World!
$ tree
.
├── phantom-dir
│ ├── CMakeCache.txt
│ ├── CMakeFiles
│ │ ├── CMakeCCompiler.cmake
│ │ ├── cmake.check_cache
│ │ ├── CMakeCXXCompiler.cmake
│ │ ├── CMakeDetermineCompilerABI_C.bin
│ │ ├── CMakeDetermineCompilerABI_CXX.bin
│ │ ├── CMakeDirectoryInformation.cmake
│ │ ├── CMakeOutput.log
│ │ ├── CMakeSystem.cmake
│ │ ├── CMakeTmp
│ │ ├── CompilerIdC
│ │ │ ├── a.out
│ │ │ └── CMakeCCompilerId.c
│ │ ├── CompilerIdCXX
│ │ │ ├── a.out
│ │ │ └── CMakeCXXCompilerId.cpp
│ │ ├── Makefile2
│ │ ├── Makefile.cmake
│ │ ├── progress.marks
│ │ └── TargetDirectories.txt
│ ├── cmake_install.cmake
├── CMakeLists.txt
└── Makefile
4 directories, 20 files
Qui signifie: le Makefile dans le répertoire courant (pour faire de la, "cmake . && make"), mais le reste des fichiers générés à l'intérieur du "fantôme" de répertoire.
Je sais que je peux faire avec:
$ cd phantom-dir/
$ cmake ../
Mais c'est un peu fastidieux pour moi de le faire chaque fois que je veux re-compiler ou de remake de cmake, surtout en tenant compte que je suis en train de modifier beaucoup de fois mon CMakeLists.txt.
Les variables qui je dois le mettre dans le CMakeLists.txt fichier afin de le réaliser?
source d'informationauteur Peregring-lk
Vous devez vous connecter pour publier un commentaire.
Vous pourriez faire usage de sans-papiers CMake options
-H
et-B
pour éviter de laisser votre source dir.-H
spécifie le chemin d'accès à la principale CMakeLists.txt fichier, et-B
spécifie le chemin d'accès à votre convenance répertoire de construction.Noter que ce sont des sans-papiers et donc je suppose que pourrait modifier à tout moment les Kitware les gars se sentent comme.
Pour construire votre projet sans quitter votre source dir, vous pouvez faire usage de l' (officiel) option
--version
C'est une croix-plate-forme de manière à appeler votre choix de construire l'outil, et vous pouvez entrer ce que les drapeaux que vous voulez de cet outil. par exemple,