Unverified Commit 98cd1219 authored by Nick Cao's avatar Nick Cao Committed by GitHub
Browse files

fortran-fpm: modernize (#390225)

parents 551e707f e0ba6aaf
Loading
Loading
Loading
Loading
+26 −14
Original line number Diff line number Diff line
{
  lib,
  fetchurl,
  pkgs,
  stdenv,
  fetchurl,
  gfortran,
  versionCheckHook,
  nix-update-script,
}:

stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
  pname = "fortran-fpm";

  version = "0.11.0";

  src = fetchurl {
    url = "https://github.com/fortran-lang/fpm/releases/download/v${version}/fpm-${version}.F90";
    sha256 = "sha256-mIozF+4kSO5yB9CilBDwinnIa92sMxSyoXWAGpz1jSc=";
    url = "https://github.com/fortran-lang/fpm/releases/download/v${finalAttrs.version}/fpm-${finalAttrs.version}.F90";
    hash = "sha256-mIozF+4kSO5yB9CilBDwinnIa92sMxSyoXWAGpz1jSc=";
  };

  dontUnpack = true;

  nativeBuildInputs = with pkgs; [ gfortran ];
  nativeBuildInputs = [ gfortran ];

  buildPath = "build/bootstrap";

  buildPhase = ''
    runHook preBuild

    mkdir -p ${buildPath}
    gfortran -J ${buildPath} -o ${buildPath}/${pname} $src
    mkdir -p ${finalAttrs.buildPath}
    gfortran -J ${finalAttrs.buildPath} -o ${finalAttrs.buildPath}/fortran-fpm $src

    runHook postBuild
  '';
@@ -34,17 +36,27 @@ stdenv.mkDerivation rec {
    runHook preInstall

    mkdir -p $out/bin
    cp ${buildPath}/${pname} $out/bin
    cp ${finalAttrs.buildPath}/fortran-fpm $out/bin

    runHook postInstall
  '';

  meta = with lib; {
  nativeInstallCheckInputs = [
    versionCheckHook
  ];
  versionCheckProgramArg = "--version";
  doInstallCheck = true;

  passthru = {
    updateScript = nix-update-script { };
  };

  meta = {
    description = "Fortran Package Manager (fpm)";
    homepage = "https://fpm.fortran-lang.org";
    maintainers = [ maintainers.proofconstruction ];
    license = licenses.mit;
    platforms = platforms.all;
    maintainers = [ lib.maintainers.proofconstruction ];
    license = lib.licenses.mit;
    platforms = lib.platforms.all;
    mainProgram = "fortran-fpm";
  };
}
})