summary refs log tree commit diff
path: root/pkgs/development/libraries/libui
diff options
context:
space:
mode:
authorAnthony Cowley <acowley@gmail.com>2016-09-28 03:00:01 -0400
committerAnthony Cowley <acowley@gmail.com>2016-09-28 03:00:01 -0400
commit7ab671c209fa94772e8ae636b5ca34d83ebc177a (patch)
tree188a7c131a9bf1463e908f852d1c3b28148a3c33 /pkgs/development/libraries/libui
parentdad5651bd4f2376294ad3159c0361e03fb91cb06 (diff)
downloadnixpkgs-7ab671c209fa94772e8ae636b5ca34d83ebc177a.tar
nixpkgs-7ab671c209fa94772e8ae636b5ca34d83ebc177a.tar.gz
nixpkgs-7ab671c209fa94772e8ae636b5ca34d83ebc177a.tar.bz2
nixpkgs-7ab671c209fa94772e8ae636b5ca34d83ebc177a.tar.lz
nixpkgs-7ab671c209fa94772e8ae636b5ca34d83ebc177a.tar.xz
nixpkgs-7ab671c209fa94772e8ae636b5ca34d83ebc177a.tar.zst
nixpkgs-7ab671c209fa94772e8ae636b5ca34d83ebc177a.zip
libui: darwin compatibility
Diffstat (limited to 'pkgs/development/libraries/libui')
-rw-r--r--pkgs/development/libraries/libui/default.nix28
1 files changed, 22 insertions, 6 deletions
diff --git a/pkgs/development/libraries/libui/default.nix b/pkgs/development/libraries/libui/default.nix
index 50c42f4f10b..4db64186850 100644
--- a/pkgs/development/libraries/libui/default.nix
+++ b/pkgs/development/libraries/libui/default.nix
@@ -1,8 +1,9 @@
-{ stdenv, fetchgit, cmake, pkgconfig, gtk3 }:
+{ stdenv, fetchgit, cmake, pkgconfig, gtk3, darwin }:
 
 let
   shortName = "libui";
   version   = "3.1a";
+  backend   = if stdenv.isDarwin then "darwin" else "unix";
 in
   stdenv.mkDerivation rec {
     name = "${shortName}-${version}";
@@ -12,27 +13,42 @@ in
       sha256 = "1lpbfa298c61aarlzgp7vghrmxg1274pzxh1j9isv8x758gk6mfn";
     };
 
-    buildInputs = [ cmake pkgconfig gtk3 ];
+    buildInputs = [ cmake pkgconfig ] ++
+      (if stdenv.isDarwin then [darwin.apple_sdk.frameworks.Cocoa] else [gtk3]);
+
+    preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
+      sed -i 's/set(CMAKE_OSX_DEPLOYMENT_TARGET "10.8")//' ./CMakeLists.txt
+    '';
+    cmakeFlags = stdenv.lib.optionals stdenv.isDarwin [
+      "-DCMAKE_OSX_SYSROOT="
+      "-DCMAKE_OSX_DEPLOYMENT_TARGET="
+    ];
 
     installPhase = ''
       mkdir -p $out/{include,lib}
       mkdir -p $out/lib/pkgconfig
-
+    '' + stdenv.lib.optionalString stdenv.isLinux ''
       mv ./out/${shortName}.so.0 $out/lib/
       ln -s $out/lib/${shortName}.so.0 $out/lib/${shortName}.so
-
+    '' + stdenv.lib.optionalString stdenv.isDarwin ''
+      mv ./out/${shortName}.A.dylib $out/lib/
+      ln -s $out/lib/${shortName}.A.dylib $out/lib/${shortName}.dylib
+    '' + ''
       cp $src/ui.h $out/include
-      cp $src/ui_unix.h $out/include
+      cp $src/ui_${backend}.h $out/include
 
       cp ${./libui.pc} $out/lib/pkgconfig/${shortName}.pc
       substituteInPlace $out/lib/pkgconfig/${shortName}.pc \
         --subst-var-by out $out \
         --subst-var-by version "${version}"
     '';
+    postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+      install_name_tool -id $out/lib/${shortName}.A.dylib $out/lib/${shortName}.A.dylib
+    '';
 
     meta = {
       homepage    = https://github.com/andlabs/libui;
       description = "Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.";
-      platforms   = stdenv.lib.platforms.linux;
+      platforms   = stdenv.lib.platforms.unix;
     };
   }