aboutsummaryrefslogtreecommitdiff
path: root/paludis/repositories/e/e_repository.cc
diff options
context:
space:
mode:
Diffstat (limited to 'paludis/repositories/e/e_repository.cc')
-rw-r--r--paludis/repositories/e/e_repository.cc23
1 files changed, 14 insertions, 9 deletions
diff --git a/paludis/repositories/e/e_repository.cc b/paludis/repositories/e/e_repository.cc
index 1336f8d57..9538620ea 100644
--- a/paludis/repositories/e/e_repository.cc
+++ b/paludis/repositories/e/e_repository.cc
@@ -197,15 +197,15 @@ namespace
{
return layout->repository_mask_files();
}
+
+ bool is_arch_flag_func(const ERepository * const r, const UnprefixedChoiceName & p)
+ {
+ return r->arch_flags()->end() != r->arch_flags()->find(p);
+ }
}
namespace paludis
{
- /**
- * Imp data for a ERepository.
- *
- * \ingroup grperepository
- */
template <>
struct Imp<ERepository>
{
@@ -477,10 +477,15 @@ namespace paludis
profile_ptr = ProfileFactory::get_instance()->create(
params.profile_layout(),
- params.environment(), repo, repo->name(), *profiles,
- EAPIData::get_instance()->eapi_from_string(
- params.eapi_when_unknown())->supported()->ebuild_environment_variables()->env_arch(),
- params.profiles_explicitly_set());
+ params.environment(),
+ repo->name(),
+ EAPIForFileFunction(std::bind(&ERepository::eapi_for_file, repo, std::placeholders::_1)),
+ IsArchFlagFunction(std::bind(&is_arch_flag_func, repo, std::placeholders::_1)),
+ *profiles,
+ EAPIData::get_instance()->eapi_from_string(params.eapi_when_unknown())->supported()->ebuild_environment_variables()->env_arch(),
+ params.profiles_explicitly_set(),
+ bool(params.master_repositories()),
+ params.ignore_deprecated_profiles());
}
}