From 3aa9f89dbb88d957a662effdbc284c95aef1a8a9 Mon Sep 17 00:00:00 2001 From: Joshua A Clayton Date: Thu, 19 Feb 2015 00:01:15 -0800 Subject: [PATCH] CPackRPM: Support rpm architecture in components CPACK_RPM__PACKAGE_ARCHITECTURE variable allows the same project to support packages of different architectures including noarch, native and foreign architectures. --- Modules/CPackRPM.cmake | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake index 932e17412..6ce18bfc2 100644 --- a/Modules/CPackRPM.cmake +++ b/Modules/CPackRPM.cmake @@ -51,6 +51,7 @@ # * Default : CPACK_PACKAGE_VERSION # # .. variable:: CPACK_RPM_PACKAGE_ARCHITECTURE +# CPACK_RPM__PACKAGE_ARCHITECTURE # # The RPM package architecture. # @@ -631,6 +632,16 @@ else() endif() set(_CPACK_RPM_PACKAGE_ARCHITECTURE ${CPACK_RPM_PACKAGE_ARCHITECTURE}) + +#prefer component architecture +if(CPACK_RPM_PACKAGE_COMPONENT) + if(CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_ARCHITECTURE) + set(_CPACK_RPM_PACKAGE_ARCHITECTURE ${CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_ARCHITECTURE}) + if(CPACK_RPM_PACKAGE_DEBUG) + message("CPackRPM:Debug: using component build arch = ${_CPACK_RPM_PACKAGE_ARCHITECTURE}") + endif() + endif() +endif() if(${_CPACK_RPM_PACKAGE_ARCHITECTURE} STREQUAL "noarch") set(TMP_RPM_BUILDARCH "Buildarch: ${_CPACK_RPM_PACKAGE_ARCHITECTURE}") else()