class_docstr: Concrete class that implements an interface to the Borland C/C++
  compiler, as defined by the CCompiler abstract class.
class_docstr_tok: ["Concrete","class","that","implements","an","interface","to","the","Borland","C\/C++","compiler",",","as","defined","by","the","CCompiler","abstract","class","."]
code: def object_filenames(
      self, source_filenames, strip_dir=0, output_dir=""
  ):
      if output_dir is None:
          output_dir = ""
      obj_names = []
      for src_name in source_filenames:
          # use normcase to make sure '.rc' is really '.rc' and not '.RC'
          (base, ext) = os.path.splitext(os.path.normcase(src_name))
          if ext not in (self.src_extensions + [".rc", ".res"]):
              raise UnknownFileError(
                  "unknown file type '%s' (from '%s')" % (ext, src_name)
              )
          if strip_dir:
              base = os.path.basename(base)
          if ext == ".res":
              # these can go unchanged
              obj_names.append(os.path.join(output_dir, base + ext))
          elif ext == ".rc":
              # these need to be compiled to .res-files
              obj_names.append(os.path.join(output_dir, base + ".res"))
          else:
              obj_names.append(
                  os.path.join(output_dir, base + self.obj_extension)
              )
      return obj_names
  
file_path: catboost/contrib/tools/python3/src/Lib/distutils/bcppcompiler.py
imports: import os
  from distutils.errors import DistutilsExecError, CompileError, LibError, LinkError, UnknownFileError
  from distutils.ccompiler import CCompiler, gen_preprocess_options
  from distutils.file_util import write_file
  from distutils.dep_util import newer
  from distutils import log
label_desc: Use image node_id 6 for calling the BCPPCompiler obj's underlying member method code with example usage: obj.object_filenames(source_filenames, strip_dir, output_dir) and returns: obj_names