[CMake] CPACK_COMPONENT_<compName>_DEPENDS doesn't work

Jeremy Fix Jeremy.Fix at Supelec.fr
Wed Nov 20 03:15:58 EST 2013


Hello,

I'm surprised CPACK_RPM_gui_PACKAGE_REQUIRES works , I don't find any 
use of CPACK_RPM_<compName>_REQUIRES in CPackRPM.cmake;

What I can suggest you for generating several packages with different 
dependencies is to generate the different packages in multiple steps. If 
we suppose you defined 2 components (in the INSTALL commands) called : 
binary and devel ,you can then generate the packages (whether deb or 
rpm) as follows:


SET(CPACK_INSTALL_CMAKE_PROJECTS 
"${CMAKE_BINARY_DIR};${CMAKE_PROJECT_NAME}; ${MYBUILDTYPE};/")

then for the dependencies:

IF(MYBUILDTYPE STREQUAL "binary")
SET(CPACK_RPM_PACKAGE_REQUIRES "gsl")
SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libgsl0-dev")
ELSE()
SET(CPACK_RPM_PACKAGE_REQUIRES "gsl-devel")
SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libgsl0-dev")
ENDIF()


Then the packages are generated with:

cmake -DMYBUILDTYPE="binary" && make package
cmake -DMYBUILDTYPE="devel" && make package



best;

Jeremy.



On 11/20/2013 03:51 AM, jeff at linuxwest.com wrote:
> Hello CMake group,
>
> I'm trying to do a component-based install that will produce multiple 
> packages, where one package depends on another. I am using cmake 
> version 2.8.12.1. Have multiple packages working well but the 
> dependencies have not been easy.
>
> The variable CPACK_COMPONENT_<compName>_DEPENDS, given by the command 
> `cpack --help-variable-list`, as far as I can tell, does nothing. 
> Surprisingly, what ended up doing the trick on an RPM-based system is:
>
> SET(CPACK_RPM_gui_PACKAGE_REQUIRES "my-lib >= 0.1.1")
>
> Why does this work? This is inconsistent with the documentation.
>
> The bigger problem, I'm trying to solve at the moment, is how to make 
> component dependencies work on Debian. I have tried every combination 
> of cpack variable + component name and nothing stops an install with a 
> message like, "Unable to install gui because it depends on my-lib" 
> (because my-lib doesn't exist so it should halt the installer).
>
> Does component-based install even work for Debian (actually, I'm on 
> ubuntu but whatever)? I saw about two references to it on the entire 
> Internet so a good resource is hard to find, currently. It would be 
> idea if I can use CPACK_COMPONENT_<compName>_DEPENDS for both deb and 
> rpm but as I said, it doesn't work.
>
>
> Thank you for any help/guidance.
>
> Jeff
>
>
>
>
>
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake


-- 
Jérémy Fix (PhD)
Assistant Professor

Supélec
2 rue Edouard Belin
57070 Metz, France

Tél: +33(0)387 76 47 79
Fax: +33(0)387764700
Email: Jeremy.Fix at Supelec.fr
Homepage : http://malis.metz.supelec.fr/~fix_jer

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20131120/9feb96d8/attachment-0001.htm>


More information about the CMake mailing list