diff options
| author | Joel Klinghed <the_jk@spawned.biz> | 2025-09-28 22:53:30 +0200 |
|---|---|---|
| committer | Joel Klinghed <the_jk@spawned.biz> | 2025-09-29 09:39:17 +0200 |
| commit | 1e9e51dae1c01bab7562911b958c47528b8011c8 (patch) | |
| tree | 73e0c97545d1cf833a4205c8ced41c822b4bb348 /meson.build | |
| parent | 0ca22c7d6d650c80906bd1217fccf32066cc2502 (diff) | |
java: Add tokens
Only parses Java 8 tokens for now.
Diffstat (limited to 'meson.build')
| -rw-r--r-- | meson.build | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/meson.build b/meson.build index 1607088..7782285 100644 --- a/meson.build +++ b/meson.build @@ -12,6 +12,23 @@ project( ], ) +cpp_flags = [] +cpp_optional_flags = [] +if get_option('buildtype') == 'release' + # If asserts are disabled parameters and variables used for only that + # end up causing warnings + cpp_optional_flags += ['-Wno-unused-parameter', '-Wno-unused-variable', + '-Wno-unused-but-set-variable'] + cpp_flags += '-DNDEBUG' +endif +cpp = meson.get_compiler('cpp') +foreach flag : cpp_optional_flags + if cpp.has_argument(flag) + cpp_flags += flag + endif +endforeach +add_project_arguments([cpp_flags], language: 'cpp') + conf_data = configuration_data() conf_data.set('version', meson.project_version()) configure_file(input: 'src/config.h.in', @@ -191,6 +208,34 @@ java_uescape_dep = declare_dependency( dependencies: [buffer_dep, uio_dep], ) +src_lib = library( + 'src', + sources: [ + 'src/errors.cc', + 'src/errors.hh', + 'src/location.cc', + 'src/location.hh', + ], + include_directories: inc, +) +src_dep = declare_dependency( + link_with: src_lib, +) + +grammar_lib = library( + 'grammar', + sources: [ + 'src/grammar.cc', + 'src/grammar.hh', + ], + include_directories: inc, + dependencies: [io_dep, src_dep, str_dep], +) +grammar_dep = declare_dependency( + link_with: grammar_lib, + dependencies: [io_dep, src_dep, str_dep], +) + prefix_tree_lib = library( 'prefix_tree', sources: [ @@ -201,6 +246,69 @@ prefix_tree_lib = library( ) prefix_tree_dep = declare_dependency(link_with: prefix_tree_lib) +gen_tokens = executable( + 'gen_tokens', + sources: [ + 'src/gen_tokens.cc', + ], + include_directories: inc, + install : false, + dependencies : [ + args_dep, + grammar_dep, + prefix_tree_dep, + src_dep, + ], +) + +java_versions = [ + 'java-8', +] + +java_unicode_versions = { + 'java-8': '6.2.0', +} + +java_tokens_sources = [] +foreach java_version : java_versions + java_unicode_version = 'u' + java_unicode_versions[java_version].replace('.', '_') + java_tokens_sources += custom_target( + 'gen-tokens-' + java_version, + input: ['data/' + java_version + '/tokens.grammar'], + output: ['java_tokens_' + java_version + '.hh', + 'java_tokens_' + java_version + '.cc'], + command : [gen_tokens, '--namespace', + java_version.replace('.', '_').replace('-', '_'), + '--unicode', java_unicode_version, + '@INPUT@', '@OUTPUT@']) +endforeach + +java_lib = library( + 'java', + sources: [ + 'src/java_tokens.hh', + 'src/java_tokens.cc', + 'src/java_version.hh', + java_tokens_sources, + ], + include_directories: inc, + dependencies: [ + java_uescape_dep, + prefix_tree_dep, + src_dep, + str_dep, + uline_dep, + ] +) +java_dep = declare_dependency(link_with: java_lib, + dependencies: [ + java_uescape_dep, + prefix_tree_dep, + src_dep, + str_dep, + uline_dep, + ]) + jkc = executable( 'jkc', sources: [ @@ -351,12 +459,33 @@ test('java_uescape', executable( ], )) +test('java_tokens', executable( + 'test_java_tokens', + sources: ['test/java_tokens.cc'], + include_directories: inc, + dependencies: [ + java_dep, + test_dependencies, + ], +)) + test('prefix_tree', executable( 'test_prefix_tree', sources: ['test/prefix_tree.cc'], include_directories: inc, dependencies: [ prefix_tree_dep, + str_dep, + test_dependencies, + ], +)) + +test('errors', executable( + 'test_errors', + sources: ['test/errors.cc'], + include_directories: inc, + dependencies: [ + src_dep, test_dependencies, ], )) |
