
Disclaimer: I didn't write this stuff and I've never run it. Larry Evans <cppljevans@cox-internet.com> writes:
On 06/10/2005 01:07 PM, David Abrahams wrote:
authors. What I need to do is change:
vectorX_c< T,C0 >
to:
vectorX_c< T,T(C0) >
for each X=1... [snip] In libs/mpl/preprocessed/ do
Larry Evans <cppljevans@cox-internet.com> writes: [snip] python preprocess.py And it should tell you everything you need to know.
Thanks David. This gave me: <----- cut here -----
Usage: preprocess.py <mode> <boost_root> [<source_file>]
Purpose: updates preprocessed version(s) of the header(s) in "boost\mpl\aux_\preprocessed" directory
Example: the following command will re-generate and update all 'apply.hpp' headers:
preprocess.py all f:\cvs\boost apply.cpp
----- cut here -----
However, despite what the subject line says, what I really need is some way to do what's describe in the part of my post quoted up above.
You mean you want to change some of the code that is generated by the preprocessor? You have to figure that out by finding the source file that generates it. I'm guessing boost/mpl/vector/aux_/numbered.hpp. Then you edit it. You can test your changes by compiling with -DBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -- MPL will then use your change directly. Then you can try the ideas below to generate new preprocessed headers.
The code in preprocess.py doesn't help much. It includes:
os.system( "preprocess %s %s %s %s" % ( boost_root, mode, file, file_path ) )
which, I assume, invokes the:
preprocess.cmd
in that directory. I'm assuming the extension, 'cmd' is some windows convention indicating an executable file since the above os.system call above didn't include the extension. Since I'm on linux, this wouldn't work, AFAICT. I did try:
<---- cut here ------
python preprocess.py msvc70 /home/evansl/prog_dev/boost-cvs/ro/boost apply.cpp sh: line 1: preprocess: command not found Traceback (most recent call last): File "preprocess.py", line 78, in ? , "boost\\mpl\\aux_\\preprocessed" File "preprocess.py", line 68, in main
---- cut here ------
I've also searched the pp.py file for clues by searching for 'template'; however, that wasn't much help either.
Why would you expect to find 'template?'
I'd appreciate any other suggestions for a linux user ;)
I would: change the script to write '#!/bin/sh\n' into the beginning of preprocess.cmd when not on Windows change the script to set the mode on "preprocess.cmd" to +x after writing it change the os.system call to say "preprocess.cmd" HTH, -- Dave Abrahams Boost Consulting www.boost-consulting.com