Thread overview
Best practice: Project structure
Feb 07, 2006
Stefan
Feb 07, 2006
pragma
Feb 07, 2006
Hasan Aljudy
Feb 08, 2006
nick
February 07, 2006
Hi,

as a beginner (used to proagram with Java and long time ago C/C++) I would like
to know how to structure a project.
´Should´ a D-project look similar to a Java-project, i.e. having a source folder
with the package/module folders and D/class files? Where to put libs, ..?
EclipseDDT does not work with my current Eclipse 3.1.1, so I use Crimson-Editor.
What build tool is preferable, in the case I don´t like shell scripts.

Thanks,
Stefan


February 07, 2006
In article <dsad07$29kp$1@digitaldaemon.com>, Stefan says...
>
>Hi,
>
>as a beginner (used to proagram with Java and long time ago C/C++) I would like
>to know how to structure a project.
>´Should´ a D-project look similar to a Java-project, i.e. having a source folder
>with the package/module folders and D/class files?

Good question!

(FYI, you'll get a better response to these kinds of questions over on the digitalmars.D.learn group: http://www.digitalmars.com/drn-bin/wwwnews?digitalmars.D.learn)

You'll be in good shape if you apply your Java experience over into D with respect to package and class management.  D does give you more flexibility in terms of packaging things, but if you keep to the one-class-per-file Java rule, you can't go wrong.  You'll know when the time comes to deviate from that.

If you want to see how D projects of scale are laid-out, head over to D source (http://www.dsource.org/projects/) and browse through the SVN repository for a few projects. I'd reccomend browsing Build and Mango as they are both well used, sizable, and well maintained.


>EclipseDDT does not work with my current Eclipse 3.1.1, so I use Crimson-Editor. What build tool is preferable, in the case I don´t like shell scripts.

Heh, I use Crimson too, but I don't use its built-in hooks for launching scripts or builds; I keep a command-prompt in a separate window for that.

Do yourself a favor and download 'build' from dsource.  While it's not an official part of the D toolchain, it's practically standard equipment around here.

http://www.dsource.org/projects/build

Place this on your path along with dmd/bin and dm/bin folders (I just put build.exe in dmd/bin myself) and you'll be good to go.  Also, be sure to check out the forums on dsource as well, as they're packed with good information. Oh, and say goodbye to ANT or makefiles.  You won't be needing those anymore. :)


> Where to put libs, ..?

Its the same story as with C/C++.  You may want to put them where the compiler looks for standard .lib files (dmd/lib) or use your own directory.  In the latter case, you'll have to use a command-line parameter to build/dmd to specify where to look.

- Eric Anderton at yahoo
February 07, 2006
Stefan wrote:

> ´Should´ a D-project look similar to a Java-project, i.e. having a source folder
> with the package/module folders and D/class files? 

It's the same as with Java, i.e. module/class.d

You will find that some packages "cheat" and name
their top directory "module" and do a DFLAGS=-I..

(which also why it breaks, if you rename the dir)

--anders
February 07, 2006
Stefan wrote:
> Hi,
> 
> as a beginner (used to proagram with Java and long time ago C/C++) I would like
> to know how to structure a project.

Just like java.

[snip]
> What build tool is preferable, in the case I don´t like shell scripts.
> 

build ( http://www.dsource.org/projects/build ) is the de-facto standard D build tool. It's kind of like javac, but even better (I think, atleast with respect to packages, I never wrapped my head around compiling a packaged project in java, I always let eclipse do it for me. With build, it's a snap).
February 08, 2006
Stefan wrote:
> Hi,
> 
> as a beginner (used to proagram with Java and long time ago C/C++) I would like
> to know how to structure a project.
> ´Should´ a D-project look similar to a Java-project, i.e. having a source folder
> with the package/module folders and D/class files? Where to put libs, ..?
> EclipseDDT does not work with my current Eclipse 3.1.1, so I use Crimson-Editor.
> What build tool is preferable, in the case I don´t like shell scripts.
> 
> Thanks,
> Stefan

You bring up a good point, Stefan. As a beginner, someone should be able to go to a D-site and get started right away. An effort in making D-related info/tools consolidated and organized is definitely going to happen as the feature freeze approaches.

BTW, Walter, when is that going to be? Do you have a date in mind?