Alien-SVN
view release on metacpan or search on metacpan
src/subversion/build/generator/gen_make.py view on Meta::CPAN
########################################
# write dependencies and build rules for generated .c files
swig_c_deps = sorted(self.graph.get_deps(gen_base.DT_SWIG_C),
key=lambda t: t[0].filename)
swig_lang_deps = {}
for lang in self.swig.langs:
swig_lang_deps[lang] = []
for objname, sources in swig_c_deps:
swig_lang_deps[objname.lang].append(str(objname))
for lang in self.swig.langs:
data.swig_langs.append(_eztdata(short=self.swig.short[lang],
deps=swig_lang_deps[lang]))
########################################
if not self.release_mode:
for objname, sources in swig_c_deps:
data.swig_c.append(_eztdata(c_file=str(objname),
deps=list(map(str, sources)),
opts=self.swig.opts[objname.lang],
source=str(sources[0])))
########################################
for target_ob in install_sources:
if isinstance(target_ob, gen_base.TargetScript):
# there is nothing to build
continue
target = target_ob.name
if isinstance(target_ob, gen_base.TargetJava):
path = target_ob.output_dir
else:
path = target_ob.path
retreat = build_path_retreat(path)
# get the source items (.o and .la) for the link unit
objects = [ ]
object_srcs = [ ]
headers = [ ]
header_classes = [ ]
header_class_filenames = [ ]
deps = [ ]
libs = [ ]
for link_dep in self.graph.get_sources(gen_base.DT_LINK, target_ob.name):
if isinstance(link_dep, gen_base.TargetJava):
deps.append(link_dep.name)
elif isinstance(link_dep, gen_base.TargetLinked):
if link_dep.external_lib:
libs.append(link_dep.external_lib)
elif link_dep.external_project:
# FIXME: This is a temporary workaround to fix build breakage
# expeditiously. It is of questionable validity for a build
# node to have external_project but not have external_lib.
pass
elif link_dep.name in self.installed_libs:
libs.append('-l%s-%s' % (link_dep.name[3:], self.version))
else:
# append the output of the target to our stated dependencies
if not self.assume_shared_libs:
deps.append(link_dep.filename)
# link against the library
libs.append(build_path_join(retreat, link_dep.filename))
elif isinstance(link_dep, gen_base.ObjectFile):
# link in the object file
objects.append(link_dep.filename)
for dep in self.graph.get_sources(gen_base.DT_OBJECT, link_dep, gen_base.SourceFile):
object_srcs.append(
build_path_join('$(abs_srcdir)', dep.filename))
elif isinstance(link_dep, gen_base.HeaderFile):
# link in the header file
# N.B. that filename_win contains the '_'-escaped class name
headers.append(link_dep.filename_win)
header_classes.append(link_dep.classname)
for dep in self.graph.get_sources(gen_base.DT_OBJECT, link_dep, gen_base.ObjectFile):
header_class_filenames.append(dep.filename)
else:
### we don't know what this is, so we don't know what to do with it
raise UnknownDependency
for nonlib in self.graph.get_sources(gen_base.DT_NONLIB, target_ob.name):
if isinstance(nonlib, gen_base.TargetLinked):
if not nonlib.external_lib:
deps.append(nonlib.filename)
targ_varname = target.replace('-', '_')
objnames = build_path_strip(path, objects)
ezt_target = _eztdata(name=target_ob.name,
varname=targ_varname,
path=path,
install=None,
add_deps=target_ob.add_deps,
objects=objects,
deps=deps,
when=target_ob.when,
)
data.target.append(ezt_target)
if hasattr(target_ob, 'link_cmd'):
ezt_target.link_cmd = target_ob.link_cmd
if hasattr(target_ob, 'output_dir'):
ezt_target.output_dir = target_ob.output_dir
# Add additional install dependencies if necessary
if target_ob.add_install_deps:
ezt_target.install = target_ob.install
ezt_target.install_deps = target_ob.add_install_deps
if isinstance(target_ob, gen_base.TargetJava):
ezt_target.type = 'java'
ezt_target.headers = headers
( run in 0.322 second using v1.01-cache-2.11-cpan-411bb0df24b )