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 )
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.