← Back to team overview

kicad-developers team mailing list archive

Re: SVN revs greater than 1753 require bootst 1.36 or


Brian Sidebotham wrote:
> 2009/5/9 Wayne Stambaugh <stambaughw@...>:
>> hvontres@... wrote:
>>> Svn rev 1753 introduced the use of BOOST_REVERSE_FOREACH in cvframe.cpp Unfortunately this does not build on my Ubuntu 8.04 machine which is still stuck with boost 1.34. It looks like the minimum version of boost is now 1.36. This should either be fixed or documented someplace.
>> I knew this would eventually be an issue. It appears that I will be one
>> who has to raise the question. What should be the minimum version of
>> Boost that Kicad supports? I am using 1.36 on all of my machines and
>> the current release version is 1.39. I will remove BOOST_FOREACH and
>> BOOST_REVERSE_FOREACH and fall back to ptr_vector::interator and
>> ptr_vector::reverse_iterator if support for Boost versions less then
>> 1.36 required. I guess switching from wxList to boost::ptr_vector was
>> not as easy as I had expected. Ah, no good deed goes unpunished ;)
>> I will be without email for the next few days due to travel so I will
>> not be able to commit any fixes until Tuesday at the earliest.
>> Wayne
> I just updated boost on my dev PC. I don't think it is unreasonable to
> require developers to have certain minimum versions of the libraries
> KiCad rely's on, if improving the codebase means requiring a more
> recent version, then the new version should just be noted as required.
> At the moment COMPILING.TXT mentions 1.34 as the minimum, I would say
> this just needs changing to 1.36. At the moment 1.39 is current, so it
> is not like the 1.34 requirement is up with the times.


I missed the Boost version in COMPILING.TXT. Obviously, I would prefer
to bump the Boost version 1.36. Not just because I don't want to change
the code to use vector iterators, but because BOOST_FOREACH makes for
much cleaner code. I stumbled upon <boost/foreach.hpp> by accident when
I was looking at the documentation for ptr_vector. The BOOST_FOREACH
macro hides the vector iterator for() loop. If you look at the code
sample for BOOST_FOREACH, you can see how much cleaner the iterator
block is compared to using the typical vector iterator in a for loop.

If everyone is OK with the version bump, I will see if the cmake
FindBoost macro can be used to set a minimum version of the Boost library.


> Best Regards,
> Brian.


Follow ups