From 8ed32eb1d705ee1838ac1da81ca8f1f821493c94 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Fri, 10 Oct 2025 00:53:51 +0100 Subject: [PATCH 3/8] meson: convert libsodium version detection to compile-time test Use compile-time test instead of relying on testing the libsodium version at runtime. This is done to make cross-compilation possible again. --- meson.build | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) --- a/meson.build +++ b/meson.build @@ -244,16 +244,19 @@ if not sodium_dep.found() sodium_dep = cc.find_library('sodium', required: true) sodium_version_check = '''#include int main(int argc, char **argv) { - return ((SODIUM_LIBRARY_VERSION_MAJOR > 10) || - ((SODIUM_LIBRARY_VERSION_MAJOR == 10) && - (SODIUM_LIBRARY_VERSION_MINOR >= 3))) ? 0 : 1; + #if !((SODIUM_LIBRARY_VERSION_MAJOR > 10) || \ + ((SODIUM_LIBRARY_VERSION_MAJOR == 10) && \ + (SODIUM_LIBRARY_VERSION_MINOR >= 3))) + #error "libsodium version >= 1.0.18 required" + #endif + return 0 } ''' - if cc.run( + if not cc.compiles( sodium_version_check, name: 'sodium version check', dependencies: sodium_dep, - ).returncode() != 0 + ) error('libsodium version >=1.0.18 required') endif endif