Skip to content

Commit 503d53d

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 503d53d

File tree

2 files changed

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

2 files changed

+189
-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=2686dc86106bd65cf9b4d031b4d3cc1308a91df7e0cabd41bdd0b1482a0d6776"
50+
"sha512=712e86fd7be0a059027892f06d42a909bd4df178ef9c73d69ef3835de3a30edd1356804efb0c580872f82d0fa84e08da355bbbb59fbc5f3b46b9e5f02e8a0672"
51+
]
52+
}
53+
x-commit-hash: "34e08c0eecf5eff0f04855c8abf5051f8bd1a472"
54+
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
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"]
55+
{os-distribution = "centos" & os-version = "9"}
56+
["zlib-ng-compat-devel" "zlib-ng-compat-static"]
57+
{os-distribution = "centos" & os-version = "10"}
58+
["zlib-ng-compat-devel" "zlib-ng-compat-static"]
59+
{os-distribution = "fedora"}
60+
["libzip"] {os-distribution = "freebsd"}
61+
["libz1"] {os-distribution = "opensuse"}
62+
["zlib1g-dev"] {os-distribution = "ubuntu"}
63+
64+
# 1.0.8
65+
["bzip2"] {os = "macos" & os-distribution = "homebrew"}
66+
["libbz2-dev"] {os-distribution = "debian"}
67+
["bzip2-dev"] {os-distribution = "alpine"}
68+
["bzip2"] {os-distribution = "arch"}
69+
["bzip2-devel"] {os-distribution = "centos"}
70+
["bzip2-devel"] {os-distribution = "fedora"}
71+
["bzip2"] {os-distribution = "freebsd"}
72+
["bzip2"] {os-distribution = "openbsd"}
73+
["libbz2-dev"] {os-distribution = "opensuse"}
74+
["libbz2-dev"] {os-distribution = "ubuntu"}
75+
76+
# 3.4.1
77+
["eigen@3"] {os = "macos" & os-distribution = "homebrew"}
78+
["libeigen3-dev"] {os-distribution = "debian"}
79+
["eigen-dev"] {os-distribution = "alpine"}
80+
["eigen3"] {os-distribution = "arch"}
81+
["eigen3"] {os-distribution = "centos"}
82+
["eigen3-devel"] {os-distribution = "fedora"}
83+
["eigen"] {os-distribution = "freebsd"}
84+
["eigen3"] {os-distribution = "openbsd"}
85+
["eigen3"] {os-distribution = "opensuse"}
86+
["libeigen3-dev"] {os-distribution = "ubuntu"}
87+
88+
# needed to compile abseil (linux/futex.h)
89+
["linux-headers"] {os-distribution = "alpine"}
90+
91+
## brittle
92+
## debian, alpine, arch: build with OCaml ortools_solvers package
93+
94+
# abseil 20260107.0
95+
["abseil"] {os = "macos" & os-distribution = "homebrew"}
96+
97+
# protobuf 33.4
98+
["protobuf"] {os = "macos" & os-distribution = "homebrew"}
99+
100+
# protobuf-c 1.5.2
101+
["protobuf-c"] {os = "macos" & os-distribution = "homebrew"}
102+
103+
# re2 2025-11-05
104+
["re2"] {os = "macos" & os-distribution = "homebrew"}
105+
106+
]
107+
108+
x-ci-accept-failures: [
109+
"debian-12" # c++ compilation fails
110+
"opensuse-15.6" # cannot compile with cmake
111+
"opensuse-16.0" # incorrect paths in /usr/lib64/cmake/ZLIB/* files
112+
"opensuse-tumbleweed" # incorrect paths in /usr/lib64/cmake/ZLIB/* files
113+
"ubuntu-22.04" # cmake is too old
114+
"ubuntu-24.04" # c++ compilation fails
115+
"cygwin"
116+
"msys2"
117+
]
118+
119+
post-messages: [
120+
"""Failed to install ortools_solvers.
121+
Ensure the required dependencies are properly installed.
122+
See https://github.com/inria/ocaml-ortools.
123+
"""
124+
{failure}
125+
]
126+
url {
127+
src:
128+
"https://github.com/INRIA/ocaml-ortools/releases/download/9.15.0/ortools-9.15.0.tbz"
129+
checksum: [
130+
"sha256=2686dc86106bd65cf9b4d031b4d3cc1308a91df7e0cabd41bdd0b1482a0d6776"
131+
"sha512=712e86fd7be0a059027892f06d42a909bd4df178ef9c73d69ef3835de3a30edd1356804efb0c580872f82d0fa84e08da355bbbb59fbc5f3b46b9e5f02e8a0672"
132+
]
133+
}
134+
x-commit-hash: "34e08c0eecf5eff0f04855c8abf5051f8bd1a472"
135+

0 commit comments

Comments
 (0)