def obj_to_source(obj, source_dir, obj_dir)
      stub = obj.gsub(obj_dir, source_dir).ext('')
      src = stub_to_src(stub)
      return src if src
      raise "No matching source for #{obj} found."
    end
def obj_to_source(obj, source_dir, obj_dir)
      stub = obj.gsub(obj_dir, source_dir).ext('')
      src = stub_to_src(stub)
      return src if src
      raise "No matching source for #{obj} found."
    end
Transforms an object file name to its source file name by replacing
 build directory base with the source directory base and then iterating list of
 known sources to match

 @param [String] obj         Object filename
 @param [String] source_dir  Project source base directory
 @param [String] obj_dir     Project build base directory
 @return [String]            Mapped filename