update

This article describes the standard directory structures used in the project: source code directories, runtime directories on various platforms.

“Source Directory Structure Proposal” by skyjake on April 14, 2006 at 13:56 on dengDevs

Now that we are using Subversion, it's feasible to think about such things as bringing some consistency into the Doomsday source directory structure. I think the following new principles should form the basis of a new directory structure.

The new structure would look something like this:

build/         (all build/project-related files, incl. built binaries)
    win32/     (windows projects and scripts)
    mac/       (Xcode project)
    unix/      (Unix/Linux build scripts)
engine/
    scripts/   (engine scripts: makedmt.py)
    src/
    include/   (engine's internal files)
    api/       (doomsday.h, dd_share.h, doomsday.def, etc.)
    defs/      (engine's definition files)
plugins/
    jdoom/     (the games should be just plugins like everything else)
        src/
        include/
        defs/
    jheretic/
    jhexen/
    common/
        src/
        include/
        defs/
    dehread/
    mapload/
    d3d/
    opengl/
packs/
    scripts/   (resource pack scripts: "compile PK3s")
    jdrp/
    jhrp/
    jxrp/
    examples/  (examples like shiny surfaces for jHexen map01)
    tests/     (assorted resource tests)

What this would mean in practice:

runtime/

    common/    (common.cfg for settings shared by all; executed last?)
    jdoom/     (jDoom's runtime directory)
        bspcache/
        demo/
        savegame/
    jheretic/
    jhexen/

Something needs to be done to existing resource packs. Maybe just make sure that the old directory locations are supported also.

See also