View previous topic :: View next topic |
Author |
Message |
Kwez
Joined: 03 Oct 2006 Posts: 12
|
Posted: Tue Oct 03, 2006 9:47 pm Post subject: bud with gdc 3.03 (windows) ?? |
|
|
hi,
I'm trying bud for the 1st time, but...
I can't get bud to work with gdc on windows.
(build 3.03)
1- bud looks for dmd.exe,
so I tried copying win_gnu_build.cfg to build.cfg
but I get the following errors :
Quote: | D:\code\parseProadLog\D>bud main.d -v
Set Internal String 'MakeSilent = ` >nul`' ignored ... unknown name.
*** build v3.03 (build 2370)***
Default target is 'main'
Current Dir 'D:\code\parseProadLog\D\'
gdc.exe not found in PATH symbol, so assuming current directory
Error: ArrayBoundsError build(2238) |
note that if I just type gdc .. it IS found in the path.
I tried compiling bud myself, but get the same results.
(I tried removing the line in the cfg file that causes a warning, but it still crashes)
any help would be greatly appreciated
thx
Phil |
|
Back to top |
|
|
Kwez
Joined: 03 Oct 2006 Posts: 12
|
Posted: Wed Oct 04, 2006 11:04 am Post subject: some progress |
|
|
hi again,
I wanted to try to debug bud,
so I compiled a debug version using gdc ..
(had to modify the Makefile & util/fdt.d to compile w. gdc)
and
now bud seems to correctly find gdc & automatically use the proper config
(without any build.cfg files)
now I just have to figure out how to use bud correctly !
how do I specify a whole 'branch' (eg all the dtl files) to be 'ignored' ?
I tried just adding the 1st one that causes a prob :
-Xdtl.containers.map .. but it doesn't seem to make any difference
thx |
|
Back to top |
|
|
csauls
Joined: 27 Mar 2004 Posts: 278
|
Posted: Wed Oct 04, 2006 3:14 pm Post subject: Re: some progress |
|
|
Kwez wrote: | how do I specify a whole 'branch' (eg all the dtl files) to be 'ignored' ?
I tried just adding the 1st one that causes a prob :
-Xdtl.containers.map .. but it doesn't seem to make any difference |
-Xdtl _________________ Chris Nicholson-Sauls |
|
Back to top |
|
|
Derek Parnell
Joined: 22 Apr 2004 Posts: 408 Location: Melbourne, Australia
|
Posted: Wed Oct 04, 2006 7:03 pm Post subject: Re: bud with gdc 3.03 (windows) ?? |
|
|
Kwez wrote: | hi,
I'm trying bud for the 1st time, but...
I can't get bud to work with gdc on windows.
(build 3.03)
1- bud looks for dmd.exe,
so I tried copying win_gnu_build.cfg to build.cfg
but I get the following errors :
Quote: | D:\code\parseProadLog\D>bud main.d -v
Set Internal String 'MakeSilent = ` >nul`' ignored ... unknown name.
*** build v3.03 (build 2370)***
Default target is 'main'
Current Dir 'D:\code\parseProadLog\D\'
gdc.exe not found in PATH symbol, so assuming current directory
Error: ArrayBoundsError build(2238) |
note that if I just type gdc .. it IS found in the path.
I tried compiling bud myself, but get the same results.
(I tried removing the line in the cfg file that causes a warning, but it still crashes)
any help would be greatly appreciated
thx
Phil |
Firstly the 'MakeSilent' is a mistake. It should be 'LinkerStdOut'.
Secondly, there is mistake in the way it handles CompilerExe symbol. I've fixed that now for the next release. For the moment, just use 'gdc' and not 'gdc.exe'. _________________ --
Derek
skype name: derek.j.parnell |
|
Back to top |
|
|
Derek Parnell
Joined: 22 Apr 2004 Posts: 408 Location: Melbourne, Australia
|
Posted: Wed Oct 04, 2006 7:08 pm Post subject: Re: some progress |
|
|
Kwez wrote: | hi again,
I wanted to try to debug bud,
so I compiled a debug version using gdc ..
(had to modify the Makefile & util/fdt.d to compile w. gdc)
|
What did you have to change in util.fdt.d ?
Kwez wrote: | and
now bud seems to correctly find gdc & automatically use the proper config
(without any build.cfg files)
now I just have to figure out how to use bud correctly !
how do I specify a whole 'branch' (eg all the dtl files) to be 'ignored' ?
I tried just adding the 1st one that causes a prob :
-Xdtl.containers.map .. but it doesn't seem to make any difference
thx |
What do you mean exactly by "doesn't seem to make any difference"?
Do you mean that it excluded "dtl.containers.map" but you still had problems, or do you mean that it did not exclude "dtl.containers.map"?
To exclude the entire package use -Xdtl _________________ --
Derek
skype name: derek.j.parnell |
|
Back to top |
|
|
Kwez
Joined: 03 Oct 2006 Posts: 12
|
Posted: Wed Oct 04, 2006 9:23 pm Post subject: |
|
|
these lines:
version(Windows) static import opsys = std.c.windows.windows;
version(linux) static import opsys = std.c.linux.linux;
version(darwin) static import opsys = std.c.darwin.darwin;
version(Unix) static import opsys = std.c.unix;
version(Posix) static import std.string;
cause this:
util\fdt.d:69: ';' expected
util\fdt.d:69: no identifier for declarator std.c.windows.windows
util\fdt.d:70: ';' expected
util\fdt.d:70: no identifier for declarator std.c.linux.linux
util\fdt.d:71: ';' expected
util\fdt.d:71: no identifier for declarator std.c.darwin.darwin
util\fdt.d:72: ';' expected
util\fdt.d:72: no identifier for declarator std.c.unix
util\fdt.d:69: module opsys cannot read file 'opsys.d'
util\fdt.d:69: ';' expected
util\fdt.d:69: no identifier for declarator std.c.windows.windows
util\fdt.d:70: ';' expected
util\fdt.d:70: no identifier for declarator std.c.linux.linux
util\fdt.d:71: ';' expected
util\fdt.d:71: no identifier for declarator std.c.darwin.darwin
util\fdt.d:72: ';' expected
util\fdt.d:72: no identifier for declarator std.c.unix
util\fdt.d:69: module opsys cannot read file 'opsys.d'
util/fdt.d:69: ';' expected
util/fdt.d:69: no identifier for declarator std.c.windows.windows
util/fdt.d:70: ';' expected
util/fdt.d:70: no identifier for declarator std.c.linux.linux
util/fdt.d:71: ';' expected
util/fdt.d:71: no identifier for declarator std.c.darwin.darwin
util/fdt.d:72: ';' expected
util/fdt.d:72: no identifier for declarator std.c.unix
make: *** [build] Error 1
so I did this (I'm a D newbie by the way ;-) :
version(Windows) {
static import std.c.windows.windows;
alias std.c.windows.windows opsys;
}
//~ version(Windows) static import opsys = std.c.windows.windows;
//~ version(linux) static import opsys = std.c.linux.linux;
//~ version(darwin) static import opsys = std.c.darwin.darwin;
//~ version(Unix) static import opsys = std.c.unix;
//~ version(Posix) static import std.string; |
|
Back to top |
|
|
Kwez
Joined: 03 Oct 2006 Posts: 12
|
Posted: Thu Oct 05, 2006 12:45 am Post subject: |
|
|
ok, here is more info I found out :
again, this is running bud on
Windows,
w. gdc using MSYS/MinGW.
=======
-Xdtl seems to work ...
except that it looks like bud calls gdc,
before doing any checking on the files ??
for eg. if I'm missing search paths, I'll get an error like :
lookfor.d:6: module map cannot read file 'dtl\containers\map.d'
lookfor.d:6: module map cannot read file 'dtl\containers\map.d'
or in some cases I get this error (again before scanning for modified files):
gdc.exe: main.exe: No such file or directory
=======
the default value for INIT:ImportPath = "-I "
does not work w. gdc
I need to use a build.cfg w.
INIT:ImportPath = -I
=======
when using build.cfg w an empty value for "INIT:CompilerPath"
in build.d :
Code: | // crashes when vCompilerPath is empty (array out of bounds)
if (vCompilerPath[length-1] != std.path.sep[0])
{
vCompilerPath ~= std.path.sep;
util.str.SetEnv("@D", std.path.getDirName(vCompilerPath));
} |
============
in source.d, the object file extension ignores the config file value
(always .obj or .o based on windows/posix compile of bud)
also causes object files to be missing on the link command
============
some problems w. the link cmd:
(bud output w. -V)
Setting LIB=D:\dev\src\D\dtl\bin\Debug
Linking with ..........
main.o lookfor.o -o main.exe -ldtl.a
Running 'd:\mingw\bin\gdc.exe main.o lookfor.o -o main.exe -ldtl.a '
Failed. Return code: 0001
Setting LIB=D:\dev\src\D\dtl\bin\Debug
should be
Setting LIBRARY_PATH=D:\dev\src\D\dtl\bin\Debug
or should use the -L linker option !!
btw, this is done specific for the Windows built bud...
I would think it should be related to the compiler not the platform ?
also,
to link w. a library, we have to specify the lib extension, eg dtl.a
which adds "-ldtl.a" at link time ...
but it needs to be -ldtl !!
.. I tried passing -ldtl manually .. but it is used for compiling,
not for linking.
=======
thx all for the help
Philippe |
|
Back to top |
|
|
|