Skip to content

Latest commit

 

History

History
30 lines (22 loc) · 1.44 KB

File metadata and controls

30 lines (22 loc) · 1.44 KB

Architecture

The core classes and how they collaborate during a build.

Global state & configuration

  • PPG - Global singleton holding config, target platform, and version families.
  • Config - Loads and merges YAML configuration; the Folders helper resolves build paths.

Build coordination

  • BuildSetup - Drives the overall compilation: resolve spec, select modules, build, validate, compress.
  • ModuleBuilder - Abstract base for anything that gets compiled (external C libs and Python itself).
  • PythonBuilder - ModuleBuilder specialization for python implementations.
  • Cpython - Concrete builder: CPython's configure/make/install, optimization, and finalization.

Validation

  • PythonInspector - Validates the portability of a built (or any) python by checking shared-library dependencies and paths.

Collaboration at a glance

PPG (config, target, families)
  └─ BuildSetup(python_spec)
       ├─ Folders            (resolved build/dist/... paths)
       ├─ BuildContext       (macOS folder masking, isolation)
       └─ python_builder : Cpython (a PythonBuilder, a ModuleBuilder)
            └─ modules : ModuleCollection
                 └─ candidates/selected : ModuleBuilder (Openssl, Zlib, ...)