Skip to content

Latest commit

 

History

History
38 lines (30 loc) · 1.37 KB

ARCHITECTURE.md

File metadata and controls

38 lines (30 loc) · 1.37 KB

Ccache architecture

Code structure

Top-level directories

  • ci: Utility scripts used in CI.
  • cmake: CMake scripts.
  • doc: Documentation.
  • dockerfiles: Dockerfiles that specify different environments of interest for ccache.
  • misc: Miscellaneous utility scripts, example files, etc.
  • src: Source code. See below.
  • test: Integration test suite which tests the ccache binary in different scenarios.
  • unittest: Unit test suite which typically tests individual functions.

Subdirectories of src

  • ccache: Ccache source code.
  • third_party: Bundled third party code.

Subdirectories of src/ccache

This section describes the directory structure that the project aims to transform the src/ccache directory into in the long run to make the code base easier to understand and work with. In other words, this is work in progress.

  • compiler: Knowledge about things like compiler options, compiler behavior, preprocessor output format, etc. Ideally this code should in the future be refactored into compiler-specific frontends, such as GCC, Clang, NVCC, MSVC, etc.
  • core: Everything not part of other directories.
  • storage: Storage backends.
  • storage/local: Code for the local storage backend.
  • storage/remote: Code for remote storage backends.
  • util: Generic utility functionality that does not depend on ccache-specific things.