www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Requesting some feedback for my Dub module for Meson

Hi, I am writing regarding my Dub module for Meson.
I wanted to check with the D community before my changes get 

The module allows you to use dependencies provided by Dub in 
Meson. It also allows you to automatically generate/update a 
dub.json file for your Meson project.

Due Meson's policies, we can't download or build anything using 
an external tool (Dub, in this case). My module only uses Dub as 
a dependency resolver, kinda like pkgconfig. You will need to 
build the dependencies before running meson.

Something to be aware when interfacing Dub and Meson is the 
compiler. The libraries that we are linking should be built with 
the same compiler Meson is using. This can be achieved as follows.

dub fetch vibe-d
dub build vibe-d compiler=ldc2
DC="ldc2" meson builddir

You can then use Dub to resolve the dependency as follows.

vibed_dep = dependency('vibe-d', method: 'dub')

You can generate/update a dub.json file for your project as 

dub = import('dub')
   authors: 'Filipe Laíns',
   description: 'Test executable',
   copyright: 'Copyright © 2018, Filipe Laíns',
   license: 'MIT',
   sourceFiles: 'test.d',
   targetType: 'executable',
   dependencies: vibed_dep

The only required arguments for generate_dub_file() are the 
project name and the dub.json folder path.
All the other arguments can be passed as dictionaries.

key: 'value'

Currently, the module ignores configurations, subConfigurations, 
and buildTypes because that would require unnecessary additional 
code. You can configure that directly in dub.json. If you do 
manually change dub.json, the configurations should be kept 
unless you overwrite them in the meson config.

If you want to check the changes, you can take a look at the PR.

The questions I have to ask are:
   - Does this fit your needs?
   - Is there something I missed?
   - Would you like me to add other features?

Thank you,
Filipe Laíns (FFY00)
3DCE 51D6 0930 EBA4 7858 BA41 46F6 33CB B0EB 4BF2
May 25 2018