Thanks Eric<br><br><div class="gmail_quote">2011/12/2 Eric Noulard <span dir="ltr"><<a href="mailto:eric.noulard@gmail.com">eric.noulard@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
2011/12/2 David Cristian <<a href="mailto:auledoom@gmail.com">auledoom@gmail.com</a>>:<br>
<div class="im">> Thanks for your quick response!<br>
><br>
> I'll have all this things in consideration, specially wrong dependencies and<br>
> libs version.<br>
> I'll plan to test packages on vbox for others distros, my project isn't big<br>
> or complex (just a few dependencies), and I'll guess binary libs<br>
> compatibility isn't and issue between minor versions.<br>
<br>
</div>Most of the time cross-packaging (packaging one one distro for<br>
another) works for simple project.<br>
Binary lib-x.y dep is usually ok for 'y' until one distro does x=x+1.<br>
<br>
My opinion w.r.t. cross-packaging is that unless you don't want your<br>
user to have the source<br>
it's better to invest time in order to have a fully automatized<br>
package build procedure<br>
than trying to cross-package yourself.<br>
This way your users build their own package on their target system. </blockquote><div> </div><div>I'll
agree, and cmake actually does a very good job automating package
creation, even if isn't the same as creating a package using the
official guidelines provided on every distro, it's getting better and
closer on every release. <br>
I'm just learning cmake and i'm really impressed about it's potential,
like creating win32 app and nsis installer on debian without issues, no
need of rebooting or open an vmbox like i used to do :P <br>
I'm just
wanted to know how close you could go cross-compiling binaries for the
most common platforms and then create packages for most common distros
in just one step, even if it isn't optimal and knowing that it isn't the
way cmake it's intended to work.<br>
Happens it may help indie devs (like me) who may work on personal stuff
on it's reduced free time, to easy the distribution of every project
release. We have to consider the term 'user' here, there are more and
more casual user who uses linux distros because it's open philosophy and
don't have a clue about what a terminal console it is, I can't just
say ok just download the source, configure, build and install (said
WHAT?!??!) <br>
Cmake allows me now (thanks to ExternalProjectAdd) to download from git,
apply my patches, build for different systems and architectures and
create packages in just two steps. So most important, share my alpha
state work with most possible people and have much appreciated feedback
and bugs reports.. just like M$ does :P <br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="im">
> I'm using components and works ok with nsis as single package, but with<br>
> debian merge all components in one package,<br>
<br>
</div>This is the default backward compatible behavior.<br>
RPM, DEB and Archive generators (TGZ, ZIP, TBZ2, ...)<br>
are all component-aware but you have to tell them to do component<br>
packaging by setting<br>
<br>
CPACK_<GENNAME>_COMPONENT_INSTALL to ON<br>
<br>
i..e<br>
set(CPACK_DEB_COMPONENT_INSTALL ON) will tell CPackDEB to generate<br>
several deb packages<br>
depending on the components specification.<br></blockquote><div><br>I was setting CPACK_<i>DEBIAN</i>_COMPONENT_INSTALL.... ... .... fixed!<br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Unlike NSIS those generators do generate *several* files/packages so<br>
that you have to tell them<br>
how you want to gather components into package files.<br>
<br>
see the description here:<br>
<a href="http://www.cmake.org/Wiki/CMake:Component_Install_With_CPack#Controlling_Differents_Ways_of_packaging_components" target="_blank">http://www.cmake.org/Wiki/CMake:Component_Install_With_CPack#Controlling_Differents_Ways_of_packaging_components</a><br>
<br>
You can set those CPACK_xxxx specific variables either in your<br>
CMakeLists.txt or in a<br>
CPACK_PROJECT_CONFIG_FILE<br>
see:<br>
<a href="http://www.cmake.org/Wiki/CMake:CPackPackageGenerators#Overall_usage_.28common_to_all_generators.29" target="_blank">http://www.cmake.org/Wiki/CMake:CPackPackageGenerators#Overall_usage_.28common_to_all_generators.29</a><br>
</blockquote><div><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
CPack project config file may be necessary for Archive Generators which share<br>
the CPACK_ARCHIVE_COMPONENT_INSTALL variable.<br>
i.e. setting it to true will make *ALL* Archive generators produce<br>
component packages.<br>
<br>
If you want a monolithic for ZIP and component package for TGZ then you have<br>
to set CPACK_ARCHIVE_COMPONENT_INSTALL selectively (depending on the<br>
generator actual name)<br>
in a CPack project config file.<br></blockquote><div> </div><div> This must be relatively new, i don't remember to have read all this!! <br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">
> i read the links you mention about Component Installation,<br>
> the official documentation say CMAKE support<br>
> package per component creation everything excepts DEB,<br>
<br>
</div>where did you read that, what do you mean by "official documentation" ?<br>
If this is the Wiki page:<br>
<a href="http://www.cmake.org/Wiki/CMake:Component_Install_With_CPack#CPack_Generator_specific_behavior" target="_blank">http://www.cmake.org/Wiki/CMake:Component_Install_With_CPack#CPack_Generator_specific_behavior</a><br>
it is out-dated (for DEB) I'll update it.<br>
<div class="im">> but <a href="http://public.kitware.com/Bug/view.php?id=11655" target="_blank">http://public.kitware.com/Bug/view.php?id=11655</a> says otherwise,<br>
<br>
</div>This one was closed for 2.8.5.<br>
<div class="im"><br>
> i have the last version installed.<br>
<br>
</div>By last version you mean 2.8.6 ? </blockquote><div> </div><div>Nop, sorry my mistake, I have 2.8.5 on Ubuntu Oneiric; assuming 2.8.6 will come with the next ubuntu release. So i just build it from source.<br><br></div>
</div>Thanks again Eric for all your recomendations<br><br>-- <br>"Seamos Realistas y Hagamos lo Imposible"<br>