From 5b000479841ee5722061dd2980d5d3f66a28a208 Mon Sep 17 00:00:00 2001 From: Yureka Date: Tue, 18 Oct 2022 14:53:53 +0200 Subject: [PATCH] ttmkfdir: fix cross --- pkgs/tools/misc/ttmkfdir/default.nix | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/pkgs/tools/misc/ttmkfdir/default.nix b/pkgs/tools/misc/ttmkfdir/default.nix index 77bc9f172c6f..47ff95c14f5f 100644 --- a/pkgs/tools/misc/ttmkfdir/default.nix +++ b/pkgs/tools/misc/ttmkfdir/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, freetype, fontconfig, libunwind, libtool, flex, bison }: +{ lib, stdenv, fetchurl, freetype, libtool, flex, bison, pkg-config }: stdenv.mkDerivation { pname = "ttf-mkfontdir"; @@ -20,11 +20,21 @@ stdenv.mkDerivation { ./cstring.patch # also fixes some other compilation issues (freetype includes) ]; - preInstall = '' - mkdir -p $out; makeFlags="DESTDIR=$out BINDIR=/bin" + # cross-compilation fixes: + # - fix libtool, the reason it does not work in nativeBuildInputs is complicated + # see https://github.com/NixOS/nixpkgs/pull/192878 for more info + # - freetype-config doesn't properly support cross-compilation, but is just a thin + # wrapper around pkg-config anyways + postPatch = '' + substituteInPlace Makefile \ + --replace "libtool " "${libtool}/bin/libtool --tag=CXX " \ + --replace "freetype-config" "${stdenv.cc.targetPrefix}pkg-config freetype2" ''; - buildInputs = [freetype fontconfig libunwind libtool flex bison]; + makeFlags = [ "DESTDIR=${placeholder "out"}" "BINDIR=/bin" "CXX=${stdenv.cc.targetPrefix}c++" ]; + + nativeBuildInputs = [ flex bison pkg-config ]; + buildInputs = [ freetype ]; meta = { description = "Create fonts.dir for TTF font directory";