summary refs log tree commit diff
path: root/pkgs/applications/editors/aseprite/skia.nix
blob: c89ebd4ad0c15cd8c362f1b3042750af6bec9545 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
{ stdenv, lib, fetchFromGitHub, fetchgit, python2, gn, ninja
, fontconfig, expat, icu58, libglvnd, libjpeg, libpng, libwebp, zlib
, mesa, libX11
}:

let
  # skia-deps.nix is generated by: ./skia-make-deps.sh 'angle2|dng_sdk|piex|sfntly'
  depSrcs = import ./skia-deps.nix { inherit fetchgit; };
in
stdenv.mkDerivation {
  name = "skia-aseprite-m71";

  src = fetchFromGitHub {
    owner = "aseprite";
    repo = "skia";
    # latest commit from aseprite-m71 branch
    rev = "89e4ca4352d05adc892f5983b108433f29b2c0c2";
    sha256 = "0n3vrkswvi6rib9zv2pzi18h3j5wm7flmgkgaikcm6q7iw4l2c7x";
  };

  nativeBuildInputs = [ python2 gn ninja ];

  buildInputs = [
    fontconfig expat icu58 libglvnd libjpeg libpng libwebp zlib
    mesa libX11
  ];

  preConfigure = with depSrcs; ''
    mkdir -p third_party/externals
    ln -s ${angle2} third_party/externals/angle2
    ln -s ${dng_sdk} third_party/externals/dng_sdk
    ln -s ${piex} third_party/externals/piex
    ln -s ${sfntly} third_party/externals/sfntly
  '';

  configurePhase = ''
    runHook preConfigure
    gn gen out/Release --args="is_debug=false is_official_build=true"
    runHook postConfigure
  '';

  buildPhase = ''
    runHook preBuild
    ninja -C out/Release skia
    runHook postBuild
  '';

  installPhase = ''
    mkdir -p $out

    # Glob will match all subdirs.
    shopt -s globstar

    # All these paths are used in some way when building aseprite.
    cp -r --parents -t $out/ \
      include/codec \
      include/config \
      include/core \
      include/effects \
      include/gpu \
      include/private \
      include/utils \
      out/Release/*.a \
      src/gpu/**/*.h \
      third_party/externals/angle2/include \
      third_party/skcms/**/*.h
  '';
}