Logo

Contents:

  • Overview
  • CMaize Background
  • Getting Started
  • API
  • Developing CMaize
    • CMaize Design Documentation
      • Overview of CMaize’s Design
      • Frequently Asked Design Questions
      • Design of CMaize’s User API
      • CMaize Class Design
    • CMaize Assumptions
    • CMaize Conventions
    • CMaize Initialization
    • How to Create a New PackageManager
    • Design Notes
    • Developer FAQs
  • Declaring Build Targets
  • Declaring Dependencies
  • References
CMaize
  • Developing CMaize
  • CMaize Design Documentation
  • Edit on GitHub

CMaize Design Documentation

Topics in this section record the design decisions underlying CMaize. If you’re trying to understand why a piece of CMaize “is the way it is” you’ve come to the right place.

  • Overview of CMaize’s Design
    • What is CMaize?
    • Why do we need CMaize?
    • CMaize Considerations
    • Architecture
    • Summary
  • Frequently Asked Design Questions
    • Why Shouldn’t We Just Copy/Paste Build Systems Among Projects?
    • Why not a generator?
  • Design of CMaize’s User API
    • Overview of CMaize’s User API Design
    • Designing CMaize’s Find or Build Dependency Function
    • Designing CMaize’s Add Target Functions
  • CMaize Class Design
    • Designing CMaize’s CMaizeProject Component
    • Designing the Package Specification
    • Designing CMaize’s PackageManager Component
    • Designing CMaize’s Target Component
    • Designing CMaize’s C++ Target Classes
    • Designing CMaize’s Python Target Classes
    • Designing CMaize’s CMake Target Classes
Previous Next

© Copyright 2020, CMakePP Team.

Built with Sphinx using a theme provided by Read the Docs.