Est-il possible d'inclure le répertoire frère comme sous-répertoire dans cmake?
Quelque chose comme
A
CMakeLists.txt
B
CMakeLists.txt
et B inclut A comme sous-répertoire?
C'est possible, mais peut-être pas recommandé ...
Vous pouvez utiliser la forme à deux arguments de la commande add_subdirectory pour ajouter le répertoire de votre choix en tant que "sous" répertoire:
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../A ${CMAKE_CURRENT_BINARY_DIR}/A)
Le deuxième argument du formulaire à deux arguments spécifie où placer le répertoire binaire pour le sous-répertoire ajouté.
Vous devez juste faire attention à ce qu'il n'y ait pas aussi un autre sous-répertoire réel de B qui est également nommé "A" et qui est également add_subdirectory'd ... Parce que si vous le faites, alors ce serait une erreur, car CMake ne peut pas avoir deux répertoires source différents mappant dans le même répertoire de génération.
Malheureusement non.
Comme solution, je peux vous suggérer d'ajouter add_subdirectory (A) et add_subdirectory (B) au niveau supérieur et de définir les variables que vous souhaitez exporter depuis A avec PARENT_SCOPE. Cela permettrait à B/CMakeLists.txt d'accéder aux variables définies dans A/CMakeLists.txt