aboutsummaryrefslogtreecommitdiff
path: root/meson.build
blob: b72e48689816c0959aa7e773de1d7463d4c1da71 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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')
cflags = []
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, '-n', 'lpm_luac', '-i', '@INPUT@'],
        input: lpm_luac,
        output: 'lpm.lua.c'
    )

    cflags += '-DLPM_STATIC'

endif

executable('lpm',
    lpm_source,
    dependencies: [zlib_dep, mbedtls_dep, libgit2_dep, libzip_dep, lua_dep, microtar_dep],
    c_args: cflags
)