nixpkgs/pkgs/development/libraries/opencv/3.x.nix
Franz Pletz aff1f4ab94 Use general hardening flag toggle lists
The following parameters are now available:

  * hardeningDisable
    To disable specific hardening flags
  * hardeningEnable
    To enable specific hardening flags

Only the cc-wrapper supports this right now, but these may be reused by
other wrappers, builders or setup hooks.

cc-wrapper supports the following flags:

  * fortify
  * stackprotector
  * pie (disabled by default)
  * pic
  * strictoverflow
  * format
  * relro
  * bindnow
2016-03-05 18:55:26 +01:00

62 lines
1.9 KiB
Nix

{ lib, stdenv, fetchurl, fetchzip, cmake, gtk, libjpeg, libpng, libtiff, jasper, ffmpeg
, fetchpatch, pkgconfig, gstreamer, xineLib, glib, python27, python27Packages, unzip
, enableIpp ? false
, enableContrib ? false
, enableBloat ? false }:
let
v = "3.0.0";
contribSrc = fetchzip {
url = "https://github.com/Itseez/opencv_contrib/archive/3.0.0.tar.gz";
sha256 = "1gx7f9v85hmzh37s0zaillg7bs6cy9prm3wl0jb5zc5zrf9d8bm8";
name = "opencv-contrib-3.0.0-src";
};
in
stdenv.mkDerivation rec {
name = "opencv-${v}";
src = fetchurl {
url = "https://github.com/Itseez/opencv/archive/${v}.zip";
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 ];
cmakeFlags = [
"-DWITH_IPP=${if enableIpp then "ON" else "OFF"}"
] ++ stdenv.lib.optionals enableContrib [ "-DOPENCV_EXTRA_MODULES_PATH=${contribSrc}/modules" ];
enableParallelBuilding = true;
hardeningDisable = [ "bindnow" "relro" ];
meta = {
description = "Open Computer Vision Library with more than 500 algorithms";
homepage = http://opencv.org/;
license = stdenv.lib.licenses.bsd3;
maintainers = with stdenv.lib.maintainers; [viric flosse];
platforms = with stdenv.lib.platforms; linux;
};
}