This shows you the differences between two versions of the page.
— | devel:directory_structure [2009-07-12 16:24] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | {{update}} | ||
+ | |||
+ | This article describes the standard directory structures used in the project: source code directories, | ||
+ | |||
+ | ⇒ //" | ||
+ | |||
+ | Now that we are using [[svn_repository|Subversion]], | ||
+ | |||
+ | * All file and directory names should be in lower case. Upper case letters should only be used in special cases (for example, Unix-style README, INSTALL files). | ||
+ | * Instead of using file type as the root level structure (Defs, Src, Include) we should use the logical module (jhrp, common, engine, plugins). | ||
+ | |||
+ | The new structure would look something like this: | ||
+ | |||
+ | < | ||
+ | build/ | ||
+ | win32/ | ||
+ | mac/ | ||
+ | unix/ (Unix/Linux build scripts) | ||
+ | engine/ | ||
+ | scripts/ | ||
+ | src/ | ||
+ | include/ | ||
+ | api/ | ||
+ | defs/ (engine' | ||
+ | plugins/ | ||
+ | jdoom/ | ||
+ | src/ | ||
+ | include/ | ||
+ | defs/ | ||
+ | jheretic/ | ||
+ | jhexen/ | ||
+ | common/ | ||
+ | src/ | ||
+ | include/ | ||
+ | defs/ | ||
+ | dehread/ | ||
+ | mapload/ | ||
+ | d3d/ | ||
+ | opengl/ | ||
+ | packs/ | ||
+ | scripts/ | ||
+ | jdrp/ | ||
+ | jhrp/ | ||
+ | jxrp/ | ||
+ | examples/ | ||
+ | tests/ | ||
+ | </ | ||
+ | |||
+ | What this would mean in practice: | ||
+ | |||
+ | * All project files, build scripts, and makefiles will need to be revised. (Tedious, but doable.) | ||
+ | * The modules are nicely separated: no more confusion with jHRP's definition files being under Defs/ | ||
+ | * The Doomsday [[public_api]] can be separated cleanly into its own directory. | ||
+ | * More resource packs can be included in the official repository. (including data files, also thanks to SVN). | ||
+ | * Games are considered appropriately to be plugins. | ||
+ | * Game definition files are stored under the game's own source directory. | ||
+ | * The runtime directory structure either has to mirror this new structure, or perhaps it would be a good idea to figure out a separate runtime structure optimal for runtime operations under a runtime/ root-level directory. It might look something like this: | ||
+ | | ||
+ | runtime/ | ||
+ | common/ | ||
+ | jdoom/ | ||
+ | bspcache/ | ||
+ | demo/ | ||
+ | savegame/ | ||
+ | jheretic/ | ||
+ | jhexen/ | ||
+ | |||
+ | * When a binary installation is made, only the runtime directory is needed. (Also a bin/ directory for executables on win32. On the Mac, the executables are in the application bundle. In Unix they are in / | ||
+ | |||
+ | Something needs to be done to existing resource packs. Maybe just make sure that the old directory locations are supported also. | ||
+ | |||
+ | |||
+ | ====== See also ====== | ||
+ | |||
+ | * [[http:// | ||
+ | * [[runtime_directory_structure]] | ||
+ | |||
+ | |||
+ | |||