Files
ortools-clone/cmake/docs/cmake.dot
2022-02-28 10:20:02 +01:00

257 lines
7.0 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 clusterAbsl {
Absl [label="absl::absl_*", color=royalblue];
color=royalblue;
label = "abseil/abseil-cpp.git";
}
subgraph clusterProtobuf {
Protobuf [label="protobuf::libprotobuf", color=royalblue];
color=royalblue;
label = "protocolbuffers/protobuf.git";
}
ZLIB -> Protobuf;
Absl -> 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 clusterSCIPSolver {
subgraph clusterSCIP {
SCIP [label="scip::scip"];
color=royalblue;
label = "scipopt/scip.git";
}
color=royalblue;
label = "SCIP Solver\n(-DUSE_SCIP=ON)";
}
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;
Absl -> OR_SRC;
Protobuf -> 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 (WIP)", style="dotted", 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