def recursive_app_dependent_targets(app_spec, configuration: nil)
      @recursive_app_dependent_targets ||= {}
      @recursive_app_dependent_targets[app_spec] ||= begin
        hash = Hash[config_variants.map do |config|
          [config, _add_recursive_app_dependent_targets(app_spec, Set.new, :configuration => config).to_a.freeze]