Alien-SVN
view release on metacpan or search on metacpan
src/subversion/build/generator/gen_make.py view on Meta::CPAN
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
ezt_target.sources = None
ezt_target.jar = None
ezt_target.classes = target_ob.classes
# Build the headers from the header_classes with one 'javah' call
if headers:
ezt_target.header_class_filenames = header_class_filenames
ezt_target.header_classes = header_classes
# Build the objects from the object_srcs with one 'javac' call
if object_srcs:
ezt_target.sources = object_srcs
# Once the bytecodes have been compiled up, we produce the
# JAR.
if target_ob.jar:
ezt_target.jar_path = build_path_join(target_ob.classes,
target_ob.jar)
ezt_target.packages = target_ob.packages
( run in 0.596 second using v1.01-cache-2.11-cpan-5623c5533a1 )