Est-il possible de faire en sorte que CMake rassemble toutes les bibliothèques de paquets utilisées lors de la compilation, récupère récursivement leurs bibliothèques requises, puis les place toutes dans un seul répertoire? Par exemple, si mon application nécessite gtk, elle récupèrerait glib et les librairies nécessaires libiconv, gettext et libffi.CMake déployer les bibliothèques requises
5
A
Répondre
2
Vous pouvez utiliser le module CMake GetPrerequesites
. Voir here pour plus d'informations
+0
J'avais utilisé la méthode ldd et i686-w64-mingw32-objdump, mais ce module rend la vie un peu plus facile et fonctionne sur toutes les plates-formes. Merci pour le tuyau. –
Questions connexes
- 1. cmake bibliothèques partagées
- 2. Bibliothèques tierces dans CMake
- 3. JUNG: quelles bibliothèques sont requises dépendances?
- 4. erreur dans la compilation, mais les bibliothèques requises sont mentionnées
- 5. Ajouter les bibliothèques requises pour construire à partir de CDT
- 6. cmake - Recherche de bibliothèques non compilées
- 7. Définition de dépendances entre bibliothèques (cmake)
- 8. CMake - combiner plusieurs bibliothèques en un seul
- 9. cmake ne trouve pas de bibliothèques boost
- 10. Comment exporter des bibliothèques avec des composants dans CMAKE?
- 11. Liaison de bibliothèques MySQL dans CMake
- 12. Lier les versions statiques des bibliothèques Boost en utilisant CMake
- 13. Dans CMake, spécifiez tous les exécutables target_link_libraries certaines bibliothèques
- 14. Compilez les autres bibliothèques externes (sans CMakeLists.txt) avec CMake
- 15. Comment inclure les bibliothèques OpenCV dans CMake Makefile
- 16. Cmake OpenCV Impossible de spécifier les bibliothèques de liens
- 17. Comment ajouter des bibliothèques Windows dans CMake?
- 18. Liaison de bibliothèques statiques avec C++/cmake
- 19. Conditions requises pour ajouter des bibliothèques en tant que dépendances
- 20. Comment faites-vous pour que cpack n'ajoute pas les bibliothèques requises à un RPM?
- 21. CMake: déterminer quelles bibliothèques est une cible binaire lié contre
- 22. JMF comment trouver les DLL requises
- 23. lien CMake aux bibliothèques partagées sans utiliser le chemin complet
- 24. Empêcher CMake de trouver des bibliothèques installées à la place des bibliothèques "locales"
- 25. Cmake sur mac os x, bibliothèques de liens avec fullpath
- 26. Je ne peux pas installer le paquet python, bien que les bibliothèques requises existent
- 27. Quoi/où sont les bibliothèques requises pour JSF (en particulier javax.faces stuff)
- 28. Ruby ne peut pas trouver les bibliothèques requises même si gem est installé
- 29. Comment déployer une application qui dépend des bibliothèques dynamiques?
- 30. Besoin d'aide pour faire en sorte que Cmake trouve des bibliothèques tierces
Je ne pense pas que CMake a, mais vous pouvez écrire un script qui marche récursive dans toutes les dépendances en utilisant 'ldd' et copie découvert bibliothèques dans votre répertoire (et l'appeler de CMake) – szx
D'un point de vue général, CMake fournit les outils pour tester si les bibliothèques nécessaires sont disponibles pour la construction, collecter les emplacements de la bibliothèque et obtenir les informations cflags et ldflags nécessaires pour qu'une compilation multi-fichiers/répertoires puisse aboutir. Dans les fichiers CMakeLists.txt et autres, vous avez la liberté d'utiliser des commandes de type script pour déplacer les données vers les répertoires désirés afin de créer une mise en page plus efficace. –
Je ne sais pas pourquoi cela a été voté .. question intéressante. :) Ce que vous voulez ne fait pas partie de la fonctionnalité principale de CMake (AFAIK), mais vous pouvez écrire un script qui fait cela. Pourquoi ne pas simplement générer un paquet natif au lieu de stocker des dépendances? – wojciii