nixpkgs/pkgs/development/tools/cosmocc/default.nix
2023-02-13 07:32:21 -05:00

36 lines
953 B
Nix

{ runCommand, lib, cosmopolitan }:
let
cosmocc =
runCommand "cosmocc"
{
pname = "cosmocc";
inherit (cosmopolitan) version;
meta = with lib; {
homepage = "https://justine.lol/cosmopolitan/";
description = "compilers for Cosmopolitan C/C++ programs";
license = licenses.mit;
maintainers = teams.cosmopolitan.members;
};
passthru.tests = {
cc = runCommand "c-test" { } ''
cat > hello.c << END
#include <stdio.h>
int main() {
printf("Hello world!\n");
return 0;
}
END
${cosmocc}/bin/cosmocc hello.c
./a.out > $out
'';
};
} ''
mkdir -p $out/bin
install ${cosmopolitan.dist}/tool/scripts/{cosmocc,cosmoc++} $out/bin
sed 's|/opt/cosmo\([ /]\)|${cosmopolitan.dist}\1|g' -i $out/bin/*
'';
in
cosmocc