project('lonelytiger', 'c') src = [ 'tokenizer/Tokenizer.c', 'tokenizer/Token.c', 'tokenizer/FileTokens.c', 'utils/SnuviUtils.c', 'utils/Variables.c', 'utils/Functions.c', 'utils/ByteCodePrinter.c', 'Compiler.c', 'DataType.c', 'Error.c', 'Test.c', 'vm/ByteCode.c', 'vm/Script.c', 'vm/Arrays.c', 'libraries/Time.c', 'libraries/Math.c' ] cc = meson.get_compiler('c') math_dep = cc.find_library('m', required : true) args = cc.get_supported_arguments([ '-Winit-self', '-Wconversion', '-Wformat-signedness', '-Wbad-function-cast', '-Wduplicated-branches', '-Wunsuffixed-float-constants', '-Wnested-externs', '-Walloc-zero', '-pedantic', '-Wlogical-op', '-Wbidi-chars=any', '-Wpadded', '-Wcast-qual', '-Winfinite-recursion', '-Wdate-time', '-Wstrict-prototypes', '-Warith-conversion', '-Wc++-compat', '-Wshift-overflow=2', '-Winvalid-pch', '-Wdisabled-optimization', '-Wcast-align=strict', '-Wtrivial-auto-var-init', '-Wfloat-equal', '-Wdouble-promotion', '-Walloca', '-Wmissing-include-dirs', '-Wextra', '-Wmultichar', '-Wnull-dereference', '-pedantic-errors', '-Wall', '-Wjump-misses-init', '-Wshadow', '-Wmissing-prototypes', '-Wwrite-strings', '-Wredundant-decls', '-Wsign-conversion', '-Woverlength-strings', '-Werror', '-Wmissing-declarations', '-Wduplicated-cond', '-Wformat=2', '-Wundef' ]) inc = include_directories('.') liblonelytiger = static_library('lonelytiger', sources: src, include_directories : inc, dependencies : math_dep, c_args: args) liblonelytiger_dep = declare_dependency(include_directories : inc, link_with : liblonelytiger) executable('tests', sources: src + ['Main.c'], dependencies : math_dep, c_args: args)