code: def generate_dependency_properties(self, properties, ps):
          
          assert is_iterable_typed(properties, property.Property)
          assert isinstance(ps, property_set.PropertySet)
          result_properties = []
          usage_requirements = []
          for p in properties:
  
              result = generate_from_reference(p.value, self.project_, ps)
  
              for t in result.targets():
                  result_properties.append(property.Property(p.feature, t))
  
              usage_requirements += result.usage_requirements().all()
  
          return (result_properties, usage_requirements)
docs: Takes a target reference, which might be either target id
              or a dependency property, and generates that target using
              'property_set' as build request.
  
              Returns a tuple (result, usage_requirements).