Skip to content

Commit 59c6a83

Browse files
committedMar 4, 2025
Use hook manager from conan API
Signed-off-by: Uilian Ries <uilianries@gmail.com>
1 parent 0615850 commit 59c6a83

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed
 

‎conan/internal/conan_app.py

+1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ def __init__(self, conan_api):
4444
"""
4545
global_conf = conan_api.config.global_conf
4646
self.global_conf = global_conf
47+
self.conan_api = conan_api
4748
cache_folder = conan_api.home_folder
4849
self.cache_folder = cache_folder
4950
self.cache = PkgCache(self.cache_folder, global_conf)

‎conans/client/graph/compatibility.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,14 @@ def _should_migrate_file(file_path):
106106

107107
class BinaryCompatibility:
108108

109-
def __init__(self, compatibility_plugin_folder):
109+
def __init__(self, compatibility_plugin_folder, hook_manager):
110110
compatibility_file = os.path.join(compatibility_plugin_folder, "compatibility.py")
111111
if not os.path.exists(compatibility_file):
112112
raise ConanException("The 'compatibility.py' plugin file doesn't exist. If you want "
113113
"to disable it, edit its contents instead of removing it")
114114
mod, _ = load_python_file(compatibility_file)
115115
self._compatibility = mod.compatibility
116+
self._hook_manager = hook_manager
116117

117118
def compatibles(self, conanfile):
118119
compat_infos = []
@@ -143,7 +144,7 @@ def compatibles(self, conanfile):
143144
conanfile.settings = c.settings
144145
conanfile.settings_target = c.settings_target
145146
conanfile.options = c.options
146-
run_validate_package_id(conanfile)
147+
run_validate_package_id(conanfile, self._hook_manager)
147148
pid = c.package_id()
148149
if pid not in result and not c.invalid:
149150
result[pid] = c

‎conans/client/graph/graph_binaries.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,11 @@ def __init__(self, conan_app, global_conf):
2929
self._home_folder = conan_app.cache_folder
3030
self._global_conf = global_conf
3131
self._remote_manager = conan_app.remote_manager
32+
self._hook_manager = conan_app.conan_api.config.hook_manager
3233
# These are the nodes with pref (not including PREV) that have been evaluated
3334
self._evaluated = {} # {pref: [nodes]}
3435
compat_folder = HomePaths(conan_app.cache_folder).compatibility_plugin_path
35-
self._compatibility = BinaryCompatibility(compat_folder)
36+
self._compatibility = BinaryCompatibility(compat_folder, self._hook_manager)
3637
unknown_mode = global_conf.get("core.package_id:default_unknown_mode", default="semver_mode")
3738
non_embed = global_conf.get("core.package_id:default_non_embed_mode", default="minor_mode")
3839
# recipe_revision_mode already takes into account the package_id
@@ -397,7 +398,7 @@ def _config_version(self):
397398
return RequirementsInfo(result)
398399

399400
def _evaluate_package_id(self, node, config_version):
400-
compute_package_id(node, self._modes, config_version=config_version)
401+
compute_package_id(node, self._modes, config_version, self._hook_manager)
401402

402403
# TODO: layout() execution don't need to be evaluated at GraphBuilder time.
403404
# it could even be delayed until installation time, but if we got enough info here for

0 commit comments

Comments
 (0)
Failed to load comments.