<HTML>
What an honor for me that you guys responded so quickly. Our group has done well to move to CMake. Sorry for taking such a long time to reply; I'm part of a big organization that can be slow to decide things.<BR>
<BR>
The way this is going, is to continue with one package rather than use a workaround, if we have some idea if/when CPACK_COMPONENT_<compName>_DEPENDS will be implemented. But, am I understanding correctly that CPACK_COMPONENT_<compName>_DEPENDS isn't expected to work? I see some CMake examples that use it so I'm confused why this works for some people.<BR>
<BR>
I guess my question now is, is there a plan to make the CPACK_COMPONENT_<compName>_DEPENDS mechanism work? At the risk of being asked to contribute :), is there any way to know when? My group can make a decision based on that info.<BR>
<BR>
Thank you greatly!<BR>
Jeff <BR>
<BR>
<turkey here><BR>
<BR>
<span style="font-weight: bold;">On Wed Nov 20 4:09 , Jeremy Fix <jeremy.fix@supelec.fr> sent:<BR>
<BR>
</jeremy.fix@supelec.fr></span><blockquote style="BORDER-LEFT: #F5F5F5 2px solid; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px">On 11/20/2013 09:52 AM, Eric Noulard wrote:<BR>
<span style="color: red;">> 2013/11/20 Jeremy Fix <<a href="javascript:top.opencompose('Jeremy.Fix@supelec.fr','','','')">Jeremy.Fix@supelec.fr</a>>:</span><BR>
<span style="color: red;">>> Hello,</span><BR>
<span style="color: red;">>></span><BR>
<span style="color: red;">>> I'm surprised CPACK_RPM_gui_PACKAGE_REQUIRES works , I don't find any use of</span><BR>
<span style="color: red;">>> CPACK_RPM_<compname>_REQUIRES in CPackRPM.cmake;</compname></span><BR>
<span style="color: red;">></span><BR>
<span style="color: red;">> Yes there is for all</span><BR>
<span style="color: red;">></span><BR>
<span style="color: red;">> URL REQUIRES SUGGESTS PROVIDES OBSOLETES PREFIX CONFLICTS AUTOPROV</span><BR>
<span style="color: red;">> AUTOREQ AUTOREQPROV</span><BR>
<span style="color: red;">></span><BR>
<span style="color: red;">> see lines 555 and following we check for component specific value first:</span><BR>
<span style="color: red;">></span><BR>
<span style="color: red;">> if(DEFINED CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_${_RPM_SPEC_HEADER})</span><BR>
<span style="color: red;">></span><BR>
<span style="color: red;">> then</span><BR>
<span style="color: red;">> else()</span><BR>
<span style="color: red;">> if(DEFINED CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER})</span><BR>
<span style="color: red;">></span><BR>
<span style="color: red;">> However we may have check the definition of</span><BR>
<span style="color: red;">> "CPACK_COMPONENT_<compname>_DEPENDS" first</compname></span><BR>
<span style="color: red;">> in order to fill-in CPACK_RPM_<compname>_REQUIRES.</compname></span><BR>
<span style="color: red;">> This is not done.</span><BR>
<span style="color: red;">></span><BR>
<span style="color: red;">> Moreover I'm not sure this could be easily factoired out since the</span><BR>
<span style="color: red;">> syntax for dependency specification</span><BR>
<span style="color: red;">> may well be package type specific (different name or syntax for DEB or</span><BR>
<span style="color: red;">> RPM for example).</span><BR>
<span style="color: red;">></span><BR>
<span style="color: red;">>> What I can suggest you for generating several packages with different</span><BR>
<span style="color: red;">>> dependencies is to generate the different packages in multiple steps. If we</span><BR>
<span style="color: red;">>> suppose you defined 2 components (in the INSTALL commands) called : binary</span><BR>
<span style="color: red;">>> and devel ,you can then generate the packages (whether deb or rpm) as</span><BR>
<span style="color: red;">>> follows:</span><BR>
<span style="color: red;">>></span><BR>
<span style="color: red;">>></span><BR>
<span style="color: red;">>> SET(CPACK_INSTALL_CMAKE_PROJECTS "${CMAKE_BINARY_DIR};${CMAKE_PROJECT_NAME};</span><BR>
<span style="color: red;">>> ${MYBUILDTYPE};/")</span><BR>
<span style="color: red;">>></span><BR>
<span style="color: red;">>> then for the dependencies:</span><BR>
<span style="color: red;">>></span><BR>
<span style="color: red;">>> IF(MYBUILDTYPE STREQUAL "binary")</span><BR>
<span style="color: red;">>> SET(CPACK_RPM_PACKAGE_REQUIRES "gsl")</span><BR>
<span style="color: red;">>> SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libgsl0-dev")</span><BR>
<span style="color: red;">>> ELSE()</span><BR>
<span style="color: red;">>> SET(CPACK_RPM_PACKAGE_REQUIRES "gsl-devel")</span><BR>
<span style="color: red;">>> SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libgsl0-dev")</span><BR>
<span style="color: red;">>> ENDIF()</span><BR>
<span style="color: red;">>></span><BR>
<span style="color: red;">>></span><BR>
<span style="color: red;">>> Then the packages are generated with:</span><BR>
<span style="color: red;">>></span><BR>
<span style="color: red;">>> cmake -DMYBUILDTYPE="binary" && make package</span><BR>
<span style="color: red;">>> cmake -DMYBUILDTYPE="devel" && make package</span><BR>
<span style="color: red;">></span><BR>
<span style="color: red;">> You should be able to do that with component packaging and a</span><BR>
<span style="color: red;">> CPACK_PROJECT_CONFIG_FILE.</span><BR>
<span style="color: red;">></span><BR>
<BR>
I'm not familiar with CPACK_PROJECT_CONFIG_FILE;<BR>
<BR>
I had issues with the package names generated with component packaging <BR>
as the component name is added at the end of the package name; I <BR>
prefered to generate the components in two steps to tweak the <BR>
CPACK_RPM_PACKAGE_NAME and I use some commands a bit more complicated <BR>
than the above;<BR>
<BR>
IF(MYBUILDTYPE STREQUAL "binary")<BR>
SET(CPACK_RPM_PACKAGE_NAME ${CMAKE_PROJECT_NAME})<BR>
SET(CPACK_DEBIAN_PACKAGE_NAME ${CMAKE_PROJECT_NAME})<BR>
SET(CPACK_PACKAGE_FILE_NAME <BR>
${CMAKE_PROJECT_NAME}-${PACKAGE_VERSION}-${CMAKE_SYSTEM_PROCESSOR})<BR>
SET(CPACK_INSTALL_CMAKE_PROJECTS <BR>
"${CMAKE_BINARY_DIR};${CMAKE_PROJECT_NAME};binary;/")<BR>
ELSEIF(MYBUILDTYPE STREQUAL "devel")<BR>
SET(CPACK_RPM_PACKAGE_NAME ${CMAKE_PROJECT_NAME}-devel)<BR>
SET(CPACK_DEBIAN_PACKAGE_NAME ${CMAKE_PROJECT_NAME}-devel)<BR>
SET(CPACK_PACKAGE_FILE_NAME <BR>
${CMAKE_PROJECT_NAME}-devel-${PACKAGE_VERSION}-${CMAKE_SYSTEM_PROCESSOR})<BR>
SET(CPACK_INSTALL_CMAKE_PROJECTS <BR>
"${CMAKE_BINARY_DIR};${CMAKE_PROJECT_NAME}-devel;devel;/")<BR>
ENDIF()<BR>
<BR>
<BR>
This is just to ensure consistency between the field "Name:" in the <BR>
autogenerated spec file is : pkg and pkg-devel ;<BR>
and the generated RPM (or deb) filenames: pkg-1.00-i686.rpm and <BR>
pkg-devel-1.00-i686.rpm<BR>
<BR>
<BR>
jeremy.<BR>
<BR>
<BR>
<BR>
--<BR>
<BR>
Powered by <a href="parse.pl?redirect=http://www.kitware.com" target="_blank">www.kitware.com</a><BR>
<BR>
Please keep messages on-topic and check the CMake FAQ at: <a href="parse.pl?redirect=http%3A%2F%2Fwww.cmake.org%2FWiki%2FCMake_FAQ" target="_blank"><span style="color: red;">http://www.cmake.org/Wiki/CMake_FAQ</span></a><BR>
<BR>
Kitware offers various services to support the CMake community. For more information on each offering, please visit:<BR>
<BR>
CMake Support: <a href="parse.pl?redirect=http%3A%2F%2Fcmake.org%2Fcmake%2Fhelp%2Fsupport.html" target="_blank"><span style="color: red;">http://cmake.org/cmake/help/support.html</span></a><BR>
CMake Consulting: <a href="parse.pl?redirect=http%3A%2F%2Fcmake.org%2Fcmake%2Fhelp%2Fconsulting.html" target="_blank"><span style="color: red;">http://cmake.org/cmake/help/consulting.html</span></a><BR>
CMake Training Courses: <a href="parse.pl?redirect=http%3A%2F%2Fcmake.org%2Fcmake%2Fhelp%2Ftraining.html" target="_blank"><span style="color: red;">http://cmake.org/cmake/help/training.html</span></a><BR>
<BR>
Visit other Kitware open-source projects at <a href="parse.pl?redirect=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html" target="_blank"><span style="color: red;">http://www.kitware.com/opensource/opensource.html</span></a><BR>
<BR>
Follow this link to subscribe/unsubscribe:<BR>
<a href="parse.pl?redirect=http%3A%2F%2Fwww.cmake.org%2Fmailman%2Flistinfo%2Fcmake" target="_blank"><span style="color: red;">http://www.cmake.org/mailman/listinfo/cmake</span></a><BR>
</blockquote></HTML>
<BR>