about summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2015-10-05 19:26:54 +0200
committerVladimír Čunát <vcunat@gmail.com>2015-10-13 20:18:44 +0200
commit9a1aa51fed2b62edcce9f1722cfc822cf07f31a8 (patch)
tree163fa8a55531071676216f3187af77abf9165ece /pkgs/development
parent17a3f6a6fa33de932fcd6e31c7a81db88af794b5 (diff)
downloadnixlib-9a1aa51fed2b62edcce9f1722cfc822cf07f31a8.tar
nixlib-9a1aa51fed2b62edcce9f1722cfc822cf07f31a8.tar.gz
nixlib-9a1aa51fed2b62edcce9f1722cfc822cf07f31a8.tar.bz2
nixlib-9a1aa51fed2b62edcce9f1722cfc822cf07f31a8.tar.lz
nixlib-9a1aa51fed2b62edcce9f1722cfc822cf07f31a8.tar.xz
nixlib-9a1aa51fed2b62edcce9f1722cfc822cf07f31a8.tar.zst
nixlib-9a1aa51fed2b62edcce9f1722cfc822cf07f31a8.zip
harfbuzz-icu: share the non-icu library
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/libraries/harfbuzz/default.nix37
1 files changed, 24 insertions, 13 deletions
diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix
index d2f8416b3eab..6ee88f6ea4fb 100644
--- a/pkgs/development/libraries/harfbuzz/default.nix
+++ b/pkgs/development/libraries/harfbuzz/default.nix
@@ -1,38 +1,49 @@
 { stdenv, fetchurl, pkgconfig, glib, freetype, cairo, libintlOrEmpty
-, icu, graphite2
+, icu, graphite2, harfbuzz # The icu variant uses and propagates the non-icu one.
 , withIcu ? false # recommended by upstream as default, but most don't needed and it's big
 , withGraphite2 ? true # it is small and major distros do include it
 }:
 
-# TODO: split non-icu and icu lib into different outputs?
-# (icu is a ~30 MB dependency, the rest is very small in comparison)
+let
+  version = "1.0.3";
+  inherit (stdenv.lib) optional optionals optionalString;
+in
 
-stdenv.mkDerivation rec {
-  name = "harfbuzz-1.0.3";
+stdenv.mkDerivation {
+  name = "harfbuzz${optionalString withIcu "-icu"}-1.0.3";
 
   src = fetchurl {
-    url = "http://www.freedesktop.org/software/harfbuzz/release/${name}.tar.bz2";
+    url = "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${version}.tar.bz2";
     sha256 = "1xrxlrvgyr6mm9qjxmkif2kvcah082y94gf1vqi0f0bdl1g8gp7b";
   };
 
-  outputs = [ "out" "doc" ];
+  outputs = [ "dev" "out" "doc" ];
+  outputBin = "dev";
 
   configureFlags = [
     ( "--with-graphite2=" + (if withGraphite2 then "yes" else "no") ) # not auto-detected by default
     ( "--with-icu=" +       (if withIcu       then "yes" else "no") )
   ];
 
-  buildInputs = [ pkgconfig glib freetype cairo ] # recommended by upstream
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib freetype cairo ] # recommended by upstream
     ++ libintlOrEmpty;
   propagatedBuildInputs = []
-    ++ stdenv.lib.optional withGraphite2 graphite2
-    ++ stdenv.lib.optional withIcu icu
+    ++ optional withGraphite2 graphite2
+    ++ optionals withIcu [ icu harfbuzz ]
     ;
 
-  meta = {
+  # Slightly hacky; some pkgs expect them in a single directory.
+  postInstall = optionalString withIcu ''
+    rm "$out"/lib/libharfbuzz.* "$dev/lib/pkgconfig/harfbuzz.pc"
+    ln -s {'${harfbuzz.out}',"$out"}/lib/libharfbuzz.la
+    ln -s {'${harfbuzz.dev}',"$dev"}/lib/pkgconfig/harfbuzz.pc
+  '';
+
+  meta = with stdenv.lib; {
     description = "An OpenType text shaping engine";
     homepage = http://www.freedesktop.org/wiki/Software/HarfBuzz;
-    maintainers = [ stdenv.lib.maintainers.eelco ];
-    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+    maintainers = [ maintainers.eelco ];
+    platforms = with platforms; linux ++ darwin;
   };
 }