diff options
author | Anthony Cowley <acowley@gmail.com> | 2016-09-28 03:00:01 -0400 |
---|---|---|
committer | Anthony Cowley <acowley@gmail.com> | 2016-09-28 03:00:01 -0400 |
commit | 7ab671c209fa94772e8ae636b5ca34d83ebc177a (patch) | |
tree | 188a7c131a9bf1463e908f852d1c3b28148a3c33 /pkgs/development/libraries/libui | |
parent | dad5651bd4f2376294ad3159c0361e03fb91cb06 (diff) | |
download | nixpkgs-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.nix | 28 |
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; }; } |