From 8a0833ec944ed667843f577648528a2fea9e4a00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert-Andr=C3=A9=20Mauchin?= Date: Mon, 13 Aug 2018 22:28:46 +0200 Subject: [PATCH 1/2] Add Meson build definition --- .travis.yml | 14 ++++++ meson.build | 77 +++++++++++++++++++++++++++++++++ subprojects/stdx-allocator.wrap | 4 ++ 3 files changed, 95 insertions(+) create mode 100644 meson.build create mode 100644 subprojects/stdx-allocator.wrap diff --git a/.travis.yml b/.travis.yml index ba2b0219..2fa89e7a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,9 +12,23 @@ matrix: addons: apt: packages: + - pkg-config - libevent-dev + +install: + - pyenv global system 3.6 + - pip3 install 'meson==0.47' + - mkdir .ntmp + - curl -L https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip -o .ntmp/ninja-linux.zip + - unzip .ntmp/ninja-linux.zip -d .ntmp + +before_script: + export PATH=$PATH:$PWD/.ntmp + script: # note: for dlang project tester, which doesn't clone automatically + - meson build && ninja -j8 -C build + - ninja -j8 -C build test -v - git submodule update --init --recursive # - cd test && ./run_tests.sh && cd .. diff --git a/meson.build b/meson.build new file mode 100644 index 00000000..d0ee5f6a --- /dev/null +++ b/meson.build @@ -0,0 +1,77 @@ + project('dparse', 'd', + meson_version: '>=0.44', + license: 'BSL-1.0', + version: '0.9.3' +) + +project_soversion = '0' + +pkgc = import('pkgconfig') +allocator_dep = dependency('stdx-allocator', version: '>= 2.77', fallback: ['stdx-allocator', 'allocator_dep']) + +# +# Sources +# +dparse_src = [ + 'src/dparse/ast.d', + 'src/dparse/entities.d', + 'src/dparse/formatter.d', + 'src/dparse/lexer.d', + 'src/dparse/parser.d', + 'src/dparse/rollback_allocator.d', + 'src/dparse/stack_buffer.d', + 'src/std/experimental/lexer.d', +] + +src_dir = include_directories('src/') + +# +# Targets +# +dparse_lib = library('dparse', + [dparse_src], + include_directories: [src_dir], + install: true, + version: meson.project_version(), + soversion: project_soversion, + dependencies: [allocator_dep] +) + +pkgc.generate(name: 'dparse', + libraries: [dparse_lib], + subdirs: 'd/dparse', + requires: ['stdx-allocator'], + version: meson.project_version(), + description: 'Library for lexing and parsing D source code.' +) + +# for use by others which embed this as subproject +dparse_dep = declare_dependency( + link_with: [dparse_lib], + include_directories: [src_dir], + dependencies: [allocator_dep] +) + +# +# Tests +# +if meson.get_compiler('d').get_id() == 'llvm' + extra_args = ['-main', '-link-defaultlib-shared'] +else + extra_args = ['-main'] +endif + +dparse_test_exe = executable('test_dparse', + [dparse_src], + include_directories: [src_dir], + dependencies: [allocator_dep], + d_unittest: true, + link_args: extra_args, +) +test('test_dparse', dparse_test_exe) + +# +# Install +# +install_subdir('src/dparse/', install_dir: 'include/d/dparse/') +install_subdir('src/std/', install_dir: 'include/d/dparse/') diff --git a/subprojects/stdx-allocator.wrap b/subprojects/stdx-allocator.wrap new file mode 100644 index 00000000..bf2ba17e --- /dev/null +++ b/subprojects/stdx-allocator.wrap @@ -0,0 +1,4 @@ +[wrap-git] +directory = stdx-allocator +url = https://github.com/dlang-community/stdx-allocator.git +revision = head From 0d69e9af154ca5e2d83693f345ba027585f4c621 Mon Sep 17 00:00:00 2001 From: BBasile Date: Sat, 1 Sep 2018 04:54:49 +0200 Subject: [PATCH 2/2] update version --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index d0ee5f6a..ab113687 100644 --- a/meson.build +++ b/meson.build @@ -1,7 +1,7 @@ project('dparse', 'd', meson_version: '>=0.44', license: 'BSL-1.0', - version: '0.9.3' + version: '0.9.4' ) project_soversion = '0'