You cannot do &quot;cmake-ish&quot; things in the CPACK_PROJECT_CONFIG_FILE.<br><br>Neither install commands nor set_target_properties calls do anything in this context.<br><br><br><br><div class="gmail_quote">On Tue, Feb 15, 2011 at 9:36 AM, Daryl N <span dir="ltr">&lt;<a href="mailto:darylhouse2004@yahoo.com">darylhouse2004@yahoo.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><div>Sorry, don&#39;t know how to reply inline with this editor.  Yes, cpack_config.cmake is my CPACK_PROJECT_CONFIG_FILE.  For rpath, here is what I have in the cpack config file:<br>
<br>if (${CPACK_GENERATOR} STREQUAL &quot;TGZ&quot;)<div class="im"><br>    set(CPACK_SET_DESTDIR OFF)<br>    set(CMAKE_INSTALL_RPATH &quot;.&quot;)<br></div>
    set_target_properties(npManager<br>
                              PROPERTIES INSTALL_RPATH &quot;.&quot;)<br>
elseif (${CPACK_GENERATOR} STREQUAL &quot;DEB&quot;)<br>    set(CPACK_SET_DESTDIR ON)<br>    set(CMAKE_INSTALL_RPATH &quot;/usr/local/&lt;some folder&gt;&quot;)<br>

    set_target_properties(npManager<br>
                          PROPERTIES INSTALL_RPATH &quot;/usr/local/&lt;some folder&gt;&quot;)<br>
endif ()<br><br></div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">CMAKE_INSTALL_RPATH was initially set to /user/local/&lt;some folder&gt; in my main CMakeLists.txt file and it stays that way in TGZ even with the sets above.  For the TGZ file I want to be able to unpack it and then just run it locally.  If I use the bin/lib folder structure in the TGZ, then I would need to set rpath to &quot;../lib&quot; for them to be found.  And then that would be part of the rpath for the DEB package too.  Sounds like 2 build cycles may be needed.<br>
<br>Daryl<b><span style="font-weight: bold;"><br><br>From:</span></b> Eric Noulard &lt;<a href="mailto:eric.noulard@gmail.com" target="_blank">eric.noulard@gmail.com</a>&gt;<br><div style="font-family: arial,helvetica,sans-serif; font-size: 13px;">
<font face="Tahoma" size="2"><b><span style="font-weight: bold;">To:</span></b> Daryl N &lt;<a href="mailto:darylhouse2004@yahoo.com" target="_blank">darylhouse2004@yahoo.com</a>&gt;<br><b><span style="font-weight: bold;">Cc:</span></b>
 <a href="mailto:cmake@cmake.org" target="_blank">cmake@cmake.org</a><br><b><span style="font-weight: bold;">Sent:</span></b> Tue, February 15, 2011 4:00:17 AM<br><b><span style="font-weight: bold;">Subject:</span></b> Re: [CMake] Setting target destination and rpath per generator<br>
</font><div><div></div><div class="h5"><br>
2011/2/15 Daryl N &lt;<a href="mailto:darylhouse2004@yahoo.com" target="_blank">darylhouse2004@yahoo.com</a>&gt;:<br>&gt; Hi,<br>&gt;<br>&gt; I have a question on the use of CPack.  I have CMake setup to generate<br>&gt; binaries and shared libraries.  Up until now I have only created a TGZ with<br>
&gt; rpath set to &quot;.&quot;.  This has worked nicely, but now I would like to create a<br>&gt; Debian package for proper installation.  I have added DEB to CPACK_GENERATOR<br>&gt; and I&#39;ve created my own cpack_config.cmake file.  My goal is:<br>
&gt;<br>&gt; 1. Run cmake/make package once and create the tar.gz file with all exe/libs<br>&gt; in the root folder of the tar.gz file with rpath set to &quot;.&quot;.<br>&gt; 2. Create new .deb package with exes in /usr/local/bin and libs in<br>
&gt; /usr/local/lib.  Alternatively, since files are private, all could be put in<br>&gt; /usr/local/&lt;some folder&gt;.<br>&gt;<br>&gt;
 I&#39;ve attempted this by creating my own cpack_config.cmake file to try to<br>&gt; override some settings per generator.  Some observations:<br>&gt;<br>&gt; 1. I&#39;ve been unable to set the install(&lt;target&gt; DESTINATION) path per<br>
