📝 Update source code structure.

This commit is contained in:
Cheng Zhao 2014-05-04 20:15:20 +08:00
parent 8a8048a629
commit 9b9cfcfeaa

View file

@ -12,11 +12,10 @@ to understand the source code better.
## Structure of source code
* **atom** - Source code of atom-shell.
* **app** - Contains system entry code, this is the most basic level of the
program.
* **app** - System entry code.
* **browser** - The frontend including the main window, UI, and all browser
side things. This talks to the renderer to manage web pages.
* **lib** - Javascript part of browser initialization code.
* **lib** - Javascript part of browser sidde initialization code.
* **ui** - Implementation of UI stuff for different platforms.
* **cocoa** - Cocoa specific source code.
* **gtk** - GTK+ specific source code.
@ -26,31 +25,38 @@ to understand the source code better.
* **api** - The implementation of browser side APIs.
* **lib** - Javascript part of the API implementation.
* **net** - Network related code.
* **renderer** - Code that runs in renderer.
* **mac** - Mac specific Objective-C source code.
* **resources** - Icons, platform-dependent files, etc.
* **renderer** - Code that runs in renderer process.
* **lib** - Javascript part of renderer initialization code.
* **api** - The implementation of renderer side APIs.
* **lib** - Javascript part of the API implementation.
* **common** - Code that used by both browser and renderer, including some
utility functions and code to integrate node's message loop into Chromium's message loop.
utility functions and code to integrate node's message loop into Chromium's
message loop.
* **lib** - Common Javascript initialization code.
* **v8** - Utility functions for using V8 and node APIs.
* **api** - The implementation of common APIs, and foundations of
atom-shell's built-in modules.
* **lib** - Javascript part of the API implementation.
* **spec** - Automatic tests.
* **script** - Scripts for building atom-shell.
* **chrome** - Source code modified from Chromium's chrome component.
* **chrome** - Source code modified from Chromium's `chrome` component.
* **docs** - Documentations.
* **spec** - Automatic tests.
* **atom.gyp** - Building rules of atom-shell.
* **common.gypi** - Compiler specific settings and building rules for other
components like `node` and `breakpad`.
## Structure of other directories
* **vendor** - Build dependencies.
* **tools** - Helper scripts used by gyp files.
* **node_modules** - Third party node modules used for building or running
specs.
* **out** - Output directory for `ninja`.
* **script** - Scripts used for development purpose like building, packaging,
testing, etc.
* **tools** - Helper scripts used by gyp files, unlike `script`, scripts put
here should never be invoked by users directly.
* **vendor** - Source code of third party dependencies, we didn't use
`third_party` as name because it would confuse with the same directory in
Chromium's source code tree.
* **node_modules** - Third party node modules used for building.
* **out** - Temporary output directory of `ninja`.
* **dist** - Temporary directory created by `script/create-dist.py` script
when creating an distribution.
* **node** - Downloaded node binary, it's built from
https://github.com/atom/node/tree/chromium-v8.
* **frameworks** - Downloaded third-party binaries of frameworks (only on
Mac).
* **frameworks** - Downloaded binaries of third-party frameworks, binaries
here are usually either closed source or hard to be built via `gyp`.