2017-10-12 6 views
0

Au moment où je construis un RPM appelé firstrpm en utilisant le fichier CMakeLists.txt suivant. J'ai étendu le fichier spec pour avoir un sous-paquet avec la directive %package, et maintenant je voudrais étendre les CMakeLists pour faire deux rpm (disons firstrpm et secondrpm). Comment puis-je l'étendre pour pouvoir faire aussi le deuxième RPM, avec un nom de paquet différent, avec une seule construction?Comment faire deux RPM différents avec une construction?

set(CPACK_PACKAGE_RELEASE_VERSION ${PROJECT_VERSION_RELEASE}) 
set(CPACK_PACKAGE_MINOR_VERSION ${PROJECT_VERSION_MINOR}) 
set(CPACK_PACKAGE_SERVICE_PACK ${PROJECT_VERSION_SERVICE_PACK}) 
set(CPACK_PACKAGE_BUILD ${PROJECT_VERSION_BUILD}) 
set(CPACK_SPEC_FILE_DIR ${CMAKE_CURRENT_BINARY_DIR})  
set(CPACK_GENERATOR "RPM") 
set(CPACK_PACKAGE_NAME "firstrpm") 
set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR}) 
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_RELEASE_VERSION}.${CPACK_PACKAGE_MINOR_VERSION}.${CPACK_PACKAGE_SERVICE_PACK}-${CPACK_PACKAGE_BUILD}.${CMAKE_SYSTEM_PROCESSOR}") 

configure_file("${CMAKE_CURRENT_SOURCE_DIR}/${CPACK_PACKAGE_NAME}.spec.in" "${CPACK_SPEC_FILE_DIR}/${CPACK_PACKAGE_NAME}.spec" @ONLY IMMEDIATE) 
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/${CPACK_PACKAGE_NAME}-devel.spec.in" "${CPACK_SPEC_FILE_DIR}/${CPACK_PACKAGE_NAME}-devel.spec" @ONLY IMMEDIATE) 
set(CPACK_RPM_USER_BINARY_SPECFILE "${CPACK_SPEC_FILE_DIR}/${CPACK_PACKAGE_NAME}.spec") 

set(CPACK_TEMPORARY_PACKAGE_FILE_NAME "${CMAKE_BINARY_DIR}/_CPack_Packages/Linux/RPM/RPMS/${CMAKE_SYSTEM_PROCESSOR}/${CPACK_PACKAGE_FILE_NAME}.rpm") 
include(CPack) 
+0

Copie possible de [Générer deux paquets différents en utilisant CPack dans cmake: Linux] (https://stackoverflow.com/questions/28671524/generate-two-different-package-using-cpack-in-cmake-linux) –

Répondre

0

deuxième paquet binaire d'un paquet source est appelée "subpackage". Vous ajoutez juste quelques lignes supplémentaires à votre fichier spec (ou spec.in). Voir:

http://ftp.rpm.org/max-rpm/s1-rpm-subpack-spec-file-changes.html

Et vous ne créez pas manuellement -devel subpackage. Il sera créé automatiquement sauf si vous spécifiez "BuildArch: noarch".

+0

J'ai déjà suivi ce tutoriel pour créer un sous-paquet et les deux RPM sont créés en faisant manuellement rpmbuild. (explication dans cette question plus claire que j'ai faite pour le même problème: https://stackoverflow.com/questions/46727419/how-to-build-subpackages-defined-in-spec-files-using-cpack). Je voudrais faire la même chose en utilisant CPACK, étant donné que le fichier CMake ci-dessus est celui utilisé avec un paquet. – ThanksBye