From 6a426692def2da13fcc1159c8705e7455bb6f834 Mon Sep 17 00:00:00 2001 From: Jan200101 Date: Mon, 19 Jun 2023 19:44:06 +0200 Subject: Add meson build system --- meson.build | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ meson_options.txt | 1 + 2 files changed, 59 insertions(+) create mode 100644 meson.build create mode 100644 meson_options.txt diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..b4a8a04 --- /dev/null +++ b/meson.build @@ -0,0 +1,58 @@ +project('lpm', + ['c'], + version : '1.0.4', + license : 'LPM', + meson_version : '>= 0.56', +) + +cc = meson.get_compiler('c') + +zlib_dep = dependency('zlib') +mbedtls_dep = dependency('mbedtls', required: false) +libgit2_dep = dependency('libgit2') +libzip_dep = dependency('libzip') +lua_dep = dependency('lua') +microtar_dep = dependency('microtar', required: false) + +if not mbedtls_dep.found() + mbedtls_dep = [ + cc.find_library('mbedtls'), + cc.find_library('mbedx509'), + cc.find_library('mbedcrypto'), + ] +endif + +if not microtar_dep.found() + microtar_lib = static_library('microtar', files('lib/microtar/src/microtar.c')) + + microtar_dep = declare_dependency( + link_whole: [microtar_lib], + include_directories: ['lib/microtar/src'] + ) + + message('Using git module for microtar') +endif + +lpm_source = files('src/lpm.c') +cargs = [] +if get_option('static') + lua_exe = find_program('lua') + xxd_exe = find_program('xxd') + + lpm_luac = configure_file( + capture: false, + command: [lua_exe, '-e', 'io.open("@OUTPUT0@", "wb"):write(string.dump(assert(loadfile("@INPUT0@"))))'], + input: files('src/lpm.lua'), + output: 'lpm.luac' + ) + + lpm_source += configure_file( + capture: true, + command: [xxd_exe, '-i', '@INPUT@'], + input: lpm_luac, + output: 'lpm.lua.c' + ) + +endif + +executable('lpm', lpm_source, dependencies: [zlib_dep, mbedtls_dep, libgit2_dep, libzip_dep, lua_dep, microtar_dep]) \ No newline at end of file diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 0000000..068c37b --- /dev/null +++ b/meson_options.txt @@ -0,0 +1 @@ +option('static', type : 'boolean', value : false, description: 'Build the pre-packaged lua file into the executable.') -- cgit v1.2.3