Re: Copying source file required by target

Steven Watanabe via Boost-build <[email protected]>
Newsgroups gmane.comp.lib.boost.build
Organization Providere Consulting, Inc.
Message-ID <[email protected]>
AMDG

On 07/26/2018 11:08 AM, Mateusz Loskot via Boost-build wrote:
> I'm trying to replicate this CMake'ism for BBv2
> 
> f(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/mwe.cpp)
>   configure_file(
>     ${CMAKE_CURRENT_SOURCE_DIR}/mwe.cpp.in
>     ${CMAKE_CURRENT_SOURCE_DIR}/mwe.cpp
>     COPYONLY)
> endif()
> 
> I'm trying to achieve that with the make rule and simple actions:
> 
> make mwe.cpp : mwe.cpp.in : @copy_mwe_if_not_exists ;
> actions copy_mwe_if_not_exists { cp $(>) $(<) }
> exe mwe : mwe.cpp :  ;
> 
> Basically, this works, but there is one major issue"
> - it creates source file in bin/mwe.cpp.
> How can I force it to create mwe.cpp in the same directory as mwe.cpp.in?
> 
> I've tried to hack it modifying target path using the variables
> expansion, but without luck.
> 

Since you want to put the file in a fixed place,
use <location>.

> I have also tried to follow the BBv2 generate example based on
> file-target and common.copy action:
> https://github.com/boostorg/build/tree/develop/example/generate
> But constructing a target seems like an overkill for my purpose.
> And, the rule (or common.copy) also creates file in `bin` directory.
> 
> 
> BTW, I am aware the `copy_mwe_if_not_exists` is incomplete regarding its name:
> - it will have to use cp or copy depending on OS

common.copy does this already.

> - it will have to check if file exists
> 

This is the normal behavior of all targets.
(If you don't want to check whether it's out-of-date,
you can mark the target as NOUPDATE.)

In Christ,
Steven Watanabe
_______________________________________________
Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.