Integrating boost into project version control
I have an existing C++ project that uses a few 3rd party libraries. It's maintained in a Subversion repository and the libraries are imported into the repository using the Subversion "vendor branch" paradigm together with Subversion "externals". I want to add Boost to the project, and am looking for guidance from others who have a project in Subversion: Should I import Boost sources into my repo, rebuilding on each developer's system as part of the normal whole-project build, or should I install a binary distro of Boost on each developer's system? The former guarantees that the repo always contains the source used to build our binaries, but at the cost of longer build times to build Boost each time the project is built. I'm currently building with Visual Studio 2005 and 2008, and will eventually be cross-compiling for an embedded Linux system.
Kenneth, On our project system which is based on Subversion and SCons we have the whole Boost library source and the compiled binaries under version control. Boost isn't rebuilt as part of the SCons build pass, we have shell scripts (Linux, OSX) or batch files (Windows) that devs can invoke if they want or need to. This is a bit cumbersome on the initial checkout, but it does give the devs access to everything they need to compile the project. If a change in Boost compiler flags or defines is required then everyone gets the changes on their next checkout without having to rebuild it all themselves. I've also worked with other organisations that have the Boost source and platform binaries on a network share, and not part of the version control system. Damien Kenneth Porter wrote:
I have an existing C++ project that uses a few 3rd party libraries. It's maintained in a Subversion repository and the libraries are imported into the repository using the Subversion "vendor branch" paradigm together with Subversion "externals".
I want to add Boost to the project, and am looking for guidance from others who have a project in Subversion:
Should I import Boost sources into my repo, rebuilding on each developer's system as part of the normal whole-project build, or should I install a binary distro of Boost on each developer's system? The former guarantees that the repo always contains the source used to build our binaries, but at the cost of longer build times to build Boost each time the project is built.
I'm currently building with Visual Studio 2005 and 2008, and will eventually be cross-compiling for an embedded Linux system.
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
2009/3/24 Damien Hocking
I've also worked with other organisations that have the Boost source and platform binaries on a network share, and not part of the version control system.
Damien
Hi, This is the solution I also use. Matthieu -- Information System Engineer, Ph.D. Website: http://matthieu-brucher.developpez.com/ Blogs: http://matt.eifelle.com and http://blog.developpez.com/?blog=92 LinkedIn: http://www.linkedin.com/in/matthieubrucher
--On Tuesday, March 24, 2009 11:56 AM -0600 Damien Hocking
Boost isn't rebuilt as part of the SCons build pass, we have shell scripts (Linux, OSX) or batch files (Windows) that devs can invoke if they want or need to.
Sounds like a good approach.
I've also worked with other organisations that have the Boost source and platform binaries on a network share, and not part of the version control system.
Alas, this wouldn't work for me as is as it would require mobile developers (those working on an embedded system at the customer site) to have a local copy. I guess they could periodically sync with the file server, but at that point I might as well check the whole thing into version control, using your first suggestion. One thing I'm considering is NOT putting the upstream release in my repo, but rather checking out from the official repo (eg. via externals) and then having local scripts build that. What kinds of downsides are there to that?
Kenneth Porter wrote:
Should I import Boost sources into my repo, rebuilding on each developer's system as part of the normal whole-project build, or should I install a binary distro of Boost on each developer's system? The former guarantees that the repo always contains the source used to build our binaries, but at the cost of longer build times to build Boost each time the project is built.
I've done both and the best by far is that the repo contains the source code. This means that the developers build boost but the longer build times don't really matter except for the first build. The benefit of this is that it democratizes the process of adding a new boost library which may or may not be what you want. Previously, people would need to request a library added to the build. Now they can do it themselves by copy-and-wasting build scripts where necessary. It also makes it much easier to try out new configurations. FWIW, I also use SCons for pretty much everything. -- Sohail Somani http://uint32t.blogspot.com
participants (4)
-
Damien Hocking
-
Kenneth Porter
-
Matthieu Brucher
-
Sohail Somani