2025-07-10 11:57:52 -04:00

53 lines
1.3 KiB
Nix

{
lib,
stdenvNoCC,
fetchFromGitHub,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "cpm-cmake";
version = "0.42.0";
src = fetchFromGitHub {
owner = "cpm-cmake";
repo = "cpm.cmake";
rev = "v${finalAttrs.version}";
hash = "sha256-IA13qA/b+owlrqbVAkhd4rS98/XB5RNONiJaPwjDm+A=";
};
postPatch = ''
substituteInPlace cmake/CPM.cmake \
--replace-fail "set(CURRENT_CPM_VERSION 1.0.0-development-version)" "set(CURRENT_CPM_VERSION ${finalAttrs.version})"
'';
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/share/{,doc/}cpm
install -Dm644 cmake/CPM.cmake $out/share/cpm/CPM.cmake
install -Dm644 README.md CONTRIBUTING.md $out/share/doc/cpm/
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://github.com/cpm-cmake/CPM.cmake";
description = "CMake's missing package manager";
longDescription = ''
CPM.cmake is a cross-platform CMake script that adds dependency
management capabilities to CMake. It's built as a thin wrapper around
CMake's FetchContent module that adds version control, caching, a
simple API and more.
'';
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ pandapip1 ];
platforms = lib.platforms.all;
};
})