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.
Brian,
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.
Wayne