On Tuesday, 31 March 2020 at 19:59:25 UTC, YD wrote:
On Tuesday, 31 March 2020 at 19:51:31 UTC, YD wrote:
Hi, I am trying to use Meson, and I did the followings to get
dub packages:
dub fetch hunt-net
dub fetch hunt-proton
dub build hunt-net
dub build hunt-proton
when I have this line in my meson.build file:
dependency('hunt-net', method: 'dub')
It works fine:
Run-time dependency hunt-net found: YES 0.4.6
But when I change it to
dependency('hunt-proton', method: 'dub')
It simply says:
Run-time dependency hunt-proton found: NO
... ERROR: Dependency "hunt-proton" not found
And when I looked at meson-log.txt, I couldn't find any clue
on why that happens:
Determining dependency 'hunt-proton' with DUB executable
'.../dlang/dmd-2.091.0/linux/bin64/dub'
Run-time dependency hunt-proton found: NO
So I completely cannot figure out why hunt-net is resolvable
but hunt-proton is not. Can anyone help me understand how
meson resolves these dependencies? Thanks!
I have a feeling that it might be because of the fact that
hunt-proton has a "beta" in its version:
hunt-net 0.4.6:
/home/.../.dub/packages/hunt-net-0.4.6/hunt-net/
hunt-proton 1.0.0-beta.3:
/home/.../.dub/packages/hunt-proton-1.0.0-beta.3/hunt-proton/
However, this does not help me solve the problem. Even if I add
a "version" parameter to the dependency() function, it still
does not resolve hunt-proton.
Any help will be greatly appreciated, thanks.
So I found that the issue is that dub.json file in hunt-proton
has an entry referring to the parent package with a relative file
path in it. When that relative file path is removed, Meson can
find hunt-proton.
However, even after Meson found it, there are two bad behaviors:
(1) Meson refused to automatically add the dependencies of
hunt-proton, and I had to manually add them to meson.build.
(2) Meson did not automatically add the appropriate
d_module_versions setting that is required by hunt (the
HAVE_EPOLL/HAVE_IOCP/... setting), and I had to manually add that
too.
Anyway, after manually tweaking the meson.build file like above,
I got it to work (except that compiling/linking seems quite slow).