&gt; generator in my cpack_config.cmake file.  Whatever the variable is set to<br>&gt; when the install(...) is processed in the CMakeLists.txt file is what is<br>&gt; used for all generators.  Just want to confirm changing this isn&#39;t an option<br>
&gt; per generator.<br>&gt;<br>&gt; The above has prevented me from having my install lines like:<br>&gt;     install(&lt;target&gt; DESTINATION ${BIN_PATH})<br>&gt;     install(&lt;target&gt; DESTINATION ${LIB_PATH})<br>
&gt; and then setting BIN_PATH to bin and LIB_PATH to lib for DEB, but setting<br>&gt; them to &quot;.&quot; for TGZ, since I can&#39;t change the variable in<br>&gt; .<br><br>I suppose cpack_config.cmake is your
 CPACK_PROJECT_CONFIG_FILE.<br>As far as I know you cannot change install rules on &quot;CPack generator basis&quot;.<br><br>install rules belongs to CMakeLists.txt and they are evaluated at CMake-time<br>(not CPack-time).<br>
<br>cpack_config.cmake is evaluated at CPack-time, i.e. when CPack runs.<br>You can do CPack-generator specific actions in this file.<br>(like setting CPACK_SET_DESTDIR OFF or ON or changing<br> CPACK_PACKAGING_INSTALL_PREFIX etc...)<br>
<br>I did not tried playing with rpath but may be you can<br><br>if(CPACK_GENERATOR MATCHES &quot;TGZ&quot;)<br>  set(CMAKE_INSTALL_RPATH &quot;.&quot;)<br>  set(CPACK_SET_DESTDIR  &quot;OFF&quot;)<br>endif(CPACK_GENERATOR MATCHES &quot;TGZ&quot;)<br>
<br>if(CPACK_GENERATOR MATCHES &quot;DEB&quot;)<br>  set(CPACK_PACKAGING_INSTALL_PREFIX &quot;/usr/local/&lt;somefolder&gt;&quot;)<br>endif(CPACK_GENERATOR MATCHES &quot;DEB&quot;)<br><br>&gt; 2. I would also like to set the rpath per generator.  So the targets in the<br>
&gt; TGZ only look in &quot;.&quot; while the
 DEB installed targets only look in<br>&gt; /usr/local/&lt;some folder&gt;.  But I haven&#39;t been able to update the rpath per<br>&gt; generator in cpack_config.cmake.  I&#39;ve tried both setting<br>&gt; CMAKE_INSTALL_RPATH and using set_target_properties(... PROPERTIES<br>
&gt; INSTALL_RPATH).  Again, I&#39;m assuming this can&#39;t be changed at CPack time.<br><br>I don&#39;t know whether if CMAKE_INSTALL_RPATH can be changed at CPack time<br>(as I suggested in my previous example) you&#39;ll have to try and<br>
may be verify in the CMake source code in order to check  when it is handled.<br>Whatever the current status,<br>I don&#39;t see why it couldn&#39;t be handled at CPack time<br>(but I may be missing something).<br><br>&gt;Do I need to run cpack<br>
&gt; separately changing the variables before hand?  I suppose that would mean 2<br>&gt; builds cycles also, once for each generator.<br><br>2 build cycles will definitely work.<br><br>However if you gives
 us more information on what&#39;s inside your<br>&quot;cpack_config.cmake&quot;<br>what works what does not work with it, may be we can see if it it can<br>be done in a single build.<br><br>I think the main issue is the fact that as far as I understand your<br>
need you want<br>to put all files (libs, exe) in a single folder for the TGZ and have<br>prefix+/lib, prefix+/bin<br>in the DEB case?<br><br>Changing the prefix is easy but adding (or removing) the extra /lib<br>and /bin I don&#39;t<br>
currently know how to do that. Why won&#39;t you keep the lib and bin<br>suffix in the TGZ case?<br><br><br>-- <br>Erk<br>Membre de l&#39;April - « promouvoir et défendre le logiciel libre » -<br><span><a href="http://www.april.org" target="_blank">http://www.april.org</a></span><br>
</div></div></div></div>
</div><br>







      </div><br>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br></blockquote></div><br>