2020-04-02 00:12:08 +02:00
|
|
|
// C++: royalblue
|
|
|
|
|
// Python: gold
|
|
|
|
|
// Java: crimson
|
|
|
|
|
// .Net: forestgreen
|
|
|
|
|
// F#: indigo
|
2020-02-17 17:29:42 +01:00
|
|
|
@startdot
|
|
|
|
|
digraph Make {
|
2020-04-02 00:12:08 +02:00
|
|
|
//rankdir=BT;
|
|
|
|
|
rankdir=TD;
|
|
|
|
|
|
2020-11-04 16:17:07 +01:00
|
|
|
subgraph clusterPrerequisite {
|
|
|
|
|
node [shape=box3d, style=filled, color=black];
|
|
|
|
|
M [label="Make", fillcolor=royalblue];
|
|
|
|
|
CM [label="CMake", fillcolor=royalblue];
|
|
|
|
|
SWIG [label="Swig\n(Unix)", fillcolor=chocolate];
|
2020-10-06 15:28:29 +02:00
|
|
|
PY [label="Python\n(3.6+)", fillcolor=gold];
|
2020-04-02 00:12:08 +02:00
|
|
|
JV [label="Java\n(openJDK 8+)", fillcolor=crimson];
|
2020-10-06 15:28:29 +02:00
|
|
|
NET [label=".Net Core SDK\n(3.1)", fillcolor=forestgreen];
|
2020-04-02 00:12:08 +02:00
|
|
|
FS [label=".Net F#", fillcolor=forestgreen];
|
2020-11-04 16:17:07 +01:00
|
|
|
M -> SWIG [arrowhead=none, style=invisible];
|
|
|
|
|
SWIG -> PY [arrowhead=none, style=invisible];
|
|
|
|
|
SWIG -> JV [arrowhead=none, style=invisible];
|
|
|
|
|
SWIG -> NET [arrowhead=none, style=invisible];
|
|
|
|
|
NET -> FS [arrowhead=none, style=invisible];
|
|
|
|
|
|
|
|
|
|
label = "Prerequisite";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
subgraph clusterOR {
|
|
|
|
|
node [shape=box, style="rounded,filled", color=black, fillcolor=royalblue];
|
|
|
|
|
subgraph clusterDeps {
|
|
|
|
|
Z [label="Zlib\n(Make)", color=royalblue];
|
|
|
|
|
ABSL [label="Abseil-cpp\n(CMake)", color=royalblue];
|
|
|
|
|
PB [label="Protobuf\n(CMake)", color=royalblue];
|
|
|
|
|
CU [label="CoinUtils\n(Autotools)", color=royalblue];
|
|
|
|
|
OSI [label="Osi\n(Autotools)", color=royalblue];
|
|
|
|
|
CLP [label="Clp\n(Autotools)", color=royalblue];
|
|
|
|
|
CGL [label="Cgl\n(Autotools)", color=royalblue];
|
|
|
|
|
CBC [label="Cbc\n(Autotools)", color=royalblue];
|
|
|
|
|
SWIG_WIN [label="Swigwin\n(Windows)", color=chocolate];
|
|
|
|
|
GLPK [label="GLPK",style="rounded,dashed", color=grey];
|
|
|
|
|
SCIP [label="SCIP",style="rounded,dashed", color=grey];
|
|
|
|
|
CPLEX [label="CPLEX",style="rounded,dashed", color=grey];
|
|
|
|
|
GUROBI [label="Gurobi",style="rounded,dashed", color=grey];
|
2020-04-02 00:12:08 +02:00
|
|
|
|
|
|
|
|
Z -> PB;
|
|
|
|
|
ABSL -> PB;
|
|
|
|
|
|
|
|
|
|
CU -> OSI;
|
|
|
|
|
CU -> CLP;
|
|
|
|
|
OSI -> CLP;
|
|
|
|
|
CU -> CGL;
|
|
|
|
|
OSI -> CGL;
|
|
|
|
|
CU -> CBC;
|
|
|
|
|
OSI -> CBC;
|
|
|
|
|
CLP -> CBC
|
2020-11-04 16:17:07 +01:00
|
|
|
CGL -> CBC
|
2020-04-02 00:12:08 +02:00
|
|
|
|
2020-11-04 16:17:07 +01:00
|
|
|
color=grey;
|
|
|
|
|
label = "Dependencies\nTarget: third_party";
|
2020-04-02 00:12:08 +02:00
|
|
|
} // clusterDeps
|
|
|
|
|
|
|
|
|
|
subgraph clusterCXX {
|
|
|
|
|
node [shape=box, style="rounded,filled", color=black, fillcolor=royalblue];
|
|
|
|
|
OR_SRC [label="OR-Tools src\nortools/...", shape=folder];
|
2022-04-01 16:41:16 +02:00
|
|
|
OR_CPP [label="C++\nTarget: cpp"];
|
|
|
|
|
PKG_CPP [label=".tar.gz/.zip Archive\nTarget: package_cpp", shape=box3d];
|
2020-04-02 00:12:08 +02:00
|
|
|
|
|
|
|
|
subgraph clusterCXXTest {
|
2022-04-01 16:41:16 +02:00
|
|
|
EX_CPP [label="C++ Samples", shape=note];
|
2020-04-02 00:12:08 +02:00
|
|
|
|
2022-04-01 16:41:16 +02:00
|
|
|
label = "Examples\nTarget: test_cpp";
|
2020-04-02 00:12:08 +02:00
|
|
|
}
|
2022-04-01 16:41:16 +02:00
|
|
|
OR_CPP -> EX_CPP;
|
2020-04-02 00:12:08 +02:00
|
|
|
|
2022-04-01 16:41:16 +02:00
|
|
|
Z -> OR_CPP;
|
|
|
|
|
ABSL -> OR_CPP;
|
|
|
|
|
PB -> OR_CPP;
|
|
|
|
|
CLP -> OR_CPP;
|
|
|
|
|
CBC -> OR_CPP;
|
2020-04-02 00:12:08 +02:00
|
|
|
|
2022-04-01 16:41:16 +02:00
|
|
|
GLPK -> OR_CPP;
|
|
|
|
|
SCIP -> OR_CPP;
|
|
|
|
|
CPLEX -> OR_CPP;
|
|
|
|
|
GUROBI -> OR_CPP;
|
2020-04-02 00:12:08 +02:00
|
|
|
|
2022-04-01 16:41:16 +02:00
|
|
|
OR_CPP -> PKG_CPP [label="WIP", style="dotted", color=dimgrey];
|
2020-04-02 00:12:08 +02:00
|
|
|
|
|
|
|
|
color=royalblue;
|
2022-04-01 16:41:16 +02:00
|
|
|
label = "C++\nTarget: cpp";
|
2020-04-02 00:12:08 +02:00
|
|
|
} // 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\nTarget: python", shape=note];
|
2020-11-04 16:17:07 +01:00
|
|
|
PKG_PY [label="Wheel Package\nTarget: package_python", shape=box3d];
|
2020-04-02 00:12:08 +02:00
|
|
|
|
|
|
|
|
subgraph clusterPythonTest {
|
|
|
|
|
EX_PY [label="Python Samples", shape=note];
|
|
|
|
|
|
|
|
|
|
label = "Examples\nTarget: test_python";
|
|
|
|
|
}
|
|
|
|
|
OR_PY -> EX_PY [color=gold];
|
|
|
|
|
|
2022-04-01 16:41:16 +02:00
|
|
|
OR_CPP -> OR_WPY [label="swig", color=chocolate];
|
|
|
|
|
OR_CPP -> OR_PY [label="swig", color=chocolate];
|
2020-04-02 00:12:08 +02:00
|
|
|
OR_WPY -> OR_PY [label="python", color=gold];
|
|
|
|
|
OR_PY -> PKG_PY [label="python setup.py", color=gold];
|
|
|
|
|
|
|
|
|
|
color=gold;
|
|
|
|
|
label = "Python\nTarget: python";
|
|
|
|
|
} // clusterPython
|
|
|
|
|
|
|
|
|
|
subgraph clusterJava {
|
|
|
|
|
node [shape=box, style="rounded,filled", color=black, fillcolor=crimson];
|
|
|
|
|
OR_WJV [label="C++ Java wrappers", shape=note];
|
|
|
|
|
OR_JV [label="Java files\nTarget: java", shape=note];
|
2020-11-04 16:17:07 +01:00
|
|
|
PKG_JV [label="Maven Package\nTarget: package_java", shape=box3d];
|
2020-04-02 00:12:08 +02:00
|
|
|
|
|
|
|
|
subgraph clusterJavaTest {
|
|
|
|
|
EX_JV [label="Java Samples", shape=note];
|
|
|
|
|
|
|
|
|
|
label = "Examples\nTarget: test_java";
|
|
|
|
|
}
|
|
|
|
|
OR_JV -> EX_JV [color=crimson];
|
|
|
|
|
|
2022-04-01 16:41:16 +02:00
|
|
|
OR_CPP -> OR_WJV [label="swig", color=chocolate];
|
|
|
|
|
OR_CPP -> OR_JV [label="swig", color=chocolate];
|
2020-04-02 00:12:08 +02:00
|
|
|
OR_WJV -> OR_JV [label="javac", color=crimson];
|
|
|
|
|
OR_JV -> PKG_JV [label="maven (WIP)", style="dotted", color=crimson];
|
|
|
|
|
|
|
|
|
|
color=crimson;
|
|
|
|
|
label = "Java\nTarget: java";
|
|
|
|
|
} // clusterJava
|
|
|
|
|
|
|
|
|
|
subgraph clusterNet {
|
|
|
|
|
node [shape=box, style="rounded,filled", color=black, fillcolor=forestgreen];
|
|
|
|
|
OR_WNET [label="C++ .Net wrappers", shape=note];
|
|
|
|
|
OR_NET [label=".Net files\nTarget: dotnet", shape=note];
|
|
|
|
|
OR_FS [label="F# files\nTarget: fsharp", shape=note];
|
|
|
|
|
PKG_NET_RT [label="Nuget Google.OrTools.runtime.rid.nupkg\nTarget: package_dotnet", shape=box3d];
|
|
|
|
|
PKG_NET [label="Nuget Google.OrTools.nupkg\nTarget: package_dotnet", shape=box3d];
|
|
|
|
|
PKG_FS [label="Nuget Google.OrTools.FSharp.nupkg\nTarget: package_dotnet", shape=box3d];
|
|
|
|
|
|
|
|
|
|
subgraph clusterNetTest {
|
|
|
|
|
EX_NET [label="C# Samples", shape=note];
|
|
|
|
|
EX_FS [label="F# Samples", shape=note];
|
|
|
|
|
|
|
|
|
|
label = "Examples\nTarget: test_dotnet";
|
|
|
|
|
}
|
|
|
|
|
OR_NET -> EX_NET [color=forestgreen];
|
|
|
|
|
OR_FS -> EX_FS [color=forestgreen];
|
|
|
|
|
|
2022-04-01 16:41:16 +02:00
|
|
|
OR_CPP -> OR_WNET [label="swig", color=chocolate];
|
|
|
|
|
OR_CPP -> OR_NET [label="swig", color=chocolate];
|
2020-04-02 00:12:08 +02:00
|
|
|
OR_WNET -> OR_NET [label="dotnet", color=forestgreen];
|
|
|
|
|
OR_NET -> OR_FS [label="dotnet", color=forestgreen];
|
|
|
|
|
PKG_NET -> OR_FS [label="dotnet", color=forestgreen];
|
|
|
|
|
OR_WNET -> PKG_NET_RT [label="dotnet package", color=forestgreen];
|
|
|
|
|
PKG_NET_RT -> PKG_NET [color=forestgreen];
|
|
|
|
|
OR_NET -> PKG_NET [label="dotnet package", color=forestgreen];
|
|
|
|
|
OR_FS -> PKG_FS [label="dotnet package", color=forestgreen];
|
|
|
|
|
|
|
|
|
|
color=forestgreen;
|
|
|
|
|
label = ".Net\nTarget: dotnet";
|
|
|
|
|
} // clusterNet
|
|
|
|
|
|
|
|
|
|
color=royalblue;
|
2020-11-04 16:17:07 +01:00
|
|
|
label = "OR-Tools (Makefile)";
|
2020-04-02 00:12:08 +02:00
|
|
|
} // clusterOR
|
|
|
|
|
} // digraph
|
2020-02-17 17:29:42 +01:00
|
|
|
@enddot
|
2020-04-02 00:12:08 +02:00
|
|
|
// vim tw:0
|