Skip to content

Commit

Permalink
glib: Depend on elfutils instead of libelf where possible
Browse files Browse the repository at this point in the history
The libelf library is antiquated.
The elfutils package is actively maintained and provides its own libelf implementation, which is the standard implementation on Linux.
Since elfutils can not be used everywhere, only use it for supported configurations.
  • Loading branch information
jwillikers committed May 21, 2024
1 parent 9efd5de commit 0c644a8
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions recipes/glib/all/conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,10 @@ def requirements(self):
self.requires("libffi/3.4.4")
self.requires("pcre2/10.42")
if self.options.get_safe("with_elf"):
self.requires("libelf/0.8.13")
if is_apple_os(self) or self.settings.compiler not in ["clang", "gcc"]:
self.requires("libelf/0.8.13")
else:
self.requires("elfutils/0.190")
if self.options.get_safe("with_mount"):
self.requires("libmount/2.39")
if self.options.get_safe("with_selinux"):
Expand Down Expand Up @@ -230,7 +233,11 @@ def package_info(self):
self.cpp_info.components["gio-2.0"].requires.append("libselinux::libselinux")

if self.options.get_safe("with_elf"):
self.cpp_info.components["gresource"].requires.append("libelf::libelf") # this is actually an executable
# gresource is actually an executable
if is_apple_os(self) or self.settings.compiler not in ["clang", "gcc"]:
self.cpp_info.components["gresource"].requires.append("libelf::libelf")
else:
self.cpp_info.components["gresource"].requires.append("elfutils::libelf")

self.env_info.GLIB_COMPILE_SCHEMAS = os.path.join(self.package_folder, "bin", "glib-compile-schemas")
self.env_info.PATH.append(os.path.join(self.package_folder, "bin"))
Expand Down

0 comments on commit 0c644a8

Please sign in to comment.