meson.build 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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 = ['-Wall', '-Wextra', '-pedantic', '-Werror']
  23. args = cc.get_supported_arguments([
  24. '-Werror', '-pedantic', '-pedantic-errors', '-Wall', '-Wextra', '-Wdouble-promotion',
  25. '-Wformat=2', '-Wformat-signedness', '-Wnull-dereference', '-Winfinite-recursion',
  26. '-Winit-self', '-Wmissing-include-dirs', '-Wshift-overflow=2', '-Wtrivial-auto-var-init',
  27. '-Wduplicated-branches', '-Wduplicated-cond', '-Wfloat-equal', '-Wshadow', '-Wundef',
  28. '-Wcast-qual', '-Wcast-align=strict', '-Wconversion', '-Warith-conversion',
  29. '-Wsign-conversion', '-Wlogical-op', '-Wmissing-declarations', '-Wpadded',
  30. '-Woverlength-strings', '-Wwrite-strings', '-Walloca', '-Walloc-zero', '-Wdate-time',
  31. '-Wc++-compat', '-Wdisabled-optimization', '-Winvalid-pch', '-Wmultichar',
  32. '-Wbidi-chars=any', '-Wbad-function-cast', '-Wjump-misses-init', '-Wstrict-prototypes',
  33. '-Wmissing-prototypes', '-Wnested-externs', '-Wunsuffixed-float-constants', '-Wredundant-decls'
  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)