I gave it my "best guess" CMake support, which is untested and probably
broken. Marcus, I don't suppose you'd be willing to have a look, would you?
--
Eric Niebler
BoostPro Computing
http://www.boostpro.com
Guys, I just found out that someone has been maintaining CMake support
for unmodularized Boost at
http://gitorious.org/~denisarnaud/boost/denisarnauds-zeuners-boost-cmake
This is what RedHat is now using to build and distribute their RPMs.
We should take a look at this; it may be possible to simply port it to
modularized boost. Someone should probably get in touch with the guy
and ask him for details about what he's been doing.
--
Dave Abrahams
BoostPro Computing
http://www.boostpro.com
David,
I know Denis. He is one of the fellow supporting my and others' efforts
around SOCI projcet (http://soci.sf.net). Denis is a C++ and Boost user
and major maintainer of RPM packages for SOCI and other software
I'm not sure if this copy at gitorious.org is still maintained.
Here is Denis' account at github with boost-cmake repo:
https://github.com/denisarnaud
Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net
Charter Member of OSGeo, http://osgeo.org
Member of ACCU, http://accu.org
It seems to be getting updated, FWIW.
> Here is Denis' account at github with boost-cmake repo:
>
> https://github.com/denisarnaud
Thanks! Do you think you could convince Denis to make a post here,
describing what he's been doing?
Thanks,
Good thinking, Eric!
David, Eric,
It surely does not hurt and I'll ask.
Cheers,
Denis,
Thank you very much for showing up here in person.
Regards,
Wonderful!
> In short, the easiest way would be to apply a CMake-ify patch (e.g.,
> https://github.com/denisarnaud/boost-svn/blob/master/cmakeify_boost_1440.patch)
Wow, that is one big-*ssed patch! Could you give a (very) brief
summary of what it does?
> to the Boost pristine source code (preferably, from the Subversion
> release branch), and add Eric's work (extension to the new ICL
> library).
I don't think that's really been done yet. Eric has mostly been doing
modularization, i.e., maintaining a script to split Boost up into
separate Git repos for each library.
> Some details:
> --------------------
> The Gitorious replication (http://gitorious.org/boost/svn) of the
> Boost Subversion repository (http://svn.boost.org/svn/boost) seems no
> longer maintained (the last update occurred the 15th September,
> 2010).
See http://github.com/ryppl/boost-svn, which is updated regularly from
SVN.
> However, just having a look at http://gitorious.org/boost#more and
> http://gitorious.org/+boost-hackers apparently indicates that you guys
> are the administrators of that Gitorious clone and of the associated
> CMake-ified Boost project...
> From my understanding, Troy D. Straszheim (http://gitorious.org/
> ~straszheim) has/had some Shell scripts, somewhere on a server, in
> order to keep the Gitorious clone in sync with the Boost Subversion
> repository. So, apparently, those scripts do no longer run.
I could of course easily add sync from the GitHub clone, if you want
the gitorious site for something. Now that we have the one on
GitHub, though, I'm inclined to dismantle the one at Gitorious.
> Last year, Isidor Zeuner (http://gitorious.org/~zeuner) took the lead
> on the Boost-CMake Gitorious repository from Troy, as Troy was too
> busy to maintain it himself.
Wow, I really wish Troy had told me that (or, if he did, I forgot --
always a possibility)!
> (Isidor made a branch for the Boost release 1.44.0
> (http://gitorious.org/~zeuner/boost/zeuners-boost-cmake/
> commits/1.44.0), based on the previous branches from Troy. So, I did
> a pre-release of the Fedora/RedHat package of Boost-1.44.0-RC
> (https:// bugzilla.redhat.com/show_bug.cgi?id=607615#c17), based on
> Isidor's (CMake-)1.44.0 branch.
>
> But there were some strange bugs, mainly due to discrepancies between
> the (non-CMake-related) Boost source of both repositories (pristine
> Subversion and Gitorious CMake). After a closer look, I noticed that
> both repositories had slightly diverged, and decided to build a new
> Boost-CMake repository from scratch, rebased from the Boost pristine
> Subversion one. I "just" extracted the CMake-related files from Isidor/
> Troy's branch (I still have the Shell script I used for that, if
> anyone is interested), and applied the corresponding (CMake-ify) patch
> (https://github.com/denisarnaud/boost-svn/blob/master/
> cmakeify_boost_1440.patch) to the pristine Boost source code. That was
> the way I then released the Fedora/RedHat package (https://
> bugzilla.redhat.com/show_bug.cgi?id=607615#c18).
It seems like we could do this with a branch in Git, by simply merging
into it from the official svn release branch(?)
Seconded!
>> In short, the easiest way would be to apply a CMake-ify patch (e.g.,
>> https://github.com/denisarnaud/boost-svn/blob/master/cmakeify_boost_1440.patch)
>
> Wow, that is one big-*ssed patch! Could you give a (very) brief
> summary of what it does?
>
>> to the Boost pristine source code (preferably, from the Subversion
>> release branch), and add Eric's work (extension to the new ICL
>> library).
>
> I don't think that's really been done yet. Eric has mostly been doing
> modularization, i.e., maintaining a script to split Boost up into
> separate Git repos for each library.
I did add a module for ICL and gave it CMake files, but the CMake
support on modularized boost is so broken right now, I can't test it,
and I don't even know where to start. I've filed bugs and Marcus has
promised to look as time allows.
I doubt the patch would Just Work on a modularized boost. But it might
not be a bad starting point. Just throw out the broken modularized-CMake
stuff and start over. I suspect that's beyond my current CMake
abilities, though.
Denis, is this a task you'd be willing to take on? I can show you how
we've split up boost into modules. The rest might not be that hard.
Your last sentence makes me think that I didn't make it clear what the
difficulty is. Certainly, applying this patch to non-modularized boost
and adding support for ICL should be simple. The hard part is then
applying these changes to modularized boost.
Modularized boost is boost carved up so that each library, each tool,
and even major parts of cmake build support itself, lives in a separate,
self-contained git repository. "Boost" is a super-module that refers to
all these others via the git submodule mechanism. In order to pull boost
apart like this, we've had to change the directory layout. In addition,
since there is no longer a unified <boost/...> header directory, we
added a build step called "genheaders" that makes a unified header
directory by generating forwarding headers.
To make the non-modularized cmake support work for modularized boost,
you'd need to fix up the paths in all the cmakefiles, add the
"genheaders" target, and move any generally useful cmake utilities into
a separate boost-cmake module. And maybe some other stuff I'm not aware
of. That's the project started (but not quite finished) by Troy.