Thanks for the reply Mike.
It clarifies how dub works. I tried to let dub handle the dependencies. Unfortunately, with no luck. The package is known to dub ('gui' is a package created by me):

$ dub list
Packages present in the system and known to dub:
  gui ~master: /home/name/repo/addr/code/gui/
  gtk-d 3.6.5: /home/name/.dub/packages/gtk-d-3.6.5/
  gtk-d:gtkd 3.6.5: /home/name/.dub/packages/gtk-d-3.6.5/
  gtk-d:gtkdgl 3.6.5: /home/name/.dub/packages/gtk-d-3.6.5/
  gtk-d:sv 3.6.5: /home/name/.dub/packages/gtk-d-3.6.5/
  gtk-d:gstreamer 3.6.5: /home/name/.dub/packages/gtk-d-3.6.5/
  gtk-d:vte 3.6.5: /home/name/.dub/packages/gtk-d-3.6.5/
  gtk-d:peas 3.6.5: /home/name/.dub/packages/gtk-d-3.6.5/

But I get errors though:

$ sudo dub build gui
Building package gui in /home/name/repo/addr/code/gui/
Performing "debug" build using gdc for x86_64.
gui ~master: building configuration "application"...
source/main.d:1:8: error: module MainWindow is in file 'gtk/MainWindow.d' which cannot be read
 import gtk.MainWindow, gtk.Box, gtk.Main;
        ^
import path[0] = /usr/lib/gcc/x86_64-linux-gnu/5/include/d
import path[1] = /home/name/repo/addr/code/gui/source
gdc failed with exit code 1.


After some trail and error, I thought of a solution: build gtkd by myself using it's repo. Running 'sudo make' informed me of something odd:

$ sudo make
gdc -O2 -Igenerated/gtkd -c generated/gtkd/gtkd/Implement.d -o generated/gtkd/gtkd/Implement.o generated/gtkd/gtkd/Implement.d:24:8: error: module meta is in file 'std/meta.d' which cannot be read
 import std.meta;
        ^
import path[0] = /usr/lib/gcc/x86_64-linux-gnu/5/include/d
import path[1] = /home/name/repo/GtkD/generated/gtkd
GNUmakefile:228: recept voor doel 'generated/gtkd/gtkd/Implement.o' is mislukt
make: *** [generated/gtkd/gtkd/Implement.o] Fout 1


Going through my dir, meta.d is missing indeed:

$ ls /usr/lib/gcc/x86_64-linux-gnu/5/include/d/std
algorithm      csv.d         math.d         socket.d        uni.d
array.d        datetime.d    mathspecial.d  socketstream.d  uri.d
ascii.d        demangle.d    mmfile.d       stdint.d        utf.d
base64.d       digest        net            stdiobase.d     uuid.d
bigint.d encoding.d numeric.d stdio.d variant.d bitmanip.d exception.d outbuffer.d stream.d windows
c              experimental  parallelism.d  string.d        xml.d
compiler.d     file.d        path.d         syserror.d      zip.d
complex.d      format.d      process.d      system.d        zlib.d
concurrency.d  functional.d  random.d       traits.d
container      getopt.d      range          typecons.d
conv.d         internal      regex          typelist.d
cstream.d      json.d        signals.d      typetuple.d

Which makes me come back to Johannes, if I understand your link to std.meta right, std.meta is part of std/typetuple.d. Why does my compiler not look in std/typetuple.d instead? Maybe someone has a meta.d file for me? :p

Reply via email to