]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Meson: Lua and lua.hpp
authorFred Morcos <fred.morcos@open-xchange.com>
Tue, 6 Jun 2023 10:11:33 +0000 (12:11 +0200)
committerFred Morcos <fred.morcos@open-xchange.com>
Wed, 20 Mar 2024 12:28:23 +0000 (13:28 +0100)
meson.build
meson_options.txt [new file with mode: 0644]

index f893217f6a4087c6a4ede933f7a5b012ee0be957..d0e96e55a2a0cc0c5d1a799a9f4be4b05e3c955f 100644 (file)
@@ -170,6 +170,34 @@ if cxx.has_function('strerror_r', prefix: '#include <string.h>') == true
   endif
 endif
 
+# Lua ------------------------------------------------------------------------------------
+lua_opt = get_option('lua')
+dep_lua = dependency('', required: false)
+
+if lua_opt == 'auto' or lua_opt == 'luajit'
+  dep_lua = dependency('luajit', version: '>= 2.0.2', required: lua_opt == 'luajit', not_found_message: 'LuaJIT not found')
+endif
+
+if not dep_lua.found() and (lua_opt == 'auto' or lua_opt == 'lua')
+  variants = ['lua5.3', 'lua-5.3', 'lua53', 'lua5.2', 'lua-5.2', 'lua52', 'lua5.1', 'lua-5.1', 'lua51', 'lua']
+  foreach variant: variants
+    dep_lua = dependency(variant, version: '>= 5.1', required: false)
+    if dep_lua.found()
+      break
+    endif
+  endforeach
+endif
+
+if not dep_lua.found()
+  error('No Lua implementation was found')
+endif
+
+conf.set('HAVE_LUA', 1, description: 'Whether we have Lua')
+
+if cxx.has_header('lua.hpp', dependencies: dep_lua)
+  conf.set('HAVE_LUA_HPP', 1, description: 'Whether we have lua.hpp')
+endif
+
 # Generate config.h ----------------------------------------------------------------------
 config_h = configure_file(configuration: conf, output: 'config.h')
 
@@ -177,6 +205,7 @@ config_h = configure_file(configuration: conf, output: 'config.h')
 deps = []
 deps += dep_atomics
 deps += dep_threads
+deps += dep_lua
 
 # TODO: Other source files
 auth = executable('pdns', config_h, dependencies: deps, export_dynamic: true)
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644 (file)
index 0000000..b0882c5
--- /dev/null
@@ -0,0 +1 @@
+option('lua', type: 'combo', choices: ['auto', 'luajit', 'lua'], value: 'auto', description: 'Which Lua implementation to use')