Boost logo

Boost-Build :

Subject: Re: [Boost-build] Output directories of Boost Build
From: Edward Diener (eldiener_at_[hidden])
Date: 2015-09-24 02:42:00


On 9/21/2015 11:06 AM, Vladimir Prus wrote:
> This would have to be fixed per each tool. While build-dir settings
> specify default behavior, it's generally impossible to prevent
> individual file from going to random places - after all, one can always
> escape to shell and do file copy there.

The build jamfile for the Boost inspect tool was created by you. It has
installs that use a '<location>../../../dist/bin'. I am not sure of the
jam syntax which would check that if 'build-dir' is specified that the
location should be 'build-dir/dist/bin' else it should be
'../../../bin.v2/dist/bin'. But that's the logic which should be used.

>
> - Volodya
>
>
> On Sun, Sep 20, 2015 at 5:34 PM Edward Diener <eldiener_at_[hidden]
> <mailto:eldiener_at_[hidden]>> wrote:
>
> On 9/20/2015 4:26 AM, Vladimir Prus wrote:
> > Edward,
> >
> > Suppose one has exactly that same use case as you - sources on shared
> > folder. But, its not only Boost, but also an app using Boost. If
> I build
> > that app and specify --build-dir then I want build products of
> app and
> > Boost to be separate - in part because there might be naming
> conflicts
> > otherwise and in part so that building another app using Boost do not
> > rebuild Boost from scratch. These considerations do not apply when
> > build-dir is specified in Jamroot - because there, it is relative to
> > source directory and therefore disambiguated naturally.
>
> OK, I understand the reasoning. I was able to get around the problem by
> moving my old 'BoostCppSource/bin.v2', when --build-dir was not being
> used, to under 'my_build_dir/boost', when '--build-dir=my_build_dir' is
> specified when invoking b2 as I do now.
>
> >
> > Regarding tools that override build dir - that is bad, I'd be
> happy to
> > help that fixed.
>
> That would be helpful. It would keep Boost Build output out of the git
> source tree when --build-dir is specified outside of the source tree, as
> I do when sharing source. Does this have to be fixed based on the
> individual tools that are hardcoding a 'dist' subdirectory beneath the
> source tree or can it be done in general in Boost Build by automatically
> using build-dir, whether specified or set in Jamroot ?
>
> >
> >
> > On Sun, Sep 20, 2015, 04:45 Edward Diener
> <eldiener_at_[hidden] <mailto:eldiener_at_[hidden]>
> > <mailto:eldiener_at_[hidden]
> <mailto:eldiener_at_[hidden]>>> wrote:
> >
> > On 9/19/2015 3:01 PM, Niklas Angare wrote:
> > > "Edward Diener" <eldiener_at_[hidden]
> <mailto:eldiener_at_[hidden]>
> > <mailto:eldiener_at_[hidden]
> <mailto:eldiener_at_[hidden]>>> wrote:
> > >> Finally I notice a 'dist' sub-directory off of my Boost
> C++ root
> > where
> > >> a few tools, boostdep and inspect, have built their
> executables in
> > >> './dist/bin'. Is this sub-directory relative to the
> --build-dir
> > setting ?
> > >
> > > Yeah, I find it disturbing that some parts of the build
> process
> > creates
> > > files among the source files.
> >
> > If this is being controlled by some option, like --build-dir,
> it does
> > not bother me. But if it is occurring in some hard-coded
> subdirectory
> > relative to the Boost C++ source then I think that this is bad.
> >
> > >
> > >> My goal is to move the Boost git repository to a common
> partition
> > >> shared by multiple Windows OSs ( Vista, 7, 8.1, 10 ),
> > >
> > > Does it matter if these build related files are shared
> between the
> > > operating systems?
> >
> > Yes ! Build files created when using one version of Windows
> are not
> > guaranteed to be correct or to execute on a different version of
> > Windows.
> >
> > I want all build files to be created local to the OS I am
> using. Source
> > files OTOH can be shared. That is the entire intention behind
> my OP.


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk