$include_dir="/home/hyper-archives/boost-build/include"; include("$include_dir/msg-header.inc") ?>
From: Stefan Knorr (stefan.knorr_at_[hidden])
Date: 2007-08-30 16:57:15
Hi all,
I'm using boost-build now for a couple of years for compiling a rather
complex project with several executables, static-libs and DLL's/.so
M10 was very reliable to me, but as M11 is now out for more than a year,
I wanted to switch to the current version.
But I run into a problem with the generators, which up to now I couldn't
solve:
I added a custom handler for my own file-extension, which basically
calls an python script which generates from this file a c-file and on
windows a rc-file.
I get the following error-message:
----
Error: ambiguity found when searching for best transformation
Trying to produce type 'OBJ' from:
- { lttosal.ver.VER }
Generators that succeeded:
- rc.compile.resource
- gcc.compile.c
First generator produced:
- { rc%rc.compile.resource-lttosal_res.o.OBJ {
version-handler%version-handler.version-lttosal.rc.RC { lttosal.ver.VER
} } }
Second generator produced:
- { gcc%gcc.compile..c-lttosal_version.o.OBJ {
version-handler%version-handler.version-lttosal_version.c.C {
lttosal.ver.VER } } }
----
as I understands, it complains about creating at the end 2 object files.
I took a look at the bison.jam and midl.jam, which generates also
several files from one input file, but I couldn't figure out, what is
going wrong.
The version-handler, I use:
---
#
# this file needs to be imported into
# the project-root.jam file to be effective
#
import os ;
import type ;
# so that bjam will recognize files
# with the VER extension
type.register VER : ver ;
# this creates a generator "version"
# it will generate a c-file from a version file
import generators ;
if [ os.name ] = NT
{
generators.register-standard version-handler.version : VER :
C(%_version) RC ;
}
else
{
generators.register-standard version-handler.version : VER :
C(%_version) ;
}
# this rule means it will always be compiled
rule version ( target * : sources * : properties * )
{
ALWAYS $(target) ;
}
# here is the action the generator will take
# $(>) input file
# $(<) output file
actions version
{
python version-handler.py $(>) $(<)
}
---
Can somebody please help me with it?
Best regards,
Stefan