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