Bump to 4.7.4
[platform/upstream/ccache.git] / ARCHITECTURE.md
1 # Ccache architecture
2
3 ## Code structure
4
5 ### Top-level directories
6
7 * `ci`: Utility scripts used in CI.
8 * `cmake`: CMake scripts.
9 * `doc`: Documentation.
10 * `dockerfiles`: Dockerfiles that specify different environments of interest for
11   ccache.
12 * `misc`: Miscellaneous utility scripts, example files, etc.
13 * `src`: Source code. See below.
14 * `test`: Integration test suite which tests the ccache binary in different
15   scenarios.
16 * `unittest`: Unit test suite which typically tests individual functions.
17
18 ### Subdirectories of `src`
19
20 This section describes the directory structure that the project aims to
21 transform the `src` directory into in the long run to make the code base easier
22 to understand and work with. In other words, this is work in progress.
23
24 * `compiler`: Knowledge about things like compiler options, compiler behavior,
25   preprocessor output format, etc. Ideally this code should in the future be
26   refactored into compiler-specific frontends, such as GCC, Clang, NVCC, MSVC,
27   etc.
28 * `core`: Everything not part of other directories.
29 * `storage`: Storage backends.
30 * `storage/local`: Code for the local storage backend.
31 * `storage/remote`: Code for remote storage backends.
32 * `third_party`: Bundled third party code.
33 * `util`: Generic utility functionality that does not depend on ccache-specific
34   things.