parameters: (self)
docstring: Function to generate the copy tasks for mirroring artifacts from Bin64.  This will take files that
      are relative to the base Bin64 folder and mirror them (copying them along with their folder structure)
      to any target Target folder (such as Bin64.Debug)
      :param self:    Context
docstring_summary: Function to generate the copy tasks for mirroring artifacts from Bin64.  This will take files that
      are relative to the base Bin64 folder and mirror them (copying them along with their folder structure)
      to any target Target folder (such as Bin64.Debug)
      :param self:    Context
docstring_tokens: Function to generate the copy tasks for mirroring artifacts from Bin64 . This will take files that are relative to the base Bin64 folder and mirror them ( copying them along with their folder structure ) to any target Target folder ( such as Bin64 . Debug ) : param self : Context
function: def add_mirror_artifacts(self):
      """
      Function to generate the copy tasks for mirroring artifacts from Bin64.  This will take files that
      are relative to the base Bin64 folder and mirror them (copying them along with their folder structure)
      to any target Target folder (such as Bin64.Debug)
      :param self:    Context
      """
      if self.bld.env['PLATFORM'] == 'project_generator':
          return
  
      artifact_include_files = getattr(self, 'mirror_artifacts_to_include', [])
  
      # Ignore if there are no mirror artifacts to include
      if len(artifact_include_files) == 0:
          return
  
      artifact_exclude_files = getattr(self, 'mirror_artifacts_to_exclude', [])
      current_platform       = self.bld.env['PLATFORM']
      current_configuration  = self.bld.env['CONFIGURATION']
  
      # source node is Bin64 for win_x64 platform and BinMac64 for mac platform
      if self.bld.is_windows_platform(current_platform):
          source_node = self.bld.path.make_node('Bin64')
      elif self.bld.is_mac_platform(current_platform):
          source_node = self.bld.path.make_node('BinMac64')
      else:
          source_node = self.bld.path.make_node('Bin64') #default
  
      output_folders = self.bld.get_output_folders(current_platform, current_configuration, self)
      for target_node in output_folders:
  
          # Skip if the output folder is Bin64 already (this is where the source is)
          if target_node.abspath() == source_node.abspath():
              continue
  
          # Build the file exclusion list based off of the source node
          exclusion_abs_path_list = set()
          for exclude_file in artifact_exclude_files:
              normalized_exclude = os.path.normpath(os.path.join(source_node.abspath(),exclude_file))
              exclusion_abs_path_list.add(normalized_exclude)
  
          # Copy each file/folder in the collection
          # (first pass create the tree structure)
          for dependent_files in artifact_include_files:
              self.copy_dependent_objects(dependent_files,source_node,target_node,exclusion_abs_path_list,True)
          # (second pass create the tree structure)
          for dependent_files in artifact_include_files:
              self.copy_dependent_objects(dependent_files,source_node,target_node,exclusion_abs_path_list,False)
function_tokens: def add_mirror_artifacts ( self ) : if self . bld . env [ 'PLATFORM' ] == 'project_generator' : return artifact_include_files = getattr ( self , 'mirror_artifacts_to_include' , [ ] ) # Ignore if there are no mirror artifacts to include if len ( artifact_include_files ) == 0 : return artifact_exclude_files = getattr ( self , 'mirror_artifacts_to_exclude' , [ ] ) current_platform = self . bld . env [ 'PLATFORM' ] current_configuration = self . bld . env [ 'CONFIGURATION' ] # source node is Bin64 for win_x64 platform and BinMac64 for mac platform if self . bld . is_windows_platform ( current_platform ) : source_node = self . bld . path . make_node ( 'Bin64' ) elif self . bld . is_mac_platform ( current_platform ) : source_node = self . bld . path . make_node ( 'BinMac64' ) else : source_node = self . bld . path . make_node ( 'Bin64' ) #default output_folders = self . bld . get_output_folders ( current_platform , current_configuration , self ) for target_node in output_folders : # Skip if the output folder is Bin64 already (this is where the source is) if target_node . abspath ( ) == source_node . abspath ( ) : continue # Build the file exclusion list based off of the source node exclusion_abs_path_list = set ( ) for exclude_file in artifact_exclude_files : normalized_exclude = os . path . normpath ( os . path . join ( source_node . abspath ( ) , exclude_file ) ) exclusion_abs_path_list . add ( normalized_exclude ) # Copy each file/folder in the collection # (first pass create the tree structure) for dependent_files in artifact_include_files : self . copy_dependent_objects ( dependent_files , source_node , target_node , exclusion_abs_path_list , True ) # (second pass create the tree structure) for dependent_files in artifact_include_files : self . copy_dependent_objects ( dependent_files , source_node , target_node , exclusion_abs_path_list , False )