From 8ed32eb1d705ee1838ac1da81ca8f1f821493c94 Mon Sep 17 00:00:00 2001
From: Daniel Golle <daniel@makrotopia.org>
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 <sodium.h>
   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
