digitalmars.D.learn - rdmd bug?
- CrypticMetaphor (42/42) Dec 19 2010 Hello, I'm being driven nuts by this problem, I don't know 100% if it's
- Nick Voronin (6/17) Dec 19 2010 Add -Ifullpath_to_projectfolder\src. It's the way it works IMHO, if you ...
- CrypticMetaphor (6/8) Dec 19 2010 I've tried -I"path to src" but this doesn't work either, but I've found
- CrypticMetaphor (2/3) Dec 19 2010 What am i saying!? of course I should. It annoyed the hell outta me >_<
- spir (21/41) Dec 20 2010 =20
Hello, I'm being driven nuts by this problem, I don't know 100% if it's it's a bug or if it's intended behavior, I'm new to D( also new to reporting bugs ) so I can't really tell. Anyway, the problem is, if I call rdmd from outside the folder in which the main source resides in, and main includes another file in that folder, I get an error. example: ...\projectfolder\src\main.d ...\projectfolder\src\test.d // main.d module main; import test.d; void main() { hello(); } // end main.d // test.d module test.d; import std.stdio; void hello() { writeln("Hello"); } // end test.d // If I'm in a shell, and I do this, I get an error: ...\projectfolder>rdmd src\main.d src\main.d(2): Error: module test is in file 'test.d' which cannot be read import path[0] = C:\D\dmd2\windows\bin\..\..\src\phobos import path[1] = C:\D\dmd2\windows\bin\..\..\src\druntime\import // but if I do this, it works: ...\projectfolder\src>rdmd main.d ...\projectfolder\src>Hello world // also works ...\projectfolder\src>dmd main.d test.d Anyway, I want to be able to compile with rdmd from a different folder, is this a bug? or should I use a different tool? :-S *aahhh* Other info: OS: Windows rdmd build 20101220 dmd: 2.050
Dec 19 2010
On Mon, 20 Dec 2010 01:24:02 +0100 CrypticMetaphor <CrypticMetaphor88 gmail.com> wrote:Anyway, the problem is, if I call rdmd from outside the folder in which the main source resides in, and main includes another file in that folder, I get an error.// If I'm in a shell, and I do this, I get an error: ...\projectfolder>rdmd src\main.d src\main.d(2): Error: module test is in file 'test.d' which cannot be read import path[0] = C:\D\dmd2\windows\bin\..\..\src\phobos import path[1] = C:\D\dmd2\windows\bin\..\..\src\druntime\importAnyway, I want to be able to compile with rdmd from a different folder, is this a bug? or should I use a different tool? :-S *aahhh*Add -Ifullpath_to_projectfolder\src. It's the way it works IMHO, if you import something it must be relative to search path or to current dir. There may be a better way (replace current dir with the dir where source is, but it will take away control), but this works. There is a bug though, I can't make it work with -Irelative_path_to_src. Looks like .deps contain paths relative to where rdmd was ran, while dmd interprets them as paths relative to where .deps file is. -- Nick Voronin <elfy.nv gmail.com>
Dec 19 2010
Add -Ifullpath_to_projectfolder\src. It's the way it works IMHO, if you import something it must be relative to search path or to current dir. There may be a better way (replace current dir with the dir where source is, but it will take away control), but this works. There is a bug though, I can't make it work with -Irelative_path_to_src. Looks like .deps contain paths relative to where rdmd was ran, while dmd interprets them as paths relative to where .deps file is.I've tried -I"path to src" but this doesn't work either, but I've found a workaround. I start a batch file that goes to the correct directory and then executes rdmd with the argument(the absolute path) I pass to the batch file, this works :D Thanks for the help! So, should I report this as a bug?
Dec 19 2010
So, should I report this as a bug?What am i saying!? of course I should. It annoyed the hell outta me >_< *goes to report*
Dec 19 2010
On Mon, 20 Dec 2010 04:27:33 +0300 Nick Voronin <elfy.nv gmail.com> wrote:On Mon, 20 Dec 2010 01:24:02 +0100 CrypticMetaphor <CrypticMetaphor88 gmail.com> wrote: =20=20Anyway, the problem is, if I call rdmd from outside the folder in which=eadthe main source resides in, and main includes another file in that=20 folder, I get an error.=20// If I'm in a shell, and I do this, I get an error: ...\projectfolder>rdmd src\main.d src\main.d(2): Error: module test is in file 'test.d' which cannot be r==20import path[0] =3D C:\D\dmd2\windows\bin\..\..\src\phobos import path[1] =3D C:\D\dmd2\windows\bin\..\..\src\druntime\import=20Anyway, I want to be able to compile with rdmd from a different folder,=mport something it must be relative to search path or to current dir. There= may be a better way (replace current dir with the dir where source is, but= it will take away control), but this works.is this a bug? or should I use a different tool? :-S *aahhh*=20 Add -Ifullpath_to_projectfolder\src. It's the way it works IMHO, if you i==20 There is a bug though, I can't make it work with -Irelative_path_to_src. =Looks like .deps contain paths relative to where rdmd was ran, while dmd in= terprets them as paths relative to where .deps file is. Yes, I think it cannot work, since -I is a option of dmd, not of rdmd. rdmd= just passes by options to dmd if I understand correctly. What you want is = to influence a feature provided dy rdmd, not dmd, namely automatic inclusio= n of (non-standard) imports. But sure, it may be a bug: rdmd should look for imports using pathes relati= ve to the location of the (app) module it is given. Or, for simplicity, we = can just state it must be called from this location. Denis -- -- -- -- -- -- -- vit esse estrany =E2=98=A3 spir.wikidot.com
Dec 20 2010