code: def build_library_sources(self, lib_name, build_info):
      sources = list(build_info.get("sources", []))
  
      if not sources:
          return
  
      log.info('building library "%s" sources' % (lib_name))
  
      sources = self.generate_sources(sources, (lib_name, build_info))
  
      sources = self.template_sources(sources, (lib_name, build_info))
  
      sources, h_files = self.filter_h_files(sources)
  
      if h_files:
          log.info(
              "%s - nothing done with h_files = %s",
              self.package,
              h_files,
          )
  
      # for f in h_files:
      #    self.distribution.headers.append((lib_name,f))
  
      build_info["sources"] = sources
      return
  
imports: import os
  import re
  import sys
  import shlex
  import copy
  from distutils.command import build_ext
  from distutils.dep_util import newer_group, newer
  from distutils.util import get_platform
  from distutils.errors import DistutilsError, DistutilsSetupError
  from numpy.distutils import log
  from numpy.distutils.misc_util import fortran_ext_match, appendpath, is_string, is_sequence, get_cmd
  from numpy.distutils.from_template import process_file
  from numpy.distutils.conv_template import process_file
label_desc: Use image node_id 9 for calling the build_src obj's underlying member method code with example usage: obj.build_library_sources(lib_name, build_info) without return types