meson.build 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. project('lonelytiger', 'c')
  2. src = [
  3. 'tokenizer/Tokenizer.c',
  4. 'tokenizer/Token.c',
  5. 'tokenizer/FileTokens.c',
  6. 'utils/SnuviUtils.c',
  7. 'utils/Variables.c',
  8. 'utils/Functions.c',
  9. 'utils/ByteCodePrinter.c',
  10. 'Compiler.c',
  11. 'DataType.c',
  12. 'Error.c',
  13. 'Test.c',
  14. 'vm/ByteCode.c',
  15. 'vm/Script.c',
  16. 'vm/Arrays.c',
  17. 'libraries/Time.c',
  18. 'libraries/Math.c'
  19. ]
  20. cc = meson.get_compiler('c')
  21. math_dep = cc.find_library('m', required : true)
  22. args = cc.get_supported_arguments([
  23. '-Winit-self', '-Wconversion', '-Wformat-signedness', '-Wbad-function-cast',
  24. '-Wduplicated-branches', '-Wunsuffixed-float-constants', '-Wnested-externs',
  25. '-Walloc-zero', '-pedantic', '-Wlogical-op', '-Wbidi-chars=any', '-Wpadded',
  26. '-Wcast-qual', '-Winfinite-recursion', '-Wdate-time', '-Wstrict-prototypes',
  27. '-Warith-conversion', '-Wc++-compat', '-Wshift-overflow=2', '-Winvalid-pch',
  28. '-Wdisabled-optimization', '-Wcast-align=strict', '-Wtrivial-auto-var-init',
  29. '-Wfloat-equal', '-Wdouble-promotion', '-Walloca', '-Wmissing-include-dirs',
  30. '-Wextra', '-Wmultichar', '-Wnull-dereference', '-pedantic-errors', '-Wall',
  31. '-Wjump-misses-init', '-Wshadow', '-Wmissing-prototypes', '-Wwrite-strings',
  32. '-Wredundant-decls', '-Wsign-conversion', '-Woverlength-strings', '-Werror',
  33. '-Wmissing-declarations', '-Wduplicated-cond', '-Wformat=2', '-Wundef'
  34. ])
  35. inc = include_directories('.')
  36. liblonelytiger = static_library('lonelytiger',
  37. sources: src,
  38. include_directories : inc,
  39. dependencies : math_dep,
  40. c_args: args)
  41. liblonelytiger_dep = declare_dependency(include_directories : inc, link_with : liblonelytiger)
  42. executable('tests',
  43. sources: src + ['Main.c'],
  44. dependencies : math_dep,
  45. c_args: args)