This should apply against r6313 cleanly -- but I thought I had tested
the last one, also, so if it doesn't work please let me know where the
conflicts are. This builds all the normal subversion projects and the
swig-python projects for me -- I didn't try java. I believe it is
building the swig-python stuff correctly (it looks the same as when I
use converted dsps), but I get an error running the quick test:
D:\Temp>python -c "from svn import client"
Traceback (most recent call last):
File "<string>", line 1, in ?
File "C:\Python22\Lib\site-packages\svn\client.py", line 17, in ?
from libsvn.client import *
ImportError: No module named libsvn.client
Have I just got a path setup wrong or is it not building the dll's
correctly? The dll is in the 'C:\Python22\Lib\site-packages\svn'
directory, but obviously I've got something wrong...
Log:
Update the vcproj generator to get it working and refactor a bit of code
into the Windows generator base class.
* build/generator/msvc_dsp.ezt
Changed dsp_name to proj_name as part of refactoring.
* build/generator/gen_vcnet_vcproj.py
Mostly rewritten, using gen_msvc_dsp.py as a basis.
* build/generator/vcnet_vcproj.ezt
Updated template with new generator parameters.
* build/generator/gen_win.py
(adjust_win_depends): added this new method to base generator
to refactor code from vcproj and dsp generators -- it handles
some special dependency cases.
(gen_proj_names): added this as part of refactoring also -- it
handles generator project names.
* build/generator/gen_msvc_dsp.py
Renamed dsp_name to proj_name as part of code refactoring throughout
the file.
(write): Removed code that was refactored into the
adjust_win_depends method of the base class.
Index: build/generator/msvc_dsp.ezt
===================================================================
--- build/generator/msvc_dsp.ezt (revision 6313)
+++ build/generator/msvc_dsp.ezt (working copy)
@@ -1,23 +1,23 @@
-# Microsoft Developer Studio Project File - Name="[target.dsp_name]" - Package Owner=<4>
+# Microsoft Developer Studio Project File - Name="[target.proj_name]" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "[target_type]" [target_number]
-CFG=[target.dsp_name] - [default_platform] [default_config]
+CFG=[target.proj_name] - [default_platform] [default_config]
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
-!MESSAGE NMAKE /f "[target.dsp_name]_msvc.mak".
+!MESSAGE NMAKE /f "[target.proj_name]_msvc.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
-!MESSAGE NMAKE /f "[target.dsp_name]_msvc.mak" CFG="[target.dsp_name] - [default_platform] [default_config]"
+!MESSAGE NMAKE /f "[target.proj_name]_msvc.mak" CFG="[target.proj_name] - [default_platform] [default_config]"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
-[for platforms][for configs]!MESSAGE "[target.dsp_name] - [platforms] [configs.name]" (based on "[target_type]")
+[for platforms][for configs]!MESSAGE "[target.proj_name] - [platforms] [configs.name]" (based on "[target_type]")
[end][end]!MESSAGE
# Begin Project
@@ -27,7 +27,7 @@
CPP=cl.exe
RSC=rc.exe
[for platforms][for configs]
-![if-index platforms first][if-index configs first][else]ELSE[end][else]ELSE[end]IF "$(CFG)" == "[target.dsp_name] - [platforms] [configs.name]"
+![if-index platforms first][if-index configs first][else]ELSE[end][else]ELSE[end]IF "$(CFG)" == "[target.proj_name] - [platforms] [configs.name]"
# PROP Use_MFC 0
# PROP Use_Debug_Libraries [is configs.name "Debug"]1[else]0[end]
@@ -52,12 +52,12 @@
# Begin Target
-[for platforms][for configs]# Name "[target.dsp_name] - [platforms] [configs.name]"
+[for platforms][for configs]# Name "[target.proj_name] - [platforms] [configs.name]"
[end][end][for sources]# Begin Source File
SOURCE=[sources.path][if-any sources.reldir]
[for platforms][for configs]
-![if-index platforms first][if-index configs first][else]ELSE[end][else]ELSE[end]IF "$(CFG)" == "[target.dsp_name] - [platforms] [configs.name]"
+![if-index platforms first][if-index configs first][else]ELSE[end][else]ELSE[end]IF "$(CFG)" == "[target.proj_name] - [platforms] [configs.name]"
# PROP Intermediate_Dir "[rootpath]\[configs.name]\[target.path]\[sources.reldir]"
[end][end]
Index: build/generator/gen_vcnet_vcproj.py
===================================================================
--- build/generator/gen_vcnet_vcproj.py (revision 6313)
+++ build/generator/gen_vcnet_vcproj.py (working copy)
@@ -27,22 +27,30 @@
if isinstance(target, gen_base.TargetExe):
#EXE
config_type=1
+ target.output_name = target.name + '.exe'
elif isinstance(target, gen_base.TargetLib):
- if self.shared:
+ if target.is_apache_mod:
#DLL
+ target.output_name = target.name + '.so'
config_type=2
else:
#LIB
config_type=4
+ target.output_name = '%s-%d.lib' % (target.name, self.cfg.version)
elif isinstance(target, gen_base.TargetExternal):
return
+ elif isinstance(target, gen_base.TargetUtility):
+ config_type=1
+ target.output_name = target.name + '.exe'
+ elif isinstance(target, gen_base.SWIGLibrary):
+ config_type=2
+ target.output_name = os.path.basename(target.fname)
+ target.is_apache_mod = 0
else:
- print `target`
- assert 0
+ raise gen_base.GenError("Cannot create project for %s" % target.name)
configs = [ ]
for cfg in self.configs:
- # this is the same as msvc_dsp
configs.append(_item(name=cfg,
lower=string.lower(cfg),
defines=self.get_win_defines(target, cfg),
@@ -50,15 +58,32 @@
libs=self.get_win_libs(target, cfg),
))
+
sources = [ ]
- for src, reldir in self.get_win_sources(target):
- rsrc = string.replace(string.replace(src, target.path + os.sep, ''),
- os.sep, '\\')
- sources.append(rsrc)
+
+ if not isinstance(target, gen_base.TargetUtility):
+ for src, reldir in self.get_win_sources(target):
+ rsrc = string.replace(os.path.join(rootpath, src), os.sep, '\\')
+ sources.append(_item(path=rsrc, reldir=reldir, swig_language=None,
+ swig_output=None))
- # sort for output stability, to watch for regressions
- sources.sort()
+ if isinstance(target, gen_base.SWIGLibrary):
+ for obj in self.graph.get_sources(gen_base.DT_LINK, target):
+ if isinstance(obj, gen_base.SWIGObject):
+ for cobj in self.graph.get_sources(gen_base.DT_OBJECT, obj):
+ if isinstance(cobj, gen_base.SWIGObject):
+ csrc = rootpath + '\\' + string.replace(cobj.fname, '/', '\\')
+ sources.append(_item(path=csrc, reldir=None, swig_language=None,
+ swig_output=None))
+ for ifile in self.graph.get_sources(gen_base.DT_SWIG_C, cobj):
+ isrc = rootpath + '\\' + string.replace(ifile, '/', '\\')
+ sources.append(_item(path=isrc, reldir=None,
+ swig_language=target.lang,
+ swig_output=csrc))
+
+ sources.sort(lambda x, y: cmp(x.path, y.path))
+
data = {
'target' : target,
'target_type' : config_type,
@@ -68,14 +93,16 @@
'configs' : configs,
'includes' : self.get_win_includes(target, rootpath),
'sources' : sources,
-# 'default_platform' : self.platforms[0],
-# 'default_config' : configs[0].name,
+ 'default_platform' : self.platforms[0],
+ 'default_config' : configs[0].name,
'is_exe' : ezt.boolean(isinstance(target, gen_base.TargetExe)),
-# 'is_external' : ezt.boolean(isinstance(target,
-# gen_base.TargetExternal)),
-# 'is_utility' : ezt.boolean(isinstance(target,
-# gen_base.TargetUtility)),
-# 'is_apache_mod' : ezt.boolean(target.is_apache_mod),
+ 'is_external' : ezt.boolean(isinstance(target,
+ gen_base.TargetExternal)),
+ 'is_utility' : ezt.boolean(isinstance(target,
+ gen_base.TargetUtility)),
+ 'is_apache_mod' : ezt.boolean(target.is_apache_mod),
+ 'instrument_apr_pools' : self.instrument_apr_pools,
+ 'instrument_purify_quantify' : self.instrument_purify_quantify,
}
self.write_with_template(fname, 'vcnet_vcproj.ezt', data)
@@ -99,73 +126,92 @@
myhash[20:32]))
return guid
+ def move_proj_file(self, path, name):
+ dest_file = os.path.join(path, name)
+ source_file = os.path.join('build', 'win32', name + '.in')
+ self.write_file_if_changed(dest_file, open(source_file, 'rb').read())
+
def write(self, oname):
"Write a Solution (.sln)"
- install_targets = self.graph.get_all_sources(gen_base.DT_INSTALL)
+ # apr doesn't supply vcproj files, so move our pre-defined ones
+ # over if they don't match
+ self.move_proj_file('apr', 'apr.vcproj')
+ self.move_proj_file('apr-iconv', 'apriconv.vcproj')
+ self.move_proj_file(os.path.join('apr-iconv','ccs'), 'apriconv_ccs_modules.vcproj')
+ self.move_proj_file(os.path.join('apr-iconv','ces'), 'apriconv_ces_modules.vcproj')
+ self.move_proj_file('apr-util', 'aprutil.vcproj')
+ self.move_proj_file(os.path.join('apr-util','uri'), 'gen_uri_delims.vcproj')
+ self.move_proj_file(os.path.join('apr-util','xml', 'expat', 'lib'), 'xml.vcproj')
+ # Generate a fake depaprutil project
+ self.targets['depsubr'] = gen_base.TargetUtility('depsubr', None,
+ 'build/win32',
+ None, None, self.cfg,
+ None)
+ self.targets['depdelta'] = gen_base.TargetUtility('depdelta', None,
+ 'build/win32',
+ None, None, self.cfg,
+ None)
+
+ targets = [ ]
+
+ install_targets = self.targets.values() \
+ + self.graph.get_all_sources(gen_base.DT_INSTALL)
+ install_targets = gen_base.unique(install_targets)
+
# sort these for output stability, to watch out for regressions.
install_targets.sort()
- targets = [ ]
-
guids = { }
# VC.NET uses GUIDs to refer to projects. generate them up front
# because we need them already assigned on the dependencies for
# each target we work with.
for target in install_targets:
- ### don't create guids for these (yet)
- if isinstance(target, gen_base.TargetScript):
- continue
- if isinstance(target, gen_base.TargetSWIG):
- continue
- if isinstance(target, gen_base.SWIGLibrary):
- continue
guids[target.name] = self.makeguid(target.name)
- ### GJS: these aren't in the DT_INSTALL graph, so they didn't get GUIDs
- guids['apr'] = self.makeguid('apr')
- guids['aprutil'] = self.makeguid('aprutil')
- guids['apriconv'] = self.makeguid('apriconv')
- guids['neon'] = self.makeguid('neon')
+ self.gen_proj_names(install_targets)
+ # Traverse the targets and generate the project files
for target in install_targets:
-
- ### nothing to do for these yet
- if isinstance(target, gen_base.TargetScript):
+ name = target.name
+ # These aren't working yet
+ if isinstance(target, gen_base.TargetScript) \
+ or isinstance(target, gen_base.TargetSWIG):
continue
- if isinstance(target, gen_base.TargetSWIG):
- continue
- if isinstance(target, gen_base.SWIGLibrary):
- continue
- fname = os.path.join(self.projfilesdir,
- "%s_vcnet.vcproj" % (string.replace(target.name,
- '-',
- '_')))
- depth = string.count(target.path, os.sep) + 1
- self.write_project(target, fname,
- string.join(['..'] * depth, '\\'))
-
- if isinstance(target, gen_base.TargetExternal):
- fname = target._sources[0]
+ if isinstance(target, gen_base.TargetProject):
+ # Figure out where the external .vcproj is located.
+ if hasattr(target, 'project_name'):
+ project_path = os.path.join(target.path, target.project_name)
+ else:
+ project_path = os.path.join(target.path, name)
+ fname = project_path + '.vcproj'
+ else:
+ fname = os.path.join(self.projfilesdir,
+ "%s_vcnet.vcproj" % target.proj_name)
+ depth = string.count(self.projfilesdir, os.sep) + 1
+ self.write_project(target, fname, string.join(['..']*depth, '\\'))
- ### GJS: or should this be get_unique_win_depends?
- deplist = self.get_win_depends(target)
+ if '-' in fname:
+ fname = '"%s"' % fname
- depends = [ ]
- for i in range(len(deplist)):
- depends.append(_item(guid=guids[deplist[i].name],
+ depends = self.adjust_win_depends(target, name)
+
+ deplist = [ ]
+ for i in range(len(depends)):
+ deplist.append(_item(guid=guids[depends[i].name],
index=i,
))
-
targets.append(_item(name=target.name,
path=string.replace(fname, os.sep, '\\'),
guid=guids[target.name],
- depends=depends,
+ depends=deplist,
))
+ targets.sort()
+
configs = [ ]
for i in range(len(self.configs)):
@@ -185,7 +231,6 @@
self.write_with_template(oname, 'vcnet_sln.ezt', data)
-
class _item:
def __init__(self, **kw):
vars(self).update(kw)
Index: build/generator/vcnet_vcproj.ezt
===================================================================
--- build/generator/vcnet_vcproj.ezt (revision 6313)
+++ build/generator/vcnet_vcproj.ezt (working copy)
@@ -2,7 +2,7 @@
<VisualStudioProject
ProjectType="Visual C++"
Version="7.00"
- Name="[target.name]">
+ Name="[target.proj_name]">
<Platforms>
[for platforms] <Platform
Name="[platforms]"/>
@@ -10,10 +10,10 @@
<Configurations>
[for platforms][for configs] <Configuration
Name="[configs.name]|[platforms]"
- OutputDirectory="$(SolutionDir)\[configs.name]"
- IntermediateDirectory="[configs.name]"
+ OutputDirectory="..\..\..\[configs.name]\[target.path]"
+ IntermediateDirectory="..\..\..\[configs.name]\[target.path][if-any target.shared_dir]\[target.name][end]"
ConfigurationType="[target_type]"[is configs.name "Release"]
- WholeProgramOptimization="TRUE"[end]>
+ WholeProgramOptimization="FALSE"[end]>
<Tool
Name="VCCLCompilerTool"
[is configs.name "Debug"] Optimization="0"
@@ -25,7 +25,7 @@
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
[end] AdditionalIncludeDirectories="[for includes][includes][if-index includes last][else];[end][end]"
- PreprocessorDefinitions="[for configs.defines][configs.defines][if-index configs.defines last][else];[end][end]"
+ PreprocessorDefinitions="[if-any instrument_apr_pools]APR_POOL_DEBUG=[instrument_apr_pools];[end][for configs.defines][configs.defines][if-index configs.defines last][else];[end][end]"
[is configs.name "Debug"] MinimalRebuild="TRUE"
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
@@ -34,30 +34,34 @@
RuntimeLibrary="2"
BufferSecurityCheck="FALSE"
[end] WarningLevel="3"
- Detect64BitPortabilityProblems="TRUE"
-[is configs.name "Debug"] DebugInformationFormat="4"
-[end] CompileAsManaged="0"
+ Detect64BitPortabilityProblems="FALSE"
+ DebugInformationFormat="3"
+ CompileAsManaged="0"
CompileAs="0"[if-any is_exe][is configs.name "Release"]
OptimizeForWindowsApplication="TRUE"[end][end]/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="[for configs.libs][configs.libs][if-index configs.libs last][else] [end][end]"
-[is target_type "4"][else] OutputFile="$(OutDir)\$(ProjectName).[if-any is_exe]exe[else]dll[end]"
+[is target_type "1"][if-any instrument_purify_quantify] AdditionalOptions="/fixed:no"[end][end]
+ AdditionalDependencies="[for configs.libs][configs.libs] [end]"
+[is target_type "4"][else] OutputFile="$(OutDir)\[target.output_name]"
[end][is configs.name "Debug"] LinkIncremental="2"
[else] LinkIncremental="1"
-[end] AdditionalLibraryDirectories="[rootpath]\db4-win32\lib"
-[is configs.name "Debug"] GenerateDebugInformation="TRUE"
-[else] GenerateDebugInformation="FALSE"
-[end] ProgramDatabaseFile="$(OutDir)\$(ProjectName).pdb"[is configs.name "Debug"]
+[end] AdditionalLibraryDirectories="..\..\..\db4-win32\lib;[for configs.libdirs][configs.libdirs];[end]"
+ TargetMachine="1"
+ IgnoreDefaultLibraryNames="libc.lib"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile="$(OutDir)\$(ProjectName).pdb"[is configs.name "Debug"]
OptimizeReferences="0"[else]
OptimizeReferences="2"
EnableCOMDATFolding="2"[end][is target_type "2"]
- ImportLibrary="$(OutDir)\$(ProjectName).lib"[end]/>
-[is target_type "4"] <Tool
+ ImportLibrary="$(OutDir)\$(ProjectName).lib"[end]
+[is target_type "1"] Subsystem="1"[end]/>
+[is target_type "4"]
+ <Tool
Name="VCLibrarianTool"
- OutputFile="$(OutDir)\$(ProjectName).lib"/>
+ OutputFile="$(OutDir)\[target.output_name]"/>
[end] <Tool
Name="VCMIDLTool"/>
<Tool
@@ -74,11 +78,39 @@
Name="VCWebDeploymentTool"/>
</Configuration>
[end][end] </Configurations>
- <Files>
+ <Files>[if-any target.desc]
+ <File
+ RelativePath="..\svn.rc">[for configs]
+ <FileConfiguration
+ Name="[configs.name]|Win32">
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="SVN_FILE_NAME=[target.output_name];SVN_FILE_DESCRIPTION=[target.desc];[is configs.name "Debug"]_DEBUG[else]NDEBUG[end]"/>
+ </FileConfiguration>[end]
+ </File>[end]
[for sources] <File
- RelativePath="[sources]">
+ RelativePath="[sources.path]">
+[if-any sources.swig_language][for configs]
+ <FileConfiguration
+ Name="[configs.name]|Win32">
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="swig -[sources.swig_language] -noproxy[for includes] -I"[includes]"[end] -o [sources.swig_output] $(InputPath)"
+ Outputs="[sources.swig_output]"/>
+ </FileConfiguration>
+[end][end]
+[if-any sources.reldir][for configs]
+ <FileConfiguration
+ Name="[configs.name]|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ ObjectFile="$(IntDir)/[sources.reldir]/"
+ ProgramDataBaseFileName="$(IntDir)/[sources.reldir]/"/>
+ </FileConfiguration>
+[end][end]
</File>
-[end] </Files>
+[end]
+ </Files>
<Globals>
</Globals>
</VisualStudioProject>
Index: build/generator/gen_win.py
===================================================================
--- build/generator/gen_win.py (revision 6313)
+++ build/generator/gen_win.py (working copy)
@@ -221,6 +221,72 @@
libs.append(gen_base.ExternalLibrary(libname))
return libs
+ def gen_proj_names(self, install_targets):
+ "Generate project file names for the targets"
+ # Generate project file names for the targets: replace dashes with
+ # underscores and replace *-test with test_* (so that the test
+ # programs are visually separare from the rest of the projects)
+ for target in install_targets:
+ name = target.name
+ pos = string.find(name, '-test')
+ if pos >= 0:
+ proj_name = 'test_' + string.replace(name[:pos], '-', '_')
+ elif isinstance(target, gen_base.SWIGLibrary):
+ proj_name = 'swig_' + string.replace(name, '-', '_')
+ else:
+ proj_name = string.replace(name, '-', '_')
+ target.proj_name = proj_name
+
+ def adjust_win_depends(self, target, name):
+ "Handle special dependencies if needed"
+
+ # For MSVC we need to hack around Apache modules &
+ # libsvn_ra because dependencies implies linking
+ # and there is no way around that
+ if name == '__CONFIG__':
+ depends = []
+ else:
+ depends = [self.targets['__CONFIG__']]
+
+ if target.is_apache_mod:
+ if target.name == 'mod_authz_svn':
+ depends.append(self.targets['mod_dav_svn'])
+ pass
+ elif name == 'depdelta':
+ depends.append(self.targets['libsvn_delta'])
+ elif name == 'libsvn_wc':
+ depends.append(self.targets['depdelta'])
+ elif name == 'depsubr':
+ depends.append(self.targets['libsvn_subr'])
+ elif name == 'libsvn_ra_svn':
+ depends.append(self.targets['depsubr'])
+ elif name == 'libsvn_ra_dav':
+ depends.append(self.targets['depsubr'])
+ depends.append(self.targets['neon'])
+ elif isinstance(target, gen_base.Target):
+ if isinstance(target, gen_base.TargetExe):
+ deps = { }
+ for obj in self.get_win_depends(target, 0):
+ deps[obj] = None
+ for obj in self.get_win_depends(target, 2):
+ if isinstance(obj, gen_base.TargetLib):
+ deps[obj] = None
+ deps = deps.keys()
+ deps.sort()
+ depends.extend(deps)
+ else:
+ depends.extend(self.get_unique_win_depends(target))
+ elif isinstance(target, gen_base.SWIGLibrary):
+ for lib in self.graph.get_sources(gen_base.DT_LINK, target):
+ if hasattr(lib, 'proj_name'):
+ depends.append(lib)
+ depends.extend(self.get_win_depends(lib, 0))
+ else:
+ assert 0
+
+ return depends
+
+
def get_win_depends(self, target, recurse=0):
"""
Return the list of dependencies for target not including external libraries
Index: build/generator/gen_msvc_dsp.py
===================================================================
--- build/generator/gen_msvc_dsp.py (revision 6313)
+++ build/generator/gen_msvc_dsp.py (working copy)
@@ -132,19 +132,7 @@
targets = [ ]
- # Generate .dsp file names for the targets: replace dashes with
- # underscores and replace *-test with test_* (so that the test
- # programs are visually separare from the rest of the projects)
- for target in install_targets:
- name = target.name
- pos = string.find(name, '-test')
- if pos >= 0:
- dsp_name = 'test_' + string.replace(name[:pos], '-', '_')
- elif isinstance(target, gen_base.SWIGLibrary):
- dsp_name = 'swig_' + string.replace(name, '-', '_')
- else:
- dsp_name = string.replace(name, '-', '_')
- target.dsp_name = dsp_name
+ self.gen_proj_names(install_targets)
# Traverse the targets and generate the project files
for target in install_targets:
@@ -163,62 +151,20 @@
fname = project_path + '.dsp'
else:
fname = os.path.join(self.projfilesdir,
- "%s_msvc.dsp" % target.dsp_name)
+ "%s_msvc.dsp" % target.proj_name)
depth = string.count(self.projfilesdir, os.sep) + 1
self.write_project(target, fname, string.join(['..']*depth, '\\'))
if '-' in fname:
fname = '"%s"' % fname
+
+ depends = self.adjust_win_depends(target, name)
- # For MSVC we need to hack around Apache modules &
- # libsvn_ra because dependencies implies linking
- # and there is no way around that
- if name == '__CONFIG__':
- depends = []
- else:
- depends = [self.targets['__CONFIG__']]
-
- if target.is_apache_mod:
- if target.name == 'mod_authz_svn':
- depends.append(self.targets['mod_dav_svn'])
- pass
- elif name == 'depdelta':
- depends.append(self.targets['libsvn_delta'])
- elif name == 'libsvn_wc':
- depends.append(self.targets['depdelta'])
- elif name == 'depsubr':
- depends.append(self.targets['libsvn_subr'])
- elif name == 'libsvn_ra_svn':
- depends.append(self.targets['depsubr'])
- elif name == 'libsvn_ra_dav':
- depends.append(self.targets['depsubr'])
- depends.append(self.targets['neon'])
- elif isinstance(target, gen_base.Target):
- if isinstance(target, gen_base.TargetExe):
- deps = { }
- for obj in self.get_win_depends(target, 0):
- deps[obj] = None
- for obj in self.get_win_depends(target, 2):
- if isinstance(obj, gen_base.TargetLib):
- deps[obj] = None
- deps = deps.keys()
- deps.sort()
- depends.extend(deps)
- else:
- depends.extend(self.get_unique_win_depends(target))
- elif isinstance(target, gen_base.SWIGLibrary):
- for lib in self.graph.get_sources(gen_base.DT_LINK, target):
- if hasattr(lib, 'dsp_name'):
- depends.append(lib)
- depends.extend(self.get_win_depends(lib, 0))
- else:
- assert 0
-
dep_names = [ ]
for dep in depends:
- dep_names.append(dep.dsp_name)
+ dep_names.append(dep.proj_name)
- targets.append(_item(name=target.dsp_name,
+ targets.append(_item(name=target.proj_name,
dsp=string.replace(fname, os.sep, '\\'),
depends=dep_names))
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Jun 21 01:45:27 2003