Installer des fichiers supplémentaires avec CMake
Je tente pour la fourniture de certains fichiers "sources" avec certains exécutables. Je me demandais si il y avait un moyen pour copier ces fichiers source vers le répertoire de construction (à Partir du répertoire source), puis pour le répertoire d'installation utilisation de CMake.
Mon plus spécifique, l'objectif ici est d'inclure OpenCL noyaux que j'ai à écrire dans leur propre *.cl fichiers.
Exemple:
mkdir build
cd build
cmake ..
make
Maintenant mon répertoire un fichier exécutable (standard CMake) et some_opencl_kernel.cl
que j'ouvre dans mon exécutable.
OriginalL'auteur Constantin | 2013-03-29
Vous devez vous connecter pour publier un commentaire.
Vous pouvez copier le fichier sur votre arbre de construction à l'aide de
add_custom_command
en ajoutant quelque chose comme ce qui suit:Ce qui ajoute un post-créer un événement à votre cible (je l'ai appelé il
MyExe
) qui copie le fichiersrc/some_opencl_kernel.cl
dans le même répertoire dans votre construction de l'arborescence de votre exécutable.Il existe plusieurs autres façons de copier un fichier dans l'arbre de construction, mais je l'aime car il utilise le "générateur d'expression"
$<TARGET_FILE_DIR:MyExe>
pour identifier l'emplacement de l'exécutable du répertoire dans l'arbre de construction. Cela peut varier en fonction par exemple de construire de type ou de la plate-forme, de sorte que le générateur d'expression est la plus fiable, la croix-plate-forme de façon de spécifier un emplacement de ce que je ressens.Comme pour l'installation, vous pouvez simplement utiliser le
installer(FICHIERS ...)
de commande. En supposant que votre exécutable que vous avez quelque chose comme:vous pouvez juste ajouter:
qui va l'installer à
${CMAKE_INSTALL_PREFIX}/bin/some_opencl_kernel.cl
à côté de l'exécutable.configure_file
avec leCOPYONLY
?Qui travaille trop et est la meilleure option si vous n'êtes pas la copie de la construction dir où l'exe/libs sont mis, ou si dir est fixe. Par exemple, MSVC ajoute un "Debug" dir de la
RUNTIME_OUTPUT_DIRECTORY
pour les versions de Débogage. Si vous n'êtes jamais allez être en utilisant un multi-configuration du générateur, c'est peut-être pas un problème pour vous, etconfigure_file
serait une option plus simple.OriginalL'auteur Fraser
Si vous voulez une copie du dossier de l'arbre avec un certain type de fichiers:
Si vous souhaitez copier tous les fichiers dans des dossiers, il suffit de retirer le FILES_MATCHING modèles.
OriginalL'auteur vgonisanz