www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Why -I flag does not work?

reply Victor Porton <porton narod.ru> writes:
For this project: 
https://github.com/vporton/xml-boiler-dlang/tree/85b5587f50617ad1b001c035c72a5780a1e69c24

$ DFLAGS="-I/usr/local/include/d/librdf -L-L/usr/local/lib" dub 
build --compiler=dmd --build=unittest
Performing "unittest" build using dmd for x86_64.
xml-boiler-dlang ~master: building configuration "library"...
source/xmlboiler/options.d(4,8): Error: module `model` is in file 
'rdf/redland/model.d' which cannot be read
import path[0] = source/
import path[1] = ../../.dub/packages/ae-0.0.2331/ae/sys
import path[2] = ../../.dub/packages/ae-0.0.2331/ae/utils
import path[3] = ../../.dub/packages/ae-0.0.2331/ae/net
import path[4] = /snap/dmd/40/bin/../import/druntime
import path[5] = /snap/dmd/40/bin/../import/phobos
dmd failed with exit code 1.
$ ls /usr/local/include/d/librdf/rdf/redland/model.d
/usr/local/include/d/librdf/rdf/redland/model.d
$ dmd --version
DMD64 D Compiler v2.080.1
Copyright (C) 1999-2018 by The D Language Foundation, All Rights 
Reserved written by Walter Bright

Why does -I flag in DFLAGS does not work? (Ubuntu Linux)
Feb 09 2019
next sibling parent Victor Porton <porton narod.ru> writes:
On Saturday, 9 February 2019 at 08:15:36 UTC, Victor Porton wrote:
 $ DFLAGS="-I/usr/local/include/d/librdf -L-L/usr/local/lib" dub 
 build --compiler=dmd --build=unittest
...
 Why does -I flag in DFLAGS does not work? (Ubuntu Linux)
This does not work too: $ DFLAGS="-I/usr/local/include/d/librdf -L-L/usr/local/lib" dmd -unittest source/xmlboiler/options.d Why?!
Feb 09 2019
prev sibling next sibling parent reply JN <666total wp.pl> writes:
On Saturday, 9 February 2019 at 08:15:36 UTC, Victor Porton wrote:
 Why does -I flag in DFLAGS does not work? (Ubuntu Linux)
I'm no expert on dub, but it's possible that it's overriding the import path anyway. One of the main points of dub is that you shouldn't have to handle the import paths yourself. I think what could work is adding a librdf in dub.json dependencies section, and then using "dub add-local" command to point to the library. Something like: dub add-local /usr/local/include/d/librdf ~master and then in dependencies section: "dependencies": { "librdf": "~master" }
Feb 09 2019
parent reply Victor Porton <porton narod.ru> writes:
On Saturday, 9 February 2019 at 08:35:53 UTC, JN wrote:
 On Saturday, 9 February 2019 at 08:15:36 UTC, Victor Porton 
 wrote:
 Why does -I flag in DFLAGS does not work? (Ubuntu Linux)
I'm no expert on dub, but it's possible that it's overriding the import path anyway. One of the main points of dub is that you shouldn't have to handle the import paths yourself. I think what could work is adding a librdf in dub.json dependencies section, and then using "dub add-local" command to point to the library. Something like: dub add-local /usr/local/include/d/librdf ~master and then in dependencies section: "dependencies": { "librdf": "~master" }
As I understand it would pollute the Git version of dub.json with my local changes. That's no good.
Feb 09 2019
parent Victor Porton <porton narod.ru> writes:
On Saturday, 9 February 2019 at 11:40:57 UTC, Victor Porton wrote:
 On Saturday, 9 February 2019 at 08:35:53 UTC, JN wrote:
 On Saturday, 9 February 2019 at 08:15:36 UTC, Victor Porton 
 wrote:
 Why does -I flag in DFLAGS does not work? (Ubuntu Linux)
I'm no expert on dub, but it's possible that it's overriding the import path anyway. One of the main points of dub is that you shouldn't have to handle the import paths yourself. I think what could work is adding a librdf in dub.json dependencies section, and then using "dub add-local" command to point to the library. Something like: dub add-local /usr/local/include/d/librdf ~master and then in dependencies section: "dependencies": { "librdf": "~master" }
As I understand it would pollute the Git version of dub.json with my local changes. That's no good.
I did // dub.json: "dependencies": { "rdf_dlang": "~>1.0.17", "ae": "~>0.0.2331" }, // dub.selections.json: { "fileVersion": 1, "versions": { "ae": "0.0.2331", "rdf_dlang": "1.0.17" } } I also installed /usr/local/include/d/librdf/dub.json with "sourcePaths": ["/usr/local/stow/rendland-bindings/include/d/librdf"] and did $ dub add-local /usr/local/include/d/librdf/ 1.0.17 But nevertheless: $ dub build --compiler=dmd --build=unittest Dynamic libraries are not yet supported as dependencies - building as static library. Performing "unittest" build using dmd for x86_64. xml-boiler-dlang ~master: building configuration "library"... source/xmlboiler/options.d(4,8): Error: module `model` is in file 'rdf/redland/model.d' which cannot be read import path[0] = source/ import path[1] = ../../.dub/packages/ae-0.0.2331/ae/sys import path[2] = ../../.dub/packages/ae-0.0.2331/ae/utils import path[3] = ../../.dub/packages/ae-0.0.2331/ae/net import path[4] = /snap/dmd/40/bin/../import/druntime import path[5] = /snap/dmd/40/bin/../import/phobos dmd failed with exit code 1.
Feb 09 2019
prev sibling next sibling parent reply DanielG <simpletangent gmail.com> writes:
On Saturday, 9 February 2019 at 08:15:36 UTC, Victor Porton wrote:
 Why does -I flag in DFLAGS does not work? (Ubuntu Linux)
Try adding the -i flag as well ("include imported modules in the compilation"), or setting both importPaths and sourcePaths in dub.json. I'm not certain that will help, but long ago I was having similar trouble and it was because I was importing, but not compiling, a certain file. For reference: https://dub.pm/package-format-json
Feb 09 2019
parent Victor Porton <porton narod.ru> writes:
On Saturday, 9 February 2019 at 10:32:36 UTC, DanielG wrote:
 On Saturday, 9 February 2019 at 08:15:36 UTC, Victor Porton 
 wrote:
 Why does -I flag in DFLAGS does not work? (Ubuntu Linux)
Try adding the -i flag as well ("include imported modules in
-i in DFLAGS does not help. -I works when passed on the command line but not in DFLAGS :-(
 the compilation"), or setting both importPaths and sourcePaths 
 in dub.json.
This would pollute the Git version of the dub.json with my local changes.
 I'm not certain that will help, but long ago I was having 
 similar trouble and it was because I was importing, but not 
 compiling, a certain file.
It should not be compiled, only imported. It was already compiled to a shared library.
Feb 09 2019
prev sibling parent Victor Porton <porton narod.ru> writes:
On Saturday, 9 February 2019 at 08:15:36 UTC, Victor Porton wrote:
 Why does -I flag in DFLAGS does not work? (Ubuntu Linux)
https://github.com/dlang/dub/issues/1645
Feb 09 2019