parameters: (self, file, file_location, project)
return_statement: return result
docstring: Creates a virtual target with appropriate name and type from 'file'.
              If a target with that name in that project was already created, returns that already
              created target.
              TODO: more correct way would be to compute path to the file, based on name and source location
              for the project, and use that path to determine if the target was already created.
              TODO: passing project with all virtual targets starts to be annoying.
docstring_summary: Creates a virtual target with appropriate name and type from 'file'.
              If a target with that name in that project was already created, returns that already
              created target.
              TODO: more correct way would be to compute path to the file, based on name and source location
              for the project, and use that path to determine if the target was already created.
              TODO: passing project with all virtual targets starts to be annoying.
docstring_tokens: Creates a virtual target with appropriate name and type from file . If a target with that name in that project was already created returns that already created target . TODO : more correct way would be to compute path to the file based on name and source location for the project and use that path to determine if the target was already created . TODO : passing project with all virtual targets starts to be annoying .
function: def from_file (self, file, file_location, project):
          """ Creates a virtual target with appropriate name and type from 'file'.
              If a target with that name in that project was already created, returns that already
              created target.
              TODO: more correct way would be to compute path to the file, based on name and source location
              for the project, and use that path to determine if the target was already created.
              TODO: passing project with all virtual targets starts to be annoying.
          """
          if __debug__:
              from .targets import ProjectTarget
              assert isinstance(file, basestring)
              assert isinstance(file_location, basestring)
              assert isinstance(project, ProjectTarget)
          # Check if we've created a target corresponding to this file.
          path = os.path.join(os.getcwd(), file_location, file)
          path = os.path.normpath(path)
  
          if path in self.files_:
              return self.files_ [path]
  
          file_type = b2.build.type.type (file)
  
          result = FileTarget (file, file_type, project,
                               None, file_location)
          self.files_ [path] = result
  
          return result
function_tokens: def from_file ( self , file , file_location , project ) : if __debug__ : from . targets import ProjectTarget assert isinstance ( file , basestring ) assert isinstance ( file_location , basestring ) assert isinstance ( project , ProjectTarget ) # Check if we've created a target corresponding to this file. path = os . path . join ( os . getcwd ( ) , file_location , file ) path = os . path . normpath ( path ) if path in self . files_ : return self . files_ [ path ] file_type = b2 . build . type . type ( file ) result = FileTarget ( file , file_type , project , None , file_location ) self . files_ [ path ] = result return result