www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ide - Descent with gdc

reply Jason House <jason.james.house gmail.com> writes:
I'm setting up a new system and I only have gdc on it at the moment.

When I go to windows->preferences->d->installed compilers, and enter gdc as
the type and name, I initially get a "libraries can not be empty" error. 
After adding the library folder (tango), I get no error but can't click ok. 
Entering a compiler home directory erases what I put in the libraries area
and gives the error "Target is not a DMD installation Root.  DMD executable
was not found"

Am I mistakenly trying to use descent with gdc?  Is the error text bogus and
I'm entering the home directory incorrectly?

Any tips would be greatly appreciated.
Feb 20 2008
next sibling parent reply Ary Borenszweig <ary esperanto.org.ar> writes:
Jason House escribió:
 I'm setting up a new system and I only have gdc on it at the moment.
 
 When I go to windows->preferences->d->installed compilers, and enter gdc as
 the type and name, I initially get a "libraries can not be empty" error. 
 After adding the library folder (tango), I get no error but can't click ok. 
 Entering a compiler home directory erases what I put in the libraries area
 and gives the error "Target is not a DMD installation Root.  DMD executable
 was not found"
 
 Am I mistakenly trying to use descent with gdc?  Is the error text bogus and
 I'm entering the home directory incorrectly?
 
 Any tips would be greatly appreciated.
I just tested it and it works, although I found a bug I already created a ticket for (56). I did this: - In compiler type, select gdc - Click the "Browse..." button and select your gdc directory. That directory should have a bin folder with gdc inside it. Now, if you are on Windows, "gdc/inlcude/d/3.4.5" is going to be suggested as the standard library. Press ok, go to edit the compiler you just created, remove the library and add tango as an external include path (if you do it without saving, exiting, and editing, it doesn't work... that's the bug). If you are on linux, no standard library should appear. Add tango as an external include path, press ok, go to edit, and add it again (because of the bug). If this still doesn't work (strange), you can try creating a symlink "gdc/include/d/3.4.5" to the tango folder. Maybe you can trick Descent that way (or a hardlink? Sorry, I don't know much about linux). But... re-reading your post now, maybe you didn't change to "gdc" compiler type, because of the error message you get: "Target is not a DMD installation Root. DMD executable was not found" :-)
Feb 21 2008
parent reply Jason House <jason.james.house gmail.com> writes:
Ary Borenszweig wrote:

 Jason House escribió:
 I'm setting up a new system and I only have gdc on it at the moment.
 
 When I go to windows->preferences->d->installed compilers, and enter gdc
 as the type and name, I initially get a "libraries can not be empty"
 error. After adding the library folder (tango), I get no error but can't
 click ok. Entering a compiler home directory erases what I put in the
 libraries area
 and gives the error "Target is not a DMD installation Root.  DMD
 executable was not found"
 
 Am I mistakenly trying to use descent with gdc?  Is the error text bogus
 and I'm entering the home directory incorrectly?
 
 Any tips would be greatly appreciated.
I just tested it and it works, although I found a bug I already created a ticket for (56). I did this: - In compiler type, select gdc - Click the "Browse..." button and select your gdc directory. That directory should have a bin folder with gdc inside it. Now, if you are on Windows, "gdc/inlcude/d/3.4.5" is going to be suggested as the standard library. Press ok, go to edit the compiler you just created, remove the library and add tango as an external include path (if you do it without saving, exiting, and editing, it doesn't work... that's the bug). If you are on linux, no standard library should appear. Add tango as an external include path, press ok, go to edit, and add it again (because of the bug). If this still doesn't work (strange), you can try creating a symlink "gdc/include/d/3.4.5" to the tango folder. Maybe you can trick Descent that way (or a hardlink? Sorry, I don't know much about linux). But... re-reading your post now, maybe you didn't change to "gdc" compiler type, because of the error message you get: "Target is not a DMD installation Root. DMD executable was not found" :-)
The DMD error message is certainly strange. I did select the compiler type correctly as GDC. I'm using linux, and here's as far as I get: Compiler type: GDC Compiler name: gdc Compiler home directory: /usr/bin Compiler system libraries: /usr/include/d/4.1.3 (Error at bottom) Target is not a DMD installation Root. DMD executable was not found. Ok button is greyed out and the "?" icon does not do anything.
Feb 21 2008
parent reply Alessandro Pellizzari <shuriken amiran.it> writes:
Il Thu, 21 Feb 2008 11:10:03 -0500, Jason House ha scritto:

 The DMD error message is certainly strange.  I did select the compiler
 type correctly as GDC.  I'm using linux, and here's as far as I get:
 Compiler type: GDC
 Compiler name: gdc
 Compiler home directory: /usr/bin
 Compiler system libraries: /usr/include/d/4.1.3 (Error at bottom)
   Target is not a DMD installation Root.  DMD executable was not found.
