Boost logo

Boost-Build :

Subject: Re: [Boost-build] rule execution order
From: Rene Rivera (grafikrobot_at_[hidden])
Date: 2016-10-18 00:22:49


On Mon, Oct 17, 2016 at 11:17 PM, Rene Rivera <grafikrobot_at_[hidden]> wrote:

> On Mon, Oct 17, 2016 at 10:01 PM, Stefan Seefeld <stefan_at_[hidden]>
> wrote:
>
>> On 17.10.2016 22:53, Rene Rivera wrote:
>> > Almost missed this email. Sorry about the delayed response..
>>
>> No worries. Thanks for the explanation ! I'll make sure to add the
>> 'numpy' rule to the boostdoc and boostrelease targets.
>>
>
> In your case it would only be to the "boostrelease" target :-) IIUC you
> are building non-integrated docs.
>
>
>> But first I need to fix the numpy rule to correctly perform the build,
>> involving:
>>
>> 1) a copy of a set of files from the source tree to the build tree
>
> 2) the invocation of a command ('make' or 'sphinx-build') inside that
>> build tree
>> 3) a copy of a set of generated files from the build tree to the
>> destination (which is AFAIU in the source tree).
>>
>> and I still don't know how to do the copying imperatively, i.e. not as
>> part of the ("functional") evaluation of a dependency graph.
>> The "common" module has some support code to copy files around (though
>> the "copy" rule itself is empty !?). Is there no way to invoke some
>> "common.copy" with explicit file arguments (the result of a glob() call) ?
>>
>> (Among the many reasons I think using the "install" rule for this is
>> inappropriate is the fact that I don't know upfront what files to copy
>> back. Which files are generated in the process depends on the content
>> itself, which I'd rather not inspect to code the build logic.)
>>
>
> Not sure what your intent is so I may get this wrong. But from reading
> your Jamfile and the Makefile. Here's what I think you should do..
>
> path-constant here : . ;
> if [ os.name ] = NT {
> make numpydoc.txt : numpy/make.bat : @numpydoc
> [ conditional <depends> : [ glob-tree-ex numpy : *.rst ] ] ;
>

Just noticed this could be made more portable.. And fixing one mistake
(It's what I get for replying late at night)

> action numpydoc
> {
> rd /S /Q "$(>:D)/_build"
>
    cd "$(>:D)"
> call "$(>:D=)" && echo "done" > "$(<)"
>

Replace those commands with:

cd "$(>:D)"
call "$(>:D=)" clean && call "$(>:D=)" && echo "done" > "$(<)"

> }
> } else {
> make numpydoc.txt : numpy/Makefile : @numpydoc ;
> action numpydoc
> {
> rm -rf "$(>:D)/_build"
> cd "$(>:D)"
> make "$(>:D=)" && echo "done" > "$(<)"
>

And replace those with:

cd "$(>:D)"
make clean && make && echo "done" > "$(<)"

-- 
-- Rene Rivera
-- Grafik - Don't Assume Anything
-- Robot Dreams - http://robot-dreams.net
-- rrivera/acm.org (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail


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