Boost logo

Boost-Build :

From: Klaus Nowikow (e8827661_at_[hidden])
Date: 2006-07-05 04:36:34


I have a project containing sub-projects, some of them being shared
libraries with a resource (RC) file (at least when building on windows).
The project contains some header files shared for all sub-projects.
My folder structure looks like this (simplified):

$(PROJECT_ROOT)
  | |- Jamroot
  |
  |- include/
  | |- version.h
  |
  |- dll-prj/
      |- Jamfile
      |- dll.rc etc.

I'd like to use the #defines in include/version.h in the resource file
dll-prj/dll.rc for the VERSION resource, so that I can change the
version number in one place. To do this, I have to #include <version.h>
in dll.rc, but it is clear thar the resource compiler can't find that
header file without knowing the path. I noticed that in rc.jam the
action adds -I"$(INCLUDES)" to the call, but I have no idea how to
set the INCLUDES variable. I have already tried setting an environment
variable and a "constant INCLUDES : $(PROJECT_ROOT)/include ;" in
Jamroot, but this both didn't work.

I also have

project : requirements
     <define>_HAVE_CONFIG_H_
     <threading>multi
     <include>$(PROJECT_ROOT)/include
     ;

in my Jamroot, which I think would be the most elegant solution,
but this also didn't work -- and neither did the <define> property.

Is there any other way of setting the -I (and -D) parameters for the
resource compiler?

Thanks,

Klaus


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