📝 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 ## Structure of source code
* **atom** - Source code of atom-shell. * **atom** - Source code of atom-shell.
* **app** - Contains system entry code, this is the most basic level of the * **app** - System entry code.
program.
* **browser** - The frontend including the main window, UI, and all browser * **browser** - The frontend including the main window, UI, and all browser
side things. This talks to the renderer to manage web pages. 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. * **ui** - Implementation of UI stuff for different platforms.
* **cocoa** - Cocoa specific source code. * **cocoa** - Cocoa specific source code.
* **gtk** - GTK+ 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. * **api** - The implementation of browser side APIs.
* **lib** - Javascript part of the API implementation. * **lib** - Javascript part of the API implementation.
* **net** - Network related code. * **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. * **lib** - Javascript part of renderer initialization code.
* **api** - The implementation of renderer side APIs. * **api** - The implementation of renderer side APIs.
* **lib** - Javascript part of the API implementation. * **lib** - Javascript part of the API implementation.
* **common** - Code that used by both browser and renderer, including some * **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. * **lib** - Common Javascript initialization code.
* **v8** - Utility functions for using V8 and node APIs.
* **api** - The implementation of common APIs, and foundations of * **api** - The implementation of common APIs, and foundations of
atom-shell's built-in modules. atom-shell's built-in modules.
* **lib** - Javascript part of the API implementation. * **lib** - Javascript part of the API implementation.
* **spec** - Automatic tests. * **chrome** - Source code modified from Chromium's `chrome` component.
* **script** - Scripts for building atom-shell. * **docs** - Documentations.
* **chrome** - Source code modified from Chromium's chrome component. * **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 ## Structure of other directories
* **vendor** - Build dependencies. * **script** - Scripts used for development purpose like building, packaging,
* **tools** - Helper scripts used by gyp files. testing, etc.
* **node_modules** - Third party node modules used for building or running * **tools** - Helper scripts used by gyp files, unlike `script`, scripts put
specs. here should never be invoked by users directly.
* **out** - Output directory for `ninja`. * **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 * **dist** - Temporary directory created by `script/create-dist.py` script
when creating an distribution. when creating an distribution.
* **node** - Downloaded node binary, it's built from * **frameworks** - Downloaded binaries of third-party frameworks, binaries
https://github.com/atom/node/tree/chromium-v8. here are usually either closed source or hard to be built via `gyp`.
* **frameworks** - Downloaded third-party binaries of frameworks (only on
Mac).