CMake permet aussi de générer des fichiers pendant la précompilation.
Pour ce faire il faut utiliser la commande :
Plus précisément :
1
|
configure_file(config.h.cmake config.h)
|
Où :
- config.h.cmake est ce que l'on appelle le fichier squelette, c'est le fichier qui permettra de générer le fichier config.h
- config.h le fichier qui va être générer par CMake à l'aide du fichier config.h.cmake
Faisons un exemple.
Voici le fichier config.h.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// File : config.h
// Description : Configuration of @PROJECT_NAME@
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//---------------------------------------------------------------------------
// Name : SIMPLE_VERSION
// Usage: Version of @PROJECT_NAME@
//----------------------------------------------------------------------------
|
Toutes la variables entre @ vont être remplacée par les valeurs des variables définies dans le CMakeLists.txt qui appellera CONFIGURE_FILE.
Si nous avons ce fichier CMakeLists.txt :
1
2
3
4
5
6
7
8
9
|
set(PROJECT_NAME EXEMPLE)
set(SIMPLE_MAJOR 1)
set(SIMPLE_MINOR 8)
set(SIMPLE_PATCH 6)
set(SIMPLE_VERSION ${SIMPLE_MAJOR}.${SIMPLE_MINOR}.${SIMPLE_PATCH})
configure_file(config.h.cmake config.h)
|
Nous obtiendrons ce fichier config.h :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#ifndef CONFIG_H
#define CONFIG_H
#define SIMPLE_VERSION "1.8.6"
#endif // CONFIG_H
|
Bien sûr, vous n'êtes pas obligés de générer des fichier .h, vous pouvez générer n'importe quel fichier.
|