mirror of
https://github.com/boostorg/build.git
synced 2026-02-13 12:22:17 +00:00
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. [SVN r55154]
This commit is contained in:
@@ -40,6 +40,8 @@ import type ;
|
||||
type.register MANIFEST : manifest ;
|
||||
feature.feature embed-manifest : on off : incidental propagated ;
|
||||
|
||||
type.register PDB : pdb ;
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Public rules.
|
||||
@@ -259,6 +261,10 @@ rule configure-version-specific ( toolset : version : conditions )
|
||||
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 @@ class msvc-linking-generator : linking-generator
|
||||
{
|
||||
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) ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user