about summary refs log tree commit diff
path: root/pkgs/os-specific/darwin/swift-corefoundation/default.nix
blob: 0ec282b503bf9ebec68c213c77ccb8fb4fba9daf (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
{ stdenv, fetchFromGitHub, python, ninja, libpthread, libxml2 }:

stdenv.mkDerivation {
  name = "swift-corefoundation";

  src = fetchFromGitHub {
    owner  = "apple";
    repo   = "swift-corelibs-foundation";
    rev    = "87d1a97d6af07fec568765c47daddff0aaa0d59c";
    sha256 = "05cmqwzqqxb489g9hq7hhj2yva12pi488iblbpnvyk1y4nx077cw";
  };

  buildInputs = [ ninja python libpthread libxml2 ];

  patchPhase = ''
    HACK=$PWD/hack
    mkdir -p $HACK/CoreFoundation
    cp CoreFoundation/Base.subproj/CFAsmMacros.h $HACK/CoreFoundation

    substituteInPlace CoreFoundation/build.py \
      --replace "','" "'," \
      --replace '-I''${SYSROOT}/usr/include/libxml2' '-I${libxml2.dev}/include/libxml2' \
      --replace 'cf.ASFLAGS = " ".join([' "cf.ASFLAGS = ' '.join([ '-I$HACK', " \
  '';

  configureFlags = "--sysroot unused";

  buildPhase = ''
    cd CoreFoundation
    ../configure --sysroot foo
    ninja
  '';

  installPhase = ''
    mkdir -p $out/lib
    cp ../Build/CoreFoundation/libCoreFoundation.a $out/lib
  '';
}