Files
ortools-clone/cmake/docs/cmake.dot
Corentin Le Molgat 8480ff4f3f dependency: Fix bzip2 support
* always enable it
* Fix CMake support
* fix windows support
2025-04-30 15:15:39 +02:00

298 lines
7.9 KiB
Plaintext

// C++: royalblue
// Python: gold
// Java: crimson
// .Net: darkviolet
@startdot
digraph CMake {
//rankdir=BT;
rankdir=TD;
subgraph clusterPrerequisite {
node [shape=box3d, style=filled, color=black];
CM [label="CMake", fillcolor=royalblue];
SWIG [label="Swig\n(Unix)", fillcolor=chocolate];
PY [label="Python\n(3.6+)", fillcolor=gold];
JV [label="Java\n(openJDK 8+)", fillcolor=crimson];
DN [label=".Net Core SDK\n(3.1)", fillcolor=darkviolet];
FS [label=".Net F#", fillcolor=darkviolet];
CM -> SWIG [arrowhead=none, style=invisible];
SWIG -> PY [arrowhead=none, style=invisible];
SWIG -> JV [arrowhead=none, style=invisible];
SWIG -> DN [arrowhead=none, style=invisible];
DN -> FS [arrowhead=none, style=invisible];
label = "Prerequisite";
}
subgraph clusterOR {
node [shape=box, style="rounded,filled", color=black, fillcolor=royalblue];
subgraph clusterDeps {
subgraph clusterZLIB {
ZLIB [label="ZLIB::ZLIB", color=royalblue];
color=royalblue;
label = "madler/zlib.git + cmake patch";
}
subgraph clusterBZIP2 {
BZip2 [label="BZip2::BZip2", color=royalblue];
color=royalblue;
label = "bzip2/bzip2.git + cmake patch";
}
subgraph clusterAbsl {
Absl [label="absl::absl_*", color=royalblue];
color=royalblue;
label = "abseil/abseil-cpp.git";
}
subgraph clusterRe2 {
Re2 [label="re2::re2"];
color=royalblue;
label = "google/re2.git";
}
Absl -> Re2;
subgraph clusterProtobuf {
Protobuf [label="protobuf::libprotobuf", color=royalblue];
color=royalblue;
label = "protocolbuffers/protobuf.git";
}
ZLIB -> Protobuf;
Absl -> Protobuf;
Re2 -> Protobuf;
subgraph clusterCoinOR {
subgraph clusterCoinUtils {
CoinUtils [label="Coin::CoinUtils", color=royalblue];
color=royalblue;
label = "Mizux/CoinUtils.git";
}
subgraph clusterOsi {
Osi [label="Coin::Osi", color=royalblue];
color=royalblue;
label = "Mizux/Osi.git";
}
subgraph clusterClp {
Clp [label="Coin::Clp", color=royalblue];
OsiClp [label="Coin::OsiClp", color=royalblue];
ClpSolver [label="Coin::ClpSolver", color=royalblue];
color=royalblue;
label = "Mizux/Clp.git";
}
subgraph clusterCgl {
Cgl [label="Coin::Cgl", color=royalblue];
color=royalblue;
label = "Mizux/Cgl.git";
}
subgraph clusterCbc {
Cbc [label="Coin::Cbc", color=royalblue];
OsiCbc [label="Coin::OsiCbc", color=royalblue];
CbcSolver [label="Coin::CbcSolver", color=royalblue];
color=royalblue;
label = "Mizux/Cbc.git";
}
CoinUtils -> Osi;
CoinUtils -> Clp;
Osi -> Clp;
CoinUtils -> OsiClp;
Osi -> OsiClp;
Clp -> OsiClp;
Clp -> ClpSolver;
CoinUtils -> Cgl;
Osi -> Cgl;
OsiClp -> Cgl;
CoinUtils -> Cbc;
Osi -> Cbc;
Clp -> Cbc;
Cgl -> Cbc;
CoinUtils -> OsiCbc;
Osi -> OsiCbc;
Cbc -> OsiCbc;
Cbc -> CbcSolver;
color=royalblue;
label = "Coin-OR Solver\n(-DUSE_COINOR=ON)";
}
subgraph clusterGLPKSolver {
subgraph clusterGLPK {
GLPK [label="glpk::glpk"];
color=royalblue;
label = "Mizux/GLPK.git";
}
color=royalblue;
label = "GLPK Solver\n(-DUSE_GLPK=ON)";
}
subgraph clusterHIGHSSolver {
subgraph clusterHIGHS {
HIGHS [label="highs::highs"];
color=royalblue;
label = "ERGO-Code/HIGHS.git";
}
color=royalblue;
label = "HIGHS Solver\n(-DUSE_HIGHS=ON)";
}
subgraph clusterSCIPSolver {
subgraph clusterSoplex {
SPX [label="libsoplex-pic"];
color=royalblue;
label = "scipopt/soplex.git";
}
subgraph clusterSCIP {
SCIP [label="SCIP::libscip"];
color=royalblue;
label = "scipopt/scip.git";
}
SPX -> SCIP;
color=royalblue;
label = "SCIP Solver\n(-DUSE_SCIP=ON)";
}
ZLIB -> SPX;
ZLIB -> SCIP;
SWIG_WIN [label="swigwin\n(Windows)", color=chocolate];
// Intra deps
//ZLIB -> Protobuf;
//ZLIB -> Cbc;
//Absl -> Protobuf;
color=grey;
label = "Dependencies\n(-DBUILD_DEPS=ON)";
} // clusterDeps
subgraph clusterCXX {
node [shape=box, style="rounded,filled", color=black, fillcolor=royalblue];
OR_SRC [label="OR-Tools src\nortools/...", shape=folder];
OR_CPP [label="ortools::ortools"];
PKG_CPP [label="CMake Package", shape=box3d];
subgraph clusterCXXTest {
EX_CPP [label="C++ samples"];
label = "Examples\n(-DBUILD_TESTING=ON)";
}
PKG_CPP -> EX_CPP;
ZLIB -> OR_SRC;
BZip2 -> OR_SRC;
Absl -> OR_SRC;
Protobuf -> OR_SRC;
Re2 -> OR_SRC;
ClpSolver -> OR_SRC;
CbcSolver -> OR_SRC;
GLPK -> OR_SRC;
SCIP -> OR_SRC;
// rendering hack
//OsiCbc -> OR_SRC [arrowhead=none, style=invisible];
OR_SRC -> OR_CPP;
OR_CPP -> PKG_CPP [label="install", color=royalblue];
color=royalblue;
label = "C++\n(-DBUILD_CXX=ON)";
} // clusterCXX
subgraph clusterPython {
node [shape=box, style="rounded,filled", color=black, fillcolor=gold];
OR_WPY [label="C++ Python wrappers", shape=note];
OR_PY [label="Python files", shape=note];
PKG_PY [label="Wheel package", shape=box3d];
subgraph clusterPythonTest {
EX_PY [label="Python samples"];
label = "Examples\n(-DBUILD_TESTING=ON)";
}
PKG_PY -> EX_PY;
OR_SRC -> OR_WPY [label="swig", color=chocolate];
OR_SRC -> OR_PY [label="swig", color=chocolate];
OR_WPY -> OR_PY;
OR_PY -> PKG_PY [label="python setup.py", color=gold];
color=gold;
label = "Python\n(-DBUILD_PYTHON=ON)";
} // clusterPython
subgraph clusterJava {
node [shape=box, style="rounded,filled", color=black, fillcolor=crimson];
OR_WJAVA [label="C++ Java wrappers", shape=note];
OR_JAVA [label="Java files", shape=note];
PKG_JAVA [label="Maven package", shape=box3d];
subgraph clusterJavaTest {
EX_JAVA [label="Java samples"];
label = "Examples\n(-DBUILD_TESTING=ON)";
}
PKG_JAVA -> EX_JAVA;
OR_SRC -> OR_WJAVA [label="swig", color=chocolate];
OR_SRC -> OR_JAVA [label="swig", color=chocolate];
OR_WJAVA -> OR_JAVA;
OR_JAVA -> PKG_JAVA [label="maven", color=crimson];
color=crimson;
label = "Java\n(-DBUILD_JAVA=ON)";
} // clusterJava
subgraph clusterNet {
node [shape=box, style="rounded,filled", color=black, fillcolor=darkviolet];
OR_WNET [label="C++ .Net wrappers", shape=note];
OR_NET [label=".Net files", shape=note];
PKG_NET_RT [label="Nuget runtime package\nGoogle.OrTools.runtime.rid.nupkg", shape=box3d];
PKG_NET [label="Nuget package\nGoogle.OrTools.nupkg", shape=box3d];
subgraph clusterNetTest {
EX_NET [label=".Net samples"];
label = "Examples\n(-DBUILD_TESTING=ON)";
}
PKG_NET -> EX_NET;
OR_SRC -> OR_WNET [label="swig", color=chocolate];
OR_SRC -> OR_NET [label="swig", color=chocolate];
OR_WNET -> OR_NET;
OR_WNET -> PKG_NET_RT [label="dotnet package", color=darkviolet];
PKG_NET_RT -> PKG_NET [color=darkviolet];
OR_NET -> PKG_NET [label="dotnet package", color=darkviolet];
color=darkviolet;
label = ".Net\n(-DBUILD_DOTNET=ON)";
} // clusterNet
color=royalblue;
label = "OR-Tools (CMake)";
} // clusterOR
} // digraph
@enddot
// vim tw:0