On 12/21/2013 11:19 PM, qznc wrote:
On Saturday, 21 December 2013 at 14:52:08 UTC, Russel Winder wrote:
I just created a new vibe.d project using dub, all fine. Well once I had
solved the libevent problem. Then, as the project is to be a GUI client,
I added a gtk-d dependency.  I tried building the empty project and the
binary comes out at 42MB. Not only that there are two copies of it one
in . and one in ./.dub/build. I was gobsmacked, this isn't Go, there
should be dynamic linking by default.  Is this something I have missed?

There ought to be a clean target for dub as well as a build and run
target for dub, or have I missed something?

Re GtkD, when I run the "Hello World" vibe.d web server with GtkD doing
nothing, I get:


|> dub
Checking dependencies in
'/home/users/russel/Repositories/Git/Masters/ArcamClient_D'
Target is up to date. Skipping build.
Running ./arcamclient
Listening for HTTP requests on ::1:8080
Listening for HTTP requests on 127.0.0.1:8080
Please open http://127.0.0.1:8080/ in your browser.
object.Exception@../../../../.dub/packages/gtk-d-master/src/gtkc/Loader.d(127):
Library load failed: libgtkglext-3.0.so.0
Error: Program exited with code 1


In an earlier thread here, Mike Wey's response was "download libgtkglext
and build it yourself". I am not sure this is the right approach. Debian
packages GNOME 3 quite well but they do not have this
libgtkglext-3.0.so.0 and yet things work. I think mayhap GtkD should
have this as an optional dependency rather than a mandatory one. Or am I
missing something?

For some reason GtkD uses some unreleased version of Gtk with some
OpenGL features.

This is because the released version of GtkGLext doesn't support Gtk+ 3.x.

You can use the "normal/stable" variant by adapting
your dependency a little:

"dependencies": { "gtk-d:gtkd": "~master" }

Just depending on the subpackage you need will stop dub from including the other parts of GtkD in your app. So this should fix your problem.

Not sure, why GtkD does this. There are also no versions, just "~master".

--
Mike Wey

Reply via email to