Skip to content

Commit e2b2d14

Browse files
committed
[new release] ortools (2 packages) (9.15.0)
CHANGES: Include the v9.15 Google OR-tools source and build together with the OCaml interface. Rewrite the interface in C++ to avoid an unnecessary copy and allow feasible solution observers.
1 parent 3109384 commit e2b2d14

File tree

2 files changed

+188
-0
lines changed
  • packages
    • ortools_solvers/ortools_solvers.9.15.0
    • ortools/ortools.9.15.0

2 files changed

+188
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
opam-version: "2.0"
2+
3+
synopsis:
4+
"Build and export Google OR-Tools models"
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 functions for working with the Protocol Buffer formats that
11+
are read and written by the different solvers. It does not actually depend
12+
on the OR-Tools software, which need not even be installed. The interface
13+
currently only supports a subset of the features provided by the CP-SAT solver.
14+
Pull requests for more features and solvers are welcome."""
15+
16+
maintainer: ["Timothy Bourke <tim@tbrk.org>"]
17+
authors: ["Timothy Bourke <tim@tbrk.org>"]
18+
license: "Apache-2.0"
19+
homepage: "https://github.com/inria/ocaml-ortools"
20+
bug-reports: "https://github.com/inria/ocaml-ortools/issues"
21+
dev-repo: "git+https://github.com/inria/ocaml-ortools.git"
22+
x-maintenance-intent: ["(latest)"]
23+
24+
depends: [
25+
"ocaml" {>= "4.14.2"}
26+
"dune" {>= "3.21"}
27+
"pbrt" {>= "4.0"}
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+
url {
46+
src:
47+
"https://github.com/INRIA/ocaml-ortools/releases/download/9.15.0/ortools-9.15.0.tbz"
48+
checksum: [
49+
"sha256=a55b11ff1f10906a88f82c0c9aa34c17361e14455713f3f6bcf886106abfce53"
50+
"sha512=5eb20c9f7b284fc9bd86b5c3e15ff813cba099aea98d37e6039ea1755d0283cb89880e8f6621f353358fe58515fa5134b696dcd7b7e579cb58a9ff4ca8f202cc"
51+
]
52+
}
53+
x-commit-hash: "fccc2e5eb3d67eb33e4857f98e8b8bc3543e7e09"
54+
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
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

Comments
 (0)