May be a simple dub answer if my question even makes sense?
WhatMeWorry via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sat Sep 24 09:51:47 PDT 2016
On Saturday, 24 September 2016 at 06:05:11 UTC, Mike Parker wrote:
> On Saturday, 24 September 2016 at 02:33:22 UTC, WhatMeWorry
> wrote:
>
>>
>> I see that dub has all the .d import files already placed in
>> C:\Users\Me\AppData\Roaming\dub\packages\derelict-gl3-1.0.19\derelict-gl3\source\derelict\opengl3
>>
>> and
>> C:\Users\Me\AppData\Roaming\dub\packages\derelict-glfw3-3.1.0\derelict-glfw3\source\derelict\glfw3
>>
>> which should have all the definitions. Is their an elegant
>> way that I can tell dub to where these definitions? Or do I
>> just have to brute force all the -I paths?
>
> You don't have to specify the paths of dependencies. dub knows
> where they are and will make sure the compiler knows, too.
>
>>
>> I assume there is a slick way of specifying this because what
>> happens when say glfw3-3.1.0 gets bumped up to 3.1.1?
>
> Then you execute 'dub upgrade' in the directory where your dub
> configuration resides. As long as you have the version of each
> dependency specified properly, it will do the right thing (TIP:
> use ~>x.x.x for versions, rather than >=x.x.x -- the former
> will restrict you to patch-level upgrades, e.g. 3.1.0 -> 3.1.1
> and never 3.2, while the latter would happily go from 3.x ->
> 4.0 if it's available, often a breaking change).
>
> Did you import the derelict modules you're using in your app.d?
Well, my dub.sdl file has:
dependency "derelict-gl3" version="~>1.0.19"
dependency "derelict-glfw3" version="~>3.1.0"
My app.d has:
module app;
import common.derelict_libraries;
and derelict_libraries.d has:
module derelict_libraries;
import derelict.glfw3.glfw3;
import derelict.opengl3.gl3;
It's fine to import other imports, Right?
I am trying to make a portable dub/dmd build environment on a
flash drive for PC
So the dub project is currently on a flash drive that is assigned
the letter E:
Naturally, this could change if the flash drive were moved to
another PC. did have to write a little shim code to add
environment["DFLAGS"] = r"-I..\"; so that the app.d import could
find the derelict_libraries.d relative to the project directory.
Like so:
E:\projects\01_01_hello_window
E:\projects\01_01_hello_window\source\app.d
E:\projects\common\derelict_libraries.d
So to summarize things, the derelict imports are fine.
But how does dub tell dmd that it should looking for opengl
imports at:
C:\Users\Kyle\AppData\Roaming\dub\packages\derelict-gl3-1.0.15\source\derelict\opengl3
and glfw3's imports at:
C:\Users\Kyle\AppData\Roaming\dub\packages\derelict-glfw3-3.1.0\derelict-glfw3\source\derelict\glfw3
I'm desperately trying to avoid hard coding these paths. Because
I want to use a lot more dub packages in the future.
More information about the Digitalmars-d-learn
mailing list