project('valaq', 'vala', 'c', version: '1.0.0', license: 'GPLv3', default_options: ['warning_level=2', 'werror=false'], ) # Dependencies glib_dep = dependency('glib-2.0', version: '>= 2.56') gobject_dep = dependency('gobject-2.0', version: '>= 2.56') json_glib_dep = dependency('json-glib-1.0', version: '>= 1.0') gee_dep = dependency('gee-0.8', version: '>= 0.20.0') libvala_dep = dependency('libvala-0.56', version: '>= 0.56.0') jsonrpc_dep = dependency('jsonrpc-glib-1.0') mcp_dep = dependency('mcp-vala') # Source files sources = files( 'src/main.vala', 'src/cli/argument-parser.vala', 'src/cli/command-handler.vala', 'src/core/vapi-parser.vala', 'src/core/symbol-navigator.vala', 'src/core/symbol-model.vala', 'src/output/formatter.vala', 'src/output/text-formatter.vala', 'src/output/json-formatter.vala', 'src/utils/file-utils.vala', 'src/utils/error-handling.vala', 'src/mcp/server.vala', 'src/mcp/command-handler.vala', 'src/mcp/vapi-resource-provider.vala', ) # Vala compilation flags vala_args = [ '--target-glib=2.56', '--pkg', 'glib-2.0', '--pkg', 'gobject-2.0', '--pkg', 'json-glib-1.0', '--pkg', 'gee-0.8', '--pkg', 'jsonrpc-glib-1.0', '--pkg', 'mcp-vala', '--pkg', 'libvala-0.56', ] # Executable executable('valaq', sources, dependencies: [glib_dep, gobject_dep, json_glib_dep, gee_dep, libvala_dep, mcp_dep, jsonrpc_dep], vala_args: vala_args, install: true, ) # Install man page install_man('man/valaq.1') # Test configuration test_dependencies = [glib_dep, gobject_dep, json_glib_dep, gee_dep, libvala_dep, mcp_dep, jsonrpc_dep] test_sources = [ 'tests/test-vapi-parser.vala', 'tests/test-symbol-navigator.vala', 'tests/test-output-formatters.vala', ] foreach test_file : test_sources test_name = test_file.split('/')[-1].split('.')[0] test(test_name, executable(test_name, test_file, dependencies: test_dependencies, vala_args: vala_args, ) ) endforeach