mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-15 17:34:04 +00:00
349f3dfe25
shogun needs the cblas.h header file to be available. It used to get it from liblapack, but that is not available anymore. Instead we can use openblasCompat to get it.
66 lines
2.1 KiB
Nix
66 lines
2.1 KiB
Nix
{ stdenv, lib, fetchFromGitHub, fetchpatch, ccache, cmake, ctags, swig
|
|
# data, compression
|
|
, bzip2, curl, hdf5, json_c, lzma, lzo, protobuf, snappy
|
|
# maths
|
|
, openblasCompat, eigen, nlopt, lp_solve, colpack
|
|
# libraries
|
|
, libarchive, liblapack, libxml2
|
|
# extra support
|
|
, pythonSupport ? true, pythonPackages ? null
|
|
, opencvSupport ? false, opencv ? null
|
|
}:
|
|
|
|
assert pythonSupport -> pythonPackages != null;
|
|
assert opencvSupport -> opencv != null;
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "shogun";
|
|
version = "6.0.0";
|
|
name = pname + "-" + version;
|
|
|
|
src = fetchFromGitHub {
|
|
owner = pname + "-toolbox";
|
|
repo = pname;
|
|
rev = pname + "_" + version;
|
|
sha256 = "0f2zwzvn5apvwypkfkq371xp7c5bdb4g1fwqfh8c2d57ysjxhmgf";
|
|
fetchSubmodules = true;
|
|
};
|
|
|
|
patches = [
|
|
(fetchpatch {
|
|
name = "Fix-meta-example-parser-bug-in-parallel-builds.patch";
|
|
url = "https://github.com/shogun-toolbox/shogun/commit/ecd6a8f11ac52748e89d27c7fab7f43c1de39f05.patch";
|
|
sha256 = "1hrwwrj78sxhwcvgaz7n4kvh5y9snfcc4jf5xpgji5hjymnl311n";
|
|
})
|
|
(fetchpatch {
|
|
url = "https://github.com/awild82/shogun/commit/365ce4c4c700736d2eec8ba6c975327a5ac2cd9b.patch";
|
|
sha256 = "158hqv4xzw648pmjbwrhxjp7qcppqa7kvriif87gn3zdn711c49s";
|
|
})
|
|
];
|
|
|
|
CCACHE_DIR=".ccache";
|
|
|
|
buildInputs = with lib; [
|
|
openblasCompat bzip2 ccache cmake colpack curl ctags eigen hdf5 json_c lp_solve lzma lzo
|
|
protobuf nlopt snappy swig (libarchive.dev) liblapack libxml2
|
|
]
|
|
++ optionals (pythonSupport) (with pythonPackages; [ python ply numpy ])
|
|
++ optional (opencvSupport) opencv;
|
|
|
|
cmakeFlags = with lib; []
|
|
++ (optional (pythonSupport) "-DPythonModular=ON")
|
|
++ (optional (opencvSupport) "-DOpenCV=ON")
|
|
;
|
|
|
|
# Previous attempts to fix parallel builds (see patch above) were not entirely successful.
|
|
# Sporadic build failures still exist. Dislable parallel builds for now.
|
|
enableParallelBuilding = false;
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "A toolbox which offers a wide range of efficient and unified machine learning methods";
|
|
homepage = "http://shogun-toolbox.org/";
|
|
license = licenses.gpl3;
|
|
maintainers = with maintainers; [ edwtjo ];
|
|
};
|
|
}
|