build: check for libelogind before libsystemd

elogind provides a libsystemd wrapper which is packaged by some distros.
For whatever reason using this wrapper instead of libelogind directly
causes compiler warnings to pop up. Checking for libelogind first
ensures that this wrapper is not used.
This commit is contained in:
Isaac Freund 2020-08-08 14:27:36 +02:00 committed by Kenny Levinsen
parent e57e3e22b9
commit 48e712ffd9

View file

@ -98,15 +98,17 @@ endif
logind_provider = '' logind_provider = ''
if get_option('logind').enabled() if get_option('logind').enabled()
logind = dependency('libsystemd', required: false) # Check for libelogind first, as elogind may provide a libsystemd wrapper
# which can cause issues.
logind = dependency('libelogind', required: false)
add_project_arguments('-DLOGIND_ENABLED=1', language: 'c') add_project_arguments('-DLOGIND_ENABLED=1', language: 'c')
if logind.found() if logind.found()
add_project_arguments('-DHAVE_SYSTEMD=1', language: 'c')
logind_provider = 'systemd'
else
logind = dependency('libelogind')
add_project_arguments('-DHAVE_ELOGIND=1', language: 'c') add_project_arguments('-DHAVE_ELOGIND=1', language: 'c')
logind_provider = 'elogind' logind_provider = 'elogind'
else
logind = dependency('libsystemd')
add_project_arguments('-DHAVE_SYSTEMD=1', language: 'c')
logind_provider = 'systemd'
endif endif
private_files += [ private_files += [