How to get started with D on Mac OS X 10.6 (Snow Leopard)

d, macos, osx-snow-leopard

Solution

Well, the persistent bugger in me could not leave the problem alone and I finally got it to work.

The required components to get it all working on Mac OS X 10.6 are:

- DMD compiler

- Eclipse "Galileo" (version 3.4)

- Descent

- DSSS

- a change to `/usr/etc/rebuild/default`

- a new file i hacked together `/usr/etc/rebuild/macosx.conf`

- global and per-project settings for Eclipse

After following these instructions you'll have Eclipse able to do code completion on your D projects and you'll be able to build/run from within the IDE as well.

The actual steps to get it operational are as follows.

- install the digitalmars dmd 2.0 compiler

- download the binary distribution from digitalmars.com (direct link to 2.041)

- unzip the downloaded file into `~/somefolder` (that created a ~/somefolder/dmd2 folder for me which I'll use for the duration of this example.)

- in the terminal (`/Applications/Utilities/Terminal.app`) move the files to their destination

- `sudo mv ~/somefolder/dmd2/osx/bin/* /usr/bin/` enter your login password when asked

- move the just copied dmd.conf to its location: `sudo mv /usr/bin/dmd.conf /etc/dmd.conf`

- `sudo mv ~/somefolder/dmd2/osx/lib/* /usr/lib/`

- `sudo mv ~/somefolder/dmd2 /usr/`

- use your favorite text editor to edit `/etc/dmd.conf` to contain the following:

[Environment]

DFLAGS=-I/usr/dmd2/src/phobos -I/usr/dmd2/src/druntime/import -L-L/usr/lib

- Download and install your favorite Mac OS X version of eclipse out of the umpteen hundreds available at http://www.eclipse.org/downloads/ (I picked a cocoa version for c/c++)

- Install Descent (almost as per the normal instructions in the wiki)

- run Eclipse (don't bother running as root)

- goto `Help` -> `Install New Software` from the menu bar. (wtf does that do in the `Help` menu?!)

- copy/paste `http://downloads.dsource.org/projects/descent/update-site` into the url field.

- follow on screen instructions to finish installation.

- install dsss from sourceforge (direct link to .dmg)

- use the installer package on the disk image like any other.

- create a file `/usr/etc/rebuild/macosx.conf` and paste the following snippet into it. (and save, duh)

profile=phobos
compiler=dmd
inifile=dmd.conf
exeext=
objext=o
version=DigitalMars
noversion=GNU
version=MacOSX
version=linux
noversion=Unix
noversion=Posix
noversion=Windows
noversion=Win32
noversion=Win64
version=X86
noversion=PPC
noversion=X86_64
version=D_InlineAsm
version=D_InlineAsm_X86
noversion=D_InlineAsm_PPC
noversion=D_InlineAsm_X86_64
version=LittleEndian
noversion=BigEndian

[compile]
cmd=dmd -version=MacOSX -c $i
flag=$i
incdir=-I$i
libdir=-L-L$i
optimize=-O
version=-version=$i

[link]
oneatatime=yes
#cmd=dmd -L-lphobos $i -of$o
cmd=dmd $i -of$o
# cmd=dmd -L--start-group -L-lphobos $i -of$o

libdir=-L-L$i
lib=-L-l$i
flag=-L$i

[liblink]
safe=yes
oneatatime=yes
cmd=if [ ! -z "$o" ]; then ar rc $o $i; fi

libdir=
lib=
flag=

[postliblink]
cmd=ranlib $i

[shliblink]
shlibs=no

[dyliblink]
dylibs=no

- change the `/usr/etc/rebuild/default` file to read: `profile=dmd-macosx`

- Set up Eclipse to have code completion

- In the global eclipse preferences navigate tp `D` => `Build Path` => `User Libraries`

- click `New`, type "std", press `OK` select the newly created entry, click `Add Directory`

- navigate to `/usr/dmd2/src/phobos/std` and add it.

- Set up Eclipse project. You have to do this manually for every D project you'll make

- Create a new project with the "D => D Project" wizard (thanks to Descent)

- Go into project properties (right click project in the Project Explorer and choose Properties)

- In the list to the left select `D Build Path` and in the panel that appears choose the `Include Path` tab.

- Click the `Add Library` button and choose `std` in the second page of the wizard.

- Configure the extarnal build tool

- Go to `External tools configurations...` (from the dropdown in the little green play button with the toolbox in front of it in the build/run/debug toolbar thingy)

- In the list to the left right click `Program` and choose `New` from the context menu.

- give your config a decent name like "Build with dsss" and set the following options:

- Location: `/usr/bin/dsss`

- Working Directory: full path to directory with your dsss.conf file for the project (if you don't have a dsss.conf file create one on the commandline: `dsss genconfig`)

- Arguments: `build` (or rebuild, or clean, or...)

- repeat steps 2 and 3 above for as many build/run options as you require.

Congratulations, everything should work now.

If for some reason this does not work for you, let me know and I'll be happy to figure out where it went wrong and help you to get it working. If there's a better or simpler way, I'd love to know about it as well.

Problem

I've been interested in "D" for a couple of years now and recently decided to start actually playing with it. I've been able to grasp the basics quite easily, I love the basic feature set of the language and the more I read about it, the more impressed I get. Now, I'm very interested in writing a custom web application server as a hobby project and I want it to be a simple binary, using dynamically linked libraries for the actual web applications. I believe D to be the perfect language for this venture. There is only one big problem... over the past couple of days, I have been completely unable to get any kind of IDE setup working. I can compile and run everything just fine on the command line, but everything I try in any of the IDE's available (Code::Blocks, eclipse+descent, Xcode with D plugin, and even the windows D-IDE running in VirtualBox on Windows XP Pro) the only thing that ever happens is: `object.d: Error: module object cannot read file 'object.d'` After two days of trying different things and following tutorials, this is really getting on my nerves. I want to learn to use D efficiently, but I need some comfy tool chain that includes code completion in the editor if I want to keep my sanity, which I obviously do. [edit:added emphasis to the really important bit] Is there anyone that can help me set up eclipse or (preferably) netbeans (but no plugin seems to be publicly available) to give me compile and run abilities in the IDE, along with code completion? on my Mac, running Mac OS X 10.6? I want to use the phobos libraries (and therefor a 2.0 compiler) but I don't really care if its dmd or gdmd (gdcmac). [addition] I believe we can assume that my dmd compiler installation is in order because it works from the commandline. I just don't want to use it from the commandline because its tedious. The question is about and IDE, the compiler works, its just IDEs that won't

Original source