← Back to team overview

kicad-developers team mailing list archive

Re: Boost building as an option

 

On 1/6/2014 12:00 PM, Maciej Sumiński wrote:
> I can fully understand that it is much easier for many users not to deal
> with building boost library, but on the other hand - there are many
> others who do not need a separate copy of boost just for KiCad.
> 
> As far as I know, there are 3 main reasons to keep boost in KiCad
> (https://lists.launchpad.net/kicad-developers/msg11692.html):
> Ad 1) I guess the patch that fixes the geometry problem is
> patches/boost_minkowski.patch. But inside there are only two lines
> commented out and in fact they seem to be variables that are not even
> used anywhere. How does that influence the function output? Or is not it
> already solved by switching optimization options (already done in the
> main CMake script)?
> Ad 2&3) For those people included boost can make life simpler.
> 
> So why not give a choice to build another copy or use the library
> available in system? I came to the conclusion after having 8 different
> branches, every of them containing compiled boost library. And it seems
> that KiCad builds and works just as well using the boost library
> included in my system.
> 
> The attached patch:
> - Adds a CMake option KICAD_BUILD_BOOST that enables building boost. If
> you think that boost should be downloaded and built by default (I guess
> that eg. KiCad-WinBuilder could be influenced by that), I can change it
> to KICAD_SKIP_BOOST and satisfies me as well.
> Besides that, boost can downloaded and built when an appropriate version
> is not available in system.
> 
> - Removes all context related files (common/system/*), as they are
> anyway contained in boost and no longer necessary.
> 
> - Removes the last traces of KICAD_STABLE_VERSION and
> KICAD_TESTING_VERSION from bundled documentation.
> 
> I look forward to your opinions. I tested it with boost 1.54.0-3 (that
> is the reason why I put such version as required in CMakeLists.txt) and
> gcc 4.8.2.
> 
> Regards,
> Orson

Orson,

I prefer building Boost myself but a little historical perspective is
needed to understand why we opted to download and build Boost.  Long
before the geometry library issues were the Windows build issues.  We
(Dick, JP, and myself) spent a considerable amount of time helping
Windows developers with Boost build issues.  There were also a lot of
KiCad build bugs related to which version of Boost was installed on on
Linux as well.  Newer versions of Boost would break builds and the CMake
FindBoost() macro only tests for a minimum version not a specific
version.  Finally the decision was made to use CMake to download and
build a specific version of Boost for the sanity of the lead developers.
 This way we had absolute control over the Boost version and then later
the patches to fix the geometry library bug.  If memory serves, the GCC
optimization fix was for a different bug than the geometry patch.  It
finally became a choice of the lesser of two evils.  I'm not opposed to
this change but it should come the a stern warning that if you choose
build KiCad using the installed version of Boost on your system and it
breaks *you* get to keep both pieces and not to expect a lot of help
from the lead developers.

Wayne



Follow ups

References