← Back to team overview

kicad-developers team mailing list archive

Re: boost headers have been removed


On 05/31/2013 04:47 PM, Dick Hollenbeck wrote:
> In revision 4183 the boost headers have been removed from the repo.
> The CMakeLists.txt build environment now downloads those one time and installs them in the
> source tree upon first build.  

In revision 4190:

a) I made the download directory configurable,

b) but it defaults now to ".downloads-by-cmake" rather than downloads-by-cmake.

This period lets me skip this dir when grepping in tree.  If you want to avoid
re-downloading, then checkout version 4190 and manually rename your downloads-by-cmake
directory to .downloads-by-cmake immediately before your first build, and the build will
skip the download step.  Otherwise you will end up with both directories.

Sorry, but I think we've got this bridge crossed now and the disruptions are behind us.
The configure-ability of the directory also brings the benefit of putting it in some out
of tree global place.


> Subsequent builds will work as before, that is after boost
> is downloaded, un-tarred, patched, and copied to include/boost/*.
> (The PPA engine will however have to download them each time I suppose since it starts
> with a pristine bzr checkout each time.)
> ----< Revision Summary >--------------------------------------------
> This revision makes include/boost/* files into an "external project" according to CMake's
> ExternalProject_Add() function. The main advantages to this strategy are:
> 1) it is easier to track the totality of all patches made to the particular version of
> boost in use.
> 2) The procedure for the download and patching is extremely well documented and
> reproducable, unlike now, so therefore *easier to upgrade to new boost*.
> 3) You get the full set of boost headers.
> 4) The KiCad repo is smaller.
> The mechanism uses a new directory in the source tree called downloads-by-cmake to hold
> the boost*.tar.bz2 file. This download happens only one time, ever. Then the tar file is
> expanded, and it is put into a scratch bazaar repo so that changes can be tracked. Then it
> is patched. Then a portion of the patched boost, namely the header portion, is copied into
> the KiCad source tree at include/boost just as now. So the end result is the same by the
> time a build is undertaken.
> The scratch repo remains in downloads-by-cmake, so that patches can be re-generated from
> there at any time in the future for the ExternalProject_Add() mechanism. You can delete
> the directory downloads-by-cmake to get a fresh start at any time.

Follow ups