From 57f99a3ecc0e52d7a0128de1c470330d1aaceb21 Mon Sep 17 00:00:00 2001
From: Dominik Loidolt <dominik.loidolt@univie.ac.at>
Date: Thu, 4 Apr 2024 19:50:33 +0200
Subject: [PATCH] Make ruby a optional dependency

---
 test/meson.build       | 40 +++++++++++++++++++++-------------------
 test/tools/meson.build | 14 ++++++++------
 2 files changed, 29 insertions(+), 25 deletions(-)

diff --git a/test/meson.build b/test/meson.build
index e28f18f..00d88c8 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -48,28 +48,30 @@ subdir('cmp_max_used_bits')
 test_args = '-Wno-missing-declarations' # The test runner generator does not generate header files
 fs = import('fs')
 
-foreach test : test_cases
-  test_src = test[0]
-  test_description = test[1]
+if ruby.found()
+  foreach test : test_cases
+    test_src = test[0]
+    test_description = test[1]
 
-  test_name = fs.name(test_src).split('.')[0]
-  test_runner = test_runner_generator.process(test_src)
-  test_libs = [cmp_lib]
+    test_name = fs.name(test_src).split('.')[0]
+    test_runner = test_runner_generator.process(test_src)
+    test_libs = [cmp_lib]
 
-  if test_name == 'test_cmp_decmp' or test_name == 'test_cmp_icu'
-    test_libs += test_common_lib
-  endif
+    if test_name == 'test_cmp_decmp' or test_name == 'test_cmp_icu'
+      test_libs += test_common_lib
+    endif
 
-  test_exe = executable(test_name,
-    test_src, test_runner,
-    include_directories : incdir,
-    link_with : test_libs,
-    dependencies : unity_dep,
-    c_args : test_args,
-    build_by_default : false
-  )
+    test_exe = executable(test_name,
+      test_src, test_runner,
+      include_directories : incdir,
+      link_with : test_libs,
+      dependencies : unity_dep,
+      c_args : test_args,
+      build_by_default : false
+    )
 
-  test(test_description, test_exe)
-endforeach
+    test(test_description, test_exe)
+  endforeach
+endif
 
 subdir('bench')
diff --git a/test/tools/meson.build b/test/tools/meson.build
index 1946997..3d4d6f6 100644
--- a/test/tools/meson.build
+++ b/test/tools/meson.build
@@ -1,9 +1,11 @@
-generate_test_runner = find_program('generate_test_runner.rb')
-test_runner_generator = generator(
-  generate_test_runner,
-  output: ['@BASENAME@_Runner.c'],
-  arguments: ['@INPUT@', '@OUTPUT@']
-)
+ruby = find_program('ruby', required : false)
+if ruby.found()
+  generate_test_runner = find_program('generate_test_runner.rb')
+  test_runner_generator = generator(generate_test_runner,
+    output: ['@BASENAME@_Runner.c'],
+    arguments: ['@INPUT@', '@OUTPUT@']
+  )
+endif
 
 # add checkpatch syntax-check target
 checkpatch = find_program('checkpatch.pl', 'checkpatch', required : false)
-- 
GitLab