[libvirt PATCH 06/15] meson: properly handle readline if it's explicitly disabled

Pavel Hrdina phrdina at redhat.com
Thu Oct 8 13:58:55 UTC 2020


If readline is detected using pkg-config it would ignore the readline
option.

Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
---
 meson.build | 36 ++++++++++++++++++++----------------
 1 file changed, 20 insertions(+), 16 deletions(-)

diff --git a/meson.build b/meson.build
index 0941be8136..c1f56e8fdb 100644
--- a/meson.build
+++ b/meson.build
@@ -1243,26 +1243,30 @@ endif
 
 # readline 7.0 is the first version which includes pkg-config support
 readline_version = '7.0'
-readline_dep = dependency('readline', version: '>=' + readline_version, required: false)
-if not readline_dep.found()
-  readline_dep = cc.find_library('readline', required: get_option('readline'))
+if not get_option('readline').disabled()
+  readline_dep = dependency('readline', version: '>=' + readline_version, required: false)
+  if not readline_dep.found()
+    readline_dep = cc.find_library('readline', required: get_option('readline'))
 
-  if readline_dep.found()
-    # This variable is present in all reasonable (5.0+) readline versions;
-    # however, the macOS base system contains a library called libedit which
-    # takes over the readline name despite lacking many of its features. We
-    # want to make sure we only enable readline support when linking against
-    # the actual readline library, and the availability of this specific
-    # variable is as good a witness for that fact as any.
-    correct_rl = cc.has_header_symbol('readline/readline.h', 'rl_completion_quote_character', prefix: '#include <stdio.h>')
-    if not correct_rl
-      if get_option('readline').enabled()
-        error('readline is missing rl_completion_quote_character')
-      else
-        readline_dep = dependency('', required: false)
+    if readline_dep.found()
+      # This variable is present in all reasonable (5.0+) readline versions;
+      # however, the macOS base system contains a library called libedit which
+      # takes over the readline name despite lacking many of its features. We
+      # want to make sure we only enable readline support when linking against
+      # the actual readline library, and the availability of this specific
+      # variable is as good a witness for that fact as any.
+      correct_rl = cc.has_header_symbol('readline/readline.h', 'rl_completion_quote_character', prefix: '#include <stdio.h>')
+      if not correct_rl
+        if get_option('readline').enabled()
+          error('readline is missing rl_completion_quote_character')
+        else
+          readline_dep = dependency('', required: false)
+        endif
       endif
     endif
   endif
+else
+  readline_dep = dependency('', required: false)
 endif
 if readline_dep.found()
   # Gross kludge for readline include path obtained through pkg-config.
-- 
2.26.2




More information about the libvir-list mailing list