Boost logo

Boost-Build :

From: Andrey Melnikov (melnikov_at_[hidden])
Date: 2005-08-02 14:28:22


Rene Rivera wrote:
> Andrey Melnikov wrote:
>
>>David Abrahams wrote:
>>
>>>John Torjo <john.lists_at_[hidden]> writes:
>>>
>>>>, or do I need to modify extra pieces of code?
>>>
>>>You mean, like, rewrite the Windows command shell? ;-)
>>
>>For what do we need to depend on command shell?
>>
>>Can we just call CreateProcess to run actions, and use cmd /c only when
>>we need to run .bat/.cmd files?
>
> How would one use CreateProcess to run multi-command actions? For example:
>
> actions archive bind RSP
> {
> $(RM) "$(<[1])"
> $(.LD) /lib /NOLOGO /out:"$(<[1])" @"$(RSP)" && $(RM) "$(RSP)"
> }

It's possible to run multi-command actions using CreateProcess() calls,
why not? Of course, not these multi-command actions because

> How would one use CreateProcess to run shell commands in actions? For
> example:
>
> actions archive bind RSP
> {
> if exist "$(<[1])" DEL "$(<[1])"
> $(.LD) /lib /NOLOGO /out:"$(<[1])" @"$(RSP)" && $(RM) "$(RSP)"
> }

The first line doesn't suffer from command line limitations. The second
line (or, more precicely, the last command, because $(.LD) itself is a
multiline string) but it doesn't require a shell. Actually it seems that
ALL commands which require long lines don't require a shell because they
aren't shell commands.

Andrey

 


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