2010-08-15 4 views
3

short - Est-il possible de construire un binaire externe/bibliothèque sur un projet avec CMake, quand le binaire/bibliothèque a seulement un makefile donné?Compilez les autres bibliothèques externes (sans CMakeLists.txt) avec CMake

Vous avez donc votre propre projet, un tas de CMakeLists.txt dans votre src-tree et cette bibliothèque externe avec ses fichiers sources. Vos sources dépendent de cette bibliothèque et certains binaires/bibliothèques veulent s'y lier. Comment compiler cette bibliothèque externe si elle a seulement un fichier projet makefile ou Visual Studio et aucun CMakeLists.txt donné? Est-il possible d'appeler configure/make de CMake? Ou exécuter une compilation par lots avec VS sous Windows? Ou autre chose?

Merci pour votre aide celui-ci ...

Répondre

16

On dirait que vous voulez projet externe de CMake. Je l'ai beaucoup travaillé lors du développement du système de construction Titan, et cela permet de gérer plusieurs générations de sources. Vous pouvez inclure ExternalProject, et quelque chose comme ce qui suit construiriez le projet:

ExternalProject_Add(Qt 
    DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR} 
    URL ${qt_file} 
    UPDATE_COMMAND "" 
    SOURCE_DIR ${qt_source} 
    BUILD_IN_SOURCE 1 
    CONFIGURE_COMMAND ${qt_configure} 
    BUILD_COMMAND ${qt_build} 
    INSTALL_COMMAND "${qt_install}" 
    )

Il y a un article sur les projets externes dans le October 2009 issue of the source aussi. En utilisant un projet externe, vous pouvez appeler toutes les commandes make disponibles sur le système hôte, nous construisons Qt en utilisant la commande configure fournie sur Windows, Mac et Linux.

+0

Merci qui m'a amené à la bonne chose;) – CipherCom

+0

Je suis heureux que cela a aidé. Il y a plusieurs projets open source utilisant ceci (tel que Titan) que vous pourriez regarder pour des exemples. –

Questions connexes