52 lines
1.3 KiB
Nix
52 lines
1.3 KiB
Nix
# vim: set noet sw=2 ts=2 sts=2:
|
|
{lib, pkgs, ...}:
|
|
({src ? null , srcs ? null, name ? "", pname ? "", version ? ""}:
|
|
with pkgs;
|
|
let
|
|
escapeShellArg = lib.strings.escapeShellArg;
|
|
name_ =
|
|
if "" != name
|
|
then name
|
|
else "${pname}-v${version}";
|
|
in stdenv.mkDerivation ({
|
|
name = name_;
|
|
nativeBuildInputs = [ sfnt2woff-zopfli unzip coreutils fontconfig woff2 ];
|
|
unpackPhase = ''
|
|
source_dir="$TMPDIR/src"
|
|
mkdir "$source_dir"
|
|
cd "$source_dir"
|
|
for s in $src $srcs
|
|
do
|
|
case "$s" in
|
|
*.zip|*.tar|*.tar.gz|*.tgz|*.tar.xz|*.txz|*.tar.bz2|*.tbz2)
|
|
unpackFile "$s"
|
|
;;
|
|
*)
|
|
cp -pr --reflink=auto -- "$s" "$(stripHash "$s")"
|
|
;;
|
|
esac
|
|
done
|
|
>"Makefile" echo ${escapeShellArg (builtins.readFile ./Makefile)}
|
|
>"fc.format" echo ${escapeShellArg (builtins.readFile ./fc.format)}
|
|
'';
|
|
buildPhase = ''
|
|
set -e
|
|
build_dir="$TMPDIR/build"
|
|
mkdir "$build_dir"
|
|
find "$source_dir" \( -name Makefile -or -name fc.format -or -name \*.otf -or -name \*.ttf -or -name \*.woff -or -name \*.woff2 \) -exec cp \{\} "$build_dir" \;
|
|
cd "$build_dir"
|
|
for f in *.ttf
|
|
do
|
|
[ -f "''${f%.ttf}.otf" ] || mv "$f" "''${f%.ttf}.otf"
|
|
done
|
|
make -j all
|
|
'';
|
|
installPhase = ''
|
|
make -j install D=$out name=${name_} S=$source_dir
|
|
'';
|
|
} // (
|
|
if null != src
|
|
then { src = src; }
|
|
else { srcs = srcs; }
|
|
))
|
|
)
|