diff options
author | Bjørn Forsman <bjorn.forsman@gmail.com> | 2015-09-11 14:32:42 +0200 |
---|---|---|
committer | Bjørn Forsman <bjorn.forsman@gmail.com> | 2015-09-14 11:10:13 +0200 |
commit | affcf2e03053366cdd0c68f0771c6abc68afa4ea (patch) | |
tree | 929d00746e3114fb13127919adb85bf2f5f7e708 /pkgs/development | |
parent | c94a62558524741fedfa82bfd3b3c3cca7c2f59a (diff) | |
download | nixpkgs-affcf2e03053366cdd0c68f0771c6abc68afa4ea.tar nixpkgs-affcf2e03053366cdd0c68f0771c6abc68afa4ea.tar.gz nixpkgs-affcf2e03053366cdd0c68f0771c6abc68afa4ea.tar.bz2 nixpkgs-affcf2e03053366cdd0c68f0771c6abc68afa4ea.tar.lz nixpkgs-affcf2e03053366cdd0c68f0771c6abc68afa4ea.tar.xz nixpkgs-affcf2e03053366cdd0c68f0771c6abc68afa4ea.tar.zst nixpkgs-affcf2e03053366cdd0c68f0771c6abc68afa4ea.zip |
opencv3: add enableIpp flag
Intel Integrated Performance Primitives (IPP) speeds up parts of OpenCV on Intel processors (and compatible). It increases the store path from 220 MiB to 300 MiB, so it defaults to off. Original patch from Bas van Dijk <v.dijk.bas@gmail.com>. I tried applying the same change to opencv(2.x). OpenCV 2.x didn't automatically detect IPP, so I reverted the change.
Diffstat (limited to 'pkgs/development')
-rw-r--r-- | pkgs/development/libraries/opencv/3.x.nix | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/pkgs/development/libraries/opencv/3.x.nix b/pkgs/development/libraries/opencv/3.x.nix index eed77b9113a..365f11f88f0 100644 --- a/pkgs/development/libraries/opencv/3.x.nix +++ b/pkgs/development/libraries/opencv/3.x.nix @@ -1,5 +1,6 @@ { lib, stdenv, fetchurl, cmake, gtk, libjpeg, libpng, libtiff, jasper, ffmpeg , fetchpatch, pkgconfig, gstreamer, xineLib, glib, python27, python27Packages, unzip +, enableIpp ? false , enableBloat ? false }: let v = "3.0.0"; in @@ -12,15 +13,27 @@ stdenv.mkDerivation rec { sha256 = "00dh7wvgkflz22liqd10fma8m3395lb3l3rgawnn5wlnz6i4w287"; }; + postPatch = + let ippicv = fetchurl { + url = "http://sourceforge.net/projects/opencvlibrary/files/3rdparty/ippicv/${ippicvName}"; + md5 = ippicvHash; + }; + ippicvName = "ippicv_linux_20141027.tgz"; + ippicvHash = "8b449a536a2157bcad08a2b9f266828b"; + ippicvArchive = "3rdparty/ippicv/downloads/linux-${ippicvHash}/${ippicvName}"; + in stdenv.lib.optionalString enableIpp + '' + mkdir -p $(dirname ${ippicvArchive}) + ln -s ${ippicv} ${ippicvArchive} + ''; + buildInputs = [ unzip libjpeg libpng libtiff ] ++ lib.optionals enableBloat [ gtk glib jasper ffmpeg xineLib gstreamer python27 python27Packages.numpy ]; nativeBuildInputs = [ cmake pkgconfig ]; - # TODO: Pre-download IPP so that OpenCV doesn't try to download it itself - # (which fails). - cmakeFlags = [ "-DWITH_IPP=OFF" ]; + cmakeFlags = [ "-DWITH_IPP=${if enableIpp then "ON" else "OFF"}" ]; enableParallelBuilding = true; |