Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r55154 - trunk/tools/build/v2/tools
From: ghost_at_[hidden]
Date: 2009-07-25 05:01:23


Author: vladimir_prus
Date: 2009-07-25 05:01:23 EDT (Sat, 25 Jul 2009)
New Revision: 55154
URL: http://svn.boost.org/trac/boost/changeset/55154

Log:
Initial PDB support and manifest file fixes.

Patch from Alexey Pakhunov.

The changes are:
- Make msvc link generators create targets that correspond to PDB
  files, so that they can be installed.
- Force creation of manifest file if separate manifest is requested
- Fix the name of manifest file that boost.build expects to make
  those produced by the compiler.

Text files modified:
   trunk/tools/build/v2/tools/msvc.jam | 19 ++++++++++++++++++-
   1 files changed, 18 insertions(+), 1 deletions(-)

Modified: trunk/tools/build/v2/tools/msvc.jam
==============================================================================
--- trunk/tools/build/v2/tools/msvc.jam (original)
+++ trunk/tools/build/v2/tools/msvc.jam 2009-07-25 05:01:23 EDT (Sat, 25 Jul 2009)
@@ -40,6 +40,8 @@
 type.register MANIFEST : manifest ;
 feature.feature embed-manifest : on off : incidental propagated ;
 
+type.register PDB : pdb ;
+
 ################################################################################
 #
 # Public rules.
@@ -259,6 +261,10 @@
         toolset.flags $(toolset).link LINKFLAGS $(conditions)/$(.cpu-arch-amd64) : /MACHINE:X64 ;
         toolset.flags $(toolset).link LINKFLAGS $(conditions)/$(.cpu-arch-i386) : /MACHINE:X86 ;
         toolset.flags $(toolset).link LINKFLAGS $(conditions)/$(.cpu-arch-ia64) : /MACHINE:IA64 ;
+
+ # Make sure that manifest will be generated even if there is no
+ # dependencies to put there.
+ toolset.flags $(toolset).link LINKFLAGS $(conditions)/<embed-manifest>off : /MANIFEST ;
     }
     toolset.pop-checking-for-flags-module ;
 }
@@ -1005,12 +1011,23 @@
         {
             local name = [ $(result[0]).name ] ;
             local action = [ $(result[0]).action ] ;
+
+ if [ $(property-set).get <debug-symbols> ] = "on"
+ {
+ local target = [ class.new file-target $(name) : PDB : $(project) : $(action) ] ;
+ lcoal registered-target = [ virtual-target.register $(target) ] ;
+ if $(target) != $(registered-target)
+ {
+ $(action).replace-targets $(target) : $(registered-target) ;
+ }
+ result += $(registered-target) ;
+ }
 
             if [ $(property-set).get <embed-manifest> ] = "off"
             {
                 local target = [ class.new file-target $(name) : MANIFEST : $(project) : $(action) ] ;
                 local registered-target = [ virtual-target.register $(target) ] ;
- if $(action) && ( $(target) != $(registered-target) )
+ if $(target) != $(registered-target)
                 {
                     $(action).replace-targets $(target) : $(registered-target) ;
                 }


Boost-Commit 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