web-dev-qa-db-fra.com

Comment amener CMake à utiliser le Makefile existant?

J'ai un projet existant (wvdial) qui a un makefile fonctionnel. J'essaie de l'intégrer dans notre processus de construction principal qui utilise CMake. Quelqu'un peut-il me conseiller sur la façon de procéder? J'ai fait une tentative ci-dessous basée sur certains des autres projets que nous construisons, mais le makefile n'est jamais appelé. Tout ce que je veux faire, c'est appeler le makefile pour wvdial et inclure le binaire dans le paquet .deb que nous construisons.

Merci, Sean

 cmake_minimum_required (VERSION 2.6) 
 
 SET (COMPONENT_NAME roots-vendor-wvdial) 
 
 SET (DEBIAN_PACKAGE_VERSION 1.6.1) 
 
 SET (WVDIAL_SOURCE_DIR $ {CMAKE_CURRENT_SOURCE_DIR}) 
 SET (WVDIAL_BINARY_DIR $ {CMAKE_CURRENT_BINARY_DIR}) 
 SET (WVDIAL_INSTALLED $ {. CENT_B. ADD_CUSTOM_TARGET (
 Wvdial TOUS 
 DÉPEND DE $ {WVDIAL_INSTALLED} 
) 
 
 SI ($ {ROOTS_TARGET_ARCHITECTURE} STREQUAL "armhf") 
 SET (TARGET_FLAG "--Host = arm-linux-gnueabihf") 
 ENDIF () 
 
 ADD_CUSTOM_COMMAND (
 WORKING_DIRECTORY $ {WVDIAL_BINARY_DIR} 
 SORTIE $ {WVDIAL_INSTALLED} 
 COMMANDE env CXXFLAGS = $ {ROOTS_COMPILER_FLAGS} ./configure $ {TARGET_FLAG} $ {ROOTS_Host_OPTION} 
 COMMANDE rendre 
 COMMENTAIRE "Construire un wvdial" 
 VERBATIM 
) 
 
 
 IN STALL (
 FICHIERS $ {CMAKE_CURRENT_BINARY_DIR}/wvdial 
 DESTINATION usr/local/bin 
 COMPOSANT $ {COMPONENT_NAME} 
 PERMISSIONS PROPRIÉTAIRE_EXÉCUTER PROPRIÉTAIRE_LIRE OWNER_WRITE GROUP_ECAD_EXAD_READ ____.]) 
 
 DEFINE_DEBIAN_PACKAGE (
 NOM $ {COMPONENT_NAME} 
 CONTROL_TEMPLATE $ {CMAKE_CURRENT_SOURCE_DIR}/debian/control 
 CHANGELOG_TEMPLATE $ {CMAKE_OUR_CURD /debian/changelog
) 
25
SeanLabs

Jetez un œil au module ExternalProject .

Cela ajoutera une cible factice à votre projet CMake qui est responsable de la construction de la dépendance. La commande est assez complexe et prend en charge beaucoup de choses dont vous n'aurez probablement pas besoin dans votre cas. Kitware (la société derrière CMake) a fait un Nice post appelé Building External Projects with CMake 2.8 il y a quelque temps en expliquant l'utilisation de base de cette commande.

26
ComicSansMS