backport from main branch
This commit is contained in:
13
.github/dependabot.yml
vendored
Normal file
13
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
# Keep GitHub Actions up to date with GitHub's Dependabot...
|
||||
# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot
|
||||
# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: github-actions
|
||||
directory: /
|
||||
groups:
|
||||
github-actions:
|
||||
patterns:
|
||||
- "*" # Group all Actions updates into a single larger pull request
|
||||
schedule:
|
||||
interval: weekly
|
||||
@@ -43,7 +43,7 @@
|
||||
[windows_dotnet_svg]: ./../../../actions/workflows/amd64_windows_cmake_dotnet.yml/badge.svg?branch=main
|
||||
[windows_dotnet_link]: ./../../../actions/workflows/amd64_windows_cmake_dotnet.yml
|
||||
|
||||
Dockers \[Alpine, Archlinux, Centos, Debian, Fedora, OpenSuse, Ubuntu\]x
|
||||
Dockers \[AlmaLinux, Alpine, Archlinux, Debian, Fedora, OpenSuse, RockyLinux, Ubuntu\]x
|
||||
\[C++, Python, Java, .Net\]: [![Status][docker_svg]][docker_link]
|
||||
|
||||
[docker_svg]: ./../../../actions/workflows/amd64_docker_cmake.yml/badge.svg?branch=main
|
||||
|
||||
@@ -6,11 +6,11 @@ RUN apt-get update -qq \
|
||||
python3-dev python3-pip \
|
||||
python3-setuptools python3-wheel \
|
||||
python3-venv python3-virtualenv \
|
||||
python3-numpy python3-pandas python3-typing-extensions \
|
||||
python3-numpy python3-pandas \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
RUN python3 -m pip install --break-system-package \
|
||||
absl-py mypy mypy-protobuf
|
||||
absl-py mypy mypy-protobuf typing-extensions
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/project
|
||||
|
||||
@@ -18,13 +18,14 @@ COPY . .
|
||||
FROM devel AS build
|
||||
RUN emcmake cmake -S. -Bbuild \
|
||||
-DCMAKE_BUILD_TYPE=Release -DBUILD_DEPS=ON \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DBUILD_EXAMPLES=OFF \
|
||||
-DUSE_COINOR=OFF \
|
||||
-DUSE_GLPK=OFF \
|
||||
-DUSE_HIGHS=OFF \
|
||||
-DUSE_PDLP=OFF \
|
||||
-DUSE_SCIP=OFF
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target all -v -j 4
|
||||
#RUN cmake --build build --target install -v
|
||||
|
||||
FROM build AS test
|
||||
|
||||
1100
cmake/docs/cmake.svg
1100
cmake/docs/cmake.svg
File diff suppressed because it is too large
Load Diff
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 54 KiB |
@@ -1,329 +1,528 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.43.0 (0)
|
||||
<!-- Generated by graphviz version 12.2.1 (0)
|
||||
-->
|
||||
<!-- Title: CMakeDeps Pages: 1 -->
|
||||
<svg width="1743pt" height="622pt"
|
||||
viewBox="0.00 0.00 1743.00 622.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 618)">
|
||||
<svg width="3111pt" height="657pt"
|
||||
viewBox="0.00 0.00 3111.00 656.75" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 652.75)">
|
||||
<title>CMakeDeps</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-618 1739,-618 1739,4 -4,4"/>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-652.75 3107,-652.75 3107,4 -4,4"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>clusterZLIB</title>
|
||||
<polygon fill="none" stroke="royalblue" points="205,-171 205,-246 387,-246 387,-171 205,-171"/>
|
||||
<text text-anchor="middle" x="296" y="-230.8" font-family="Times,serif" font-size="14.00">madler/zlib.git + cmake patch</text>
|
||||
<polygon fill="none" stroke="royalblue" points="553,-227.75 553,-305 784,-305 784,-227.75 553,-227.75"/>
|
||||
<text text-anchor="middle" x="668.5" y="-235.7" font-family="Times,serif" font-size="14.00">madler/zlib.git + cmake patch</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>clusterAbsl</title>
|
||||
<polygon fill="none" stroke="royalblue" points="72,-171 72,-246 197,-246 197,-171 72,-171"/>
|
||||
<text text-anchor="middle" x="134.5" y="-230.8" font-family="Times,serif" font-size="14.00">abseil/abseil-cpp.git</text>
|
||||
<title>clusterBZip2</title>
|
||||
<polygon fill="none" stroke="royalblue" points="2010,-41.25 2010,-118.5 2243,-118.5 2243,-41.25 2010,-41.25"/>
|
||||
<text text-anchor="middle" x="2126.5" y="-49.2" font-family="Times,serif" font-size="14.00">bzip2/bzip2.git + cmake patch</text>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>clusterProtobuf</title>
|
||||
<polygon fill="none" stroke="royalblue" points="8,-88 8,-163 279,-163 279,-88 8,-88"/>
|
||||
<text text-anchor="middle" x="143.5" y="-147.8" font-family="Times,serif" font-size="14.00">protocolbuffers/protobuf.git</text>
|
||||
<title>clusterAbsl</title>
|
||||
<polygon fill="none" stroke="royalblue" points="1154,-313 1154,-390.25 1312,-390.25 1312,-313 1154,-313"/>
|
||||
<text text-anchor="middle" x="1233" y="-320.95" font-family="Times,serif" font-size="14.00">abseil/abseil-cpp.git</text>
|
||||
</g>
|
||||
<g id="clust4" class="cluster">
|
||||
<title>clusterRe2</title>
|
||||
<polygon fill="none" stroke="royalblue" points="789,-500 789,-575 881,-575 881,-500 789,-500"/>
|
||||
<text text-anchor="middle" x="835" y="-559.8" font-family="Times,serif" font-size="14.00">google/re2.git</text>
|
||||
<title>clusterProtobuf</title>
|
||||
<polygon fill="none" stroke="royalblue" points="1142,-134.5 1142,-211.75 1474,-211.75 1474,-134.5 1142,-134.5"/>
|
||||
<text text-anchor="middle" x="1308" y="-142.45" font-family="Times,serif" font-size="14.00">protocolbuffers/protobuf.git</text>
|
||||
</g>
|
||||
<g id="clust5" class="cluster">
|
||||
<title>clusterEigen3</title>
|
||||
<polygon fill="none" stroke="royalblue" points="889,-500 889,-575 1000,-575 1000,-500 889,-500"/>
|
||||
<text text-anchor="middle" x="944.5" y="-559.8" font-family="Times,serif" font-size="14.00">libeigen/eigen.git</text>
|
||||
<title>clusterRe2</title>
|
||||
<polygon fill="none" stroke="royalblue" points="1084,-227.75 1084,-305 1199,-305 1199,-227.75 1084,-227.75"/>
|
||||
<text text-anchor="middle" x="1141.5" y="-235.7" font-family="Times,serif" font-size="14.00">google/re2.git</text>
|
||||
</g>
|
||||
<g id="clust6" class="cluster">
|
||||
<title>clusterPybind11</title>
|
||||
<polygon fill="none" stroke="royalblue" points="1008,-500 1008,-575 1150,-575 1150,-500 1008,-500"/>
|
||||
<text text-anchor="middle" x="1079" y="-559.8" font-family="Times,serif" font-size="14.00">pybind/pybind11.git</text>
|
||||
<title>clusterEigen3</title>
|
||||
<polygon fill="none" stroke="royalblue" points="2251,-41.25 2251,-118.5 2391,-118.5 2391,-41.25 2251,-41.25"/>
|
||||
<text text-anchor="middle" x="2321" y="-49.2" font-family="Times,serif" font-size="14.00">libeigen/eigen.git</text>
|
||||
</g>
|
||||
<g id="clust7" class="cluster">
|
||||
<title>clusterCoinOR</title>
|
||||
<polygon fill="none" stroke="royalblue" points="395,-8 395,-606 781,-606 781,-8 395,-8"/>
|
||||
<text text-anchor="middle" x="588" y="-590.8" font-family="Times,serif" font-size="14.00">-DUSE_COINOR=ON AND -DBUILD_DEPS=ON</text>
|
||||
<polygon fill="none" stroke="royalblue" points="8,-8 8,-640.75 414,-640.75 414,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="211" y="-15.95" font-family="Times,serif" font-size="14.00">-DUSE_COINOR=ON AND -DBUILD_DEPS=ON</text>
|
||||
</g>
|
||||
<g id="clust8" class="cluster">
|
||||
<title>clusterCoinUtils</title>
|
||||
<polygon fill="none" stroke="royalblue" points="619,-500 619,-575 746,-575 746,-500 619,-500"/>
|
||||
<text text-anchor="middle" x="682.5" y="-559.8" font-family="Times,serif" font-size="14.00">Mizux/CoinUtils.git</text>
|
||||
<polygon fill="none" stroke="royalblue" points="234,-555.5 234,-632.75 388,-632.75 388,-555.5 234,-555.5"/>
|
||||
<text text-anchor="middle" x="311" y="-563.45" font-family="Times,serif" font-size="14.00">Mizux/CoinUtils.git</text>
|
||||
</g>
|
||||
<g id="clust9" class="cluster">
|
||||
<title>clusterOsi</title>
|
||||
<polygon fill="none" stroke="royalblue" points="610,-409 610,-484 703,-484 703,-409 610,-409"/>
|
||||
<text text-anchor="middle" x="656.5" y="-468.8" font-family="Times,serif" font-size="14.00">Mizux/Osi.git</text>
|
||||
<polygon fill="none" stroke="royalblue" points="31,-470.25 31,-547.5 142,-547.5 142,-470.25 31,-470.25"/>
|
||||
<text text-anchor="middle" x="86.5" y="-478.2" font-family="Times,serif" font-size="14.00">Mizux/Osi.git</text>
|
||||
</g>
|
||||
<g id="clust10" class="cluster">
|
||||
<title>clusterClp</title>
|
||||
<polygon fill="none" stroke="royalblue" points="455,-254 455,-401 683,-401 683,-254 455,-254"/>
|
||||
<text text-anchor="middle" x="569" y="-385.8" font-family="Times,serif" font-size="14.00">Mizux/Clp.git</text>
|
||||
<polygon fill="none" stroke="royalblue" points="68,-313 68,-462.25 334,-462.25 334,-313 68,-313"/>
|
||||
<text text-anchor="middle" x="201" y="-320.95" font-family="Times,serif" font-size="14.00">Mizux/Clp.git</text>
|
||||
</g>
|
||||
<g id="clust11" class="cluster">
|
||||
<title>clusterCgl</title>
|
||||
<polygon fill="none" stroke="royalblue" points="606,-171 606,-246 700,-246 700,-171 606,-171"/>
|
||||
<text text-anchor="middle" x="653" y="-230.8" font-family="Times,serif" font-size="14.00">Mizux/Cgl.git</text>
|
||||
<polygon fill="none" stroke="royalblue" points="159,-227.75 159,-305 271,-305 271,-227.75 159,-227.75"/>
|
||||
<text text-anchor="middle" x="215" y="-235.7" font-family="Times,serif" font-size="14.00">Mizux/Cgl.git</text>
|
||||
</g>
|
||||
<g id="clust12" class="cluster">
|
||||
<title>clusterCbc</title>
|
||||
<polygon fill="none" stroke="royalblue" points="403,-16 403,-163 635,-163 635,-16 403,-16"/>
|
||||
<text text-anchor="middle" x="519" y="-147.8" font-family="Times,serif" font-size="14.00">Mizux/Cbc.git</text>
|
||||
<polygon fill="none" stroke="royalblue" points="134,-41.25 134,-211.75 406,-211.75 406,-41.25 134,-41.25"/>
|
||||
<text text-anchor="middle" x="270" y="-49.2" font-family="Times,serif" font-size="14.00">Mizux/Cbc.git</text>
|
||||
</g>
|
||||
<g id="clust13" class="cluster">
|
||||
<title>clusterGLPKSolver</title>
|
||||
<polygon fill="none" stroke="royalblue" points="1158,-492 1158,-606 1445,-606 1445,-492 1158,-492"/>
|
||||
<text text-anchor="middle" x="1301.5" y="-590.8" font-family="Times,serif" font-size="14.00">-DUSE_GLPK=ON AND -DBUILD_GLPK=ON</text>
|
||||
<polygon fill="none" stroke="royalblue" points="2399,-8 2399,-126.5 2733,-126.5 2733,-8 2399,-8"/>
|
||||
<text text-anchor="middle" x="2566" y="-15.95" font-family="Times,serif" font-size="14.00">-DUSE_GLPK=ON AND -DBUILD_GLPK=ON</text>
|
||||
</g>
|
||||
<g id="clust14" class="cluster">
|
||||
<title>clusterGLPK</title>
|
||||
<polygon fill="none" stroke="royalblue" points="1246,-500 1246,-575 1356,-575 1356,-500 1246,-500"/>
|
||||
<text text-anchor="middle" x="1301" y="-559.8" font-family="Times,serif" font-size="14.00">Mizux/GLPK.git</text>
|
||||
<polygon fill="none" stroke="royalblue" points="2502,-41.25 2502,-118.5 2630,-118.5 2630,-41.25 2502,-41.25"/>
|
||||
<text text-anchor="middle" x="2566" y="-49.2" font-family="Times,serif" font-size="14.00">Mizux/GLPK.git</text>
|
||||
</g>
|
||||
<g id="clust15" class="cluster">
|
||||
<title>clusterSCIPSolver</title>
|
||||
<polygon fill="none" stroke="royalblue" points="1453,-492 1453,-606 1727,-606 1727,-492 1453,-492"/>
|
||||
<text text-anchor="middle" x="1590" y="-590.8" font-family="Times,serif" font-size="14.00">-DUSE_SCIP=ON AND -DBUILD_SCIP=ON</text>
|
||||
<title>clusterHIGHSSolver</title>
|
||||
<polygon fill="none" stroke="royalblue" points="2741,-8 2741,-126.5 3095,-126.5 3095,-8 2741,-8"/>
|
||||
<text text-anchor="middle" x="2918" y="-15.95" font-family="Times,serif" font-size="14.00">-DUSE_HIGHS=ON AND -DBUILD_HIGHS=ON</text>
|
||||
</g>
|
||||
<g id="clust16" class="cluster">
|
||||
<title>clusterHIGHS</title>
|
||||
<polygon fill="none" stroke="royalblue" points="2828,-41.25 2828,-118.5 3007,-118.5 3007,-41.25 2828,-41.25"/>
|
||||
<text text-anchor="middle" x="2917.5" y="-49.2" font-family="Times,serif" font-size="14.00">ERGO-Code/HIGHS.git</text>
|
||||
</g>
|
||||
<g id="clust17" class="cluster">
|
||||
<title>clusterSCIPSolver</title>
|
||||
<polygon fill="none" stroke="royalblue" points="422,-8 422,-219.75 746,-219.75 746,-8 422,-8"/>
|
||||
<text text-anchor="middle" x="584" y="-15.95" font-family="Times,serif" font-size="14.00">-DUSE_SCIP=ON AND -DBUILD_SCIP=ON</text>
|
||||
</g>
|
||||
<g id="clust18" class="cluster">
|
||||
<title>clusterSoplex</title>
|
||||
<polygon fill="none" stroke="royalblue" points="503,-134.5 503,-211.75 645,-211.75 645,-134.5 503,-134.5"/>
|
||||
<text text-anchor="middle" x="574" y="-142.45" font-family="Times,serif" font-size="14.00">scipopt/soplex.git</text>
|
||||
</g>
|
||||
<g id="clust19" class="cluster">
|
||||
<title>clusterSCIP</title>
|
||||
<polygon fill="none" stroke="royalblue" points="1540,-500 1540,-575 1639,-575 1639,-500 1540,-500"/>
|
||||
<text text-anchor="middle" x="1589.5" y="-559.8" font-family="Times,serif" font-size="14.00">scipopt/scip.git</text>
|
||||
<polygon fill="none" stroke="royalblue" points="568,-41.25 568,-118.5 692,-118.5 692,-41.25 568,-41.25"/>
|
||||
<text text-anchor="middle" x="630" y="-49.2" font-family="Times,serif" font-size="14.00">scipopt/scip.git</text>
|
||||
</g>
|
||||
<g id="clust20" class="cluster">
|
||||
<title>clusterTesting</title>
|
||||
<polygon fill="none" stroke="royalblue" points="754,-8 754,-219.75 1134,-219.75 1134,-8 754,-8"/>
|
||||
<text text-anchor="middle" x="944" y="-15.95" font-family="Times,serif" font-size="14.00">-DBUILD_TESTING=ON</text>
|
||||
</g>
|
||||
<g id="clust21" class="cluster">
|
||||
<title>clusterGTest</title>
|
||||
<polygon fill="none" stroke="royalblue" points="937,-134.5 937,-211.75 1103,-211.75 1103,-134.5 937,-134.5"/>
|
||||
<text text-anchor="middle" x="1020" y="-142.45" font-family="Times,serif" font-size="14.00">google/googletest.git</text>
|
||||
</g>
|
||||
<g id="clust22" class="cluster">
|
||||
<title>clusterBenchmark</title>
|
||||
<polygon fill="none" stroke="royalblue" points="762,-41.25 762,-118.5 962,-118.5 962,-41.25 762,-41.25"/>
|
||||
<text text-anchor="middle" x="862" y="-49.2" font-family="Times,serif" font-size="14.00">google/benchmark.git</text>
|
||||
</g>
|
||||
<g id="clust23" class="cluster">
|
||||
<title>clusterFuzzTest</title>
|
||||
<polygon fill="none" stroke="royalblue" points="970,-41.25 970,-118.5 1126,-118.5 1126,-41.25 970,-41.25"/>
|
||||
<text text-anchor="middle" x="1048" y="-49.2" font-family="Times,serif" font-size="14.00">google/fuzztest.git</text>
|
||||
</g>
|
||||
<g id="clust24" class="cluster">
|
||||
<title>clusterPython</title>
|
||||
<polygon fill="none" stroke="gold" points="1512,-8 1512,-219.75 2002,-219.75 2002,-8 1512,-8"/>
|
||||
<text text-anchor="middle" x="1757" y="-15.95" font-family="Times,serif" font-size="14.00">-DBUILD_PYTHON=ON</text>
|
||||
</g>
|
||||
<g id="clust25" class="cluster">
|
||||
<title>clusterPybind11</title>
|
||||
<polygon fill="none" stroke="gold" points="1674,-134.5 1674,-211.75 1848,-211.75 1848,-134.5 1674,-134.5"/>
|
||||
<text text-anchor="middle" x="1761" y="-142.45" font-family="Times,serif" font-size="14.00">pybind/pybind11.git</text>
|
||||
</g>
|
||||
<g id="clust26" class="cluster">
|
||||
<title>clusterPybind11Absl</title>
|
||||
<polygon fill="none" stroke="gold" points="1770,-41.25 1770,-118.5 1994,-118.5 1994,-41.25 1770,-41.25"/>
|
||||
<text text-anchor="middle" x="1882" y="-49.2" font-family="Times,serif" font-size="14.00">pybind/pybind11_abseil.git</text>
|
||||
</g>
|
||||
<g id="clust27" class="cluster">
|
||||
<title>clusterPybind11Protobuf</title>
|
||||
<polygon fill="none" stroke="gold" points="1520,-41.25 1520,-118.5 1762,-118.5 1762,-41.25 1520,-41.25"/>
|
||||
<text text-anchor="middle" x="1641" y="-49.2" font-family="Times,serif" font-size="14.00">pybind/pybind11_protobuf.git</text>
|
||||
</g>
|
||||
<!-- ZLIB -->
|
||||
<g id="node1" class="node">
|
||||
<title>ZLIB</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M292,-215C292,-215 232,-215 232,-215 226,-215 220,-209 220,-203 220,-203 220,-191 220,-191 220,-185 226,-179 232,-179 232,-179 292,-179 292,-179 298,-179 304,-185 304,-191 304,-191 304,-203 304,-203 304,-209 298,-215 292,-215"/>
|
||||
<text text-anchor="middle" x="262" y="-193.3" font-family="Times,serif" font-size="14.00">ZLIB::ZLIB</text>
|
||||
<path fill="royalblue" stroke="royalblue" d="M665,-297C665,-297 595,-297 595,-297 589,-297 583,-291 583,-285 583,-285 583,-273 583,-273 583,-267 589,-261 595,-261 595,-261 665,-261 665,-261 671,-261 677,-267 677,-273 677,-273 677,-285 677,-285 677,-291 671,-297 665,-297"/>
|
||||
<text text-anchor="middle" x="630" y="-274.32" font-family="Times,serif" font-size="14.00">ZLIB::ZLIB</text>
|
||||
</g>
|
||||
<!-- Protobuf -->
|
||||
<g id="node3" class="node">
|
||||
<title>Protobuf</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M258.5,-132C258.5,-132 151.5,-132 151.5,-132 145.5,-132 139.5,-126 139.5,-120 139.5,-120 139.5,-108 139.5,-108 139.5,-102 145.5,-96 151.5,-96 151.5,-96 258.5,-96 258.5,-96 264.5,-96 270.5,-102 270.5,-108 270.5,-108 270.5,-120 270.5,-120 270.5,-126 264.5,-132 258.5,-132"/>
|
||||
<text text-anchor="middle" x="205" y="-110.3" font-family="Times,serif" font-size="14.00">protobuf::libprotobuf</text>
|
||||
</g>
|
||||
<!-- ZLIB->Protobuf -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>ZLIB->Protobuf</title>
|
||||
<path fill="none" stroke="black" d="M249.91,-178.82C242.05,-167.65 231.67,-152.9 222.86,-140.38"/>
|
||||
<polygon fill="black" stroke="black" points="225.69,-138.32 217.07,-132.15 219.96,-142.35 225.69,-138.32"/>
|
||||
</g>
|
||||
<!-- Cbc -->
|
||||
<g id="node14" class="node">
|
||||
<title>Cbc</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M471,-132C471,-132 423,-132 423,-132 417,-132 411,-126 411,-120 411,-120 411,-108 411,-108 411,-102 417,-96 423,-96 423,-96 471,-96 471,-96 477,-96 483,-102 483,-108 483,-108 483,-120 483,-120 483,-126 477,-132 471,-132"/>
|
||||
<text text-anchor="middle" x="447" y="-110.3" font-family="Times,serif" font-size="14.00">Coin::Cbc</text>
|
||||
</g>
|
||||
<!-- ZLIB->Cbc -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>ZLIB->Cbc</title>
|
||||
<path fill="none" stroke="black" d="M301.23,-178.82C330.65,-165.94 370.96,-148.29 401.74,-134.82"/>
|
||||
<polygon fill="black" stroke="black" points="403.2,-138 410.96,-130.78 400.4,-131.58 403.2,-138"/>
|
||||
<!-- BZip2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>BZip2</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M2169.25,-110.5C2169.25,-110.5 2082.75,-110.5 2082.75,-110.5 2076.75,-110.5 2070.75,-104.5 2070.75,-98.5 2070.75,-98.5 2070.75,-86.5 2070.75,-86.5 2070.75,-80.5 2076.75,-74.5 2082.75,-74.5 2082.75,-74.5 2169.25,-74.5 2169.25,-74.5 2175.25,-74.5 2181.25,-80.5 2181.25,-86.5 2181.25,-86.5 2181.25,-98.5 2181.25,-98.5 2181.25,-104.5 2175.25,-110.5 2169.25,-110.5"/>
|
||||
<text text-anchor="middle" x="2126" y="-87.83" font-family="Times,serif" font-size="14.00">BZip2::BZip2</text>
|
||||
</g>
|
||||
<!-- Absl -->
|
||||
<g id="node2" class="node">
|
||||
<g id="node3" class="node">
|
||||
<title>Absl</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M176.5,-215C176.5,-215 119.5,-215 119.5,-215 113.5,-215 107.5,-209 107.5,-203 107.5,-203 107.5,-191 107.5,-191 107.5,-185 113.5,-179 119.5,-179 119.5,-179 176.5,-179 176.5,-179 182.5,-179 188.5,-185 188.5,-191 188.5,-191 188.5,-203 188.5,-203 188.5,-209 182.5,-215 176.5,-215"/>
|
||||
<text text-anchor="middle" x="148" y="-193.3" font-family="Times,serif" font-size="14.00">absl::absl_*</text>
|
||||
<path fill="royalblue" stroke="royalblue" d="M1269.5,-382.25C1269.5,-382.25 1196.5,-382.25 1196.5,-382.25 1190.5,-382.25 1184.5,-376.25 1184.5,-370.25 1184.5,-370.25 1184.5,-358.25 1184.5,-358.25 1184.5,-352.25 1190.5,-346.25 1196.5,-346.25 1196.5,-346.25 1269.5,-346.25 1269.5,-346.25 1275.5,-346.25 1281.5,-352.25 1281.5,-358.25 1281.5,-358.25 1281.5,-370.25 1281.5,-370.25 1281.5,-376.25 1275.5,-382.25 1269.5,-382.25"/>
|
||||
<text text-anchor="middle" x="1233" y="-359.57" font-family="Times,serif" font-size="14.00">absl::absl_*</text>
|
||||
</g>
|
||||
<!-- Absl->Protobuf -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>Absl->Protobuf</title>
|
||||
<path fill="none" stroke="black" d="M160.09,-178.82C167.95,-167.65 178.33,-152.9 187.14,-140.38"/>
|
||||
<polygon fill="black" stroke="black" points="190.04,-142.35 192.93,-132.15 184.31,-138.32 190.04,-142.35"/>
|
||||
</g>
|
||||
<!-- Protoc -->
|
||||
<!-- Protobuf -->
|
||||
<g id="node4" class="node">
|
||||
<title>Protoc</title>
|
||||
<polygon fill="royalblue" stroke="royalblue" points="121.5,-132 16.5,-132 16.5,-128 12.5,-128 12.5,-124 16.5,-124 16.5,-104 12.5,-104 12.5,-100 16.5,-100 16.5,-96 121.5,-96 121.5,-132"/>
|
||||
<polyline fill="none" stroke="royalblue" points="16.5,-128 20.5,-128 20.5,-124 16.5,-124 "/>
|
||||
<polyline fill="none" stroke="royalblue" points="16.5,-104 20.5,-104 20.5,-100 16.5,-100 "/>
|
||||
<text text-anchor="middle" x="69" y="-110.3" font-family="Times,serif" font-size="14.00">protobuf::protoc</text>
|
||||
<title>Protobuf</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M1304,-203.75C1304,-203.75 1162,-203.75 1162,-203.75 1156,-203.75 1150,-197.75 1150,-191.75 1150,-191.75 1150,-179.75 1150,-179.75 1150,-173.75 1156,-167.75 1162,-167.75 1162,-167.75 1304,-167.75 1304,-167.75 1310,-167.75 1316,-173.75 1316,-179.75 1316,-179.75 1316,-191.75 1316,-191.75 1316,-197.75 1310,-203.75 1304,-203.75"/>
|
||||
<text text-anchor="middle" x="1233" y="-181.07" font-family="Times,serif" font-size="14.00">protobuf::libprotobuf</text>
|
||||
</g>
|
||||
<!-- Protobuf->ZLIB -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>Protobuf->ZLIB</title>
|
||||
<path fill="none" stroke="black" d="M1173.13,-204.19C1152.33,-209.78 1128.77,-215.59 1107,-219.75 957.65,-248.29 779.18,-265.72 688.75,-273.39"/>
|
||||
<polygon fill="black" stroke="black" points="688.56,-269.89 678.89,-274.22 689.15,-276.87 688.56,-269.89"/>
|
||||
</g>
|
||||
<!-- Protobuf->Absl -->
|
||||
<g id="edge29" class="edge">
|
||||
<title>Protobuf->Absl</title>
|
||||
<path fill="none" stroke="black" d="M1233,-203.99C1233,-234.31 1233,-297.44 1233,-334.47"/>
|
||||
<polygon fill="black" stroke="black" points="1229.5,-334.42 1233,-344.42 1236.5,-334.42 1229.5,-334.42"/>
|
||||
</g>
|
||||
<!-- Re2 -->
|
||||
<g id="node5" class="node">
|
||||
<g id="node6" class="node">
|
||||
<title>Re2</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M852.5,-544C852.5,-544 817.5,-544 817.5,-544 811.5,-544 805.5,-538 805.5,-532 805.5,-532 805.5,-520 805.5,-520 805.5,-514 811.5,-508 817.5,-508 817.5,-508 852.5,-508 852.5,-508 858.5,-508 864.5,-514 864.5,-520 864.5,-520 864.5,-532 864.5,-532 864.5,-538 858.5,-544 852.5,-544"/>
|
||||
<text text-anchor="middle" x="835" y="-522.3" font-family="Times,serif" font-size="14.00">re2::re2</text>
|
||||
<path fill="royalblue" stroke="royalblue" d="M1161.5,-297C1161.5,-297 1112.5,-297 1112.5,-297 1106.5,-297 1100.5,-291 1100.5,-285 1100.5,-285 1100.5,-273 1100.5,-273 1100.5,-267 1106.5,-261 1112.5,-261 1112.5,-261 1161.5,-261 1161.5,-261 1167.5,-261 1173.5,-267 1173.5,-273 1173.5,-273 1173.5,-285 1173.5,-285 1173.5,-291 1167.5,-297 1161.5,-297"/>
|
||||
<text text-anchor="middle" x="1137" y="-274.32" font-family="Times,serif" font-size="14.00">re2::re2</text>
|
||||
</g>
|
||||
<!-- Protobuf->Re2 -->
|
||||
<g id="edge35" class="edge">
|
||||
<title>Protobuf->Re2</title>
|
||||
<path fill="none" stroke="black" d="M1214.94,-203.91C1200.42,-217.72 1179.81,-237.31 1163.43,-252.88"/>
|
||||
<polygon fill="black" stroke="black" points="1161.24,-250.13 1156.4,-259.56 1166.06,-255.21 1161.24,-250.13"/>
|
||||
</g>
|
||||
<!-- Protoc -->
|
||||
<g id="node5" class="node">
|
||||
<title>Protoc</title>
|
||||
<polygon fill="royalblue" stroke="royalblue" points="1466.12,-203.75 1333.88,-203.75 1333.88,-199.75 1329.88,-199.75 1329.88,-195.75 1333.88,-195.75 1333.88,-175.75 1329.88,-175.75 1329.88,-171.75 1333.88,-171.75 1333.88,-167.75 1466.12,-167.75 1466.12,-203.75"/>
|
||||
<polyline fill="none" stroke="royalblue" points="1333.88,-199.75 1337.88,-199.75 1337.88,-195.75 1333.88,-195.75"/>
|
||||
<polyline fill="none" stroke="royalblue" points="1333.88,-175.75 1337.88,-175.75 1337.88,-171.75 1333.88,-171.75"/>
|
||||
<text text-anchor="middle" x="1400" y="-181.07" font-family="Times,serif" font-size="14.00">protobuf::protoc</text>
|
||||
</g>
|
||||
<!-- Re2->Absl -->
|
||||
<g id="edge28" class="edge">
|
||||
<title>Re2->Absl</title>
|
||||
<path fill="none" stroke="black" d="M1156.89,-297.25C1170.66,-309.19 1189.2,-325.27 1204.54,-338.57"/>
|
||||
<polygon fill="black" stroke="black" points="1202.14,-341.12 1211.99,-345.03 1206.73,-335.84 1202.14,-341.12"/>
|
||||
</g>
|
||||
<!-- Eigen3 -->
|
||||
<g id="node6" class="node">
|
||||
<title>Eigen3</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M978,-544C978,-544 910,-544 910,-544 904,-544 898,-538 898,-532 898,-532 898,-520 898,-520 898,-514 904,-508 910,-508 910,-508 978,-508 978,-508 984,-508 990,-514 990,-520 990,-520 990,-532 990,-532 990,-538 984,-544 978,-544"/>
|
||||
<text text-anchor="middle" x="944" y="-522.3" font-family="Times,serif" font-size="14.00">Eigen3::eigen</text>
|
||||
</g>
|
||||
<!-- Pybind11 -->
|
||||
<g id="node7" class="node">
|
||||
<title>Pybind11</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M1130,-544C1130,-544 1028,-544 1028,-544 1022,-544 1016,-538 1016,-532 1016,-532 1016,-520 1016,-520 1016,-514 1022,-508 1028,-508 1028,-508 1130,-508 1130,-508 1136,-508 1142,-514 1142,-520 1142,-520 1142,-532 1142,-532 1142,-538 1136,-544 1130,-544"/>
|
||||
<text text-anchor="middle" x="1079" y="-522.3" font-family="Times,serif" font-size="14.00">pybind11::pybind11</text>
|
||||
<title>Eigen3</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M2366.12,-110.5C2366.12,-110.5 2275.88,-110.5 2275.88,-110.5 2269.88,-110.5 2263.88,-104.5 2263.88,-98.5 2263.88,-98.5 2263.88,-86.5 2263.88,-86.5 2263.88,-80.5 2269.88,-74.5 2275.88,-74.5 2275.88,-74.5 2366.12,-74.5 2366.12,-74.5 2372.12,-74.5 2378.12,-80.5 2378.12,-86.5 2378.12,-86.5 2378.12,-98.5 2378.12,-98.5 2378.12,-104.5 2372.12,-110.5 2366.12,-110.5"/>
|
||||
<text text-anchor="middle" x="2321" y="-87.83" font-family="Times,serif" font-size="14.00">Eigen3::eigen</text>
|
||||
</g>
|
||||
<!-- CoinUtils -->
|
||||
<g id="node8" class="node">
|
||||
<title>CoinUtils</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M721.5,-544C721.5,-544 642.5,-544 642.5,-544 636.5,-544 630.5,-538 630.5,-532 630.5,-532 630.5,-520 630.5,-520 630.5,-514 636.5,-508 642.5,-508 642.5,-508 721.5,-508 721.5,-508 727.5,-508 733.5,-514 733.5,-520 733.5,-520 733.5,-532 733.5,-532 733.5,-538 727.5,-544 721.5,-544"/>
|
||||
<text text-anchor="middle" x="682" y="-522.3" font-family="Times,serif" font-size="14.00">Coin::CoinUtils</text>
|
||||
<path fill="royalblue" stroke="royalblue" d="M361,-624.75C361,-624.75 261,-624.75 261,-624.75 255,-624.75 249,-618.75 249,-612.75 249,-612.75 249,-600.75 249,-600.75 249,-594.75 255,-588.75 261,-588.75 261,-588.75 361,-588.75 361,-588.75 367,-588.75 373,-594.75 373,-600.75 373,-600.75 373,-612.75 373,-612.75 373,-618.75 367,-624.75 361,-624.75"/>
|
||||
<text text-anchor="middle" x="311" y="-602.08" font-family="Times,serif" font-size="14.00">Coin::CoinUtils</text>
|
||||
</g>
|
||||
<!-- Osi -->
|
||||
<g id="node9" class="node">
|
||||
<title>Osi</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M678.5,-453C678.5,-453 633.5,-453 633.5,-453 627.5,-453 621.5,-447 621.5,-441 621.5,-441 621.5,-429 621.5,-429 621.5,-423 627.5,-417 633.5,-417 633.5,-417 678.5,-417 678.5,-417 684.5,-417 690.5,-423 690.5,-429 690.5,-429 690.5,-441 690.5,-441 690.5,-447 684.5,-453 678.5,-453"/>
|
||||
<text text-anchor="middle" x="656" y="-431.3" font-family="Times,serif" font-size="14.00">Coin::Osi</text>
|
||||
<path fill="royalblue" stroke="royalblue" d="M114.25,-539.5C114.25,-539.5 57.75,-539.5 57.75,-539.5 51.75,-539.5 45.75,-533.5 45.75,-527.5 45.75,-527.5 45.75,-515.5 45.75,-515.5 45.75,-509.5 51.75,-503.5 57.75,-503.5 57.75,-503.5 114.25,-503.5 114.25,-503.5 120.25,-503.5 126.25,-509.5 126.25,-515.5 126.25,-515.5 126.25,-527.5 126.25,-527.5 126.25,-533.5 120.25,-539.5 114.25,-539.5"/>
|
||||
<text text-anchor="middle" x="86" y="-516.83" font-family="Times,serif" font-size="14.00">Coin::Osi</text>
|
||||
</g>
|
||||
<!-- CoinUtils->Osi -->
|
||||
<!-- Osi->CoinUtils -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>CoinUtils->Osi</title>
|
||||
<path fill="none" stroke="black" d="M676.99,-507.84C673.28,-495.16 668.16,-477.64 663.91,-463.08"/>
|
||||
<polygon fill="black" stroke="black" points="667.16,-461.72 661,-453.11 660.44,-463.69 667.16,-461.72"/>
|
||||
<title>Osi->CoinUtils</title>
|
||||
<path fill="none" stroke="black" d="M126.75,-537.58C162.13,-550.67 213.76,-569.77 253.37,-584.43"/>
|
||||
<polygon fill="black" stroke="black" points="251.93,-587.63 262.52,-587.81 254.36,-581.06 251.93,-587.63"/>
|
||||
</g>
|
||||
<!-- Clp -->
|
||||
<g id="node10" class="node">
|
||||
<title>Clp</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M624,-370C624,-370 578,-370 578,-370 572,-370 566,-364 566,-358 566,-358 566,-346 566,-346 566,-340 572,-334 578,-334 578,-334 624,-334 624,-334 630,-334 636,-340 636,-346 636,-346 636,-358 636,-358 636,-364 630,-370 624,-370"/>
|
||||
<text text-anchor="middle" x="601" y="-348.3" font-family="Times,serif" font-size="14.00">Coin::Clp</text>
|
||||
<path fill="royalblue" stroke="royalblue" d="M290.62,-454.25C290.62,-454.25 233.38,-454.25 233.38,-454.25 227.38,-454.25 221.38,-448.25 221.38,-442.25 221.38,-442.25 221.38,-430.25 221.38,-430.25 221.38,-424.25 227.38,-418.25 233.38,-418.25 233.38,-418.25 290.62,-418.25 290.62,-418.25 296.62,-418.25 302.62,-424.25 302.62,-430.25 302.62,-430.25 302.62,-442.25 302.62,-442.25 302.62,-448.25 296.62,-454.25 290.62,-454.25"/>
|
||||
<text text-anchor="middle" x="262" y="-431.57" font-family="Times,serif" font-size="14.00">Coin::Clp</text>
|
||||
</g>
|
||||
<!-- CoinUtils->Clp -->
|
||||
<!-- Clp->CoinUtils -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>CoinUtils->Clp</title>
|
||||
<path fill="none" stroke="black" d="M632.62,-507.94C622.14,-502 612.34,-494.18 606,-484 586.47,-452.65 589.69,-408.41 594.67,-380.22"/>
|
||||
<polygon fill="black" stroke="black" points="598.13,-380.74 596.62,-370.26 591.26,-379.4 598.13,-380.74"/>
|
||||
<title>Clp->CoinUtils</title>
|
||||
<path fill="none" stroke="black" d="M267.06,-454.65C275.54,-483.81 292.69,-542.79 302.88,-577.82"/>
|
||||
<polygon fill="black" stroke="black" points="299.47,-578.62 305.62,-587.24 306.19,-576.66 299.47,-578.62"/>
|
||||
</g>
|
||||
<!-- Clp->Osi -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Clp->Osi</title>
|
||||
<path fill="none" stroke="black" d="M225.1,-454.7C198.35,-467.36 161.96,-484.57 133.1,-498.22"/>
|
||||
<polygon fill="black" stroke="black" points="131.76,-494.98 124.21,-502.42 134.75,-501.31 131.76,-494.98"/>
|
||||
</g>
|
||||
<!-- OsiClp -->
|
||||
<g id="node11" class="node">
|
||||
<title>OsiClp</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M663.5,-298C663.5,-298 598.5,-298 598.5,-298 592.5,-298 586.5,-292 586.5,-286 586.5,-286 586.5,-274 586.5,-274 586.5,-268 592.5,-262 598.5,-262 598.5,-262 663.5,-262 663.5,-262 669.5,-262 675.5,-268 675.5,-274 675.5,-274 675.5,-286 675.5,-286 675.5,-292 669.5,-298 663.5,-298"/>
|
||||
<text text-anchor="middle" x="631" y="-276.3" font-family="Times,serif" font-size="14.00">Coin::OsiClp</text>
|
||||
<path fill="royalblue" stroke="royalblue" d="M168.25,-382.25C168.25,-382.25 87.75,-382.25 87.75,-382.25 81.75,-382.25 75.75,-376.25 75.75,-370.25 75.75,-370.25 75.75,-358.25 75.75,-358.25 75.75,-352.25 81.75,-346.25 87.75,-346.25 87.75,-346.25 168.25,-346.25 168.25,-346.25 174.25,-346.25 180.25,-352.25 180.25,-358.25 180.25,-358.25 180.25,-370.25 180.25,-370.25 180.25,-376.25 174.25,-382.25 168.25,-382.25"/>
|
||||
<text text-anchor="middle" x="128" y="-359.57" font-family="Times,serif" font-size="14.00">Coin::OsiClp</text>
|
||||
</g>
|
||||
<!-- CoinUtils->OsiClp -->
|
||||
<!-- OsiClp->CoinUtils -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>CoinUtils->OsiClp</title>
|
||||
<path fill="none" stroke="black" d="M695.5,-507.63C700.09,-500.68 704.66,-492.35 707,-484 716.01,-451.91 715.82,-441.14 707,-409 696.29,-369.99 670.26,-330.82 651.65,-306.28"/>
|
||||
<polygon fill="black" stroke="black" points="654.31,-304 645.42,-298.24 648.77,-308.28 654.31,-304"/>
|
||||
<title>OsiClp->CoinUtils</title>
|
||||
<path fill="none" stroke="black" d="M141.16,-382.55C172.74,-424.05 252.98,-529.5 290.75,-579.14"/>
|
||||
<polygon fill="black" stroke="black" points="287.96,-581.24 296.8,-587.08 293.53,-577.01 287.96,-581.24"/>
|
||||
</g>
|
||||
<!-- Cgl -->
|
||||
<g id="node13" class="node">
|
||||
<title>Cgl</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M676,-215C676,-215 630,-215 630,-215 624,-215 618,-209 618,-203 618,-203 618,-191 618,-191 618,-185 624,-179 630,-179 630,-179 676,-179 676,-179 682,-179 688,-185 688,-191 688,-191 688,-203 688,-203 688,-209 682,-215 676,-215"/>
|
||||
<text text-anchor="middle" x="653" y="-193.3" font-family="Times,serif" font-size="14.00">Coin::Cgl</text>
|
||||
</g>
|
||||
<!-- CoinUtils->Cgl -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>CoinUtils->Cgl</title>
|
||||
<path fill="none" stroke="black" d="M700.09,-507.88C706.03,-501.08 711.9,-492.79 715,-484 731.45,-437.33 703.38,-269.47 697,-254 692.34,-242.68 684.7,-231.74 677.09,-222.58"/>
|
||||
<polygon fill="black" stroke="black" points="679.7,-220.25 670.48,-215.03 674.43,-224.86 679.7,-220.25"/>
|
||||
</g>
|
||||
<!-- CoinUtils->Cbc -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>CoinUtils->Cbc</title>
|
||||
<path fill="none" stroke="black" d="M641.21,-507.99C624.09,-500.75 604.01,-492.11 586,-484 507.51,-448.64 462.16,-470.23 411,-401 398.19,-383.66 404,-374.56 404,-353 404,-353 404,-353 404,-279 404,-230.95 393.83,-216.59 409,-171 412.6,-160.19 418.93,-149.53 425.4,-140.46"/>
|
||||
<polygon fill="black" stroke="black" points="428.33,-142.39 431.56,-132.3 422.74,-138.17 428.33,-142.39"/>
|
||||
</g>
|
||||
<!-- OsiCbc -->
|
||||
<g id="node15" class="node">
|
||||
<title>OsiCbc</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M614.5,-60C614.5,-60 547.5,-60 547.5,-60 541.5,-60 535.5,-54 535.5,-48 535.5,-48 535.5,-36 535.5,-36 535.5,-30 541.5,-24 547.5,-24 547.5,-24 614.5,-24 614.5,-24 620.5,-24 626.5,-30 626.5,-36 626.5,-36 626.5,-48 626.5,-48 626.5,-54 620.5,-60 614.5,-60"/>
|
||||
<text text-anchor="middle" x="581" y="-38.3" font-family="Times,serif" font-size="14.00">Coin::OsiCbc</text>
|
||||
</g>
|
||||
<!-- CoinUtils->OsiCbc -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>CoinUtils->OsiCbc</title>
|
||||
<path fill="none" stroke="black" d="M702.08,-507.62C709.08,-500.79 716.54,-492.55 722,-484 755.57,-431.49 772,-415.32 772,-353 772,-353 772,-353 772,-196 772,-138.06 744.4,-123.99 699,-88 680.83,-73.59 657.54,-63.41 636.45,-56.42"/>
|
||||
<polygon fill="black" stroke="black" points="637.22,-52.99 626.63,-53.34 635.12,-59.67 637.22,-52.99"/>
|
||||
</g>
|
||||
<!-- Osi->Clp -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Osi->Clp</title>
|
||||
<path fill="none" stroke="black" d="M644.34,-416.82C636.83,-405.76 626.92,-391.18 618.48,-378.75"/>
|
||||
<polygon fill="black" stroke="black" points="621.16,-376.46 612.65,-370.15 615.37,-380.39 621.16,-376.46"/>
|
||||
</g>
|
||||
<!-- Osi->OsiClp -->
|
||||
<!-- OsiClp->Osi -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>Osi->OsiClp</title>
|
||||
<path fill="none" stroke="black" d="M654.9,-416.9C653.43,-396.9 650.37,-362.85 645,-334 643.41,-325.45 641.17,-316.25 638.95,-307.95"/>
|
||||
<polygon fill="black" stroke="black" points="642.24,-306.74 636.19,-298.04 635.5,-308.61 642.24,-306.74"/>
|
||||
<title>OsiClp->Osi</title>
|
||||
<path fill="none" stroke="black" d="M123.34,-382.46C116.15,-409.04 102.27,-460.34 93.61,-492.37"/>
|
||||
<polygon fill="black" stroke="black" points="90.3,-491.19 91.07,-501.75 97.06,-493.02 90.3,-491.19"/>
|
||||
</g>
|
||||
<!-- Osi->Cgl -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>Osi->Cgl</title>
|
||||
<path fill="none" stroke="black" d="M676.53,-416.94C680.79,-412.26 684.68,-406.85 687,-401 711.06,-340.26 704.6,-316.92 687,-254 684.06,-243.48 678.54,-232.98 672.79,-223.96"/>
|
||||
<polygon fill="black" stroke="black" points="675.56,-221.8 667.06,-215.48 669.77,-225.73 675.56,-221.8"/>
|
||||
</g>
|
||||
<!-- Osi->Cbc -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>Osi->Cbc</title>
|
||||
<path fill="none" stroke="black" d="M621.25,-433.1C569.21,-431.01 474.59,-424.06 451,-401 380.8,-332.38 416.64,-199.18 436.6,-142.07"/>
|
||||
<polygon fill="black" stroke="black" points="440.02,-142.92 440.12,-132.32 433.43,-140.54 440.02,-142.92"/>
|
||||
</g>
|
||||
<!-- Osi->OsiCbc -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>Osi->OsiCbc</title>
|
||||
<path fill="none" stroke="black" d="M683.96,-416.8C689.6,-412.25 695.01,-406.93 699,-401 729.88,-355.11 732,-336.31 732,-281 732,-281 732,-281 732,-196 732,-135.25 670.94,-89.89 626.48,-64.92"/>
|
||||
<polygon fill="black" stroke="black" points="628.01,-61.77 617.55,-60.05 624.66,-67.91 628.01,-61.77"/>
|
||||
</g>
|
||||
<!-- Clp->OsiClp -->
|
||||
<!-- OsiClp->Clp -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>Clp->OsiClp</title>
|
||||
<path fill="none" stroke="black" d="M608.42,-333.7C611.79,-325.81 615.87,-316.3 619.62,-307.55"/>
|
||||
<polygon fill="black" stroke="black" points="622.95,-308.67 623.67,-298.1 616.51,-305.92 622.95,-308.67"/>
|
||||
<title>OsiClp->Clp</title>
|
||||
<path fill="none" stroke="black" d="M161.47,-382.73C178.87,-391.82 200.33,-403.03 218.95,-412.76"/>
|
||||
<polygon fill="black" stroke="black" points="217.13,-415.76 227.62,-417.29 220.37,-409.56 217.13,-415.76"/>
|
||||
</g>
|
||||
<!-- ClpSolver -->
|
||||
<g id="node12" class="node">
|
||||
<title>ClpSolver</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M556.5,-298C556.5,-298 475.5,-298 475.5,-298 469.5,-298 463.5,-292 463.5,-286 463.5,-286 463.5,-274 463.5,-274 463.5,-268 469.5,-262 475.5,-262 475.5,-262 556.5,-262 556.5,-262 562.5,-262 568.5,-268 568.5,-274 568.5,-274 568.5,-286 568.5,-286 568.5,-292 562.5,-298 556.5,-298"/>
|
||||
<text text-anchor="middle" x="516" y="-276.3" font-family="Times,serif" font-size="14.00">Coin::ClpSolver</text>
|
||||
<path fill="royalblue" stroke="royalblue" d="M313.5,-382.25C313.5,-382.25 210.5,-382.25 210.5,-382.25 204.5,-382.25 198.5,-376.25 198.5,-370.25 198.5,-370.25 198.5,-358.25 198.5,-358.25 198.5,-352.25 204.5,-346.25 210.5,-346.25 210.5,-346.25 313.5,-346.25 313.5,-346.25 319.5,-346.25 325.5,-352.25 325.5,-358.25 325.5,-358.25 325.5,-370.25 325.5,-370.25 325.5,-376.25 319.5,-382.25 313.5,-382.25"/>
|
||||
<text text-anchor="middle" x="262" y="-359.57" font-family="Times,serif" font-size="14.00">Coin::ClpSolver</text>
|
||||
</g>
|
||||
<!-- Clp->ClpSolver -->
|
||||
<!-- ClpSolver->Clp -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>Clp->ClpSolver</title>
|
||||
<path fill="none" stroke="black" d="M579.99,-333.7C569.28,-324.88 556.11,-314.03 544.5,-304.47"/>
|
||||
<polygon fill="black" stroke="black" points="546.71,-301.76 536.77,-298.1 542.26,-307.16 546.71,-301.76"/>
|
||||
<title>ClpSolver->Clp</title>
|
||||
<path fill="none" stroke="black" d="M262,-382.55C262,-389.84 262,-398.52 262,-406.71"/>
|
||||
<polygon fill="black" stroke="black" points="258.5,-406.63 262,-416.63 265.5,-406.63 258.5,-406.63"/>
|
||||
</g>
|
||||
<!-- Clp->Cbc -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>Clp->Cbc</title>
|
||||
<path fill="none" stroke="black" d="M565.9,-348.94C531.49,-344.86 480.61,-332.89 455,-298 421.29,-252.07 430.84,-180.8 439.62,-142.15"/>
|
||||
<polygon fill="black" stroke="black" points="443.08,-142.71 442.03,-132.16 436.28,-141.06 443.08,-142.71"/>
|
||||
<!-- Cgl -->
|
||||
<g id="node13" class="node">
|
||||
<title>Cgl</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M242.62,-297C242.62,-297 185.38,-297 185.38,-297 179.38,-297 173.38,-291 173.38,-285 173.38,-285 173.38,-273 173.38,-273 173.38,-267 179.38,-261 185.38,-261 185.38,-261 242.62,-261 242.62,-261 248.62,-261 254.62,-267 254.62,-273 254.62,-273 254.62,-285 254.62,-285 254.62,-291 248.62,-297 242.62,-297"/>
|
||||
<text text-anchor="middle" x="214" y="-274.32" font-family="Times,serif" font-size="14.00">Coin::Cgl</text>
|
||||
</g>
|
||||
<!-- OsiClp->Cgl -->
|
||||
<!-- Cgl->CoinUtils -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>Cgl->CoinUtils</title>
|
||||
<path fill="none" stroke="black" d="M254.94,-285.47C287,-290.7 327.82,-299.75 338,-313 398.95,-392.29 350.78,-521.7 324.83,-578.06"/>
|
||||
<polygon fill="black" stroke="black" points="321.73,-576.42 320.62,-586.95 328.06,-579.41 321.73,-576.42"/>
|
||||
</g>
|
||||
<!-- Cgl->Osi -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>Cgl->Osi</title>
|
||||
<path fill="none" stroke="black" d="M172.92,-283.35C133.31,-287.53 77.45,-296.27 64,-313 22.24,-364.95 51.87,-449.4 71.84,-492.81"/>
|
||||
<polygon fill="black" stroke="black" points="68.67,-494.28 76.13,-501.8 74.98,-491.26 68.67,-494.28"/>
|
||||
</g>
|
||||
<!-- Cgl->OsiClp -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>OsiClp->Cgl</title>
|
||||
<path fill="none" stroke="black" d="M635.67,-261.82C638.58,-251.08 642.4,-237.03 645.71,-224.84"/>
|
||||
<polygon fill="black" stroke="black" points="649.1,-225.72 648.34,-215.15 642.34,-223.89 649.1,-225.72"/>
|
||||
<title>Cgl->OsiClp</title>
|
||||
<path fill="none" stroke="black" d="M196.18,-297.25C183.96,-309.08 167.54,-324.97 153.88,-338.19"/>
|
||||
<polygon fill="black" stroke="black" points="151.63,-335.5 146.88,-344.97 156.5,-340.53 151.63,-335.5"/>
|
||||
</g>
|
||||
<!-- Cgl->Cbc -->
|
||||
<!-- Cbc -->
|
||||
<g id="node14" class="node">
|
||||
<title>Cbc</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M363.12,-203.75C363.12,-203.75 302.88,-203.75 302.88,-203.75 296.88,-203.75 290.88,-197.75 290.88,-191.75 290.88,-191.75 290.88,-179.75 290.88,-179.75 290.88,-173.75 296.88,-167.75 302.88,-167.75 302.88,-167.75 363.12,-167.75 363.12,-167.75 369.12,-167.75 375.12,-173.75 375.12,-179.75 375.12,-179.75 375.12,-191.75 375.12,-191.75 375.12,-197.75 369.12,-203.75 363.12,-203.75"/>
|
||||
<text text-anchor="middle" x="333" y="-181.07" font-family="Times,serif" font-size="14.00">Coin::Cbc</text>
|
||||
</g>
|
||||
<!-- Cbc->ZLIB -->
|
||||
<g id="edge25" class="edge">
|
||||
<title>Cbc->ZLIB</title>
|
||||
<path fill="none" stroke="black" d="M375.55,-199.82C427.09,-215.66 514.14,-242.4 571.84,-260.13"/>
|
||||
<polygon fill="black" stroke="black" points="570.58,-263.41 581.17,-263 572.64,-256.71 570.58,-263.41"/>
|
||||
</g>
|
||||
<!-- Cbc->CoinUtils -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>Cbc->CoinUtils</title>
|
||||
<path fill="none" stroke="black" d="M343.74,-204.21C347.74,-211.31 352.02,-219.72 355,-227.75 376.45,-285.58 385,-301.57 385,-363.25 385,-363.25 385,-363.25 385,-437.25 385,-488.15 376.37,-501.78 354,-547.5 348.53,-558.68 340.86,-569.92 333.51,-579.51"/>
|
||||
<polygon fill="black" stroke="black" points="330.8,-577.3 327.3,-587.3 336.27,-581.66 330.8,-577.3"/>
|
||||
</g>
|
||||
<!-- Cbc->Osi -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>Cbc->Osi</title>
|
||||
<path fill="none" stroke="black" d="M290.43,-189.29C221.31,-196.08 87.8,-221.07 42,-313 12.42,-372.37 21.83,-399.39 43,-462.25 46.91,-473.86 54.08,-485.08 61.46,-494.52"/>
|
||||
<polygon fill="black" stroke="black" points="58.73,-496.71 67.83,-502.15 64.11,-492.23 58.73,-496.71"/>
|
||||
</g>
|
||||
<!-- Cbc->Clp -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>Cbc->Clp</title>
|
||||
<path fill="none" stroke="black" d="M338.59,-204.23C349.36,-241.28 369.02,-329.32 335,-390.25 329.72,-399.71 321.55,-407.42 312.55,-413.62"/>
|
||||
<polygon fill="black" stroke="black" points="310.92,-410.51 304.26,-418.75 314.6,-416.47 310.92,-410.51"/>
|
||||
</g>
|
||||
<!-- Cbc->Cgl -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>Cgl->Cbc</title>
|
||||
<path fill="none" stroke="black" d="M617.59,-182.08C583.16,-168.54 530.7,-147.91 493.05,-133.11"/>
|
||||
<polygon fill="black" stroke="black" points="493.92,-129.69 483.33,-129.29 491.36,-136.2 493.92,-129.69"/>
|
||||
<title>Cbc->Cgl</title>
|
||||
<path fill="none" stroke="black" d="M310.34,-204.13C291.97,-218.21 265.9,-238.21 245.5,-253.84"/>
|
||||
<polygon fill="black" stroke="black" points="243.59,-250.9 237.78,-259.77 247.85,-256.46 243.59,-250.9"/>
|
||||
</g>
|
||||
<!-- Cbc->OsiCbc -->
|
||||
<!-- OsiCbc -->
|
||||
<g id="node15" class="node">
|
||||
<title>OsiCbc</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M237.75,-110.5C237.75,-110.5 154.25,-110.5 154.25,-110.5 148.25,-110.5 142.25,-104.5 142.25,-98.5 142.25,-98.5 142.25,-86.5 142.25,-86.5 142.25,-80.5 148.25,-74.5 154.25,-74.5 154.25,-74.5 237.75,-74.5 237.75,-74.5 243.75,-74.5 249.75,-80.5 249.75,-86.5 249.75,-86.5 249.75,-98.5 249.75,-98.5 249.75,-104.5 243.75,-110.5 237.75,-110.5"/>
|
||||
<text text-anchor="middle" x="196" y="-87.83" font-family="Times,serif" font-size="14.00">Coin::OsiCbc</text>
|
||||
</g>
|
||||
<!-- OsiCbc->CoinUtils -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>OsiCbc->CoinUtils</title>
|
||||
<path fill="none" stroke="black" d="M223.18,-110.92C233.92,-116.94 246.64,-123.04 259,-126.5 272.4,-130.26 373.77,-125.07 384,-134.5 431.39,-178.19 405,-213.54 405,-278 405,-278 405,-278 405,-437.25 405,-488.15 400.58,-504.09 374,-547.5 366.27,-560.13 355.04,-571.74 344.2,-581.21"/>
|
||||
<polygon fill="black" stroke="black" points="342.26,-578.27 336.82,-587.36 346.74,-583.64 342.26,-578.27"/>
|
||||
</g>
|
||||
<!-- OsiCbc->Osi -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>OsiCbc->Osi</title>
|
||||
<path fill="none" stroke="black" d="M158.91,-110.93C106.48,-138.44 17,-197.22 17,-278 17,-278 17,-278 17,-365.25 17,-408.51 6.36,-423.21 25,-462.25 31.11,-475.05 41.33,-486.51 51.68,-495.8"/>
|
||||
<polygon fill="black" stroke="black" points="49.25,-498.33 59.15,-502.1 53.77,-492.98 49.25,-498.33"/>
|
||||
</g>
|
||||
<!-- OsiCbc->Cbc -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>Cbc->OsiCbc</title>
|
||||
<path fill="none" stroke="black" d="M479.78,-95.88C497.63,-86.55 519.9,-74.92 539,-64.94"/>
|
||||
<polygon fill="black" stroke="black" points="540.85,-67.92 548.09,-60.19 537.61,-61.72 540.85,-67.92"/>
|
||||
<title>OsiCbc->Cbc</title>
|
||||
<path fill="none" stroke="black" d="M222.09,-110.88C243.52,-125.15 274.07,-145.5 297.68,-161.23"/>
|
||||
<polygon fill="black" stroke="black" points="295.48,-163.97 305.75,-166.6 299.36,-158.14 295.48,-163.97"/>
|
||||
</g>
|
||||
<!-- CbcSolver -->
|
||||
<g id="node16" class="node">
|
||||
<title>CbcSolver</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M505.5,-60C505.5,-60 422.5,-60 422.5,-60 416.5,-60 410.5,-54 410.5,-48 410.5,-48 410.5,-36 410.5,-36 410.5,-30 416.5,-24 422.5,-24 422.5,-24 505.5,-24 505.5,-24 511.5,-24 517.5,-30 517.5,-36 517.5,-36 517.5,-48 517.5,-48 517.5,-54 511.5,-60 505.5,-60"/>
|
||||
<text text-anchor="middle" x="464" y="-38.3" font-family="Times,serif" font-size="14.00">Coin::CbcSolver</text>
|
||||
<path fill="royalblue" stroke="royalblue" d="M386,-110.5C386,-110.5 280,-110.5 280,-110.5 274,-110.5 268,-104.5 268,-98.5 268,-98.5 268,-86.5 268,-86.5 268,-80.5 274,-74.5 280,-74.5 280,-74.5 386,-74.5 386,-74.5 392,-74.5 398,-80.5 398,-86.5 398,-86.5 398,-98.5 398,-98.5 398,-104.5 392,-110.5 386,-110.5"/>
|
||||
<text text-anchor="middle" x="333" y="-87.83" font-family="Times,serif" font-size="14.00">Coin::CbcSolver</text>
|
||||
</g>
|
||||
<!-- Cbc->CbcSolver -->
|
||||
<!-- CbcSolver->Cbc -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>Cbc->CbcSolver</title>
|
||||
<path fill="none" stroke="black" d="M451.2,-95.7C453.1,-87.9 455.38,-78.51 457.48,-69.83"/>
|
||||
<polygon fill="black" stroke="black" points="460.89,-70.65 459.85,-60.1 454.08,-69 460.89,-70.65"/>
|
||||
<title>CbcSolver->Cbc</title>
|
||||
<path fill="none" stroke="black" d="M333,-110.66C333,-123.45 333,-141.22 333,-156.14"/>
|
||||
<polygon fill="black" stroke="black" points="329.5,-155.84 333,-165.84 336.5,-155.84 329.5,-155.84"/>
|
||||
</g>
|
||||
<!-- GLPK -->
|
||||
<g id="node17" class="node">
|
||||
<title>GLPK</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M1325,-544C1325,-544 1277,-544 1277,-544 1271,-544 1265,-538 1265,-532 1265,-532 1265,-520 1265,-520 1265,-514 1271,-508 1277,-508 1277,-508 1325,-508 1325,-508 1331,-508 1337,-514 1337,-520 1337,-520 1337,-532 1337,-532 1337,-538 1331,-544 1325,-544"/>
|
||||
<text text-anchor="middle" x="1301" y="-522.3" font-family="Times,serif" font-size="14.00">glpk::glpk</text>
|
||||
<path fill="royalblue" stroke="royalblue" d="M2597.25,-110.5C2597.25,-110.5 2534.75,-110.5 2534.75,-110.5 2528.75,-110.5 2522.75,-104.5 2522.75,-98.5 2522.75,-98.5 2522.75,-86.5 2522.75,-86.5 2522.75,-80.5 2528.75,-74.5 2534.75,-74.5 2534.75,-74.5 2597.25,-74.5 2597.25,-74.5 2603.25,-74.5 2609.25,-80.5 2609.25,-86.5 2609.25,-86.5 2609.25,-98.5 2609.25,-98.5 2609.25,-104.5 2603.25,-110.5 2597.25,-110.5"/>
|
||||
<text text-anchor="middle" x="2566" y="-87.83" font-family="Times,serif" font-size="14.00">glpk::glpk</text>
|
||||
</g>
|
||||
<!-- HIGHS -->
|
||||
<g id="node18" class="node">
|
||||
<title>HIGHS</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M2956.5,-110.5C2956.5,-110.5 2877.5,-110.5 2877.5,-110.5 2871.5,-110.5 2865.5,-104.5 2865.5,-98.5 2865.5,-98.5 2865.5,-86.5 2865.5,-86.5 2865.5,-80.5 2871.5,-74.5 2877.5,-74.5 2877.5,-74.5 2956.5,-74.5 2956.5,-74.5 2962.5,-74.5 2968.5,-80.5 2968.5,-86.5 2968.5,-86.5 2968.5,-98.5 2968.5,-98.5 2968.5,-104.5 2962.5,-110.5 2956.5,-110.5"/>
|
||||
<text text-anchor="middle" x="2917" y="-87.83" font-family="Times,serif" font-size="14.00">highs::highs</text>
|
||||
</g>
|
||||
<!-- SPX -->
|
||||
<g id="node19" class="node">
|
||||
<title>SPX</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M623.88,-203.75C623.88,-203.75 568.12,-203.75 568.12,-203.75 562.12,-203.75 556.12,-197.75 556.12,-191.75 556.12,-191.75 556.12,-179.75 556.12,-179.75 556.12,-173.75 562.12,-167.75 568.12,-167.75 568.12,-167.75 623.88,-167.75 623.88,-167.75 629.88,-167.75 635.88,-173.75 635.88,-179.75 635.88,-179.75 635.88,-191.75 635.88,-191.75 635.88,-197.75 629.88,-203.75 623.88,-203.75"/>
|
||||
<text text-anchor="middle" x="596" y="-181.07" font-family="Times,serif" font-size="14.00">libsoplex</text>
|
||||
</g>
|
||||
<!-- SPX->ZLIB -->
|
||||
<g id="edge26" class="edge">
|
||||
<title>SPX->ZLIB</title>
|
||||
<path fill="none" stroke="black" d="M602.4,-203.91C607.21,-216.83 613.91,-234.82 619.5,-249.83"/>
|
||||
<polygon fill="black" stroke="black" points="616.22,-251.04 622.99,-259.18 622.78,-248.59 616.22,-251.04"/>
|
||||
</g>
|
||||
<!-- SCIP -->
|
||||
<g id="node18" class="node">
|
||||
<g id="node20" class="node">
|
||||
<title>SCIP</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M1611,-544C1611,-544 1567,-544 1567,-544 1561,-544 1555,-538 1555,-532 1555,-532 1555,-520 1555,-520 1555,-514 1561,-508 1567,-508 1567,-508 1611,-508 1611,-508 1617,-508 1623,-514 1623,-520 1623,-520 1623,-532 1623,-532 1623,-538 1617,-544 1611,-544"/>
|
||||
<text text-anchor="middle" x="1589" y="-522.3" font-family="Times,serif" font-size="14.00">scip::scip</text>
|
||||
<path fill="royalblue" stroke="royalblue" d="M671,-110.5C671,-110.5 589,-110.5 589,-110.5 583,-110.5 577,-104.5 577,-98.5 577,-98.5 577,-86.5 577,-86.5 577,-80.5 583,-74.5 589,-74.5 589,-74.5 671,-74.5 671,-74.5 677,-74.5 683,-80.5 683,-86.5 683,-86.5 683,-98.5 683,-98.5 683,-104.5 677,-110.5 671,-110.5"/>
|
||||
<text text-anchor="middle" x="630" y="-87.83" font-family="Times,serif" font-size="14.00">SCIP::libscip</text>
|
||||
</g>
|
||||
<!-- SCIP->ZLIB -->
|
||||
<g id="edge27" class="edge">
|
||||
<title>SCIP->ZLIB</title>
|
||||
<path fill="none" stroke="black" d="M640.08,-110.87C643.64,-117.95 647.21,-126.38 649,-134.5 657.16,-171.5 654.95,-182.33 649,-219.75 647.41,-229.76 644.37,-240.38 641.18,-249.78"/>
|
||||
<polygon fill="black" stroke="black" points="637.93,-248.49 637.82,-259.09 644.51,-250.87 637.93,-248.49"/>
|
||||
</g>
|
||||
<!-- SCIP->SPX -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>SCIP->SPX</title>
|
||||
<path fill="none" stroke="black" d="M623.6,-110.66C618.79,-123.58 612.09,-141.57 606.5,-156.58"/>
|
||||
<polygon fill="black" stroke="black" points="603.22,-155.34 603.01,-165.93 609.78,-157.79 603.22,-155.34"/>
|
||||
</g>
|
||||
<!-- gtest -->
|
||||
<g id="node21" class="node">
|
||||
<title>gtest</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M1081.5,-203.75C1081.5,-203.75 1002.5,-203.75 1002.5,-203.75 996.5,-203.75 990.5,-197.75 990.5,-191.75 990.5,-191.75 990.5,-179.75 990.5,-179.75 990.5,-173.75 996.5,-167.75 1002.5,-167.75 1002.5,-167.75 1081.5,-167.75 1081.5,-167.75 1087.5,-167.75 1093.5,-173.75 1093.5,-179.75 1093.5,-179.75 1093.5,-191.75 1093.5,-191.75 1093.5,-197.75 1087.5,-203.75 1081.5,-203.75"/>
|
||||
<text text-anchor="middle" x="1042" y="-181.07" font-family="Times,serif" font-size="14.00">GTest::gtest</text>
|
||||
</g>
|
||||
<!-- gtest->Absl -->
|
||||
<g id="edge30" class="edge">
|
||||
<title>gtest->Absl</title>
|
||||
<path fill="none" stroke="black" d="M1042.96,-203.96C1045.27,-229.3 1053.14,-276.68 1080,-305 1104.5,-330.83 1141.64,-345.32 1173.2,-353.4"/>
|
||||
<polygon fill="black" stroke="black" points="1172.08,-356.73 1182.62,-355.64 1173.7,-349.92 1172.08,-356.73"/>
|
||||
</g>
|
||||
<!-- gtest->Re2 -->
|
||||
<g id="edge36" class="edge">
|
||||
<title>gtest->Re2</title>
|
||||
<path fill="none" stroke="black" d="M1059.87,-203.91C1074.24,-217.72 1094.64,-237.31 1110.85,-252.88"/>
|
||||
<polygon fill="black" stroke="black" points="1108.16,-255.15 1117.8,-259.55 1113.01,-250.1 1108.16,-255.15"/>
|
||||
</g>
|
||||
<!-- bench -->
|
||||
<g id="node22" class="node">
|
||||
<title>bench</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M942,-110.5C942,-110.5 782,-110.5 782,-110.5 776,-110.5 770,-104.5 770,-98.5 770,-98.5 770,-86.5 770,-86.5 770,-80.5 776,-74.5 782,-74.5 782,-74.5 942,-74.5 942,-74.5 948,-74.5 954,-80.5 954,-86.5 954,-86.5 954,-98.5 954,-98.5 954,-104.5 948,-110.5 942,-110.5"/>
|
||||
<text text-anchor="middle" x="862" y="-87.83" font-family="Times,serif" font-size="14.00">benchmark::benchmark</text>
|
||||
</g>
|
||||
<!-- bench->gtest -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>bench->gtest</title>
|
||||
<path fill="none" stroke="black" d="M896.28,-110.88C924.96,-125.42 966.1,-146.27 997.35,-162.12"/>
|
||||
<polygon fill="black" stroke="black" points="995.69,-165.2 1006.19,-166.6 998.85,-158.95 995.69,-165.2"/>
|
||||
</g>
|
||||
<!-- fuzz -->
|
||||
<g id="node23" class="node">
|
||||
<title>fuzz</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M1105.5,-110.5C1105.5,-110.5 990.5,-110.5 990.5,-110.5 984.5,-110.5 978.5,-104.5 978.5,-98.5 978.5,-98.5 978.5,-86.5 978.5,-86.5 978.5,-80.5 984.5,-74.5 990.5,-74.5 990.5,-74.5 1105.5,-74.5 1105.5,-74.5 1111.5,-74.5 1117.5,-80.5 1117.5,-86.5 1117.5,-86.5 1117.5,-98.5 1117.5,-98.5 1117.5,-104.5 1111.5,-110.5 1105.5,-110.5"/>
|
||||
<text text-anchor="middle" x="1048" y="-87.83" font-family="Times,serif" font-size="14.00">fuzztest::fuzztest</text>
|
||||
</g>
|
||||
<!-- fuzz->Absl -->
|
||||
<g id="edge31" class="edge">
|
||||
<title>fuzz->Absl</title>
|
||||
<path fill="none" stroke="black" d="M1117.88,-95.12C1233.5,-98.53 1454.29,-108.42 1478,-134.5 1552.16,-216.07 1382.39,-302.19 1289.1,-341.45"/>
|
||||
<polygon fill="black" stroke="black" points="1287.97,-338.13 1280.07,-345.2 1290.65,-344.59 1287.97,-338.13"/>
|
||||
</g>
|
||||
<!-- fuzz->Protobuf -->
|
||||
<g id="edge33" class="edge">
|
||||
<title>fuzz->Protobuf</title>
|
||||
<path fill="none" stroke="black" d="M1086.28,-110.91C1101.79,-118.07 1119.82,-126.54 1136,-134.5 1153.9,-143.3 1173.46,-153.35 1190.3,-162.14"/>
|
||||
<polygon fill="black" stroke="black" points="1188.57,-165.19 1199.06,-166.72 1191.82,-158.98 1188.57,-165.19"/>
|
||||
</g>
|
||||
<!-- fuzz->Re2 -->
|
||||
<g id="edge37" class="edge">
|
||||
<title>fuzz->Re2</title>
|
||||
<path fill="none" stroke="black" d="M1082.13,-110.85C1091.47,-117.12 1100.73,-125.04 1107,-134.5 1130.07,-169.35 1135.89,-218.53 1137.09,-249.32"/>
|
||||
<polygon fill="black" stroke="black" points="1133.59,-249.11 1137.32,-259.02 1140.59,-248.94 1133.59,-249.11"/>
|
||||
</g>
|
||||
<!-- fuzz->gtest -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>fuzz->gtest</title>
|
||||
<path fill="none" stroke="black" d="M1046.87,-110.66C1046.03,-123.45 1044.86,-141.22 1043.88,-156.14"/>
|
||||
<polygon fill="black" stroke="black" points="1040.41,-155.63 1043.24,-165.84 1047.39,-156.09 1040.41,-155.63"/>
|
||||
</g>
|
||||
<!-- Pybind11 -->
|
||||
<g id="node24" class="node">
|
||||
<title>Pybind11</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M1828.25,-203.75C1828.25,-203.75 1693.75,-203.75 1693.75,-203.75 1687.75,-203.75 1681.75,-197.75 1681.75,-191.75 1681.75,-191.75 1681.75,-179.75 1681.75,-179.75 1681.75,-173.75 1687.75,-167.75 1693.75,-167.75 1693.75,-167.75 1828.25,-167.75 1828.25,-167.75 1834.25,-167.75 1840.25,-173.75 1840.25,-179.75 1840.25,-179.75 1840.25,-191.75 1840.25,-191.75 1840.25,-197.75 1834.25,-203.75 1828.25,-203.75"/>
|
||||
<text text-anchor="middle" x="1761" y="-181.07" font-family="Times,serif" font-size="14.00">pybind11::pybind11</text>
|
||||
</g>
|
||||
<!-- Pybind11Absl -->
|
||||
<g id="node25" class="node">
|
||||
<title>Pybind11Absl</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M1973.62,-110.5C1973.62,-110.5 1790.38,-110.5 1790.38,-110.5 1784.38,-110.5 1778.38,-104.5 1778.38,-98.5 1778.38,-98.5 1778.38,-86.5 1778.38,-86.5 1778.38,-80.5 1784.38,-74.5 1790.38,-74.5 1790.38,-74.5 1973.62,-74.5 1973.62,-74.5 1979.62,-74.5 1985.62,-80.5 1985.62,-86.5 1985.62,-86.5 1985.62,-98.5 1985.62,-98.5 1985.62,-104.5 1979.62,-110.5 1973.62,-110.5"/>
|
||||
<text text-anchor="middle" x="1882" y="-87.83" font-family="Times,serif" font-size="14.00">pybind11::pybind11_abseil</text>
|
||||
</g>
|
||||
<!-- Pybind11Absl->Absl -->
|
||||
<g id="edge32" class="edge">
|
||||
<title>Pybind11Absl->Absl</title>
|
||||
<path fill="none" stroke="black" d="M1828.8,-110.98C1809.25,-116.77 1786.81,-122.71 1766,-126.5 1723.88,-134.17 1710.15,-119.64 1670,-134.5 1548.64,-179.4 1550.3,-248.27 1434,-305 1388.93,-326.99 1334.03,-342.2 1293,-351.55"/>
|
||||
<polygon fill="black" stroke="black" points="1292.3,-348.12 1283.3,-353.7 1293.82,-354.95 1292.3,-348.12"/>
|
||||
</g>
|
||||
<!-- Pybind11Absl->Pybind11 -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>Pybind11Absl->Pybind11</title>
|
||||
<path fill="none" stroke="black" d="M1858.96,-110.88C1840.29,-124.96 1813.77,-144.96 1793.03,-160.59"/>
|
||||
<polygon fill="black" stroke="black" points="1791.04,-157.71 1785.17,-166.53 1795.26,-163.3 1791.04,-157.71"/>
|
||||
</g>
|
||||
<!-- Pybind11Protobuf -->
|
||||
<g id="node26" class="node">
|
||||
<title>Pybind11Protobuf</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M1742.38,-110.5C1742.38,-110.5 1539.62,-110.5 1539.62,-110.5 1533.62,-110.5 1527.62,-104.5 1527.62,-98.5 1527.62,-98.5 1527.62,-86.5 1527.62,-86.5 1527.62,-80.5 1533.62,-74.5 1539.62,-74.5 1539.62,-74.5 1742.38,-74.5 1742.38,-74.5 1748.38,-74.5 1754.38,-80.5 1754.38,-86.5 1754.38,-86.5 1754.38,-98.5 1754.38,-98.5 1754.38,-104.5 1748.38,-110.5 1742.38,-110.5"/>
|
||||
<text text-anchor="middle" x="1641" y="-87.83" font-family="Times,serif" font-size="14.00">pybind11::pybind11_protobuf</text>
|
||||
</g>
|
||||
<!-- Pybind11Protobuf->Protobuf -->
|
||||
<g id="edge34" class="edge">
|
||||
<title>Pybind11Protobuf->Protobuf</title>
|
||||
<path fill="none" stroke="black" d="M1527.26,-98.07C1466.11,-103.04 1390.1,-113.32 1325,-134.5 1305.36,-140.89 1285.06,-151.48 1268.54,-161.3"/>
|
||||
<polygon fill="black" stroke="black" points="1266.78,-158.28 1260.08,-166.48 1270.43,-164.25 1266.78,-158.28"/>
|
||||
</g>
|
||||
<!-- Pybind11Protobuf->Pybind11 -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>Pybind11Protobuf->Pybind11</title>
|
||||
<path fill="none" stroke="black" d="M1663.85,-110.88C1682.37,-124.96 1708.67,-144.96 1729.23,-160.59"/>
|
||||
<polygon fill="black" stroke="black" points="1726.95,-163.25 1737.03,-166.52 1731.19,-157.68 1726.95,-163.25"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 35 KiB |
@@ -1,426 +1,426 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.43.0 (0)
|
||||
<!-- Generated by graphviz version 12.2.1 (0)
|
||||
-->
|
||||
<!-- Title: DockerDeps Pages: 1 -->
|
||||
<svg width="1904pt" height="1113pt"
|
||||
viewBox="0.00 0.00 1904.00 1113.25" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1109.25)">
|
||||
<svg width="2371pt" height="1198pt"
|
||||
viewBox="0.00 0.00 2370.50 1198.19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1194.19)">
|
||||
<title>DockerDeps</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-1109.25 1900,-1109.25 1900,4 -4,4"/>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-1194.19 2366.5,-1194.19 2366.5,4 -4,4"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>clusterDockerfile</title>
|
||||
<polygon fill="none" stroke="royalblue" points="1484,-845.75 1484,-1026.25 1676,-1026.25 1676,-845.75 1484,-845.75"/>
|
||||
<text text-anchor="middle" x="1580" y="-1011.05" font-family="Times,serif" font-size="14.00">docker/<distro>/Dockerfile</text>
|
||||
<polygon fill="none" stroke="royalblue" points="1838,-909.31 1838,-1104.44 2080,-1104.44 2080,-909.31 1838,-909.31"/>
|
||||
<text text-anchor="middle" x="1959" y="-1087.14" font-family="Times,serif" font-size="14.00">docker/<distro>/Dockerfile</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>clusterLang</title>
|
||||
<polygon fill="none" stroke="royalblue" points="563,-116 563,-812.75 1072,-812.75 1072,-116 563,-116"/>
|
||||
<text text-anchor="middle" x="817.5" y="-797.55" font-family="Times,serif" font-size="14.00">docker/<distro>/<lang>.Dockerfile</text>
|
||||
<polygon fill="none" stroke="royalblue" points="729,-120.5 729,-874.06 1377,-874.06 1377,-120.5 729,-120.5"/>
|
||||
<text text-anchor="middle" x="1053" y="-856.76" font-family="Times,serif" font-size="14.00">docker/<distro>/<lang>.Dockerfile</text>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>clusterCache</title>
|
||||
<polygon fill="none" stroke="royalblue" points="8,-8 8,-83 1739,-83 1739,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="873.5" y="-67.8" font-family="Times,serif" font-size="14.00">cache/<distro>/</text>
|
||||
<polygon fill="none" stroke="royalblue" points="8,-8 8,-85.25 2161,-85.25 2161,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="1084.5" y="-67.95" font-family="Times,serif" font-size="14.00">cache/<distro>/</text>
|
||||
</g>
|
||||
<!-- DISTRO_IMG -->
|
||||
<g id="node1" class="node">
|
||||
<title>DISTRO_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M1568,-1100.98C1568,-1102.78 1546.49,-1104.25 1520,-1104.25 1493.51,-1104.25 1472,-1102.78 1472,-1100.98 1472,-1100.98 1472,-1071.52 1472,-1071.52 1472,-1069.72 1493.51,-1068.25 1520,-1068.25 1546.49,-1068.25 1568,-1069.72 1568,-1071.52 1568,-1071.52 1568,-1100.98 1568,-1100.98"/>
|
||||
<path fill="none" stroke="black" d="M1568,-1100.98C1568,-1099.17 1546.49,-1097.7 1520,-1097.7 1493.51,-1097.7 1472,-1099.17 1472,-1100.98"/>
|
||||
<text text-anchor="middle" x="1520" y="-1082.55" font-family="Times,serif" font-size="14.00"><distro>:latest</text>
|
||||
<path fill="royalblue" stroke="black" d="M1947.5,-1183.66C1947.5,-1185.47 1919.04,-1186.94 1884,-1186.94 1848.96,-1186.94 1820.5,-1185.47 1820.5,-1183.66 1820.5,-1183.66 1820.5,-1154.21 1820.5,-1154.21 1820.5,-1152.4 1848.96,-1150.94 1884,-1150.94 1919.04,-1150.94 1947.5,-1152.4 1947.5,-1154.21 1947.5,-1154.21 1947.5,-1183.66 1947.5,-1183.66"/>
|
||||
<path fill="none" stroke="black" d="M1947.5,-1183.66C1947.5,-1181.86 1919.04,-1180.39 1884,-1180.39 1848.96,-1180.39 1820.5,-1181.86 1820.5,-1183.66"/>
|
||||
<text text-anchor="middle" x="1884" y="-1164.26" font-family="Times,serif" font-size="14.00"><distro>:latest</text>
|
||||
</g>
|
||||
<!-- BASE_IMG -->
|
||||
<g id="node8" class="node">
|
||||
<title>BASE_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M1668,-990.6C1668,-993.24 1628.56,-995.38 1580,-995.38 1531.44,-995.38 1492,-993.24 1492,-990.6 1492,-990.6 1492,-947.65 1492,-947.65 1492,-945.01 1531.44,-942.87 1580,-942.87 1628.56,-942.87 1668,-945.01 1668,-947.65 1668,-947.65 1668,-990.6 1668,-990.6"/>
|
||||
<path fill="none" stroke="black" d="M1668,-990.6C1668,-987.97 1628.56,-985.83 1580,-985.83 1531.44,-985.83 1492,-987.97 1492,-990.6"/>
|
||||
<text text-anchor="middle" x="1580" y="-972.92" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_base</text>
|
||||
<text text-anchor="middle" x="1580" y="-957.92" font-family="Times,serif" font-size="14.00">base</text>
|
||||
<path fill="royalblue" stroke="black" d="M2072,-1065.88C2072,-1068.81 2021.35,-1071.19 1959,-1071.19 1896.65,-1071.19 1846,-1068.81 1846,-1065.88 1846,-1065.88 1846,-1018.06 1846,-1018.06 1846,-1015.13 1896.65,-1012.75 1959,-1012.75 2021.35,-1012.75 2072,-1015.13 2072,-1018.06 2072,-1018.06 2072,-1065.88 2072,-1065.88"/>
|
||||
<path fill="none" stroke="black" d="M2072,-1065.88C2072,-1062.94 2021.35,-1060.56 1959,-1060.56 1896.65,-1060.56 1846,-1062.94 1846,-1065.88"/>
|
||||
<text text-anchor="middle" x="1959" y="-1045.92" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_base</text>
|
||||
<text text-anchor="middle" x="1959" y="-1028.67" font-family="Times,serif" font-size="14.00">base</text>
|
||||
</g>
|
||||
<!-- DISTRO_IMG->BASE_IMG -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>DISTRO_IMG->BASE_IMG</title>
|
||||
<path fill="none" stroke="black" d="M1529.11,-1067.76C1537.85,-1051 1551.28,-1025.23 1562.15,-1004.37"/>
|
||||
<polygon fill="black" stroke="black" points="1565.27,-1005.96 1566.79,-995.48 1559.06,-1002.73 1565.27,-1005.96"/>
|
||||
<path fill="none" stroke="black" d="M1894.43,-1150.56C1905.21,-1132.6 1922.37,-1104 1936.29,-1080.8"/>
|
||||
<polygon fill="black" stroke="black" points="1939.11,-1082.91 1941.26,-1072.54 1933.11,-1079.31 1939.11,-1082.91"/>
|
||||
</g>
|
||||
<!-- PKG -->
|
||||
<g id="node2" class="node">
|
||||
<title>PKG</title>
|
||||
<polygon fill="royalblue" stroke="black" points="1693.5,-1105.25 1590.5,-1105.25 1586.5,-1101.25 1586.5,-1067.25 1689.5,-1067.25 1693.5,-1071.25 1693.5,-1105.25"/>
|
||||
<polyline fill="none" stroke="black" points="1689.5,-1101.25 1586.5,-1101.25 "/>
|
||||
<polyline fill="none" stroke="black" points="1689.5,-1101.25 1689.5,-1067.25 "/>
|
||||
<polyline fill="none" stroke="black" points="1689.5,-1101.25 1693.5,-1105.25 "/>
|
||||
<text text-anchor="middle" x="1640" y="-1090.05" font-family="Times,serif" font-size="14.00">Build packages</text>
|
||||
<text text-anchor="middle" x="1640" y="-1075.05" font-family="Times,serif" font-size="14.00">e.g. cmake, g++</text>
|
||||
<polygon fill="royalblue" stroke="black" points="2100.25,-1190.19 1969.75,-1190.19 1965.75,-1186.19 1965.75,-1147.69 2096.25,-1147.69 2100.25,-1151.69 2100.25,-1190.19"/>
|
||||
<polyline fill="none" stroke="black" points="2096.25,-1186.19 1965.75,-1186.19"/>
|
||||
<polyline fill="none" stroke="black" points="2096.25,-1186.19 2096.25,-1147.69"/>
|
||||
<polyline fill="none" stroke="black" points="2096.25,-1186.19 2100.25,-1190.19"/>
|
||||
<text text-anchor="middle" x="2033" y="-1172.89" font-family="Times,serif" font-size="14.00">Build packages</text>
|
||||
<text text-anchor="middle" x="2033" y="-1155.64" font-family="Times,serif" font-size="14.00">e.g. cmake, g++</text>
|
||||
</g>
|
||||
<!-- PKG->BASE_IMG -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>PKG->BASE_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1630.49,-1067.01C1621.78,-1050.29 1608.65,-1025.11 1597.97,-1004.6"/>
|
||||
<polygon fill="black" stroke="black" points="1600.98,-1002.81 1593.26,-995.56 1594.77,-1006.04 1600.98,-1002.81"/>
|
||||
<text text-anchor="middle" x="1637" y="-1038.05" font-family="Times,serif" font-size="14.00">install</text>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M2020.78,-1147.3C2010.17,-1129.39 1994.53,-1102.98 1981.65,-1081.21"/>
|
||||
<polygon fill="black" stroke="black" points="1984.82,-1079.71 1976.72,-1072.89 1978.8,-1083.28 1984.82,-1079.71"/>
|
||||
<text text-anchor="middle" x="2031.19" y="-1116.39" font-family="Times,serif" font-size="14.00">install</text>
|
||||
</g>
|
||||
<!-- PYPKG -->
|
||||
<g id="node3" class="node">
|
||||
<title>PYPKG</title>
|
||||
<polygon fill="gold" stroke="black" points="880,-898.88 776,-898.88 772,-894.88 772,-860.88 876,-860.88 880,-864.88 880,-898.88"/>
|
||||
<polyline fill="none" stroke="black" points="876,-894.88 772,-894.88 "/>
|
||||
<polyline fill="none" stroke="black" points="876,-894.88 876,-860.88 "/>
|
||||
<polyline fill="none" stroke="black" points="876,-894.88 880,-898.88 "/>
|
||||
<text text-anchor="middle" x="826" y="-883.67" font-family="Times,serif" font-size="14.00">Python packages</text>
|
||||
<text text-anchor="middle" x="826" y="-868.67" font-family="Times,serif" font-size="14.00">e.g. python-dev</text>
|
||||
<polygon fill="gold" stroke="black" points="1139.38,-967.78 1006.62,-967.78 1002.62,-963.78 1002.62,-925.28 1135.38,-925.28 1139.38,-929.28 1139.38,-967.78"/>
|
||||
<polyline fill="none" stroke="black" points="1135.38,-963.78 1002.62,-963.78"/>
|
||||
<polyline fill="none" stroke="black" points="1135.38,-963.78 1135.38,-925.28"/>
|
||||
<polyline fill="none" stroke="black" points="1135.38,-963.78 1139.38,-967.78"/>
|
||||
<text text-anchor="middle" x="1071" y="-950.48" font-family="Times,serif" font-size="14.00">Python packages</text>
|
||||
<text text-anchor="middle" x="1071" y="-933.23" font-family="Times,serif" font-size="14.00">e.g. python-dev</text>
|
||||
</g>
|
||||
<!-- LANGENV_IMG -->
|
||||
<g id="node10" class="node">
|
||||
<title>LANGENV_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M1054,-777.1C1054,-779.74 1005.14,-781.88 945,-781.88 884.86,-781.88 836,-779.74 836,-777.1 836,-777.1 836,-734.15 836,-734.15 836,-731.51 884.86,-729.37 945,-729.37 1005.14,-729.37 1054,-731.51 1054,-734.15 1054,-734.15 1054,-777.1 1054,-777.1"/>
|
||||
<path fill="none" stroke="black" d="M1054,-777.1C1054,-774.47 1005.14,-772.33 945,-772.33 884.86,-772.33 836,-774.47 836,-777.1"/>
|
||||
<text text-anchor="middle" x="945" y="-759.42" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_<lang>_env</text>
|
||||
<text text-anchor="middle" x="945" y="-744.42" font-family="Times,serif" font-size="14.00">env</text>
|
||||
<path fill="royalblue" stroke="black" d="M1356,-835.5C1356,-838.43 1293.25,-840.81 1216,-840.81 1138.75,-840.81 1076,-838.43 1076,-835.5 1076,-835.5 1076,-787.69 1076,-787.69 1076,-784.76 1138.75,-782.38 1216,-782.38 1293.25,-782.38 1356,-784.76 1356,-787.69 1356,-787.69 1356,-835.5 1356,-835.5"/>
|
||||
<path fill="none" stroke="black" d="M1356,-835.5C1356,-832.57 1293.25,-830.19 1216,-830.19 1138.75,-830.19 1076,-832.57 1076,-835.5"/>
|
||||
<text text-anchor="middle" x="1216" y="-815.54" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_<lang>_env</text>
|
||||
<text text-anchor="middle" x="1216" y="-798.29" font-family="Times,serif" font-size="14.00">env</text>
|
||||
</g>
|
||||
<!-- PYPKG->LANGENV_IMG -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>PYPKG->LANGENV_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M843.56,-860.84C861.88,-842.02 890.99,-812.11 913.33,-789.16"/>
|
||||
<polygon fill="black" stroke="black" points="915.86,-791.58 920.33,-781.97 910.85,-786.69 915.86,-791.58"/>
|
||||
<text text-anchor="middle" x="898" y="-824.55" font-family="Times,serif" font-size="14.00">install</text>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1093.34,-925.05C1115.42,-904.81 1149.67,-873.41 1176.37,-848.93"/>
|
||||
<polygon fill="black" stroke="black" points="1178.63,-851.6 1183.64,-842.27 1173.9,-846.44 1178.63,-851.6"/>
|
||||
<text text-anchor="middle" x="1161.28" y="-886.01" font-family="Times,serif" font-size="14.00">install</text>
|
||||
</g>
|
||||
<!-- JAVAPKG -->
|
||||
<g id="node4" class="node">
|
||||
<title>JAVAPKG</title>
|
||||
<polygon fill="crimson" stroke="black" points="992,-898.88 902,-898.88 898,-894.88 898,-860.88 988,-860.88 992,-864.88 992,-898.88"/>
|
||||
<polyline fill="none" stroke="black" points="988,-894.88 898,-894.88 "/>
|
||||
<polyline fill="none" stroke="black" points="988,-894.88 988,-860.88 "/>
|
||||
<polyline fill="none" stroke="black" points="988,-894.88 992,-898.88 "/>
|
||||
<text text-anchor="middle" x="945" y="-883.67" font-family="Times,serif" font-size="14.00">Java packages</text>
|
||||
<text text-anchor="middle" x="945" y="-868.67" font-family="Times,serif" font-size="14.00">e.g. openjdk</text>
|
||||
<polygon fill="crimson" stroke="black" points="1274.25,-967.78 1161.75,-967.78 1157.75,-963.78 1157.75,-925.28 1270.25,-925.28 1274.25,-929.28 1274.25,-967.78"/>
|
||||
<polyline fill="none" stroke="black" points="1270.25,-963.78 1157.75,-963.78"/>
|
||||
<polyline fill="none" stroke="black" points="1270.25,-963.78 1270.25,-925.28"/>
|
||||
<polyline fill="none" stroke="black" points="1270.25,-963.78 1274.25,-967.78"/>
|
||||
<text text-anchor="middle" x="1216" y="-950.48" font-family="Times,serif" font-size="14.00">Java packages</text>
|
||||
<text text-anchor="middle" x="1216" y="-933.23" font-family="Times,serif" font-size="14.00">e.g. openjdk</text>
|
||||
</g>
|
||||
<!-- JAVAPKG->LANGENV_IMG -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>JAVAPKG->LANGENV_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M945,-860.84C945,-842.83 945,-814.68 945,-792.18"/>
|
||||
<polygon fill="black" stroke="black" points="948.5,-791.97 945,-781.97 941.5,-791.97 948.5,-791.97"/>
|
||||
<text text-anchor="middle" x="962" y="-824.55" font-family="Times,serif" font-size="14.00">install</text>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1216,-925.05C1216,-905.77 1216,-876.37 1216,-852.47"/>
|
||||
<polygon fill="black" stroke="black" points="1219.5,-852.76 1216,-842.76 1212.5,-852.76 1219.5,-852.76"/>
|
||||
<text text-anchor="middle" x="1238.12" y="-886.01" font-family="Times,serif" font-size="14.00">install</text>
|
||||
</g>
|
||||
<!-- DOTNETPKG -->
|
||||
<g id="node5" class="node">
|
||||
<title>DOTNETPKG</title>
|
||||
<polygon fill="forestgreen" stroke="black" points="1103.5,-898.88 1014.5,-898.88 1010.5,-894.88 1010.5,-860.88 1099.5,-860.88 1103.5,-864.88 1103.5,-898.88"/>
|
||||
<polyline fill="none" stroke="black" points="1099.5,-894.88 1010.5,-894.88 "/>
|
||||
<polyline fill="none" stroke="black" points="1099.5,-894.88 1099.5,-860.88 "/>
|
||||
<polyline fill="none" stroke="black" points="1099.5,-894.88 1103.5,-898.88 "/>
|
||||
<text text-anchor="middle" x="1057" y="-883.67" font-family="Times,serif" font-size="14.00">.Net packages</text>
|
||||
<text text-anchor="middle" x="1057" y="-868.67" font-family="Times,serif" font-size="14.00">e.g. dotnet-cli</text>
|
||||
<polygon fill="forestgreen" stroke="black" points="1409.62,-967.78 1296.38,-967.78 1292.38,-963.78 1292.38,-925.28 1405.62,-925.28 1409.62,-929.28 1409.62,-967.78"/>
|
||||
<polyline fill="none" stroke="black" points="1405.62,-963.78 1292.38,-963.78"/>
|
||||
<polyline fill="none" stroke="black" points="1405.62,-963.78 1405.62,-925.28"/>
|
||||
<polyline fill="none" stroke="black" points="1405.62,-963.78 1409.62,-967.78"/>
|
||||
<text text-anchor="middle" x="1351" y="-950.48" font-family="Times,serif" font-size="14.00">.Net packages</text>
|
||||
<text text-anchor="middle" x="1351" y="-933.23" font-family="Times,serif" font-size="14.00">e.g. dotnet-cli</text>
|
||||
</g>
|
||||
<!-- DOTNETPKG->LANGENV_IMG -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>DOTNETPKG->LANGENV_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1040.47,-860.84C1023.31,-842.1 996.07,-812.37 975.08,-789.45"/>
|
||||
<polygon fill="black" stroke="black" points="977.56,-786.98 968.22,-781.97 972.39,-791.71 977.56,-786.98"/>
|
||||
<text text-anchor="middle" x="1031" y="-824.55" font-family="Times,serif" font-size="14.00">install</text>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1330.2,-925.05C1309.74,-904.9 1278.03,-873.68 1253.22,-849.24"/>
|
||||
<polygon fill="black" stroke="black" points="1255.75,-846.83 1246.17,-842.3 1250.84,-851.81 1255.75,-846.83"/>
|
||||
<text text-anchor="middle" x="1325.61" y="-886.01" font-family="Times,serif" font-size="14.00">install</text>
|
||||
</g>
|
||||
<!-- SRC -->
|
||||
<g id="node6" class="node">
|
||||
<title>SRC</title>
|
||||
<polygon fill="royalblue" stroke="black" points="554.5,-773.62 551.5,-777.62 530.5,-777.62 527.5,-773.62 495.5,-773.62 495.5,-737.62 554.5,-737.62 554.5,-773.62"/>
|
||||
<text text-anchor="middle" x="525" y="-751.92" font-family="Times,serif" font-size="14.00">git repo</text>
|
||||
<polygon fill="royalblue" stroke="black" points="721.12,-829.59 718.12,-833.59 697.12,-833.59 694.12,-829.59 648.88,-829.59 648.88,-793.59 721.12,-793.59 721.12,-829.59"/>
|
||||
<text text-anchor="middle" x="685" y="-806.92" font-family="Times,serif" font-size="14.00">git repo</text>
|
||||
</g>
|
||||
<!-- LANGDEVEL_IMG -->
|
||||
<g id="node11" class="node">
|
||||
<title>LANGDEVEL_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M852.5,-673.85C852.5,-676.49 801.63,-678.63 739,-678.63 676.37,-678.63 625.5,-676.49 625.5,-673.85 625.5,-673.85 625.5,-630.9 625.5,-630.9 625.5,-628.26 676.37,-626.12 739,-626.12 801.63,-626.12 852.5,-628.26 852.5,-630.9 852.5,-630.9 852.5,-673.85 852.5,-673.85"/>
|
||||
<path fill="none" stroke="black" d="M852.5,-673.85C852.5,-671.22 801.63,-669.08 739,-669.08 676.37,-669.08 625.5,-671.22 625.5,-673.85"/>
|
||||
<text text-anchor="middle" x="739" y="-656.17" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_<lang>_devel</text>
|
||||
<text text-anchor="middle" x="739" y="-641.17" font-family="Times,serif" font-size="14.00">devel</text>
|
||||
<path fill="royalblue" stroke="black" d="M1107.38,-723.81C1107.38,-726.74 1041.77,-729.12 961,-729.12 880.23,-729.12 814.62,-726.74 814.62,-723.81 814.62,-723.81 814.62,-676 814.62,-676 814.62,-673.07 880.23,-670.69 961,-670.69 1041.77,-670.69 1107.38,-673.07 1107.38,-676 1107.38,-676 1107.38,-723.81 1107.38,-723.81"/>
|
||||
<path fill="none" stroke="black" d="M1107.38,-723.81C1107.38,-720.88 1041.77,-718.5 961,-718.5 880.23,-718.5 814.62,-720.88 814.62,-723.81"/>
|
||||
<text text-anchor="middle" x="961" y="-703.86" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_<lang>_devel</text>
|
||||
<text text-anchor="middle" x="961" y="-686.61" font-family="Times,serif" font-size="14.00">devel</text>
|
||||
</g>
|
||||
<!-- SRC->LANGDEVEL_IMG -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>SRC->LANGDEVEL_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M546.43,-737.61C550.49,-734.73 554.79,-731.9 559,-729.5 590.79,-711.37 627.74,-695.01 659.86,-682.14"/>
|
||||
<polygon fill="black" stroke="black" points="661.22,-685.37 669.23,-678.43 658.64,-678.86 661.22,-685.37"/>
|
||||
<text text-anchor="middle" x="634.5" y="-700.3" font-family="Times,serif" font-size="14.00">copy</text>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M707.14,-793.32C712.77,-789.39 718.95,-785.47 725,-782.38 763.96,-762.42 808.91,-745.53 849.06,-732.39"/>
|
||||
<polygon fill="black" stroke="black" points="850.09,-735.74 858.53,-729.34 847.94,-729.07 850.09,-735.74"/>
|
||||
<text text-anchor="middle" x="816.83" y="-751.08" font-family="Times,serif" font-size="14.00">copy</text>
|
||||
</g>
|
||||
<!-- SAMPLE -->
|
||||
<g id="node7" class="node">
|
||||
<title>SAMPLE</title>
|
||||
<polygon fill="royalblue" stroke="black" points="1138,-477.88 1135,-481.88 1114,-481.88 1111,-477.88 1082,-477.88 1082,-441.88 1138,-441.88 1138,-477.88"/>
|
||||
<text text-anchor="middle" x="1110" y="-456.18" font-family="Times,serif" font-size="14.00">sample</text>
|
||||
<polygon fill="royalblue" stroke="black" points="1453.5,-510.78 1450.5,-514.78 1429.5,-514.78 1426.5,-510.78 1386.5,-510.78 1386.5,-474.78 1453.5,-474.78 1453.5,-510.78"/>
|
||||
<text text-anchor="middle" x="1420" y="-488.11" font-family="Times,serif" font-size="14.00">sample</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLDEVEL_IMG -->
|
||||
<g id="node15" class="node">
|
||||
<title>LANGINSTALLDEVEL_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M966.5,-378.1C966.5,-380.74 906.66,-382.88 833,-382.88 759.34,-382.88 699.5,-380.74 699.5,-378.1 699.5,-378.1 699.5,-335.15 699.5,-335.15 699.5,-332.51 759.34,-330.37 833,-330.37 906.66,-330.37 966.5,-332.51 966.5,-335.15 966.5,-335.15 966.5,-378.1 966.5,-378.1"/>
|
||||
<path fill="none" stroke="black" d="M966.5,-378.1C966.5,-375.47 906.66,-373.33 833,-373.33 759.34,-373.33 699.5,-375.47 699.5,-378.1"/>
|
||||
<text text-anchor="middle" x="833" y="-360.43" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_<lang>_install_devel</text>
|
||||
<text text-anchor="middle" x="833" y="-345.43" font-family="Times,serif" font-size="14.00">install_devel</text>
|
||||
<path fill="royalblue" stroke="black" d="M1211.88,-405C1211.88,-407.93 1134.84,-410.31 1040,-410.31 945.16,-410.31 868.12,-407.93 868.12,-405 868.12,-405 868.12,-357.19 868.12,-357.19 868.12,-354.26 945.16,-351.88 1040,-351.88 1134.84,-351.88 1211.88,-354.26 1211.88,-357.19 1211.88,-357.19 1211.88,-405 1211.88,-405"/>
|
||||
<path fill="none" stroke="black" d="M1211.88,-405C1211.88,-402.07 1134.84,-399.69 1040,-399.69 945.16,-399.69 868.12,-402.07 868.12,-405"/>
|
||||
<text text-anchor="middle" x="1040" y="-385.04" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_<lang>_install_devel</text>
|
||||
<text text-anchor="middle" x="1040" y="-367.79" font-family="Times,serif" font-size="14.00">install_devel</text>
|
||||
</g>
|
||||
<!-- SAMPLE->LANGINSTALLDEVEL_IMG -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>SAMPLE->LANGINSTALLDEVEL_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1089.12,-441.78C1084.93,-438.84 1080.45,-436.01 1076,-433.75 1035.41,-413.13 988.16,-396.78 946.17,-384.61"/>
|
||||
<polygon fill="black" stroke="black" points="947.03,-381.21 936.45,-381.84 945.11,-387.94 947.03,-381.21"/>
|
||||
<text text-anchor="middle" x="1044.5" y="-404.55" font-family="Times,serif" font-size="14.00">copy</text>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1399.07,-474.36C1393.47,-470.34 1387.23,-466.42 1381,-463.56 1330.41,-440.34 1272.45,-423.31 1218.84,-411.01"/>
|
||||
<polygon fill="black" stroke="black" points="1219.83,-407.65 1209.31,-408.87 1218.3,-414.48 1219.83,-407.65"/>
|
||||
<text text-anchor="middle" x="1353.54" y="-432.26" font-family="Times,serif" font-size="14.00">copy</text>
|
||||
</g>
|
||||
<!-- SWIG_IMG -->
|
||||
<g id="node9" class="node">
|
||||
<title>SWIG_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M1668.5,-901.35C1668.5,-903.99 1628.83,-906.13 1580,-906.13 1531.17,-906.13 1491.5,-903.99 1491.5,-901.35 1491.5,-901.35 1491.5,-858.4 1491.5,-858.4 1491.5,-855.76 1531.17,-853.62 1580,-853.62 1628.83,-853.62 1668.5,-855.76 1668.5,-858.4 1668.5,-858.4 1668.5,-901.35 1668.5,-901.35"/>
|
||||
<path fill="none" stroke="black" d="M1668.5,-901.35C1668.5,-898.72 1628.83,-896.58 1580,-896.58 1531.17,-896.58 1491.5,-898.72 1491.5,-901.35"/>
|
||||
<text text-anchor="middle" x="1580" y="-883.67" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_swig</text>
|
||||
<text text-anchor="middle" x="1580" y="-868.67" font-family="Times,serif" font-size="14.00">swig</text>
|
||||
<path fill="royalblue" stroke="black" d="M2072,-970.44C2072,-973.37 2021.35,-975.75 1959,-975.75 1896.65,-975.75 1846,-973.37 1846,-970.44 1846,-970.44 1846,-922.62 1846,-922.62 1846,-919.69 1896.65,-917.31 1959,-917.31 2021.35,-917.31 2072,-919.69 2072,-922.62 2072,-922.62 2072,-970.44 2072,-970.44"/>
|
||||
<path fill="none" stroke="black" d="M2072,-970.44C2072,-967.51 2021.35,-965.12 1959,-965.12 1896.65,-965.12 1846,-967.51 1846,-970.44"/>
|
||||
<text text-anchor="middle" x="1959" y="-950.48" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_swig</text>
|
||||
<text text-anchor="middle" x="1959" y="-933.23" font-family="Times,serif" font-size="14.00">swig</text>
|
||||
</g>
|
||||
<!-- BASE_IMG->SWIG_IMG -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>BASE_IMG->SWIG_IMG</title>
|
||||
<path fill="none" stroke="black" d="M1580,-942.89C1580,-934.57 1580,-925.16 1580,-916.22"/>
|
||||
<polygon fill="black" stroke="black" points="1583.5,-916.05 1580,-906.05 1576.5,-916.05 1583.5,-916.05"/>
|
||||
<path fill="none" stroke="black" d="M1959,-1012.43C1959,-1004.62 1959,-996.01 1959,-987.69"/>
|
||||
<polygon fill="black" stroke="black" points="1962.5,-987.73 1959,-977.73 1955.5,-987.73 1962.5,-987.73"/>
|
||||
</g>
|
||||
<!-- BASE_TAR -->
|
||||
<g id="node18" class="node">
|
||||
<title>BASE_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="1725,-52 1629,-52 1629,-16 1731,-16 1731,-46 1725,-52"/>
|
||||
<polyline fill="none" stroke="black" points="1725,-52 1725,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="1731,-46 1725,-46 "/>
|
||||
<text text-anchor="middle" x="1680" y="-30.3" font-family="Times,serif" font-size="14.00">docker_base.tar</text>
|
||||
<polygon fill="royalblue" stroke="black" points="2146.62,-52 2023.38,-52 2023.38,-16 2152.62,-16 2152.62,-46 2146.62,-52"/>
|
||||
<polyline fill="none" stroke="black" points="2146.62,-52 2146.62,-46"/>
|
||||
<polyline fill="none" stroke="black" points="2152.62,-46 2146.62,-46"/>
|
||||
<text text-anchor="middle" x="2088" y="-29.32" font-family="Times,serif" font-size="14.00">docker_base.tar</text>
|
||||
</g>
|
||||
<!-- BASE_IMG->BASE_TAR -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>BASE_IMG->BASE_TAR</title>
|
||||
<path fill="none" stroke="red" d="M1668.02,-956.4C1710.76,-945.23 1753,-923.43 1753,-880.88 1753,-880.88 1753,-880.88 1753,-149.12 1753,-113.78 1727.84,-80.6 1707.07,-59.23"/>
|
||||
<polygon fill="red" stroke="red" points="1709.51,-56.73 1699.95,-52.18 1704.59,-61.7 1709.51,-56.73"/>
|
||||
<text text-anchor="middle" x="1824.5" y="-507.8" font-family="Times,serif" font-size="14.00">make save_<distro>_base</text>
|
||||
<path fill="none" stroke="red" d="M2072.38,-1032.41C2124.53,-1021.61 2175,-998.09 2175,-947.53 2175,-947.53 2175,-947.53 2175,-156.72 2175,-117.45 2144.66,-82.11 2119.81,-59.76"/>
|
||||
<polygon fill="red" stroke="red" points="2122.31,-57.29 2112.46,-53.4 2117.73,-62.59 2122.31,-57.29"/>
|
||||
<text text-anchor="middle" x="2268.75" y="-543.95" font-family="Times,serif" font-size="14.00">make save_<distro>_base</text>
|
||||
</g>
|
||||
<!-- SWIG_IMG->LANGENV_IMG -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>SWIG_IMG->LANGENV_IMG</title>
|
||||
<path fill="none" stroke="black" d="M1491.37,-861.81C1379.96,-840.36 1188.32,-803.47 1064.16,-779.57"/>
|
||||
<polygon fill="black" stroke="black" points="1064.71,-776.11 1054.23,-777.65 1063.39,-782.98 1064.71,-776.11"/>
|
||||
<path fill="none" stroke="black" d="M1845.75,-925.27C1717.87,-902.39 1509.17,-865.05 1367.39,-839.68"/>
|
||||
<polygon fill="black" stroke="black" points="1368.39,-836.3 1357.93,-837.99 1367.16,-843.2 1368.39,-836.3"/>
|
||||
</g>
|
||||
<!-- SWIG_TAR -->
|
||||
<g id="node19" class="node">
|
||||
<title>SWIG_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="1605,-52 1507,-52 1507,-16 1611,-16 1611,-46 1605,-52"/>
|
||||
<polyline fill="none" stroke="black" points="1605,-52 1605,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="1611,-46 1605,-46 "/>
|
||||
<text text-anchor="middle" x="1559" y="-30.3" font-family="Times,serif" font-size="14.00">docker_swig.tar</text>
|
||||
<polygon fill="royalblue" stroke="black" points="1999.62,-52 1876.38,-52 1876.38,-16 2005.62,-16 2005.62,-46 1999.62,-52"/>
|
||||
<polyline fill="none" stroke="black" points="1999.62,-52 1999.62,-46"/>
|
||||
<polyline fill="none" stroke="black" points="2005.62,-46 1999.62,-46"/>
|
||||
<text text-anchor="middle" x="1941" y="-29.32" font-family="Times,serif" font-size="14.00">docker_swig.tar</text>
|
||||
</g>
|
||||
<!-- SWIG_IMG->SWIG_TAR -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>SWIG_IMG->SWIG_TAR</title>
|
||||
<path fill="none" stroke="red" d="M1580,-853.59C1580,-828.87 1580,-790.16 1580,-756.62 1580,-756.62 1580,-756.62 1580,-149.12 1580,-118.9 1572.79,-84.91 1566.82,-61.94"/>
|
||||
<polygon fill="red" stroke="red" points="1570.18,-60.96 1564.19,-52.22 1563.42,-62.79 1570.18,-60.96"/>
|
||||
<text text-anchor="middle" x="1652.5" y="-456.18" font-family="Times,serif" font-size="14.00">make save_<distro>_swig</text>
|
||||
<path fill="none" stroke="red" d="M1959,-917.01C1959,-890.09 1959,-848.6 1959,-812.59 1959,-812.59 1959,-812.59 1959,-156.72 1959,-124.41 1952.72,-87.79 1947.57,-63.23"/>
|
||||
<polygon fill="red" stroke="red" points="1951.05,-62.72 1945.5,-53.69 1944.21,-64.21 1951.05,-62.72"/>
|
||||
<text text-anchor="middle" x="2052.75" y="-488.11" font-family="Times,serif" font-size="14.00">make save_<distro>_swig</text>
|
||||
</g>
|
||||
<!-- LANGENV_IMG->LANGDEVEL_IMG -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>LANGENV_IMG->LANGDEVEL_IMG</title>
|
||||
<path fill="none" stroke="black" d="M893.81,-729.47C865.2,-715.4 829.37,-697.79 799.38,-683.05"/>
|
||||
<polygon fill="black" stroke="black" points="800.8,-679.85 790.28,-678.58 797.71,-686.13 800.8,-679.85"/>
|
||||
<path fill="none" stroke="black" d="M1149.33,-781.92C1115.22,-767.24 1073.52,-749.3 1038.03,-734.04"/>
|
||||
<polygon fill="black" stroke="black" points="1039.68,-730.94 1029.11,-730.2 1036.91,-737.37 1039.68,-730.94"/>
|
||||
</g>
|
||||
<!-- LANGINSTALLENV_IMG -->
|
||||
<g id="node14" class="node">
|
||||
<title>LANGINSTALLENV_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M1063.5,-481.35C1063.5,-483.99 1005.9,-486.13 935,-486.13 864.1,-486.13 806.5,-483.99 806.5,-481.35 806.5,-481.35 806.5,-438.4 806.5,-438.4 806.5,-435.76 864.1,-433.62 935,-433.62 1005.9,-433.62 1063.5,-435.76 1063.5,-438.4 1063.5,-438.4 1063.5,-481.35 1063.5,-481.35"/>
|
||||
<path fill="none" stroke="black" d="M1063.5,-481.35C1063.5,-478.72 1005.9,-476.58 935,-476.58 864.1,-476.58 806.5,-478.72 806.5,-481.35"/>
|
||||
<text text-anchor="middle" x="935" y="-463.68" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_<lang>_install_env</text>
|
||||
<text text-anchor="middle" x="935" y="-448.68" font-family="Times,serif" font-size="14.00">install_env</text>
|
||||
<path fill="royalblue" stroke="black" d="M1368.5,-516.69C1368.5,-519.62 1294.32,-522 1203,-522 1111.68,-522 1037.5,-519.62 1037.5,-516.69 1037.5,-516.69 1037.5,-468.88 1037.5,-468.88 1037.5,-465.94 1111.68,-463.56 1203,-463.56 1294.32,-463.56 1368.5,-465.94 1368.5,-468.88 1368.5,-468.88 1368.5,-516.69 1368.5,-516.69"/>
|
||||
<path fill="none" stroke="black" d="M1368.5,-516.69C1368.5,-513.76 1294.32,-511.38 1203,-511.38 1111.68,-511.38 1037.5,-513.76 1037.5,-516.69"/>
|
||||
<text text-anchor="middle" x="1203" y="-496.73" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_<lang>_install_env</text>
|
||||
<text text-anchor="middle" x="1203" y="-479.48" font-family="Times,serif" font-size="14.00">install_env</text>
|
||||
</g>
|
||||
<!-- LANGENV_IMG->LANGINSTALLENV_IMG -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>LANGENV_IMG->LANGINSTALLENV_IMG</title>
|
||||
<path fill="none" stroke="black" d="M944.14,-729.33C942.36,-676.94 938.26,-556.49 936.21,-496.37"/>
|
||||
<polygon fill="black" stroke="black" points="939.7,-496.09 935.86,-486.22 932.71,-496.33 939.7,-496.09"/>
|
||||
<path fill="none" stroke="black" d="M1214.82,-781.92C1212.49,-725.14 1207.29,-598.28 1204.63,-533.5"/>
|
||||
<polygon fill="black" stroke="black" points="1208.13,-533.52 1204.23,-523.67 1201.14,-533.81 1208.13,-533.52"/>
|
||||
</g>
|
||||
<!-- LANGENV_TAR -->
|
||||
<g id="node20" class="node">
|
||||
<title>LANGENV_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="1482.5,-52 1345.5,-52 1345.5,-16 1488.5,-16 1488.5,-46 1482.5,-52"/>
|
||||
<polyline fill="none" stroke="black" points="1482.5,-52 1482.5,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="1488.5,-46 1482.5,-46 "/>
|
||||
<text text-anchor="middle" x="1417" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_env.tar</text>
|
||||
<polygon fill="royalblue" stroke="black" points="1852.5,-52 1677.5,-52 1677.5,-16 1858.5,-16 1858.5,-46 1852.5,-52"/>
|
||||
<polyline fill="none" stroke="black" points="1852.5,-52 1852.5,-46"/>
|
||||
<polyline fill="none" stroke="black" points="1858.5,-46 1852.5,-46"/>
|
||||
<text text-anchor="middle" x="1768" y="-29.32" font-family="Times,serif" font-size="14.00">docker_<lang>_env.tar</text>
|
||||
</g>
|
||||
<!-- LANGENV_IMG->LANGENV_TAR -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>LANGENV_IMG->LANGENV_TAR</title>
|
||||
<path fill="none" stroke="red" d="M1054.21,-750.65C1183.06,-742.91 1380,-720.16 1380,-653.38 1380,-653.38 1380,-653.38 1380,-458.88 1380,-433.04 1379.51,-426.54 1381,-400.75 1388.32,-273.92 1406.03,-123.13 1413.54,-62.37"/>
|
||||
<polygon fill="red" stroke="red" points="1417.06,-62.46 1414.82,-52.1 1410.11,-61.59 1417.06,-62.46"/>
|
||||
<text text-anchor="middle" x="1473.5" y="-404.55" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_env</text>
|
||||
<path fill="none" stroke="red" d="M1356.25,-805.94C1499.8,-797.24 1702,-772.32 1702,-700.91 1702,-700.91 1702,-700.91 1702,-491.78 1702,-463.57 1697.01,-455.77 1703.5,-428.31 1714.17,-383.16 1736.36,-378.79 1748,-333.88 1773.05,-237.2 1771.77,-117.38 1769.57,-63.54"/>
|
||||
<polygon fill="red" stroke="red" points="1773.07,-63.55 1769.12,-53.72 1766.08,-63.87 1773.07,-63.55"/>
|
||||
<text text-anchor="middle" x="1824.25" y="-432.26" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_env</text>
|
||||
</g>
|
||||
<!-- LANGBUILD_IMG -->
|
||||
<g id="node12" class="node">
|
||||
<title>LANGBUILD_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M903,-584.6C903,-587.24 852.35,-589.38 790,-589.38 727.65,-589.38 677,-587.24 677,-584.6 677,-584.6 677,-541.65 677,-541.65 677,-539.01 727.65,-536.87 790,-536.87 852.35,-536.87 903,-539.01 903,-541.65 903,-541.65 903,-584.6 903,-584.6"/>
|
||||
<path fill="none" stroke="black" d="M903,-584.6C903,-581.97 852.35,-579.83 790,-579.83 727.65,-579.83 677,-581.97 677,-584.6"/>
|
||||
<text text-anchor="middle" x="790" y="-566.92" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_<lang>_build</text>
|
||||
<text text-anchor="middle" x="790" y="-551.92" font-family="Times,serif" font-size="14.00">build</text>
|
||||
<path fill="royalblue" stroke="black" d="M1149.25,-628.38C1149.25,-631.31 1084.15,-633.69 1004,-633.69 923.85,-633.69 858.75,-631.31 858.75,-628.38 858.75,-628.38 858.75,-580.56 858.75,-580.56 858.75,-577.63 923.85,-575.25 1004,-575.25 1084.15,-575.25 1149.25,-577.63 1149.25,-580.56 1149.25,-580.56 1149.25,-628.38 1149.25,-628.38"/>
|
||||
<path fill="none" stroke="black" d="M1149.25,-628.38C1149.25,-625.44 1084.15,-623.06 1004,-623.06 923.85,-623.06 858.75,-625.44 858.75,-628.38"/>
|
||||
<text text-anchor="middle" x="1004" y="-608.42" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_<lang>_build</text>
|
||||
<text text-anchor="middle" x="1004" y="-591.17" font-family="Times,serif" font-size="14.00">build</text>
|
||||
</g>
|
||||
<!-- LANGDEVEL_IMG->LANGBUILD_IMG -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>LANGDEVEL_IMG->LANGBUILD_IMG</title>
|
||||
<path fill="none" stroke="black" d="M753.75,-626.14C758.88,-617.37 764.72,-607.38 770.19,-598.02"/>
|
||||
<polygon fill="black" stroke="black" points="773.26,-599.7 775.28,-589.3 767.21,-596.17 773.26,-599.7"/>
|
||||
<path fill="none" stroke="black" d="M974.14,-670.36C977.89,-662.2 982.05,-653.16 986.05,-644.48"/>
|
||||
<polygon fill="black" stroke="black" points="989.16,-646.08 990.16,-635.53 982.8,-643.15 989.16,-646.08"/>
|
||||
</g>
|
||||
<!-- LANGDEVEL_TAR -->
|
||||
<g id="node21" class="node">
|
||||
<title>LANGDEVEL_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="164,-52 16,-52 16,-16 170,-16 170,-46 164,-52"/>
|
||||
<polyline fill="none" stroke="black" points="164,-52 164,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="170,-46 164,-46 "/>
|
||||
<text text-anchor="middle" x="93" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_devel.tar</text>
|
||||
<polygon fill="royalblue" stroke="black" points="206,-52 16,-52 16,-16 212,-16 212,-46 206,-52"/>
|
||||
<polyline fill="none" stroke="black" points="206,-52 206,-46"/>
|
||||
<polyline fill="none" stroke="black" points="212,-46 206,-46"/>
|
||||
<text text-anchor="middle" x="114" y="-29.32" font-family="Times,serif" font-size="14.00">docker_<lang>_devel.tar</text>
|
||||
</g>
|
||||
<!-- LANGDEVEL_IMG->LANGDEVEL_TAR -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>LANGDEVEL_IMG->LANGDEVEL_TAR</title>
|
||||
<path fill="none" stroke="red" d="M625.43,-648.67C426.75,-642.42 37,-622.69 37,-564.12 37,-564.12 37,-564.12 37,-149.12 37,-116 56.25,-82.49 72.17,-60.43"/>
|
||||
<polygon fill="red" stroke="red" points="75.09,-62.38 78.29,-52.28 69.49,-58.18 75.09,-62.38"/>
|
||||
<text text-anchor="middle" x="134.5" y="-352.93" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_devel</text>
|
||||
<path fill="none" stroke="red" d="M814.21,-698.73C554.46,-696.45 41,-682.23 41,-605.47 41,-605.47 41,-605.47 41,-156.72 41,-119.36 66.61,-83.55 87.49,-60.57"/>
|
||||
<polygon fill="red" stroke="red" points="89.84,-63.18 94.16,-53.51 84.75,-58.37 89.84,-63.18"/>
|
||||
<text text-anchor="middle" x="168.12" y="-376.42" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_devel</text>
|
||||
</g>
|
||||
<!-- LANGTEST_IMG -->
|
||||
<g id="node13" class="node">
|
||||
<title>LANGTEST_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M788.5,-481.35C788.5,-483.99 739.87,-486.13 680,-486.13 620.13,-486.13 571.5,-483.99 571.5,-481.35 571.5,-481.35 571.5,-438.4 571.5,-438.4 571.5,-435.76 620.13,-433.62 680,-433.62 739.87,-433.62 788.5,-435.76 788.5,-438.4 788.5,-438.4 788.5,-481.35 788.5,-481.35"/>
|
||||
<path fill="none" stroke="black" d="M788.5,-481.35C788.5,-478.72 739.87,-476.58 680,-476.58 620.13,-476.58 571.5,-478.72 571.5,-481.35"/>
|
||||
<text text-anchor="middle" x="680" y="-463.68" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_<lang>_test</text>
|
||||
<text text-anchor="middle" x="680" y="-448.68" font-family="Times,serif" font-size="14.00">test</text>
|
||||
<path fill="royalblue" stroke="black" d="M1019.12,-516.69C1019.12,-519.62 955.87,-522 878,-522 800.13,-522 736.88,-519.62 736.88,-516.69 736.88,-516.69 736.88,-468.88 736.88,-468.88 736.88,-465.94 800.13,-463.56 878,-463.56 955.87,-463.56 1019.12,-465.94 1019.12,-468.88 1019.12,-468.88 1019.12,-516.69 1019.12,-516.69"/>
|
||||
<path fill="none" stroke="black" d="M1019.12,-516.69C1019.12,-513.76 955.87,-511.38 878,-511.38 800.13,-511.38 736.88,-513.76 736.88,-516.69"/>
|
||||
<text text-anchor="middle" x="878" y="-496.73" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_<lang>_test</text>
|
||||
<text text-anchor="middle" x="878" y="-479.48" font-family="Times,serif" font-size="14.00">test</text>
|
||||
</g>
|
||||
<!-- LANGBUILD_IMG->LANGTEST_IMG -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>LANGBUILD_IMG->LANGTEST_IMG</title>
|
||||
<path fill="none" stroke="black" d="M762.53,-536.84C748.22,-523.67 730.57,-507.42 715.26,-493.33"/>
|
||||
<polygon fill="black" stroke="black" points="717.23,-490.39 707.5,-486.19 712.49,-495.54 717.23,-490.39"/>
|
||||
<path fill="none" stroke="black" d="M971.22,-574.94C955.33,-561.1 936.07,-544.33 919.19,-529.64"/>
|
||||
<polygon fill="black" stroke="black" points="921.59,-527.09 911.75,-523.16 917,-532.37 921.59,-527.09"/>
|
||||
</g>
|
||||
<!-- LANGBUILD_IMG->LANGINSTALLENV_IMG -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>LANGBUILD_IMG->LANGINSTALLENV_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M824.93,-536.72C839.15,-526.46 855.8,-514.57 871,-504 876.69,-500.04 882.69,-495.92 888.65,-491.87"/>
|
||||
<polygon fill="black" stroke="black" points="891,-494.51 897.31,-486 887.07,-488.72 891,-494.51"/>
|
||||
<text text-anchor="middle" x="903" y="-507.8" font-family="Times,serif" font-size="14.00">copy install</text>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1056.02,-574.79C1082.08,-560.43 1113.8,-542.95 1141.1,-527.9"/>
|
||||
<polygon fill="black" stroke="black" points="1142.54,-531.1 1149.61,-523.21 1139.16,-524.97 1142.54,-531.1"/>
|
||||
<text text-anchor="middle" x="1156.29" y="-543.95" font-family="Times,serif" font-size="14.00">copy install</text>
|
||||
</g>
|
||||
<!-- LANGBUILD_TAR -->
|
||||
<g id="node22" class="node">
|
||||
<title>LANGBUILD_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="1321,-52 1175,-52 1175,-16 1327,-16 1327,-46 1321,-52"/>
|
||||
<polyline fill="none" stroke="black" points="1321,-52 1321,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="1327,-46 1321,-46 "/>
|
||||
<text text-anchor="middle" x="1251" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_build.tar</text>
|
||||
<polygon fill="royalblue" stroke="black" points="1653.88,-52 1466.12,-52 1466.12,-16 1659.88,-16 1659.88,-46 1653.88,-52"/>
|
||||
<polyline fill="none" stroke="black" points="1653.88,-52 1653.88,-46"/>
|
||||
<polyline fill="none" stroke="black" points="1659.88,-46 1653.88,-46"/>
|
||||
<text text-anchor="middle" x="1563" y="-29.32" font-family="Times,serif" font-size="14.00">docker_<lang>_build.tar</text>
|
||||
</g>
|
||||
<!-- LANGBUILD_IMG->LANGBUILD_TAR -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>LANGBUILD_IMG->LANGBUILD_TAR</title>
|
||||
<path fill="none" stroke="red" d="M903.09,-551.05C994.18,-539.83 1112.54,-519.3 1147,-486 1209.09,-426 1137.76,-363.02 1194,-297.5 1207.49,-281.78 1225.03,-296.41 1237,-279.5 1283.79,-213.37 1268.69,-110.25 1257.9,-61.83"/>
|
||||
<polygon fill="red" stroke="red" points="1261.31,-61.03 1255.63,-52.09 1254.5,-62.62 1261.31,-61.03"/>
|
||||
<text text-anchor="middle" x="1290.5" y="-301.3" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_build</text>
|
||||
<path fill="none" stroke="red" d="M1149.52,-595.67C1267.15,-586.21 1420.01,-565.7 1463,-522 1527.83,-456.1 1436.35,-387.25 1496,-316.62 1512.05,-297.62 1533.98,-318.46 1549,-298.62 1602.01,-228.63 1583.52,-115.76 1570.86,-63.38"/>
|
||||
<polygon fill="red" stroke="red" points="1574.27,-62.59 1568.41,-53.76 1567.48,-64.32 1574.27,-62.59"/>
|
||||
<text text-anchor="middle" x="1622" y="-320.57" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_build</text>
|
||||
</g>
|
||||
<!-- LANGTEST_TAR -->
|
||||
<g id="node23" class="node">
|
||||
<title>LANGTEST_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="325.5,-52 188.5,-52 188.5,-16 331.5,-16 331.5,-46 325.5,-52"/>
|
||||
<polyline fill="none" stroke="black" points="325.5,-52 325.5,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="331.5,-46 325.5,-46 "/>
|
||||
<text text-anchor="middle" x="260" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_test.tar</text>
|
||||
<polygon fill="royalblue" stroke="black" points="409.75,-52 230.25,-52 230.25,-16 415.75,-16 415.75,-46 409.75,-52"/>
|
||||
<polyline fill="none" stroke="black" points="409.75,-52 409.75,-46"/>
|
||||
<polyline fill="none" stroke="black" points="415.75,-46 409.75,-46"/>
|
||||
<text text-anchor="middle" x="323" y="-29.32" font-family="Times,serif" font-size="14.00">docker_<lang>_test.tar</text>
|
||||
</g>
|
||||
<!-- LANGTEST_IMG->LANGTEST_TAR -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>LANGTEST_IMG->LANGTEST_TAR</title>
|
||||
<path fill="none" stroke="red" d="M571.29,-453.97C446.85,-445.32 260,-421.66 260,-357.62 260,-357.62 260,-357.62 260,-149.12 260,-119.36 260,-85.24 260,-62.11"/>
|
||||
<polygon fill="red" stroke="red" points="263.5,-62.01 260,-52.01 256.5,-62.02 263.5,-62.01"/>
|
||||
<text text-anchor="middle" x="352" y="-249.68" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_test</text>
|
||||
<path fill="none" stroke="red" d="M736.51,-491.35C572.08,-486.92 323,-466.32 323,-382.09 323,-382.09 323,-382.09 323,-156.72 323,-124.9 323,-88.41 323,-63.74"/>
|
||||
<polygon fill="red" stroke="red" points="326.5,-63.85 323,-53.85 319.5,-63.85 326.5,-63.85"/>
|
||||
<text text-anchor="middle" x="444.88" y="-264.73" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_test</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLENV_IMG->LANGINSTALLDEVEL_IMG -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>LANGINSTALLENV_IMG->LANGINSTALLDEVEL_IMG</title>
|
||||
<path fill="none" stroke="black" d="M909.52,-433.59C896.26,-420.42 879.89,-404.17 865.7,-390.08"/>
|
||||
<polygon fill="black" stroke="black" points="868.07,-387.5 858.5,-382.94 863.14,-392.47 868.07,-387.5"/>
|
||||
<path fill="none" stroke="black" d="M1160.6,-463.25C1139.55,-449.09 1113.95,-431.85 1091.75,-416.92"/>
|
||||
<polygon fill="black" stroke="black" points="1093.98,-414.2 1083.73,-411.52 1090.07,-420.01 1093.98,-414.2"/>
|
||||
</g>
|
||||
<!-- LANGINSTALLENV_TAR -->
|
||||
<g id="node24" class="node">
|
||||
<title>LANGINSTALLENV_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="1150.5,-52 973.5,-52 973.5,-16 1156.5,-16 1156.5,-46 1150.5,-52"/>
|
||||
<polyline fill="none" stroke="black" points="1150.5,-52 1150.5,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="1156.5,-46 1150.5,-46 "/>
|
||||
<text text-anchor="middle" x="1065" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_install_env.tar</text>
|
||||
<polygon fill="royalblue" stroke="black" points="1442,-52 1216,-52 1216,-16 1448,-16 1448,-46 1442,-52"/>
|
||||
<polyline fill="none" stroke="black" points="1442,-52 1442,-46"/>
|
||||
<polyline fill="none" stroke="black" points="1448,-46 1442,-46"/>
|
||||
<text text-anchor="middle" x="1332" y="-29.32" font-family="Times,serif" font-size="14.00">docker_<lang>_install_env.tar</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLENV_IMG->LANGINSTALLENV_TAR -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>LANGINSTALLENV_IMG->LANGINSTALLENV_TAR</title>
|
||||
<path fill="none" stroke="red" d="M950.82,-433.61C959.29,-419.16 969.32,-400.45 976,-382.75 1001.04,-316.38 976.99,-288.95 1012,-227.25 1028.13,-198.82 1051.14,-205.86 1065,-176.25 1082.13,-139.66 1077.21,-91.66 1071.53,-62.09"/>
|
||||
<polygon fill="red" stroke="red" points="1074.91,-61.16 1069.44,-52.09 1068.06,-62.59 1074.91,-61.16"/>
|
||||
<text text-anchor="middle" x="1124.5" y="-249.68" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_install_env</text>
|
||||
<path fill="none" stroke="red" d="M1209.41,-463.14C1212.89,-447.54 1217.23,-427.87 1221,-410.31 1237.22,-334.8 1212.27,-303.51 1256.5,-240.19 1282.14,-203.49 1319,-225.35 1342,-186.94 1364.84,-148.8 1353.36,-95.2 1342.79,-62.91"/>
|
||||
<polygon fill="red" stroke="red" points="1346.23,-62.17 1339.64,-53.87 1339.62,-64.46 1346.23,-62.17"/>
|
||||
<text text-anchor="middle" x="1402.75" y="-264.73" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_install_env</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLBUILD_IMG -->
|
||||
<g id="node16" class="node">
|
||||
<title>LANGINSTALLBUILD_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M962,-274.85C962,-277.49 902.39,-279.63 829,-279.63 755.61,-279.63 696,-277.49 696,-274.85 696,-274.85 696,-231.9 696,-231.9 696,-229.26 755.61,-227.12 829,-227.12 902.39,-227.12 962,-229.26 962,-231.9 962,-231.9 962,-274.85 962,-274.85"/>
|
||||
<path fill="none" stroke="black" d="M962,-274.85C962,-272.22 902.39,-270.08 829,-270.08 755.61,-270.08 696,-272.22 696,-274.85"/>
|
||||
<text text-anchor="middle" x="829" y="-257.18" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_<lang>_install_build</text>
|
||||
<text text-anchor="middle" x="829" y="-242.18" font-family="Times,serif" font-size="14.00">install_build</text>
|
||||
<path fill="royalblue" stroke="black" d="M1205.75,-293.31C1205.75,-296.24 1129.22,-298.62 1035,-298.62 940.78,-298.62 864.25,-296.24 864.25,-293.31 864.25,-293.31 864.25,-245.5 864.25,-245.5 864.25,-242.57 940.78,-240.19 1035,-240.19 1129.22,-240.19 1205.75,-242.57 1205.75,-245.5 1205.75,-245.5 1205.75,-293.31 1205.75,-293.31"/>
|
||||
<path fill="none" stroke="black" d="M1205.75,-293.31C1205.75,-290.38 1129.22,-288 1035,-288 940.78,-288 864.25,-290.38 864.25,-293.31"/>
|
||||
<text text-anchor="middle" x="1035" y="-273.36" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_<lang>_install_build</text>
|
||||
<text text-anchor="middle" x="1035" y="-256.11" font-family="Times,serif" font-size="14.00">install_build</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLDEVEL_IMG->LANGINSTALLBUILD_IMG -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>LANGINSTALLDEVEL_IMG->LANGINSTALLBUILD_IMG</title>
|
||||
<path fill="none" stroke="black" d="M832,-330.34C831.52,-318.13 830.93,-303.29 830.41,-289.97"/>
|
||||
<polygon fill="black" stroke="black" points="833.89,-289.55 830,-279.69 826.9,-289.82 833.89,-289.55"/>
|
||||
<path fill="none" stroke="black" d="M1038.7,-351.56C1038.12,-338.87 1037.43,-323.71 1036.8,-309.94"/>
|
||||
<polygon fill="black" stroke="black" points="1040.31,-310.14 1036.36,-300.31 1033.32,-310.46 1040.31,-310.14"/>
|
||||
</g>
|
||||
<!-- LANGINSTALLDEVEL_TAR -->
|
||||
<g id="node25" class="node">
|
||||
<title>LANGINSTALLDEVEL_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="538,-52 350,-52 350,-16 544,-16 544,-46 538,-52"/>
|
||||
<polyline fill="none" stroke="black" points="538,-52 538,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="544,-46 538,-46 "/>
|
||||
<text text-anchor="middle" x="447" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_install_devel.tar</text>
|
||||
<polygon fill="royalblue" stroke="black" points="674.5,-52 433.5,-52 433.5,-16 680.5,-16 680.5,-46 674.5,-52"/>
|
||||
<polyline fill="none" stroke="black" points="674.5,-52 674.5,-46"/>
|
||||
<polyline fill="none" stroke="black" points="680.5,-46 674.5,-46"/>
|
||||
<text text-anchor="middle" x="557" y="-29.32" font-family="Times,serif" font-size="14.00">docker_<lang>_install_devel.tar</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLDEVEL_IMG->LANGINSTALLDEVEL_TAR -->
|
||||
<g id="edge25" class="edge">
|
||||
<title>LANGINSTALLDEVEL_IMG->LANGINSTALLDEVEL_TAR</title>
|
||||
<path fill="none" stroke="red" d="M699.49,-340.39C615.23,-323.24 512.05,-286.77 456,-209.25 424.58,-165.79 432.31,-99.12 440.07,-62.11"/>
|
||||
<polygon fill="red" stroke="red" points="443.55,-62.6 442.33,-52.07 436.72,-61.06 443.55,-62.6"/>
|
||||
<text text-anchor="middle" x="573.5" y="-198.05" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_install_devel</text>
|
||||
<path fill="none" stroke="red" d="M867.82,-367.71C765.65,-350.74 642.77,-311.59 572.75,-222.19 536.86,-176.37 543.36,-103.46 550.58,-63.5"/>
|
||||
<polygon fill="red" stroke="red" points="553.97,-64.43 552.46,-53.94 547.1,-63.08 553.97,-64.43"/>
|
||||
<text text-anchor="middle" x="725.38" y="-208.89" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_install_devel</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLTEST_IMG -->
|
||||
<g id="node17" class="node">
|
||||
<title>LANGINSTALLTEST_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M1055.5,-171.6C1055.5,-174.24 997.9,-176.38 927,-176.38 856.1,-176.38 798.5,-174.24 798.5,-171.6 798.5,-171.6 798.5,-128.65 798.5,-128.65 798.5,-126.01 856.1,-123.87 927,-123.87 997.9,-123.87 1055.5,-126.01 1055.5,-128.65 1055.5,-128.65 1055.5,-171.6 1055.5,-171.6"/>
|
||||
<path fill="none" stroke="black" d="M1055.5,-171.6C1055.5,-168.97 997.9,-166.83 927,-166.83 856.1,-166.83 798.5,-168.97 798.5,-171.6"/>
|
||||
<text text-anchor="middle" x="927" y="-153.93" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_<lang>_install_test</text>
|
||||
<text text-anchor="middle" x="927" y="-138.93" font-family="Times,serif" font-size="14.00">install_test</text>
|
||||
<path fill="royalblue" stroke="black" d="M1332.62,-181.62C1332.62,-184.56 1257.94,-186.94 1166,-186.94 1074.06,-186.94 999.38,-184.56 999.38,-181.62 999.38,-181.62 999.38,-133.81 999.38,-133.81 999.38,-130.88 1074.06,-128.5 1166,-128.5 1257.94,-128.5 1332.62,-130.88 1332.62,-133.81 1332.62,-133.81 1332.62,-181.62 1332.62,-181.62"/>
|
||||
<path fill="none" stroke="black" d="M1332.62,-181.62C1332.62,-178.69 1257.94,-176.31 1166,-176.31 1074.06,-176.31 999.38,-178.69 999.38,-181.62"/>
|
||||
<text text-anchor="middle" x="1166" y="-161.67" font-family="Times,serif" font-size="14.00">ortools/cmake:<distro>_<lang>_install_test</text>
|
||||
<text text-anchor="middle" x="1166" y="-144.42" font-family="Times,serif" font-size="14.00">install_test</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLBUILD_IMG->LANGINSTALLTEST_IMG -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>LANGINSTALLBUILD_IMG->LANGINSTALLTEST_IMG</title>
|
||||
<path fill="none" stroke="black" d="M853.48,-227.09C866.11,-214.04 881.66,-197.97 895.21,-183.97"/>
|
||||
<polygon fill="black" stroke="black" points="898.06,-186.06 902.5,-176.44 893.03,-181.19 898.06,-186.06"/>
|
||||
<path fill="none" stroke="black" d="M1069.08,-239.87C1085.75,-225.91 1106,-208.96 1123.66,-194.17"/>
|
||||
<polygon fill="black" stroke="black" points="1125.51,-197.18 1130.93,-188.08 1121.02,-191.82 1125.51,-197.18"/>
|
||||
</g>
|
||||
<!-- LANGINSTALLBUILD_TAR -->
|
||||
<g id="node26" class="node">
|
||||
<title>LANGINSTALLBUILD_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="748,-52 562,-52 562,-16 754,-16 754,-46 748,-52"/>
|
||||
<polyline fill="none" stroke="black" points="748,-52 748,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="754,-46 748,-46 "/>
|
||||
<text text-anchor="middle" x="658" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_install_build.tar</text>
|
||||
<polygon fill="royalblue" stroke="black" points="937.38,-52 698.62,-52 698.62,-16 943.38,-16 943.38,-46 937.38,-52"/>
|
||||
<polyline fill="none" stroke="black" points="937.38,-52 937.38,-46"/>
|
||||
<polyline fill="none" stroke="black" points="943.38,-46 937.38,-46"/>
|
||||
<text text-anchor="middle" x="821" y="-29.32" font-family="Times,serif" font-size="14.00">docker_<lang>_install_build.tar</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLBUILD_IMG->LANGINSTALLBUILD_TAR -->
|
||||
<g id="edge26" class="edge">
|
||||
<title>LANGINSTALLBUILD_IMG->LANGINSTALLBUILD_TAR</title>
|
||||
<path fill="none" stroke="red" d="M779.94,-227.16C755.09,-215.41 724.09,-202.28 695,-194.25 665.19,-186.02 577.41,-199.49 557,-176.25 539.33,-156.13 545.41,-140.14 557,-116 569.05,-90.89 593.1,-71.11 614.71,-57.38"/>
|
||||
<polygon fill="red" stroke="red" points="616.74,-60.24 623.47,-52.05 613.11,-54.26 616.74,-60.24"/>
|
||||
<text text-anchor="middle" x="673.5" y="-146.43" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_install_build</text>
|
||||
<path fill="none" stroke="red" d="M977.55,-239.74C949.43,-226.97 914.66,-213.02 882,-204.94 839.76,-194.48 716.32,-219.09 687,-186.94 667.1,-165.12 672.81,-146.39 687,-120.5 702.95,-91.4 733.48,-70.78 761.37,-57.09"/>
|
||||
<polygon fill="red" stroke="red" points="762.55,-60.4 770.12,-52.99 759.58,-54.06 762.55,-60.4"/>
|
||||
<text text-anchor="middle" x="838.5" y="-153.04" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_install_build</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLTEST_TAR -->
|
||||
<g id="node27" class="node">
|
||||
<title>LANGINSTALLTEST_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="949.5,-52 772.5,-52 772.5,-16 955.5,-16 955.5,-46 949.5,-52"/>
|
||||
<polyline fill="none" stroke="black" points="949.5,-52 949.5,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="955.5,-46 949.5,-46 "/>
|
||||
<text text-anchor="middle" x="864" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_install_test.tar</text>
|
||||
<polygon fill="royalblue" stroke="black" points="1192.25,-52 961.75,-52 961.75,-16 1198.25,-16 1198.25,-46 1192.25,-52"/>
|
||||
<polyline fill="none" stroke="black" points="1192.25,-52 1192.25,-46"/>
|
||||
<polyline fill="none" stroke="black" points="1198.25,-46 1192.25,-46"/>
|
||||
<text text-anchor="middle" x="1080" y="-29.32" font-family="Times,serif" font-size="14.00">docker_<lang>_install_test.tar</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLTEST_IMG->LANGINSTALLTEST_TAR -->
|
||||
<g id="edge27" class="edge">
|
||||
<title>LANGINSTALLTEST_IMG->LANGINSTALLTEST_TAR</title>
|
||||
<path fill="none" stroke="red" d="M862.41,-123.85C855.91,-118.87 850.18,-112.97 846,-106 837.86,-92.45 841.87,-75.32 848.15,-61.28"/>
|
||||
<polygon fill="red" stroke="red" points="851.38,-62.64 852.74,-52.13 845.13,-59.5 851.38,-62.64"/>
|
||||
<text text-anchor="middle" x="958" y="-94.8" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_install_test</text>
|
||||
<path fill="none" stroke="red" d="M1069.37,-128.26C1062.76,-123.26 1056.89,-117.4 1052.25,-110.5 1042.27,-95.67 1049.2,-76.81 1058.63,-61.64"/>
|
||||
<polygon fill="red" stroke="red" points="1061.42,-63.76 1064.18,-53.54 1055.64,-59.81 1061.42,-63.76"/>
|
||||
<text text-anchor="middle" x="1199.62" y="-97.2" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_install_test</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
191
examples/contrib/permutation_flow_shop.py
Normal file
191
examples/contrib/permutation_flow_shop.py
Normal file
@@ -0,0 +1,191 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright 2010-2025 Google LLC
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
"""This model implements the permutation flow shop problem (PFSP).
|
||||
|
||||
In the PFSP, a set of jobs has to be processed on a set of machines. Each job
|
||||
must be processed on each machine in sequence and all jobs have to be processed
|
||||
in the same order on every machine. The objective is to minimize the makespan.
|
||||
"""
|
||||
|
||||
from typing import Sequence
|
||||
from dataclasses import dataclass
|
||||
from itertools import product
|
||||
|
||||
import numpy as np
|
||||
|
||||
from absl import app
|
||||
from absl import flags
|
||||
from google.protobuf import text_format
|
||||
from ortools.sat.python import cp_model
|
||||
|
||||
_PARAMS = flags.DEFINE_string(
|
||||
"params",
|
||||
"num_search_workers:16",
|
||||
"Sat solver parameters.",
|
||||
)
|
||||
|
||||
_TIME_LIMIT = flags.DEFINE_float(
|
||||
"time_limit",
|
||||
60.0,
|
||||
"Time limit in seconds. Default is 60s.",
|
||||
)
|
||||
|
||||
_LOG = flags.DEFINE_boolean(
|
||||
"log",
|
||||
False,
|
||||
"Whether to log the solver output.",
|
||||
)
|
||||
|
||||
|
||||
@dataclass
|
||||
class TaskType:
|
||||
"""
|
||||
Small wrapper to hold the start, end, and interval variables of a task.
|
||||
"""
|
||||
|
||||
start: cp_model.IntVar
|
||||
end: cp_model.IntVar
|
||||
interval: cp_model.IntervalVar
|
||||
|
||||
|
||||
def permutation_flow_shop(
|
||||
processing_times: np.ndarray,
|
||||
time_limit: float,
|
||||
log: bool,
|
||||
params: str
|
||||
):
|
||||
"""
|
||||
Solves the given permutation flow shop problem instance with OR-Tools.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
processing_times
|
||||
An n-by-m matrix of processing times of the jobs on the machines.
|
||||
time_limit
|
||||
The time limit in seconds. If not set, the solver runs until an
|
||||
optimal solution is found.
|
||||
log
|
||||
Whether to log the solver output. Default is False.
|
||||
|
||||
Raises
|
||||
------
|
||||
ValueError
|
||||
If the number of lines is greater than 1, i.e., the instance is a
|
||||
distributed permutation flow shop problem.
|
||||
"""
|
||||
m = cp_model.CpModel()
|
||||
num_jobs, num_machines = processing_times.shape
|
||||
horizon = processing_times.sum()
|
||||
|
||||
# Create interval variables for all tasks (each job/machine pair).
|
||||
tasks = {}
|
||||
for job, machine in product(range(num_jobs), range(num_machines)):
|
||||
start = m.new_int_var(0, horizon, "")
|
||||
end = m.new_int_var(0, horizon, "")
|
||||
duration = processing_times[job][machine]
|
||||
interval = m.new_interval_var(start, duration, end, "")
|
||||
tasks[job, machine] = TaskType(start, end, interval)
|
||||
|
||||
# No overlap for all job intervals on this machine.
|
||||
for machine in range(num_machines):
|
||||
intervals = [tasks[job, machine].interval for job in range(num_jobs)]
|
||||
m.add_no_overlap(intervals)
|
||||
|
||||
# Add precedence constraints between tasks of the same job.
|
||||
for job, machine in product(range(num_jobs), range(num_machines - 1)):
|
||||
pred = tasks[job, machine]
|
||||
succ = tasks[job, machine + 1]
|
||||
m.add(pred.end <= succ.start)
|
||||
|
||||
# Create arcs for circuit constraints.
|
||||
arcs = []
|
||||
for idx1 in range(num_jobs):
|
||||
arcs.append((0, idx1 + 1, m.new_bool_var("start")))
|
||||
arcs.append((idx1 + 1, 0, m.new_bool_var("end")))
|
||||
|
||||
lits = {}
|
||||
for idx1, idx2 in product(range(num_jobs), repeat=2):
|
||||
if idx1 != idx2:
|
||||
lit = m.new_bool_var(f"{idx1} -> {idx2}")
|
||||
lits[idx1, idx2] = lit
|
||||
arcs.append((idx1 + 1, idx2 + 1, lit))
|
||||
|
||||
m.add_circuit(arcs)
|
||||
|
||||
# Enforce that the permutation of jobs is the same on all machines.
|
||||
for machine in range(num_machines):
|
||||
starts = [tasks[job, machine].start for job in range(num_jobs)]
|
||||
ends = [tasks[job, machine].end for job in range(num_jobs)]
|
||||
|
||||
for idx1, idx2 in product(range(num_jobs), repeat=2):
|
||||
if idx1 == idx2:
|
||||
continue
|
||||
|
||||
# Since all machines share the same arc literals, if the literal
|
||||
# i -> j is True, this enforces that job i is always scheduled
|
||||
# before job j on all machines.
|
||||
lit = lits[idx1, idx2]
|
||||
m.add(ends[idx1] <= starts[idx2]).only_enforce_if(lit)
|
||||
|
||||
# Set minimizing makespan as objective.
|
||||
obj_var = m.new_int_var(0, horizon, "makespan")
|
||||
completion_times = [
|
||||
tasks[(job, num_machines - 1)].end for job in range(num_jobs)
|
||||
]
|
||||
m.add_max_equality(obj_var, completion_times)
|
||||
m.minimize(obj_var)
|
||||
|
||||
solver = cp_model.CpSolver()
|
||||
if params:
|
||||
text_format.Parse(params, solver.parameters)
|
||||
solver.parameters.log_search_progress = log
|
||||
solver.parameters.max_time_in_seconds = time_limit
|
||||
|
||||
status_code = solver.Solve(m)
|
||||
status = solver.StatusName(status_code)
|
||||
|
||||
print(f"Status: {status}")
|
||||
print(f"Makespan: {solver.ObjectiveValue()}")
|
||||
|
||||
if status in ["OPTIMAL", "FEASIBLE"]:
|
||||
start = [solver.Value(tasks[job, 0].start) for job in range(num_jobs)]
|
||||
solution = np.argsort(start) + 1
|
||||
print(f"Solution: {solution}")
|
||||
|
||||
|
||||
def main(argv: Sequence[str]) -> None:
|
||||
"""Creates the data and calls the solving procedure."""
|
||||
# VRF_10_5_2 instance from http://soa.iti.es/problem-instances.
|
||||
# Optimal makespan is 698.
|
||||
processing_times = [
|
||||
[79, 67, 10, 48, 52],
|
||||
[40, 40, 57, 21, 54],
|
||||
[48, 93, 49, 11, 79],
|
||||
[16, 23, 19, 2, 38],
|
||||
[38, 90, 57, 73, 3],
|
||||
[76, 13, 99, 98, 55],
|
||||
[73, 85, 40, 20, 85],
|
||||
[34, 6, 27, 53, 21],
|
||||
[38, 6, 35, 28, 44],
|
||||
[32, 11, 11, 34, 27],
|
||||
]
|
||||
|
||||
permutation_flow_shop(
|
||||
np.array(processing_times), _TIME_LIMIT.value, _LOG.value, _PARAMS.value
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.run(main)
|
||||
@@ -3,7 +3,7 @@
|
||||
The following examples showcase how to use OrTools.<br>
|
||||
The project solution has examples for C#.
|
||||
|
||||
We recommend that all projects you create target `net6.0`,
|
||||
We recommend that all projects you create target `net8.0`,
|
||||
as this allows you to compile for various frameworks and
|
||||
keep up-to-date with the latest frameworks.
|
||||
|
||||
|
||||
@@ -76,6 +76,129 @@ Flow algorithms:
|
||||
supplies/demands at nodes, based on the Goldberg-Tarjan push-relabel
|
||||
algorithm.
|
||||
|
||||
## Class design
|
||||
|
||||
`BaseGraph` is a generic graph interface on which most algorithms can be built
|
||||
and provides efficient implementations with a fast construction time. Its design
|
||||
is based on the experience acquired in various graph algorithm implementations.
|
||||
|
||||
The main ideas are:
|
||||
|
||||
- Graph nodes and arcs are represented by integers.
|
||||
|
||||
- Node or arc annotations (weight, cost, ...) are not part of the graph class,
|
||||
they can be stored outside in one or more arrays and can be easily retrieved
|
||||
using a node or arc as an index.
|
||||
|
||||
### Terminology
|
||||
|
||||
An *arc* (or *forward arc*) of a graph is directed and going from a *tail node*
|
||||
to a *head node*.
|
||||
|
||||
```mermaid
|
||||
graph TD;
|
||||
tail -->|arc| head;
|
||||
```
|
||||
|
||||
Node and arc indices are of type `NodeIndexType` and `ArcIndexType`
|
||||
respectively. Those default to `int32_t`, which allows representing most
|
||||
practical graphs, but applications that have smaller graphs can improve memory
|
||||
usage and locality by parameterizing the graph type (e.g. `BaseGraph<int16_t,
|
||||
int16_t>` allows representing graphs with up to 65k nodes and arcs).
|
||||
|
||||
A node or arc index is *valid* if it represents a node or arc of the graph. The
|
||||
validity ranges are always `[0, num_nodes())` for nodes and `[0, num_arcs())`
|
||||
for forward arcs. For example, the following graph has 4 nodes numbered 0
|
||||
through 3 and 5 forward arcs numbered 0 through 4:
|
||||
|
||||
```mermaid
|
||||
graph TD;
|
||||
0-->|0| 1;
|
||||
2-->|1| 1;
|
||||
0-->|2| 2;
|
||||
3-->|3| 3;
|
||||
1-->|4| 2;
|
||||
```
|
||||
|
||||
Some graph implementations also store *reverse arcs* and can be used for
|
||||
undirected graphs or flow-like algorithms. Reverse arcs are elements of
|
||||
`[-num_arcs(), 0)` and are also considered valid by the implementations that
|
||||
store them. In the following diagram, reverse arcs are represented with dashed
|
||||
lines. A reverse arc is created for each forward arc (the forward and
|
||||
reverse arc in this pair are called *opposite* of each other). This possibly
|
||||
results in multiarcs:
|
||||
|
||||
```mermaid
|
||||
graph TD;
|
||||
0-->|0| 1;
|
||||
1-.->|-1| 0;
|
||||
2-->|1| 1;
|
||||
1-.->|-2| 2;
|
||||
0-->|2| 2;
|
||||
2-.->|-3| 0;
|
||||
3-->|3| 3;
|
||||
3-.->|-4| 3;
|
||||
1-->|4| 2;
|
||||
2-.->|-5| 1;
|
||||
```
|
||||
|
||||
#### Graph traversal
|
||||
|
||||
- The *outgoing arcs* of a node `v` are the forward arcs whose tail is `v`.
|
||||
- The *incoming arcs* of `v` are the forward arcs whose head is `v`.
|
||||
- The *opposite incoming* arcs of `v` are the opposite arcs of the incoming
|
||||
arcs for `v`.
|
||||
|
||||
Forward graph classes allow iteration on outgoing arcs using accessor
|
||||
`OutgoingArcs()`. Graph classes with both forward and reverse arcs additionally
|
||||
provide `IncomingArcs` and `OppositeIncomingArcs()`, that return iterators for
|
||||
the two other categories. They also provide `OutgoingOrOppositeIncomingArcs()`,
|
||||
which allows iterating both outgoing and opposite incoming arcs at the same
|
||||
time, which corresponds to iterating forward and reverse arcs *leaving* the
|
||||
node.
|
||||
|
||||
`v` | `OutgoingArcs(v)` | `IncomingArcs(v)` | `OppositeIncomingArcs(v)` | `OutgoingOrOppositeIncoming(v)`
|
||||
--- | ----------------- | ----------------- | ------------------------- | -------------------------------
|
||||
0 | {0,2} | {} | {} | {0,2}
|
||||
1 | {4} | {0,1} | {-2,-1} | {-2,-1,4}
|
||||
2 | {1} | {2,4} | {-5,-3} | {-5,-3,1}
|
||||
3 | {3} | {3} | {-4} | {-4,3}
|
||||
|
||||
### Graph implementations
|
||||
|
||||
- `ListGraph<>`: Simplest API. Iterating outgoing arcs requires `2 + degree`
|
||||
memory loads.
|
||||
|
||||
- `StaticGraph<>`: More memory and speed efficient than `ListGraph<>`, but
|
||||
requires calling `Build()` once after adding all nodes and arcs. Iterating
|
||||
outgoing arcs requires only `2` memory loads.
|
||||
|
||||
- `ReverseArcListGraph<>` adds reverse arcs to `ListGraph<>`. Iterating
|
||||
neighboring arcs for a node requires `O(degree)` memory loads.
|
||||
|
||||
- `ReverseArcStaticGraph<>` adds reverse arcs to `StaticGraph<>`. Iterating
|
||||
neighboring arcs for a node requires `O(1)` memory loads.
|
||||
|
||||
- `CompleteGraph<>`: If you need a fully connected graph. O(1) memory usage
|
||||
and much faster than explicitly storing nodes and arcs using
|
||||
`StaticGraph<>`.
|
||||
|
||||
- `CompleteBipartiteGraph<>`: If you need a fully connected bipartite graph.
|
||||
O(1) memory usage and much faster than explicitly storing nodes and arcs
|
||||
using `StaticGraph<>`.
|
||||
|
||||
- `FlowGraph<>`: A graph specialized for max-flow/min-cost-flow algorithms.
|
||||
For max-flow or min-cost-flow we need a directed graph where each arc from
|
||||
tail to head has a reverse arc from head to tail. In practice many input
|
||||
graphs already have such reverse arc and it can make a big difference just
|
||||
to reuse them. This is similar to `ReverseArcStaticGraph` but handles
|
||||
reverse arcs in a different way. Instead of always creating a *new* reverse
|
||||
arc for each arc of the input graph, this detects if a reverse arc is
|
||||
already present in the input, and does not create a new one when this is the
|
||||
case. In the best case, this can gain a factor 2 in the final graph size,
|
||||
note however that the graph construction is slightly slower because of this
|
||||
detection.
|
||||
|
||||
## Wrappers
|
||||
|
||||
* [`python`](python): the SWIG code that makes the wrapper available in Python
|
||||
|
||||
@@ -352,9 +352,9 @@ void AddSourceAndSink(const typename Graph::NodeIndex num_tails,
|
||||
}
|
||||
|
||||
template <typename Graph>
|
||||
void GenerateCompleteGraph(const typename Graph::NodeIndex num_tails,
|
||||
const typename Graph::NodeIndex num_heads,
|
||||
Graph* graph) {
|
||||
void GenerateCompleteGraphWithSourceAndSink(
|
||||
const typename Graph::NodeIndex num_tails,
|
||||
const typename Graph::NodeIndex num_heads, Graph* graph) {
|
||||
const typename Graph::NodeIndex num_nodes = num_tails + num_heads + 2;
|
||||
const typename Graph::ArcIndex num_arcs =
|
||||
num_tails * num_heads + num_tails + num_heads;
|
||||
@@ -470,7 +470,7 @@ void FullAssignment(std::optional<FlowQuantity> unused,
|
||||
typename Graph::NodeIndex num_tails,
|
||||
typename Graph::NodeIndex num_heads) {
|
||||
Graph graph;
|
||||
GenerateCompleteGraph(num_tails, num_heads, &graph);
|
||||
GenerateCompleteGraphWithSourceAndSink(num_tails, num_heads, &graph);
|
||||
graph.Build();
|
||||
std::vector<int64_t> arc_capacity(graph.num_arcs(), 1);
|
||||
std::unique_ptr<GenericMaxFlow<Graph>> max_flow(new GenericMaxFlow<Graph>(
|
||||
@@ -590,7 +590,7 @@ void FullRandomFlow(std::optional<FlowQuantity> expected_flow,
|
||||
const FlowQuantity kCapacityRange = 10000;
|
||||
const FlowQuantity kCapacityDelta = 1000;
|
||||
Graph graph;
|
||||
GenerateCompleteGraph(num_tails, num_heads, &graph);
|
||||
GenerateCompleteGraphWithSourceAndSink(num_tails, num_heads, &graph);
|
||||
std::vector<int64_t> arc_capacity(graph.num_arcs());
|
||||
GenerateRandomArcValuations(random, graph, kCapacityRange, &arc_capacity);
|
||||
|
||||
|
||||
119
ortools/graph/graph_generator.h
Normal file
119
ortools/graph/graph_generator.h
Normal file
@@ -0,0 +1,119 @@
|
||||
// Copyright 2010-2025 Google LLC
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#ifndef UTIL_GRAPH_GRAPH_GENERATOR_H_
|
||||
#define UTIL_GRAPH_GRAPH_GENERATOR_H_
|
||||
|
||||
// Generates a complete undirected graph with `num_nodes` nodes.
|
||||
//
|
||||
// A complete graph is a graph in which all pairs of distinct nodes are
|
||||
// connected by an edge.
|
||||
// The graph is represented using the provided `Graph` template.
|
||||
// If the chosen graph type requires a call to `Build()`, the user is expected
|
||||
// to perform this call, possibly after tweaking the graph.
|
||||
//
|
||||
// Consider using `CompleteGraph` (util/graph/graph.h) instead of this function
|
||||
// in production code, as it uses constant memory to store the graph. Instead,
|
||||
// this function explicitly creates the graph using the template type, which is
|
||||
// mostly useful for tests or when you have to tweak the graph after creation
|
||||
// (i.e. a complete graph is just the core of your final graph).
|
||||
//
|
||||
// Args:
|
||||
// num_nodes: The number of nodes in the graph.
|
||||
//
|
||||
// Returns:
|
||||
// A complete undirected graph.
|
||||
template <typename Graph>
|
||||
Graph GenerateCompleteUndirectedGraph(
|
||||
const typename Graph::NodeIndex num_nodes) {
|
||||
Graph graph;
|
||||
graph.Reserve(num_nodes, num_nodes * (num_nodes - 1));
|
||||
graph.AddNode(num_nodes - 1); // Only for degenerate cases with no arcs.
|
||||
for (typename Graph::NodeIndex src = 0; src < num_nodes; ++src) {
|
||||
for (typename Graph::NodeIndex dst = src + 1; dst < num_nodes; ++dst) {
|
||||
graph.AddArc(src, dst);
|
||||
graph.AddArc(dst, src);
|
||||
}
|
||||
}
|
||||
return graph;
|
||||
}
|
||||
|
||||
// Generates a complete undirected bipartite graph with `num_nodes_1` and
|
||||
// `num_nodes_2` nodes in each part.
|
||||
//
|
||||
// A complete bipartite graph is a graph in which all pairs of distinct nodes,
|
||||
// one in each part, are connected by an edge.
|
||||
// The graph is represented using the provided `Graph` template.
|
||||
// If the chosen graph type requires a call to `Build()`, the user is expected
|
||||
// to perform this call, possibly after tweaking the graph.
|
||||
//
|
||||
// Args:
|
||||
// num_nodes_1: The number of nodes in the first part of the graph.
|
||||
// num_nodes_2: The number of nodes in the second part of the graph.
|
||||
//
|
||||
// Returns:
|
||||
// A complete undirected bipartite graph.
|
||||
template <typename Graph>
|
||||
Graph GenerateCompleteUndirectedBipartiteGraph(
|
||||
const typename Graph::NodeIndex num_nodes_1,
|
||||
const typename Graph::NodeIndex num_nodes_2) {
|
||||
Graph graph;
|
||||
graph.Reserve(num_nodes_1 + num_nodes_2, 2 * num_nodes_1 * num_nodes_2);
|
||||
graph.AddNode(num_nodes_1 + num_nodes_2 - 1); // Only for degenerate cases.
|
||||
for (typename Graph::NodeIndex src = 0; src < num_nodes_1; ++src) {
|
||||
for (typename Graph::NodeIndex dst = 0; dst < num_nodes_2; ++dst) {
|
||||
graph.AddArc(src, num_nodes_1 + dst);
|
||||
graph.AddArc(num_nodes_1 + dst, src);
|
||||
}
|
||||
}
|
||||
return graph;
|
||||
}
|
||||
|
||||
// Generates a complete directed bipartite graph with `num_nodes_1` and
|
||||
// `num_nodes_2` nodes in each part.
|
||||
//
|
||||
// A complete bipartite graph is a graph in which all pairs of distinct nodes,
|
||||
// one in each part, are connected by an edge. Edges are directed from the first
|
||||
// part towards the second part.
|
||||
// The graph is represented using the provided `Graph` template.
|
||||
// If the chosen graph type requires a call to `Build()`, the user is expected
|
||||
// to perform this call, possibly after tweaking the graph.
|
||||
//
|
||||
// Consider using `CompleteBipartiteGraph` (util/graph/graph.h) instead of this
|
||||
// function in production code, as it uses constant memory to store the graph.
|
||||
// Instead, this function explicitly creates the graph using the template type,
|
||||
// which is mostly useful for tests or when you have to tweak the graph after
|
||||
// creation (i.e. a complete graph is just the core of your final graph).
|
||||
//
|
||||
// Args:
|
||||
// num_nodes_1: The number of nodes in the first part of the graph.
|
||||
// num_nodes_2: The number of nodes in the second part of the graph.
|
||||
//
|
||||
// Returns:
|
||||
// A complete directed bipartite graph.
|
||||
template <typename Graph>
|
||||
Graph GenerateCompleteDirectedBipartiteGraph(
|
||||
const typename Graph::NodeIndex num_nodes_1,
|
||||
const typename Graph::NodeIndex num_nodes_2) {
|
||||
Graph graph;
|
||||
graph.Reserve(num_nodes_1 + num_nodes_2, num_nodes_1 * num_nodes_2);
|
||||
graph.AddNode(num_nodes_1 + num_nodes_2 - 1); // Only for degenerate cases.
|
||||
for (typename Graph::NodeIndex src = 0; src < num_nodes_1; ++src) {
|
||||
for (typename Graph::NodeIndex dst = 0; dst < num_nodes_2; ++dst) {
|
||||
graph.AddArc(src, num_nodes_1 + dst);
|
||||
}
|
||||
}
|
||||
return graph;
|
||||
}
|
||||
|
||||
#endif // UTIL_GRAPH_GRAPH_GENERATOR_H_
|
||||
129
ortools/graph/graph_generator_test.cc
Normal file
129
ortools/graph/graph_generator_test.cc
Normal file
@@ -0,0 +1,129 @@
|
||||
// Copyright 2010-2025 Google LLC
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#include "ortools/graph/graph_generator.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "ortools/base/gmock.h"
|
||||
#include "ortools/graph/graph.h"
|
||||
|
||||
namespace {
|
||||
|
||||
using ::testing::IsEmpty;
|
||||
using ::testing::UnorderedElementsAre;
|
||||
|
||||
template <typename Graph>
|
||||
std::vector<int> OutgoingNodes(const Graph& graph,
|
||||
typename Graph::NodeIndex src) {
|
||||
std::vector<int> nodes;
|
||||
for (const typename Graph::ArcIndex arc : graph.OutgoingArcs(src)) {
|
||||
nodes.push_back(graph.Head(arc));
|
||||
}
|
||||
return nodes;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
class GenerateCompleteUndirectedGraphTest : public testing::Test {};
|
||||
|
||||
using GenerateCompleteUndirectedGraphTypes =
|
||||
::testing::Types<util::ListGraph<int, int>, util::StaticGraph<int, int>>;
|
||||
TYPED_TEST_SUITE(GenerateCompleteUndirectedGraphTest,
|
||||
GenerateCompleteUndirectedGraphTypes);
|
||||
|
||||
TYPED_TEST(GenerateCompleteUndirectedGraphTest, SimpleGraph) {
|
||||
TypeParam graph = GenerateCompleteUndirectedGraph<TypeParam>(3);
|
||||
graph.Build();
|
||||
|
||||
EXPECT_EQ(graph.num_nodes(), 3);
|
||||
EXPECT_EQ(graph.num_arcs(), 6);
|
||||
EXPECT_THAT(graph.OutDegree(0), 2);
|
||||
EXPECT_THAT(graph.OutDegree(1), 2);
|
||||
EXPECT_THAT(graph.OutDegree(2), 2);
|
||||
EXPECT_THAT(OutgoingNodes(graph, 0), UnorderedElementsAre(1, 2));
|
||||
EXPECT_THAT(OutgoingNodes(graph, 1), UnorderedElementsAre(0, 2));
|
||||
EXPECT_THAT(OutgoingNodes(graph, 2), UnorderedElementsAre(0, 1));
|
||||
}
|
||||
|
||||
TYPED_TEST(GenerateCompleteUndirectedGraphTest, SmallestGraph) {
|
||||
TypeParam graph = GenerateCompleteUndirectedGraph<TypeParam>(1);
|
||||
graph.Build();
|
||||
|
||||
EXPECT_EQ(graph.num_nodes(), 1);
|
||||
EXPECT_EQ(graph.num_arcs(), 0);
|
||||
EXPECT_THAT(OutgoingNodes(graph, 0), IsEmpty());
|
||||
}
|
||||
|
||||
template <class T>
|
||||
class GenerateCompleteUndirectedBipartiteGraphTest : public testing::Test {};
|
||||
|
||||
using GenerateCompleteUndirectedBipartiteGraphTypes =
|
||||
::testing::Types<util::ListGraph<int, int>, util::StaticGraph<int, int>>;
|
||||
TYPED_TEST_SUITE(GenerateCompleteUndirectedBipartiteGraphTest,
|
||||
GenerateCompleteUndirectedBipartiteGraphTypes);
|
||||
|
||||
TYPED_TEST(GenerateCompleteUndirectedBipartiteGraphTest, SimpleGraph) {
|
||||
TypeParam graph = GenerateCompleteUndirectedBipartiteGraph<TypeParam>(2, 3);
|
||||
graph.Build();
|
||||
|
||||
EXPECT_EQ(graph.num_nodes(), 5);
|
||||
EXPECT_EQ(graph.num_arcs(), 12);
|
||||
EXPECT_THAT(OutgoingNodes(graph, 0), UnorderedElementsAre(2, 3, 4));
|
||||
EXPECT_THAT(OutgoingNodes(graph, 1), UnorderedElementsAre(2, 3, 4));
|
||||
EXPECT_THAT(OutgoingNodes(graph, 2), UnorderedElementsAre(0, 1));
|
||||
EXPECT_THAT(OutgoingNodes(graph, 3), UnorderedElementsAre(0, 1));
|
||||
EXPECT_THAT(OutgoingNodes(graph, 4), UnorderedElementsAre(0, 1));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
class GenerateCompleteDirectedBipartiteGraphTest : public testing::Test {};
|
||||
|
||||
using GenerateCompleteDirectedBipartiteGraphTypes =
|
||||
::testing::Types<util::ListGraph<int, int>, util::StaticGraph<int, int>>;
|
||||
TYPED_TEST_SUITE(GenerateCompleteDirectedBipartiteGraphTest,
|
||||
GenerateCompleteDirectedBipartiteGraphTypes);
|
||||
|
||||
TYPED_TEST(GenerateCompleteDirectedBipartiteGraphTest, SimpleGraph) {
|
||||
TypeParam graph = GenerateCompleteDirectedBipartiteGraph<TypeParam>(2, 3);
|
||||
graph.Build();
|
||||
|
||||
EXPECT_EQ(graph.num_nodes(), 5);
|
||||
EXPECT_EQ(graph.num_arcs(), 6);
|
||||
EXPECT_THAT(OutgoingNodes(graph, 0), UnorderedElementsAre(2, 3, 4));
|
||||
EXPECT_THAT(OutgoingNodes(graph, 1), UnorderedElementsAre(2, 3, 4));
|
||||
EXPECT_THAT(OutgoingNodes(graph, 2), IsEmpty());
|
||||
EXPECT_THAT(OutgoingNodes(graph, 3), IsEmpty());
|
||||
EXPECT_THAT(OutgoingNodes(graph, 4), IsEmpty());
|
||||
}
|
||||
|
||||
TYPED_TEST(GenerateCompleteDirectedBipartiteGraphTest, SimplSmallestGraphLeft) {
|
||||
TypeParam graph = GenerateCompleteDirectedBipartiteGraph<TypeParam>(1, 0);
|
||||
graph.Build();
|
||||
|
||||
EXPECT_EQ(graph.num_nodes(), 1);
|
||||
EXPECT_EQ(graph.num_arcs(), 0);
|
||||
EXPECT_THAT(OutgoingNodes(graph, 0), IsEmpty());
|
||||
}
|
||||
|
||||
TYPED_TEST(GenerateCompleteDirectedBipartiteGraphTest,
|
||||
SimplSmallestGraphRight) {
|
||||
TypeParam graph = GenerateCompleteDirectedBipartiteGraph<TypeParam>(0, 1);
|
||||
graph.Build();
|
||||
|
||||
EXPECT_EQ(graph.num_nodes(), 1);
|
||||
EXPECT_EQ(graph.num_arcs(), 0);
|
||||
EXPECT_THAT(OutgoingNodes(graph, 0), IsEmpty());
|
||||
}
|
||||
|
||||
} // namespace
|
||||
@@ -715,7 +715,6 @@ TYPED_TEST(GenericGraphInterfaceTest, EmptyGraphAlternateSyntax) {
|
||||
EXPECT_EQ(ArcIndex(0), graph.num_arcs());
|
||||
}
|
||||
|
||||
#if !defined(_MSC_VER)
|
||||
TYPED_TEST(GenericGraphInterfaceTest, GraphWithNodesButNoArc) {
|
||||
using NodeIndex = typename TypeParam::NodeIndex;
|
||||
using ArcIndex = typename TypeParam::ArcIndex;
|
||||
@@ -737,7 +736,6 @@ TYPED_TEST(GenericGraphInterfaceTest, GraphWithNodesButNoArc) {
|
||||
}
|
||||
EXPECT_EQ(0, count);
|
||||
}
|
||||
#endif // !defined(_MSC_VER)
|
||||
|
||||
TYPED_TEST(GenericGraphInterfaceTest, BuildWithRandomArc) {
|
||||
using NodeIndex = typename TypeParam::NodeIndex;
|
||||
|
||||
@@ -129,7 +129,6 @@ cc_test(
|
||||
":symmetry",
|
||||
"//ortools/base:gmock_main",
|
||||
"//ortools/math_opt/testing:stream",
|
||||
"@abseil-cpp//absl/strings",
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
@@ -165,7 +165,8 @@ TEST(FormatAttrValueTest, FormatsInt64) {
|
||||
}
|
||||
|
||||
TEST(FormatAttrValueTest, FormatsDouble) {
|
||||
EXPECT_EQ(FormatAttrValue(absl::SixDigits(4.2)), "4.2");
|
||||
// need a double with an exact binary representation
|
||||
EXPECT_EQ(FormatAttrValue(4.5), "4.5");
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -324,6 +324,7 @@ ortools_cxx_library(
|
||||
TESTING
|
||||
)
|
||||
|
||||
if(USE_SCIP AND USE_GLOP)
|
||||
ortools_cxx_test(
|
||||
NAME
|
||||
${_PREFIX}_test_models_test
|
||||
@@ -334,9 +335,8 @@ ortools_cxx_test(
|
||||
GTest::gmock_main
|
||||
ortools::math_opt_test_models
|
||||
ortools::math_opt_matchers
|
||||
#ortools::math_opt_glop_solver
|
||||
#ortools::math_opt_gscipt_solver
|
||||
)
|
||||
endif()
|
||||
|
||||
ortools_cxx_library(
|
||||
NAME
|
||||
|
||||
@@ -33,6 +33,9 @@ target_link_libraries(${NAME} PRIVATE
|
||||
|
||||
if(BUILD_TESTING)
|
||||
file(GLOB _TEST_SRCS "*_test.cc")
|
||||
if(NOT USE_SCIP)
|
||||
list(FILTER _TEST_SRCS EXCLUDE REGEX ".*/set_cover_test.cc")
|
||||
endif()
|
||||
foreach(_FULL_FILE_NAME IN LISTS _TEST_SRCS)
|
||||
get_filename_component(_NAME ${_FULL_FILE_NAME} NAME_WE)
|
||||
get_filename_component(_FILE_NAME ${_FULL_FILE_NAME} NAME)
|
||||
|
||||
Reference in New Issue
Block a user