Comment faire pour inclure une autre CMakeLists.txt
Dire que nous avons un appel à la commande foo
dans CMakeLists.txt qui est dans le dossier /A
.
foo
est défini dans antother CMakeLists.txt qui est dans le dossier /B
.
Comment peut-on référence à /B/CMakeLists.txt
de l'intérieur /A/CMakeLists.txt
afin d'appeler foo
?
J'ai essayé de mettre des chemins de recherche pour /B/CMakeLists.txt
via:
CMAKE_INCLUDE_PATH
CMAKE_MODULE_PATH
CMAKE_SOURCE_DIR
mais aucun d'entre eux travaillaient.
CMake encore complaines Unknown CMake command "foo".
Vous devez vous connecter pour publier un commentaire.
Qui peut être fait avec
include
, voici un exemple simple:Contenu de A/CMakeLists.txt
Contenu de B/CMakeLists.txt
Maintenant, y compris une autre CMakeLists.txt sera également exécuter ce fichier, de sorte que vous pouvez éviter de le faire que si il y a des objectifs dans B/CMakeLists.txt
Si vous pouvez modifier votre code, il serait préférable de définir vos fonctions dans un "top niveau" CMakeLists.txt avant d'appeler
add_subdirectory
.Si ces fichiers ne contient définition de fonctions que vous ne devez pas appeler CMakeLists.txt mais some_adequate_name.cmake
Que vous pouvez inclure où vous avez besoin de ces fonctions à l'aide de définitions
include
.