awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
cpm-cmake avatar

cpm-cmake/CPM.cmake

0
View on GitHub↗
3,910 stars·214 forks·CMake·mit·16 views

CPM.cmake

CPM.cmake is a dependency manager and package resolver for C and C++ projects that integrates directly into the CMake build system. It automates the process of fetching, configuring, and managing external libraries by resolving dependencies through system-wide package managers or by downloading source code from remote repositories.

The system ensures reproducible builds by locking transitive dependency versions and verifying the authenticity of downloaded source archives using cryptographic hash checksums. It allows for development flexibility through local filesystem overrides, which redirect remote dependencies to local paths, and sequential source patching to modify dependency behavior without altering the original codebase.

Broad capabilities include version resolution via semantic tags or commit hashes, local caching of dependency sources to reduce network overhead, and the application of custom build flags and options during the configuration of third-party projects.

Features

  • Remote Dependency Integration - Automates the downloading and integration of external libraries from remote repositories into the build system.
  • CMake-Based Managers - Acts as a comprehensive dependency manager and package resolver integrated directly into the CMake build system.
  • Dependency Lock Managers - Generates lock files to fix versions of all transitive dependencies for reproducible builds.
  • Dependency Resolvers - Implements logic for calculating and fetching dependency graphs to resolve transitive library versions.
  • Remote Version Resolution - Resolves specific library versions by fetching tags or commit hashes directly from remote Git repositories.
  • Package Dependency Managers - Resolves third-party dependencies by checking system-wide package managers before falling back to automated source downloads.
  • Reproducible Build Environments - Ensures consistent builds across environments by locking transitive dependency versions and verifying source integrity.
  • Third-Party Source Integration - Downloads and configures third-party projects from any source without requiring modifications to the original codebase.
  • CMake Integrations - Provides a CMake script that automates the retrieval and inclusion of external project source code.
  • Dependency Management - Provides an automated system for fetching and configuring external C++ libraries directly through CMake.
  • Semantic Versioning Systems - Uses semantic versioning and release tags to integrate libraries and ensure deterministic builds.
  • System Package Manager Integrations - Locates dependencies via system-wide package managers before falling back to downloading from source.
  • C++ Package Orchestration - Manages the lifecycle of third party C++ dependencies by checking system installations before downloading from source.
  • External Library Installers - Downloads and configures external source code from remote repositories using specific version tags or commit hashes.
  • Fallback Resolution Strategies - Attempts to find packages via system-wide managers before falling back to automated source downloads.
  • Package Dependency Resolution - Locates required packages by checking for global installations before falling back to automated fetching.
  • Dependency Build Options - Passes build settings and flags to a dependency during configuration to toggle features or disable components.
  • Dependency Caches - Stores downloaded packages in a local directory to speed up build times and ensure consistent environments.
  • Post-Download Patching - Executes a sequence of patch files against dependency source code immediately after downloading to modify behavior.
  • Local Dependency Caching - Implements local caching of downloaded dependencies to reduce network overhead and ensure build consistency.
  • Local Dependency Linkers - Redirects dependencies to absolute local paths to test changes without updating remote sources.
  • Local Source Overrides - Allows redirecting remote dependency resolution to a local filesystem path for iterative development.
  • Download Integrity Verification - Validates the authenticity of downloaded source archives by comparing file hashes against trusted checksums.
  • Post-Download Integrity Checks - Validates the authenticity of downloaded source archives using cryptographic hash checksums to ensure supply chain security.
  • Patch Application - Applies a series of external patch files to downloaded source code before configuration.

Star history

Star history chart for cpm-cmake/cpm.cmakeStar history chart for cpm-cmake/cpm.cmake

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does cpm-cmake/cpm.cmake do?

CPM.cmake is a dependency manager and package resolver for C and C++ projects that integrates directly into the CMake build system. It automates the process of fetching, configuring, and managing external libraries by resolving dependencies through system-wide package managers or by downloading source code from remote repositories.

What are the main features of cpm-cmake/cpm.cmake?

The main features of cpm-cmake/cpm.cmake are: Remote Dependency Integration, CMake-Based Managers, Dependency Lock Managers, Dependency Resolvers, Remote Version Resolution, Package Dependency Managers, Reproducible Build Environments, Third-Party Source Integration.

What are some open-source alternatives to cpm-cmake/cpm.cmake?

Open-source alternatives to cpm-cmake/cpm.cmake include: thelartians/cpm — CPM is a source-based package manager and build tool for CMake that downloads, versions, and integrates external C++… rust-lang/cargo — Cargo is the official build system and package manager for the Rust programming language. It provides a unified… masterminds/glide — Glide is a Go dependency management tool that fetches, pins, and vendors external packages to enable reproducible… homebrew/homebrew-core — This project is a Ruby-based package definition repository that functions as a cross-platform package manager and… friendlyanon/cmake-init — cmake-init is a project generator and build system boilerplate designed to automate the initialization of C++… componentjs/component — Component is a frontend build tool and package manager designed for modular web application development. It functions…

Open-source alternatives to CPM.cmake

Similar open-source projects, ranked by how many features they share with CPM.cmake.
  • thelartians/cpmTheLartians avatar

    TheLartians/CPM

    4,026View on GitHub↗

    CPM is a source-based package manager and build tool for CMake that downloads, versions, and integrates external C++ dependencies without requiring an external installation. It functions as a script-based resolution system that fetches remote source code and configures project targets for immediate use within the build process. The project ensures reproducible build workflows through lockfile version pinning and cryptographic hash-based integrity verification of downloaded archives. It supports concurrent development by allowing remote resources to be overridden with local filesystem paths an

    CMake
    View on GitHub↗4,026
  • rust-lang/cargorust-lang avatar

    rust-lang/cargo

    14,624View on GitHub↗

    Cargo is the official build system and package manager for the Rust programming language. It provides a unified command-line interface that orchestrates the entire development lifecycle, including compiling source code, managing complex dependency graphs, running tests, and distributing packages through a centralized registry. By utilizing declarative manifest files, it ensures that builds remain reproducible and consistent across different environments. The tool distinguishes itself through its deep integration with the Rust compiler and its sophisticated approach to project management. It f

    Rustcargopackage-managerrust
    View on GitHub↗14,624
  • masterminds/glideMasterminds avatar

    Masterminds/glide

    8,095View on GitHub↗

    Glide is a Go dependency management tool that fetches, pins, and vendors external packages to enable reproducible builds across environments. It stores project-specific copies of Go packages in a vendor directory, isolating dependencies per project to avoid version conflicts, and supports fetching packages from Git, Mercurial, Bazaar, and Subversion repositories. The tool resolves dependency versions using semantic versioning ranges and operators, and generates a lock file that records exact commit IDs for all transitive dependencies. Glide distinguishes itself with an interactive version wiz

    Gogogolangpackage-management
    View on GitHub↗8,095
  • homebrew/homebrew-coreHomebrew avatar

    Homebrew/homebrew-core

    15,383View on GitHub↗

    This project is a Ruby-based package definition repository that functions as a cross-platform package manager and software dependency resolver for macOS and Linux. It provides a centralized system for installing, updating, and managing software through a Git-based distribution model. The system distinguishes itself through a binary package distribution network that produces pre-compiled bottles to avoid local compilation from source. It utilizes a Ruby-based domain specific language to define installation recipes and employs a distributed version control architecture to synchronize these defi

    Rubycoreformulaehacktoberfest
    View on GitHub↗15,383
See all 30 alternatives to CPM.cmake→