I don'e even reach that point. I am under Linux (Debian testing) too: - Compiler type: GDC (Error: Libraries cannot be empty) - Compiler name: gdc-4.2 (Error: the same) - Compiler home dir: /usr (Error: Target is not a DMD installation Root. DMD executable was not found) - Compiler home dir: /usr/bin (Error: the same) Even with DMD (installed from dmd-nonfree.deb packages): - Compiler type: DMD (no error) - Compiler name: dmd (Error: Libraries cannot be empty) - Compiler home dir: /usr (Error: the same) - Compiler home dir: /usr/bin (Error: Target is not a DMD installation Root. DMD executable was not found) I even have not understood what I need to put in libraries paths. :( Thank you very much for any help. Bye.
Feb 21 2008
parent Ary Borenszweig <ary esperanto.org.ar> writes:
I will check that later when I'll have time.

As a workaround, because the compiler is not used yet (just the path to 
object.d and the rest of the files), just ignore the "installed 
compilers" page, right click the project you are working on, properties, 
d build path, and in the "libraries" tab add the include paths for 
tango, phobos, or whaterver.

Alessandro Pellizzari escribió:
 Il Thu, 21 Feb 2008 11:10:03 -0500, Jason House ha scritto:
 
 The DMD error message is certainly strange.  I did select the compiler
 type correctly as GDC.  I'm using linux, and here's as far as I get:
 Compiler type: GDC
 Compiler name: gdc
 Compiler home directory: /usr/bin
 Compiler system libraries: /usr/include/d/4.1.3 (Error at bottom)
   Target is not a DMD installation Root.  DMD executable was not found.
I don'e even reach that point. I am under Linux (Debian testing) too: - Compiler type: GDC (Error: Libraries cannot be empty) - Compiler name: gdc-4.2 (Error: the same) - Compiler home dir: /usr (Error: Target is not a DMD installation Root. DMD executable was not found) - Compiler home dir: /usr/bin (Error: the same) Even with DMD (installed from dmd-nonfree.deb packages): - Compiler type: DMD (no error) - Compiler name: dmd (Error: Libraries cannot be empty) - Compiler home dir: /usr (Error: the same) - Compiler home dir: /usr/bin (Error: Target is not a DMD installation Root. DMD executable was not found) I even have not understood what I need to put in libraries paths. :( Thank you very much for any help. Bye.
Feb 21 2008
prev sibling next sibling parent reply Jason House <jason.james.house gmail.com> writes:
I've done Ary's workaround (not listing installed compilers and
adding /usr/include/d/4.1.3 to the include path), and stuff is almost
working.  I have two files that compile correctly from the command line but
give errors in descent: "No return at end of function", "line 6".

At a minimum, the line numbers are way off.  It says the error is on line 6
but highlights line 4.  Both of those lines are within a large (GPL)
comment at the top of the file.  Any idea what could be going wrong?

The simpler source file with this problem is attached.
Feb 21 2008
parent Robert Fraser <fraserofthenight gmail.com> writes:
Jason House wrote:
 I've done Ary's workaround (not listing installed compilers and
 adding /usr/include/d/4.1.3 to the include path), and stuff is almost
 working.  I have two files that compile correctly from the command line but
 give errors in descent: "No return at end of function", "line 6".
 
 At a minimum, the line numbers are way off.  It says the error is on line 6
 but highlights line 4.  Both of those lines are within a large (GPL)
 comment at the top of the file.  Any idea what could be going wrong?
 
 The simpler source file with this problem is attached.
 
 
 
Solution: turn of descent semantic errors ;-). Go into Project > Properties > D Compiler and set "show semantic errors" to "none". It's still a *very* alpha-stage feature.
Feb 21 2008
prev sibling parent Graham St Jack <graham.stjack internode.on.net> writes:
On Wed, 20 Feb 2008 23:17:25 -0500, Jason House wrote:
I'm using Descent 0.5.1 on Linux, installed just yesterday, and it is 
working fine with gdc (with one problem). I entered /usr as the location, 
and Descent found everything ok.

The problem is that gdc puts config.d and fonfigunix.d into a platform-
specific subdirectory of /usr/include/d/4.1.3 called i486-linux-gnu. This 
makes a lot of sense because this is the code that has to be different on 
different architectures.

Unfortunately Descent won't let me add this directory to the library 
paths because it is inside the main one. I worked around this by copying 
the two files I needed into /usr/include/d/4.1.3/gcc.

It would be nice if Descent would sort this out for me.

Other than this (and building of course), Descent is really great.
Mar 09 2008