|
| 1 | +opam-version: "2.0" |
| 2 | + |
| 3 | +synopsis: |
| 4 | +"Call Google OR-Tools solvers" |
| 5 | + |
| 6 | +description: """ |
| 7 | +Google OR-Tools is an open source software suite for optimization, tuned |
| 8 | +for tackling the world's toughest problems in vehicle routing, flows, |
| 9 | +integer and linear programming, and constraint programming. This package |
| 10 | +provides OCaml wrappers for calling the OR-Tools solvers. It currently only |
| 11 | +supports the CP-SAT solver. Pull requests for other solvers are welcome.""" |
| 12 | + |
| 13 | +maintainer: ["Timothy Bourke <tim@tbrk.org>"] |
| 14 | +authors: ["Timothy Bourke <tim@tbrk.org>"] |
| 15 | +license: "Apache-2.0" |
| 16 | +homepage: "https://github.com/inria/ocaml-ortools" |
| 17 | +bug-reports: "https://github.com/inria/ocaml-ortools/issues" |
| 18 | +dev-repo: "git+https://github.com/inria/ocaml-ortools.git" |
| 19 | +x-maintenance-intent: ["(latest)"] |
| 20 | + |
| 21 | +depends: [ |
| 22 | + "ocaml" {>= "4.14.2"} |
| 23 | + "dune" {>= "3.21"} |
| 24 | + "ortools" {>= "9.15"} |
| 25 | + "conf-cmake" {build} |
| 26 | + "sexplib0" {build} |
| 27 | + "csexp" {build} |
| 28 | + "odoc" {with-doc} |
| 29 | +] |
| 30 | + |
| 31 | +build: [ |
| 32 | + ["dune" "subst"] {dev} |
| 33 | + [ |
| 34 | + "dune" |
| 35 | + "build" |
| 36 | + "-p" |
| 37 | + name |
| 38 | + "-j" |
| 39 | + jobs |
| 40 | + "@install" |
| 41 | + "@runtest" {with-test} |
| 42 | + "@doc" {with-doc} |
| 43 | + ] |
| 44 | +] |
| 45 | + |
| 46 | +depexts: [ |
| 47 | +## solid |
| 48 | + |
| 49 | + #zlib 1.3.1 |
| 50 | + ["zlib"] {os = "macos" & os-distribution = "homebrew"} |
| 51 | + ["libz-dev"] {os-distribution = "debian"} |
| 52 | + ["zlib-dev"] {os-distribution = "alpine"} |
| 53 | + ["zlib"] {os-distribution = "arch"} |
| 54 | + ["zlib-devel" "zlib-static"] {os-distribution = "centos-9"} |
| 55 | + ["zlib-ng-compat-devel" "zlib-ng-compat-static"] |
| 56 | + {os-distribution = "centos-10"} |
| 57 | + ["zlib-ng-compat-devel" "zlib-ng-compat-static"] |
| 58 | + {os-distribution = "fedora"} |
| 59 | + ["libzip"] {os-distribution = "freebsd"} |
| 60 | + ["libz1"] {os-distribution = "opensuse"} |
| 61 | + ["zlib1g-dev"] {os-distribution = "ubuntu"} |
| 62 | + |
| 63 | + # 1.0.8 |
| 64 | + ["bzip2"] {os = "macos" & os-distribution = "homebrew"} |
| 65 | + ["libbz2-dev"] {os-distribution = "debian"} |
| 66 | + ["bzip2-dev"] {os-distribution = "alpine"} |
| 67 | + ["bzip2"] {os-distribution = "arch"} |
| 68 | + ["bzip2-devel"] {os-distribution = "centos"} |
| 69 | + ["bzip2-devel"] {os-distribution = "fedora"} |
| 70 | + ["bzip2"] {os-distribution = "freebsd"} |
| 71 | + ["bzip2"] {os-distribution = "openbsd"} |
| 72 | + ["libbz2-dev"] {os-distribution = "opensuse"} |
| 73 | + ["libbz2-dev"] {os-distribution = "ubuntu"} |
| 74 | + |
| 75 | + # 3.4.1 |
| 76 | + ["eigen@3"] {os = "macos" & os-distribution = "homebrew"} |
| 77 | + ["libeigen3-dev"] {os-distribution = "debian"} |
| 78 | + ["eigen-dev"] {os-distribution = "alpine"} |
| 79 | + ["eigen3"] {os-distribution = "arch"} |
| 80 | + ["eigen3"] {os-distribution = "centos"} |
| 81 | + ["eigen3-devel"] {os-distribution = "fedora"} |
| 82 | + ["eigen"] {os-distribution = "freebsd"} |
| 83 | + ["eigen3"] {os-distribution = "openbsd"} |
| 84 | + ["eigen3"] {os-distribution = "opensuse"} |
| 85 | + ["libeigen3-dev"] {os-distribution = "ubuntu"} |
| 86 | + |
| 87 | + # needed to compile abseil (linux/futex.h) |
| 88 | + ["linux-headers"] {os-distribution = "alpine"} |
| 89 | + |
| 90 | +## brittle |
| 91 | +## debian, alpine, arch: build with OCaml ortools_solvers package |
| 92 | + |
| 93 | + # abseil 20260107.0 |
| 94 | + ["abseil"] {os = "macos" & os-distribution = "homebrew"} |
| 95 | + |
| 96 | + # protobuf 33.4 |
| 97 | + ["protobuf"] {os = "macos" & os-distribution = "homebrew"} |
| 98 | + |
| 99 | + # protobuf-c 1.5.2 |
| 100 | + ["protobuf-c"] {os = "macos" & os-distribution = "homebrew"} |
| 101 | + |
| 102 | + # re2 2025-11-05 |
| 103 | + ["re2"] {os = "macos" & os-distribution = "homebrew"} |
| 104 | + |
| 105 | +] |
| 106 | + |
| 107 | +x-ci-accept-failures: [ |
| 108 | + "debian-12" # c++ compilation fails |
| 109 | + "opensuse-15.6" # cannot compile with cmake |
| 110 | + "opensuse-16.0" # incorrect paths in /usr/lib64/cmake/ZLIB/* files |
| 111 | + "opensuse-tumbleweed" # incorrect paths in /usr/lib64/cmake/ZLIB/* files |
| 112 | + "ubuntu-22.04" # cmake is too old |
| 113 | + "ubuntu-24.04" # c++ compilation fails |
| 114 | + "cygwin" |
| 115 | + "msys2" |
| 116 | +] |
| 117 | + |
| 118 | +post-messages: [ |
| 119 | + """Failed to install ortools_solvers. |
| 120 | +Ensure the required dependencies are properly installed. |
| 121 | +See https://github.com/inria/ocaml-ortools. |
| 122 | +""" |
| 123 | + {failure} |
| 124 | +] |
| 125 | +url { |
| 126 | + src: |
| 127 | + "https://github.com/INRIA/ocaml-ortools/releases/download/9.15.0/ortools-9.15.0.tbz" |
| 128 | + checksum: [ |
| 129 | + "sha256=a55b11ff1f10906a88f82c0c9aa34c17361e14455713f3f6bcf886106abfce53" |
| 130 | + "sha512=5eb20c9f7b284fc9bd86b5c3e15ff813cba099aea98d37e6039ea1755d0283cb89880e8f6621f353358fe58515fa5134b696dcd7b7e579cb58a9ff4ca8f202cc" |
| 131 | + ] |
| 132 | +} |
| 133 | +x-commit-hash: "fccc2e5eb3d67eb33e4857f98e8b8bc3543e7e09" |
| 134 | + |
0 commit comments