or-tools: new package (v6.9.1)
This commit is contained in:
parent
9a2fd03d67
commit
02fb26136c
63
pkgs/development/libraries/science/math/or-tools/default.nix
Normal file
63
pkgs/development/libraries/science/math/or-tools/default.nix
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
{ stdenv, fetchFromGitHub, cmake, google-gflags, which
|
||||||
|
, lsb-release, glog, protobuf, cbc, zlib }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "or-tools-${version}";
|
||||||
|
version = "v6.9.1";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "google";
|
||||||
|
repo = "or-tools";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "099j1mc7vvry0a2fiz9zvk6divivglzphv48wbw0c6nd5w8hb27c";
|
||||||
|
};
|
||||||
|
|
||||||
|
# The original build system uses cmake which does things like pull
|
||||||
|
# in dependencies through git and Makefile creation time. We
|
||||||
|
# obviously don't want to do this so instead we provide the
|
||||||
|
# dependencies straight from nixpkgs and use the make build method.
|
||||||
|
configurePhase = ''
|
||||||
|
cat <<EOF > Makefile.local
|
||||||
|
UNIX_GFLAGS_DIR=${google-gflags}
|
||||||
|
UNIX_GLOG_DIR=${glog}
|
||||||
|
UNIX_PROTOBUF_DIR=${protobuf}
|
||||||
|
UNIX_CBC_DIR=${cbc}
|
||||||
|
EOF
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
make cc
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
make install_cc prefix=$out
|
||||||
|
'';
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# In "expected" way of compilation, the glog package is compiled
|
||||||
|
# with gflags support which then makes gflags header transitively
|
||||||
|
# included through glog. However in nixpkgs we don't compile glog
|
||||||
|
# with gflags so we have to include it ourselves. Upstream should
|
||||||
|
# always include gflags to support both ways I think.
|
||||||
|
#
|
||||||
|
# Upstream ticket: https://github.com/google/or-tools/issues/902
|
||||||
|
./gflags-include.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cmake lsb-release which zlib
|
||||||
|
];
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
google-gflags glog protobuf cbc
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = https://github.com/google/or-tools;
|
||||||
|
license = licenses.asl20;
|
||||||
|
description = ''
|
||||||
|
Google's software suite for combinatorial optimization.
|
||||||
|
'';
|
||||||
|
maintainers = with maintainers; [ fuuzetsu ];
|
||||||
|
platforms = with platforms; linux;
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
diff --git a/ortools/data/jobshop_scheduling_parser.cc b/ortools/data/jobshop_scheduling_parser.cc
|
||||||
|
index cb0a360b..c2f055eb 100644
|
||||||
|
--- a/ortools/data/jobshop_scheduling_parser.cc
|
||||||
|
+++ b/ortools/data/jobshop_scheduling_parser.cc
|
||||||
|
@@ -14,6 +14,7 @@
|
||||||
|
#include "ortools/data/jobshop_scheduling_parser.h"
|
||||||
|
|
||||||
|
#include <cmath>
|
||||||
|
+#include <gflags/gflags.h>
|
||||||
|
|
||||||
|
#include "google/protobuf/wrappers.pb.h"
|
||||||
|
#include "ortools/base/filelineiter.h"
|
@ -21189,6 +21189,8 @@ with pkgs;
|
|||||||
|
|
||||||
nauty = callPackage ../applications/science/math/nauty {};
|
nauty = callPackage ../applications/science/math/nauty {};
|
||||||
|
|
||||||
|
or-tools = callPackage ../development/libraries/science/math/or-tools {};
|
||||||
|
|
||||||
rubiks = callPackage ../development/libraries/science/math/rubiks { };
|
rubiks = callPackage ../development/libraries/science/math/rubiks { };
|
||||||
|
|
||||||
petsc = callPackage ../development/libraries/science/math/petsc { };
|
petsc = callPackage ../development/libraries/science/math/petsc { };
|
||||||
|
Loading…
x
Reference in New Issue
Block a user