mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-04 20:13:21 +00:00
786b4216c5
Split into "current" version, as used by most things (aka gn), and "gn1924", which uses a more recent version of gn which is incompatible with the currently packaged version of v8 in nixpkgs. We can't win, but I need a newer version of gn for envoy. Note that the newer gn matches the version in Chromium's DEPS for v93.0.4577.82, the current Linux stable build as of September.
61 lines
1.4 KiB
Nix
61 lines
1.4 KiB
Nix
{ stdenv, lib, fetchgit, darwin, writeText
|
|
, ninja, python3
|
|
, ...
|
|
}:
|
|
|
|
{ rev, revNum, version, sha256 }:
|
|
|
|
let
|
|
revShort = builtins.substring 0 7 rev;
|
|
lastCommitPosition = writeText "last_commit_position.h" ''
|
|
#ifndef OUT_LAST_COMMIT_POSITION_H_
|
|
#define OUT_LAST_COMMIT_POSITION_H_
|
|
|
|
#define LAST_COMMIT_POSITION_NUM ${revNum}
|
|
#define LAST_COMMIT_POSITION "${revNum} (${revShort})"
|
|
|
|
#endif // OUT_LAST_COMMIT_POSITION_H_
|
|
'';
|
|
|
|
in stdenv.mkDerivation {
|
|
pname = "gn-unstable";
|
|
inherit version;
|
|
|
|
src = fetchgit {
|
|
# Note: The TAR-Archives (+archive/${rev}.tar.gz) are not deterministic!
|
|
url = "https://gn.googlesource.com/gn";
|
|
inherit rev sha256;
|
|
};
|
|
|
|
nativeBuildInputs = [ ninja python3 ];
|
|
buildInputs = lib.optionals stdenv.isDarwin (with darwin; with apple_sdk.frameworks; [
|
|
libobjc
|
|
cctools
|
|
|
|
# frameworks
|
|
ApplicationServices
|
|
Foundation
|
|
AppKit
|
|
]);
|
|
|
|
buildPhase = ''
|
|
python build/gen.py --no-last-commit-position
|
|
ln -s ${lastCommitPosition} out/last_commit_position.h
|
|
ninja -j $NIX_BUILD_CORES -C out gn
|
|
'';
|
|
|
|
installPhase = ''
|
|
install -vD out/gn "$out/bin/gn"
|
|
'';
|
|
|
|
setupHook = ./setup-hook.sh;
|
|
|
|
meta = with lib; {
|
|
description = "A meta-build system that generates build files for Ninja";
|
|
homepage = "https://gn.googlesource.com/gn";
|
|
license = licenses.bsd3;
|
|
platforms = platforms.unix;
|
|
maintainers = with maintainers; [ stesie matthewbauer primeos ];
|
|
};
|
|
}
|