How to create meson.build with external libs?

9il ilyayaroshenko at gmail.com
Wed Jan 15 17:37:31 UTC 2020


On Sunday, 12 January 2020 at 22:00:33 UTC, p.shkadzko wrote:
> Ok, I am trying to meson and is struggling with meson.build 
> file. I looked up the examples page: 
> https://github.com/mesonbuild/meson/tree/master/test%20cases/d 
> which has a lot of examples but not the one that shows you how 
> to build your project with some external dependency :)
>
> Let's say we have a simple dir "myproj" with "meson.build" in 
> it and some source files like "app.d" and "helper_functions.d".
>
> ~/myproj
>    app.d
>    helper_functions.d
>    meson.build
>
> "helper_functions.d" uses let's say lubeck library which 
> according to 
> https://forum.dlang.org/thread/nghoprwkihazjikyhshz@forum.dlang.org is supported by meson.
>
> Here is my meson.build:
> -----------------------
> project('demo', 'd',
>   version : '0.1',
>   default_options : ['warning_level=3']
>   )
>
> lubeck = dependency('lubeck', version: '>=1.1.7')
> ed = executable('mir_quickstart', 'app.d', dependencies: 
> lubeck, install : true)
>
>
> However, when I try to build it I get the following error:
> -----
> $ meson build
> The Meson build system
> Version: 0.52.1
> Source dir: /home/user/dev/github/demo
> Build dir: /home/user/dev/github/demo/build
> Build type: native build
> Project name: demo
> Project version: 0.1
> D compiler for the host machine: ldc2 (llvm 1.18.0 "LDC - the 
> LLVM D compiler (1.18.0):")
> D linker for the host machine: GNU ld.gold 2.33.1
> Host machine cpu family: x86_64
> Host machine cpu: x86_64
> Found pkg-config: /usr/bin/pkg-config (1.6.3)
> Found CMake: /usr/bin/cmake (3.16.2)
> Run-time dependency lubeck found: NO (tried pkgconfig and cmake)
>
> meson.build:8:0: ERROR: Dependency "lubeck" not found, tried 
> pkgconfig and cmake
>
> A full log can be found at 
> /home/user/dev/github/demo/build/meson-l
> -----
>
> What do I need to do in order to build the project with 
> "lubeck" dependency in meson?

Seems like you have missed the *.wrap files in subprojects 
folder. It's a bad idea to install D meson libs into system as 
probably you will want to control versions easily.

You need all *wrap files recursively.
Check this 
https://github.com/kaleidicassociates/lubeck/tree/master/subprojects
and add a wrap file for Lubeck.
You can specify tags instead of the master branches. - it is 
recommended for stable work.

Ilya


More information about the Digitalmars-d-learn mailing list