add dependencies to package output info when binary is not found
@@ -220,15 +220,17 @@ def call_system_requirements(conanfile, output):
raise ConanException("Error in system requirements")
-def raise_package_not_found_error(conan_file, conan_ref, package_id, out, recorder):
+def raise_package_not_found_error(conan_file, conan_ref, package_id, dependencies, out, recorder):
settings_text = ", ".join(conan_file.info.full_settings.dumps().splitlines())
options_text = ", ".join(conan_file.info.full_options.dumps().splitlines())
+ dependencies_text = ', '.join(dependencies)
- msg = '''Can't find a '%s' package for the specified options and settings:
+ msg = '''Can't find a '%s' package for the specified settings, options and dependencies:
- Settings: %s
- Options: %s
+- Dependencies: %s
- Package ID: %s
-''' % (conan_ref, settings_text, options_text, package_id)
+''' % (conan_ref, settings_text, options_text, dependencies_text, package_id)
out.warn(msg)
recorder.package_install_error(PackageReference(conan_ref, package_id),
INSTALL_ERROR_MISSING, msg)
@@ -268,7 +270,9 @@ class ConanInstaller(object):
output = ScopedOutput(str(conan_ref), self._out)
package_id = conan_file.info.package_id()
if node.binary == BINARY_MISSING:
- raise_package_not_found_error(conan_file, conan_ref, package_id, output, self._recorder)
+ dependencies = [str(dep.dst) for dep in node.dependencies]
+ raise_package_not_found_error(conan_file, conan_ref, package_id, dependencies,
+ out=output, recorder=self._recorder)
self._propagate_info(node, inverse_levels, deps_graph, output)
if node.binary == BINARY_SKIP: # Privates not necessary
