meson.build 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. project('valaq', 'vala', 'c',
  2. version: '1.0.0',
  3. license: 'GPLv3',
  4. default_options: ['warning_level=2', 'werror=false'],
  5. )
  6. # Dependencies
  7. glib_dep = dependency('glib-2.0', version: '>= 2.56')
  8. gobject_dep = dependency('gobject-2.0', version: '>= 2.56')
  9. json_glib_dep = dependency('json-glib-1.0', version: '>= 1.0')
  10. gee_dep = dependency('gee-0.8', version: '>= 0.20.0')
  11. libvala_dep = dependency('libvala-0.56', version: '>= 0.56.0')
  12. jsonrpc_dep = dependency('jsonrpc-glib-1.0')
  13. mcp_dep = dependency('mcp-vala')
  14. # Source files
  15. sources = files(
  16. 'src/main.vala',
  17. 'src/cli/argument-parser.vala',
  18. 'src/cli/command-handler.vala',
  19. 'src/core/vapi-parser.vala',
  20. 'src/core/symbol-navigator.vala',
  21. 'src/core/symbol-model.vala',
  22. 'src/output/formatter.vala',
  23. 'src/output/text-formatter.vala',
  24. 'src/output/json-formatter.vala',
  25. 'src/utils/file-utils.vala',
  26. 'src/utils/error-handling.vala',
  27. 'src/mcp/server.vala',
  28. 'src/mcp/command-handler.vala',
  29. 'src/mcp/vapi-resource-provider.vala',
  30. )
  31. # Vala compilation flags
  32. vala_args = [
  33. '--target-glib=2.56',
  34. '--pkg', 'glib-2.0',
  35. '--pkg', 'gobject-2.0',
  36. '--pkg', 'json-glib-1.0',
  37. '--pkg', 'gee-0.8',
  38. '--pkg', 'jsonrpc-glib-1.0',
  39. '--pkg', 'mcp-vala',
  40. '--pkg', 'libvala-0.56',
  41. ]
  42. # Executable
  43. executable('valaq',
  44. sources,
  45. dependencies: [glib_dep, gobject_dep, json_glib_dep, gee_dep, libvala_dep, mcp_dep, jsonrpc_dep],
  46. vala_args: vala_args,
  47. install: true,
  48. )
  49. # Install man page
  50. install_man('man/valaq.1')
  51. # Test configuration
  52. test_dependencies = [glib_dep, gobject_dep, json_glib_dep, gee_dep, libvala_dep, mcp_dep, jsonrpc_dep]
  53. test_sources = [
  54. 'tests/test-vapi-parser.vala',
  55. 'tests/test-symbol-navigator.vala',
  56. 'tests/test-output-formatters.vala',
  57. ]
  58. foreach test_file : test_sources
  59. test_name = test_file.split('/')[-1].split('.')[0]
  60. test(test_name,
  61. executable(test_name,
  62. test_file,
  63. dependencies: test_dependencies,
  64. vala_args: vala_args,
  65. )
  66. )
  67. endforeach