code: def __init__(self, opts):
      self.opts = opts
  
      archiver_tool_path = opts.parsed_args.cmake_ar
      if sys.platform.startswith("darwin"):
          # force LIBTOOL even if CMAKE_AR is defined because 'ar' under Darwin does not contain the necessary options
          arch_type = "LIBTOOL"
          archiver_tool_path = "libtool"
      elif opts.is_msvc_compatible_linker:
          arch_type = "LIB"
      elif opts.parsed_args.cmake_ar.endswith("llvm-ar"):
          arch_type = "LLVM_AR"
      elif opts.parsed_args.cmake_ar.endswith("ar"):
          arch_type = "GNU_AR"
      else:
          raise Exception(
              "Unsupported arch type for CMAKE_AR={}".format(
                  opts.parsed_args.cmake_ar
              )
          )
  
      self.archiving_cmd_prefix = [
          sys.executable,
          os.path.join(
              os.path.dirname(os.path.abspath(__file__)), "link_lib.py"
          ),
          archiver_tool_path,
          arch_type,
          "gnu",  # llvm_ar_format, used only if arch_type == 'LLVM_AR'
          opts.parsed_args.cmake_binary_dir,
          "None",  # plugin. Unused for now
      ]
  
file_path: catboost/build/scripts/create_recursive_library_for_cmake.py
imports: import argparse
  import os
  import shlex
  import subprocess
  import sys
  import tempfile
label_desc: Use image node_id 1 to create a new FilesCombiner object from inherited base classes: object with example: obj = FilesCombiner(opts)