January 14, 2020
On Tuesday, 14 January 2020 at 09:54:18 UTC, p.shkadzko wrote:
> [...]

May I ask, whether you have tried to use Dub, or is s.th. blocking
you from using Dub?

Kind regards
André
January 14, 2020
On Tuesday, 14 January 2020 at 09:54:18 UTC, p.shkadzko wrote:
> On Monday, 13 January 2020 at 21:15:51 UTC, p.shkadzko wrote:
>> On Monday, 13 January 2020 at 20:53:43 UTC, p.shkadzko wrote:
>>> On Monday, 13 January 2020 at 19:56:35 UTC, p.shkadzko wrote:
>>>> On Monday, 13 January 2020 at 17:14:29 UTC, p.shkadzko wrote:
>>>>> [...]
>>>>
>>>> I had to set PKG_CONFIG_PATH to "/usr/local/lib/pkgconfig". For some reason Manjaro distro doesn't have it set by default. After setting the pkgconfig path, lubeck is getting found and everything works.
>>>

It's very odd to me that Manjaros pkg-config doesn't include that pkg-config path by default and also doesn't include that library path by default, every distro I've so far used did that.

> I added /usr/local/include/d/cblas/cblas to $PATH but that didn't help :(


Can you show us your meson.build? You need to set `dependencies:` properly to include all dependencies so ninja includes the right dirs and links the required libraries. You can look at other projects using D for that, e.g. I do it like this: https://github.com/Cogitri/corecollector/blob/master/source/corectl/meson.build

January 14, 2020
On Tuesday, 14 January 2020 at 11:26:30 UTC, Andre Pany wrote:
> On Tuesday, 14 January 2020 at 09:54:18 UTC, p.shkadzko wrote:
>> [...]
>
> May I ask, whether you have tried to use Dub, or is s.th. blocking
> you from using Dub?
>
> Kind regards
> André

I tested dub and it fetched and compiled mir.ndslice and lubeck without issues. Then somebody mentioned meson and that it gives you more control and speed over the build. I also saw that mir library uses meson so decided to give it a try.
January 14, 2020
On Tuesday, 14 January 2020 at 15:15:09 UTC, Rasmus Thomsen wrote:
> On Tuesday, 14 January 2020 at 09:54:18 UTC, p.shkadzko wrote:
>> On Monday, 13 January 2020 at 21:15:51 UTC, p.shkadzko wrote:
>>> On Monday, 13 January 2020 at 20:53:43 UTC, p.shkadzko wrote:
>>>> On Monday, 13 January 2020 at 19:56:35 UTC, p.shkadzko wrote:
>>>>> On Monday, 13 January 2020 at 17:14:29 UTC, p.shkadzko wrote:
>>>>>> [...]
>>>>>
>>>>> I had to set PKG_CONFIG_PATH to "/usr/local/lib/pkgconfig". For some reason Manjaro distro doesn't have it set by default. After setting the pkgconfig path, lubeck is getting found and everything works.
>>>>
>
> It's very odd to me that Manjaros pkg-config doesn't include that pkg-config path by default and also doesn't include that library path by default, every distro I've so far used did that.
>
>> I added /usr/local/include/d/cblas/cblas to $PATH but that didn't help :(
>
>
> Can you show us your meson.build? You need to set `dependencies:` properly to include all dependencies so ninja includes the right dirs and links the required libraries. You can look at other projects using D for that, e.g. I do it like this: https://github.com/Cogitri/corecollector/blob/master/source/corectl/meson.build

Here is my meson.build file
---------------------------
project('demo_proj', 'd',
  version : '0.1',
  default_options : ['warning_level=3']
  )

mir_alg = dependency('mir-algorithm', method: 'pkg-config')
lubeck = dependency('lubeck', method: 'pkg-config')
required_deps = [mir_alg, lubeck]

ed = executable('demo_proj', 'app.d', dependencies: required_deps, install : true)


As I mentioned earlier cblas.d is installed in /usr/local/include/d/cblas/cblas/cblas.d

January 14, 2020
On Tuesday, 14 January 2020 at 20:14:30 UTC, p.shkadzko wrote:
> On Tuesday, 14 January 2020 at 15:15:09 UTC, Rasmus Thomsen wrote:
>> On Tuesday, 14 January 2020 at 09:54:18 UTC, p.shkadzko wrote:
>>> On Monday, 13 January 2020 at 21:15:51 UTC, p.shkadzko wrote:
>>>> On Monday, 13 January 2020 at 20:53:43 UTC, p.shkadzko wrote:
>>>>>[...]
>>
>> It's very odd to me that Manjaros pkg-config doesn't include that pkg-config path by default and also doesn't include that library path by default, every distro I've so far used did that.
>>
>>> I added /usr/local/include/d/cblas/cblas to $PATH but that didn't help :(
>>
>>
>> Can you show us your meson.build? You need to set `dependencies:` properly to include all dependencies so ninja includes the right dirs and links the required libraries. You can look at other projects using D for that, e.g. I do it like this: https://github.com/Cogitri/corecollector/blob/master/source/corectl/meson.build
>
> Here is my meson.build file
> ---------------------------
> project('demo_proj', 'd',
>   version : '0.1',
>   default_options : ['warning_level=3']
>   )
>
> mir_alg = dependency('mir-algorithm', method: 'pkg-config')
> lubeck = dependency('lubeck', method: 'pkg-config')
> required_deps = [mir_alg, lubeck]
>
> ed = executable('demo_proj', 'app.d', dependencies: required_deps, install : true)
>
>
> As I mentioned earlier cblas.d is installed in /usr/local/include/d/cblas/cblas/cblas.d

If I replace lubeck with mir-lapack (which I also installed into /usr/local/lib), repeat "meson build && cd build && ninja" and call ./demo_proj, I get this:
-----
./demo_proj: error while loading shared libraries: subprojects/mir-algorithm/libmir-algorithm.so.3.4.0:ject file: No such file or directory

But libmir-algorithm.so.3.4.0 is installed in /usr/local/lib and it is in $PATH :(
January 15, 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
1 2
Next ›   Last »