Files
dull/meson.build
2025-05-01 11:38:57 -05:00

69 lines
2.0 KiB
Meson

project('quickjs', 'c')
cc = meson.get_compiler('c')
deps = []
deps += cc.find_library('m', required:false)
add_project_arguments('-DCONFIG_VERSION="2024-02-14"', language : 'c')
if get_option('bignum')
add_project_arguments('-DCONFIG_BIGNUM', language : 'c')
endif
if get_option('trace')
add_project_arguments('-DTRACY_ENABLE', language:'c')
deps += dependency('tracy', static:true)
endif
lib_sources = ['libbf.c', 'libregexp.c', 'quickjs.c', 'libunicode.c', 'cutils.c']
libquickjs = library('quickjs',
lib_sources,
dependencies: deps
)
quickjs_dep = declare_dependency(link_with: libquickjs, include_directories: include_directories('.'), dependencies: deps)
threads = dependency('threads')
qjsc = executable('qjsc',
'qjsc.c', 'quickjs-libc.c',
dependencies: [quickjs_dep,threads],
build_by_default:false
)
qjscalc_c = custom_target(
'qjscalc_c',
output: 'qjscalc.c',
input: 'qjscalc.js',
command: [qjsc, '-fbignum', '-c', '-o', '@OUTPUT@', '@INPUT@'],
)
qjsrepl_c = custom_target(
'qjsrepl_c',
output: 'repl.c',
input: 'repl.js',
command: [qjsc, '-fbignum', '-c', '-o', '@OUTPUT@', '-m', '@INPUT@'],
)
qjs = executable('qjs',
'qjs.c', 'quickjs-libc.c', qjscalc_c, qjsrepl_c,
dependencies: [quickjs_dep, threads],
build_by_default:false
)
test_root = join_paths(meson.project_source_root(), 'tests')
test('closure', qjs, args: ['test_closure.js'], workdir: test_root)
test('language', qjs, args: ['test_language.js'], workdir: test_root)
test('builtin', qjs, args: ['test_builtin.js'], workdir: test_root)
test('loop', qjs, args: ['test_loop.js'], workdir: test_root)
test('std', qjs, args: ['test_std.js'], workdir: test_root)
test('worker', qjs, args: ['test_worker.js'], workdir: test_root)
test('op_overloading', qjs, args: ['--bignum', 'test_op_overloading.js'], workdir: test_root)
test('bignum', qjs, args: ['--bignum', 'test_bignum.js'], workdir: test_root)
test('qjscalc', qjs, args: ['--qjscalc', 'test_qjscalc.js'], workdir: test_root)
benchmark('microbench', qjs, args: ['microbench.js'], workdir: test_root, timeout: 0)