biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / build-managers / gn / generic.nix
blobdab03ebfb7581bd80f1085b033ab759f7591236a
1 { stdenv, lib, fetchgit, darwin, writeText
2 , ninja, python3
3 , ...
4 }:
6 { rev, revNum, version, sha256 }:
8 let
9   revShort = builtins.substring 0 7 rev;
10   lastCommitPosition = writeText "last_commit_position.h" ''
11     #ifndef OUT_LAST_COMMIT_POSITION_H_
12     #define OUT_LAST_COMMIT_POSITION_H_
14     #define LAST_COMMIT_POSITION_NUM ${revNum}
15     #define LAST_COMMIT_POSITION "${revNum} (${revShort})"
17     #endif  // OUT_LAST_COMMIT_POSITION_H_
18   '';
20 in stdenv.mkDerivation {
21   pname = "gn-unstable";
22   inherit version;
24   src = fetchgit {
25     # Note: The TAR-Archives (+archive/${rev}.tar.gz) are not deterministic!
26     url = "https://gn.googlesource.com/gn";
27     inherit rev sha256;
28   };
30   nativeBuildInputs = [ ninja python3 ];
31   buildInputs = lib.optionals stdenv.isDarwin (with darwin; with apple_sdk.frameworks; [
32     libobjc
33     cctools
35     # frameworks
36     ApplicationServices
37     Foundation
38     AppKit
39   ]);
41   env.NIX_CFLAGS_COMPILE = "-Wno-error";
43   buildPhase = ''
44     python build/gen.py --no-last-commit-position
45     ln -s ${lastCommitPosition} out/last_commit_position.h
46     ninja -j $NIX_BUILD_CORES -C out gn
47   '';
49   installPhase = ''
50     install -vD out/gn "$out/bin/gn"
51   '';
53   setupHook = ./setup-hook.sh;
55   meta = with lib; {
56     description = "A meta-build system that generates build files for Ninja";
57     mainProgram = "gn";
58     homepage = "https://gn.googlesource.com/gn";
59     license = licenses.bsd3;
60     platforms = platforms.unix;
61     maintainers = with maintainers; [ stesie matthewbauer primeos ];
62   };