parameters: (self, spec, type=None)
docstring: Compute the filename of the final output for the current target.
docstring_summary: Compute the filename of the final output for the current target.
docstring_tokens: Compute the filename of the final output for the current target .
function: def ComputeOutputFileName(self, spec, type=None):
          """Compute the filename of the final output for the current target."""
          if not type:
              type = spec["type"]
  
          default_variables = copy.copy(generator_default_variables)
          CalculateVariables(default_variables, {"flavor": self.flavor})
  
          # Compute filename prefix: the product prefix, or a default for
          # the product type.
          DEFAULT_PREFIX = {
              "loadable_module": default_variables["SHARED_LIB_PREFIX"],
              "shared_library": default_variables["SHARED_LIB_PREFIX"],
              "static_library": default_variables["STATIC_LIB_PREFIX"],
              "executable": default_variables["EXECUTABLE_PREFIX"],
          }
          prefix = spec.get("product_prefix", DEFAULT_PREFIX.get(type, ""))
  
          # Compute filename extension: the product extension, or a default
          # for the product type.
          DEFAULT_EXTENSION = {
              "loadable_module": default_variables["SHARED_LIB_SUFFIX"],
              "shared_library": default_variables["SHARED_LIB_SUFFIX"],
              "static_library": default_variables["STATIC_LIB_SUFFIX"],
              "executable": default_variables["EXECUTABLE_SUFFIX"],
          }
          extension = spec.get("product_extension")
          if extension:
              extension = "." + extension
          else:
              extension = DEFAULT_EXTENSION.get(type, "")
  
          if "product_name" in spec:
              # If we were given an explicit name, use that.
              target = spec["product_name"]
          else:
              # Otherwise, derive a name from the target name.
              target = spec["target_name"]
              if prefix == "lib":
                  # Snip out an extra 'lib' from libs if appropriate.
                  target = StripPrefix(target, "lib")
  
          if type in (
              "static_library",
              "loadable_module",
              "shared_library",
              "executable",
          ):
              return f"{prefix}{target}{extension}"
          elif type == "none":
              return "%s.stamp" % target
          else:
              raise Exception("Unhandled output type %s" % type)
function_tokens: def ComputeOutputFileName ( self , spec , type = None ) : if not type : type = spec [ "type" ] default_variables = copy . copy ( generator_default_variables ) CalculateVariables ( default_variables , { "flavor" : self . flavor } ) # Compute filename prefix: the product prefix, or a default for # the product type. DEFAULT_PREFIX = { "loadable_module" : default_variables [ "SHARED_LIB_PREFIX" ] , "shared_library" : default_variables [ "SHARED_LIB_PREFIX" ] , "static_library" : default_variables [ "STATIC_LIB_PREFIX" ] , "executable" : default_variables [ "EXECUTABLE_PREFIX" ] , } prefix = spec . get ( "product_prefix" , DEFAULT_PREFIX . get ( type , "" ) ) # Compute filename extension: the product extension, or a default # for the product type. DEFAULT_EXTENSION = { "loadable_module" : default_variables [ "SHARED_LIB_SUFFIX" ] , "shared_library" : default_variables [ "SHARED_LIB_SUFFIX" ] , "static_library" : default_variables [ "STATIC_LIB_SUFFIX" ] , "executable" : default_variables [ "EXECUTABLE_SUFFIX" ] , } extension = spec . get ( "product_extension" ) if extension : extension = "." + extension else : extension = DEFAULT_EXTENSION . get ( type , "" ) if "product_name" in spec : # If we were given an explicit name, use that. target = spec [ "product_name" ] else : # Otherwise, derive a name from the target name. target = spec [ "target_name" ] if prefix == "lib" : # Snip out an extra 'lib' from libs if appropriate. target = StripPrefix ( target , "lib" ) if type in ( "static_library" , "loadable_module" , "shared_library" , "executable" , ) : return f"{prefix}{target}{extension}" elif type == "none" : return "%s.stamp" % target else : raise Exception ( "Unhandled output type %s" % type )