Subject: Re: [boost] Pre-build MSVC Boost binaries
From: Fredrik Orderud (forderud_at_[hidden])
Date: 2013-08-05 14:26:01


On Sat, Aug 3, 2013 at 3:52 AM, Tom Kent <lists_at_[hidden]> wrote:

> I originally was doing .7z releases, but I had people asking for an
> installer. For a long time I simply made a self-extracting 7z file to
> appease these people, but when I tried to make things more official I bit
> the bullet and made a full-fledged installer.
>
> I could enable the uninstaller functionality that is built in to inno
> setup, but I'm not a huge fan of uninstallers, especially for libraries. In
> our organization we just install new versions alongside the old versions,
> so there is never any removing of older ones. I'm open to change though.
>

I very much understand your reluctance for uninstallers. My goal was not to
argue in favor of that. Instead, I would personally prefer going back to
plain 7z archives.

> As soon as I can find time I'll get things set so that we can build against
> 2.7 for the next version. I'm not so wild about adding it to the name,
> since python is only a dependency for one of the libraries. Same with zlib
> and bzip (and MPI if we ever start including that). I think the way to go
> here would be to include a README_WIN_BINARY.txt at the top level that
> lists all the dependency versions (and VC versions too).
>

Understandable and fine for me. :-)

> I was trying to keep it similar to what someone would get if they ran
> b2 --build-type=complete stage
> my only change was to move the results up a level from the stage dir and to
> rename the lib directory to something with the visual c version and
> architecture that was used, so that they could all live side-by-side.
> (originally I only had it separated by architecture lib32 vs. lib64, since
> all the libraries have vc versions in their name).
> Every group I've worked with that has had DLLs before, only move them to a
> bin directory along with executables that required them to run. If we're
> just supplying DLLs without any executables (as the libraries are) that it
> doesn't seem like the should be going in a bin directory.
>

> > * Do you include debug symbols? (I couldn't find any PDBs)
>
> I'm on the road now and don't have a build in front of me to look at now. I
> just build whatever comes from
> b2 --build-type=complete stage
> If PDBs are part of that then they should be included.
>

The PDB-files are generated for shared libraries, but for some reason not
copied/installed to the target lib-folder. I've now sent an request to
boost-build regarding that (
http://listarchives.boost.org/boost-build/2013/08/26894.php). Until fixed, you can
copy them manually.

> > * Have you considered to move the boost headers into a "include"
> subfolder,
> > so that one can add boost headers to the include-directory search-path
> > without also adding everything else?
>
> No, I definitely do not want to re-arrange anything that comes from the
> source boost distribution. For a very long time I wasn't even including the
> source in the installers (everyone needed to install that separately). I
> had several people ask me to start including them, so I did, but I was very
> hesitant. The most important thing should be to keep this release
> completely, 100% compatible with people who just have the source
> distribution and build themselves.
>

Have you considered to replace "stage" with "install" in your b2 build
command? By doing that, an "official" boost binary distribution will be
generated within C:\boost (can probably be changed), with an
"include"-folder for headers and "lib"-folder for the libraries. I do
believe that this is a more standard folder layout, compared to skipping
the "include" folder as in your case.

Best,
Fredrik