How can I replace a pattern in a list of strings in boost build ?
In GNU make that could be done using substitution for changing file extension, or patsubst in general.
Here is an example using the rule "replace-list" from builtin module regex:
SWIG_SOURCES = [ glob *.i ] ;
import regex ;
SWIG_GENERATED_CPP_FILES = [ regex.replace-list $(SWIG_SOURCES) : \\.i : _wrap.cpp ] ;
Let's say the file example_file.i
is located in the directory, its name will be added to the list SWIG_SOURCES
by glob
and will become example_file_wrap.cpp
in the list SWIG_GENERATED_CPP_FILES
;
The \\
are used to mean that .
is a litteral dot, without them .
would match any character.
The $
matches the end of the string.
More information in the documentation of regex builtin