2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-22 01:49:48 +00:00

[#3732] Detect mit krb5 in meson

This commit is contained in:
Andrei Pavel 2025-04-02 21:56:39 +03:00
parent 5eb4ec8f9b
commit 2c8882ae18
No known key found for this signature in database
GPG Key ID: D4E804481939CB21
2 changed files with 29 additions and 24 deletions

View File

@ -7,6 +7,6 @@ ddns_gss_tsig_testutils_lib = static_library(
'ddns-gss-tsig-testutils',
'gss_tsig_dns_server.cc',
cpp_args: [f'-DTEST_DATA_DIR="@current_source_dir@"'],
dependencies: [GTEST_DEP, CRYPTO_DEP],
dependencies: [CRYPTO_DEP, GTEST_DEP, KRB5_DEP],
include_directories: [include_directories('.'), include_directories('..')] + INCLUDES,
)

View File

@ -1,28 +1,33 @@
project('krb5')
current_source_dir = meson.current_source_dir()
krb5 = disabler()
krb5_config = find_program('krb5-config', required: false)
if krb5_config.found()
# Detect vendor.
vendor_cmd = run_command([krb5_config, '--vendor'], check: false)
if vendor_cmd.returncode() != 0
path = krb5_config.full_path()
message(f'Very old and not usable config script at @path@')
else
vendor = vendor_cmd.stdout().strip()
endif
foreach krb5_config_name : ['krb5-config', 'krb5-config.mit']
krb5_config = find_program(krb5_config_name, required: false)
cflags = run_command([krb5_config, '--cflags', 'gssapi'], check: false)
libs = run_command([krb5_config, '--libs', 'gssapi'], check: false)
version = run_command([krb5_config, '--version'], check: false)
if vendor_cmd.returncode() == 0 and cflags.returncode() == 0 and libs.returncode() == 0 and version.returncode() == 0
krb5_version = version.stdout().strip()
krb5 = declare_dependency(
compile_args: cflags.stdout().split(),
link_args: libs.stdout().split(),
version: krb5_version,
variables: {'vendor': vendor},
)
if krb5_config.found()
# Detect vendor.
vendor_cmd = run_command([krb5_config, '--vendor'], check: false)
if vendor_cmd.returncode() != 0
path = krb5_config.full_path()
message(f'Very old and not usable config script at @path@')
else
vendor = vendor_cmd.stdout().strip()
endif
cflags = run_command([krb5_config, '--cflags', 'gssapi'], check: false)
libs = run_command([krb5_config, '--libs', 'gssapi'], check: false)
version = run_command([krb5_config, '--version'], check: false)
if vendor_cmd.returncode() == 0 and cflags.returncode() == 0 and libs.returncode() == 0 and version.returncode() == 0
krb5_version = version.stdout().strip()
krb5 = declare_dependency(
compile_args: cflags.stdout().split(),
link_args: libs.stdout().split(),
version: krb5_version,
variables: {'vendor': vendor},
)
endif
endif
endif
if krb5.found()
break
endif
endforeach