diff options
author | Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk> | 2019-04-20 17:39:23 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-20 17:39:23 +0900 |
commit | 575d6a48267670cbb298770a910fb1c6311f55fd (patch) | |
tree | fba197600203d079097609809a95517f2b1ae9e3 /pkgs | |
parent | 7250104c7b1567dc5b9a78daa8f0018fa383f939 (diff) | |
parent | ae6b9dcb0e9ece499db00ba1ab5062ee4bf13ce8 (diff) | |
download | nixpkgs-575d6a48267670cbb298770a910fb1c6311f55fd.tar nixpkgs-575d6a48267670cbb298770a910fb1c6311f55fd.tar.gz nixpkgs-575d6a48267670cbb298770a910fb1c6311f55fd.tar.bz2 nixpkgs-575d6a48267670cbb298770a910fb1c6311f55fd.tar.lz nixpkgs-575d6a48267670cbb298770a910fb1c6311f55fd.tar.xz nixpkgs-575d6a48267670cbb298770a910fb1c6311f55fd.tar.zst nixpkgs-575d6a48267670cbb298770a910fb1c6311f55fd.zip |
Merge pull request #58417 from andersk/ortools-7.0
or-tools: 6.10 -> 7.0, add Python bindings
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/development/libraries/abseil-cpp/default.nix | 24 | ||||
-rw-r--r-- | pkgs/development/libraries/science/math/or-tools/default.nix | 32 | ||||
-rw-r--r-- | pkgs/development/libraries/science/math/or-tools/gflags-include.patch | 12 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 6 | ||||
-rw-r--r-- | pkgs/top-level/python-packages.nix | 5 |
5 files changed, 58 insertions, 21 deletions
diff --git a/pkgs/development/libraries/abseil-cpp/default.nix b/pkgs/development/libraries/abseil-cpp/default.nix new file mode 100644 index 00000000000..4e1da866622 --- /dev/null +++ b/pkgs/development/libraries/abseil-cpp/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchFromGitHub, cmake }: + +stdenv.mkDerivation rec { + name = "abseil-cpp-${version}"; + date = "20190322"; + rev = "eab2078b53c9e3d9d240135c09d27e3393acb50a"; + version = "${date}-${rev}"; + + src = fetchFromGitHub { + owner = "abseil"; + repo = "abseil-cpp"; + rev = "${rev}"; + sha256 = "1bpz44hxq5fpkv6jlgphzk7mxjiiah526jgb63ih5pd1hd2cfw1r"; + }; + + nativeBuildInputs = [ cmake ]; + + meta = with stdenv.lib; { + description = "An open-source collection of C++ code designed to augment the C++ standard library"; + homepage = https://abseil.io/; + license = licenses.asl20; + maintainers = [ maintainers.andersk ]; + }; +} diff --git a/pkgs/development/libraries/science/math/or-tools/default.nix b/pkgs/development/libraries/science/math/or-tools/default.nix index 415e57e5d3c..ba6827bf694 100644 --- a/pkgs/development/libraries/science/math/or-tools/default.nix +++ b/pkgs/development/libraries/science/math/or-tools/default.nix @@ -1,15 +1,17 @@ -{ stdenv, fetchFromGitHub, cmake, google-gflags, which -, lsb-release, glog, protobuf, cbc, zlib, python3 }: +{ stdenv, fetchFromGitHub, cmake, abseil-cpp, google-gflags, which +, lsb-release, glog, protobuf, cbc, zlib +, ensureNewerSourcesForZipFilesHook, python, swig +, pythonProtobuf }: stdenv.mkDerivation rec { name = "or-tools-${version}"; - version = "v6.10"; + version = "v7.0"; src = fetchFromGitHub { owner = "google"; repo = "or-tools"; rev = version; - sha256 = "11k3671rpv968dsglc6bgarr9yi8ijaaqm2wq3m0rn4wy8fj7za2"; + sha256 = "09rs2j3w4ljw9qhhnsjlvfii297njjszwvkbgj1i6kns3wnlr7cp"; }; # The original build system uses cmake which does things like pull @@ -18,6 +20,7 @@ stdenv.mkDerivation rec { # dependencies straight from nixpkgs and use the make build method. configurePhase = '' cat <<EOF > Makefile.local + UNIX_ABSL_DIR=${abseil-cpp} UNIX_GFLAGS_DIR=${google-gflags} UNIX_GLOG_DIR=${glog} UNIX_PROTOBUF_DIR=${protobuf} @@ -25,23 +28,36 @@ stdenv.mkDerivation rec { EOF ''; - makeFlags = [ "prefix=${placeholder "out"}" ]; - buildFlags = [ "cc" ]; + makeFlags = [ + "prefix=${placeholder "out"}" + "PROTOBUF_PYTHON_DESC=${pythonProtobuf}/${python.sitePackages}/google/protobuf/descriptor_pb2.py" + ]; + buildFlags = [ "cc" "pypi_archive" ]; checkTarget = "test_cc"; doCheck = true; installTargets = [ "install_cc" ]; + # The upstream install_python target installs to $HOME. + postInstall = '' + mkdir -p "$python/${python.sitePackages}" + (cd temp_python/ortools; PYTHONPATH="$python/${python.sitePackages}:$PYTHONPATH" python setup.py install '--prefix=$python') + ''; nativeBuildInputs = [ - cmake lsb-release which zlib python3 + cmake lsb-release swig which zlib python + ensureNewerSourcesForZipFilesHook + python.pkgs.setuptools python.pkgs.wheel ]; propagatedBuildInputs = [ - google-gflags glog protobuf cbc + abseil-cpp google-gflags glog protobuf cbc + pythonProtobuf python.pkgs.six ]; enableParallelBuilding = true; + outputs = [ "out" "python" ]; + meta = with stdenv.lib; { homepage = https://github.com/google/or-tools; license = licenses.asl20; diff --git a/pkgs/development/libraries/science/math/or-tools/gflags-include.patch b/pkgs/development/libraries/science/math/or-tools/gflags-include.patch deleted file mode 100644 index 08f76180638..00000000000 --- a/pkgs/development/libraries/science/math/or-tools/gflags-include.patch +++ /dev/null @@ -1,12 +0,0 @@ -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" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index af3798fe7e0..240297c9a4a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9570,6 +9570,8 @@ in aalib = callPackage ../development/libraries/aalib { }; + abseil-cpp = callPackage ../development/libraries/abseil-cpp { }; + accountsservice = callPackage ../development/libraries/accountsservice { }; acl = callPackage ../development/libraries/acl { }; @@ -22079,7 +22081,9 @@ in nauty = callPackage ../applications/science/math/nauty {}; - or-tools = callPackage ../development/libraries/science/math/or-tools {}; + or-tools = callPackage ../development/libraries/science/math/or-tools { + pythonProtobuf = pythonPackages.protobuf; + }; rubiks = callPackage ../development/libraries/science/math/rubiks { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index eb53f2dd5e0..e52d77e092f 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -555,6 +555,11 @@ in { ordered-set = callPackage ../development/python-modules/ordered-set { }; + ortools = (toPythonModule (pkgs.or-tools.override { + inherit (self) python; + pythonProtobuf = self.protobuf; + })).python; + osmnx = callPackage ../development/python-modules/osmnx { }; outcome = callPackage ../development/python-modules/outcome {}; |