On Saturday, 24 September 2016 at 16:51:47 UTC, WhatMeWorry wrote:


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?

As long as they're public. Imports are private by default, meaning their symbols are only visible locally. Change it to:

module derelict_libraries;
public import derelict.glfw3.glfw3;
public import derelict.opengl3.gl3;


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


You can do that with dub without resorting to environment variables. Then you don't need to set it every time you move your flash drive to a different system. See the importPaths directive in the 'Build Settings' section of the documentation ([1] for JSON and [2] for SDLang).


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

Because dub created those paths and downloaded the source for those packages into those paths, it knows where everything is. When it invokes DMD, it uses the -I command line switch just like anyone else would.


I'm desperately trying to avoid hard coding these paths. Because I want to use a lot more dub packages in the future.

Well, good, because you don't need to hardcode them.

[1] https://code.dlang.org/package-format?lang=json#build-settings
[2] https://code.dlang.org/package-format?lang=sdl#build-settings

Reply via email to