CMake et de l'ordre dépendant de la liaison de bibliothèques partagées

J'ai quelques petits composants que je suis de construction des bibliothèques partagées pour mon application principale. Prenons un exemple de liba et libb. Chacun est construit à l'intérieur de leur propre sous-répertoire comme suit:

add_library(liba SHARED a.cpp)

Puis, dans le dossier racine du projet, j'ai besoin de lier ma principale de l'application à la fois.

include_directories(a)
include_directories(b)
add_executable(dummy dummy.cpp)
target_link_libraries(dummy a b)

CMake fonctionne très bien avec cela, et mon application compile mais ne parvient pas à lier. Le problème, c'est que le b fait référence à un. Si je l'approvisionnement de l'ordre des bibliothèques, tout en les reliant comme

target_link_libraries(dummy b a)

Le programme compile et liens fine

Quand ce genre de système démarre impliquant plus complexes inter dépendance des bibliothèques, il commence à être impossible, même si les dépendances sont acycliques. Comment puis-je gérer l'étape de liaison ici? Est-il un truc pour la commande de bibliothèques de lien CMake?

InformationsquelleAutor dusktreader | 2012-08-30