full_pipeline.dot 6.46 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
@startdot
digraph Make {
  rankdir=TD;
  node [shape=note, style="rounded,filled", color=black, fillcolor=royalblue];
  CPP [label="ortools.h/ortools.cc"];
  SWIG [label="csharp/ortools.i", fillcolor=white];
  CPP -> SWIG [label="include", style=dashed];

  subgraph clusterLinux {
    color=crimson;
    label = "Linux Host";
    node [shape=note, style="rounded,filled", color=black, fillcolor=darkviolet];
    LINUX_LIB [label="libortools.so\nruntimes/linux-x64/native/", shape=component, fillcolor=royalblue];
    LINUX_CSWRP [label="ortools.cs"];
    LINUX_CPPWRP [label="ortools_csharp_wrap.cc", fillcolor=royalblue];
    LINUX_LIBWRP [label="Google.OrTools.runtime.linux-x64.so\nruntimes/linux-x64/native", shape=component, fillcolor=royalblue];
    LINUX_CSPROJ [label="Google.OrTools.runtime.linux-x64.csproj"];
    LINUX_DLL [label="Google.OrTools.dll\nruntimes/linux-x64/lib/netstandard2.0/", shape=component];
    LINUX_REF [label="Google.OrTools.dll\nref/netstandard2.0/", shape=component];
    LINUX_NUPKG [label="Google.OrTools.runtime.linux-x64.nupkg", shape=folder];

    LINUX_CPPWRP -> LINUX_LIBWRP [label="g++", style=bold];
    LINUX_LIB -> LINUX_LIBWRP [label="ld", style=bold];
    LINUX_LIBWRP -> LINUX_CSWRP [label="PInvoke", style=dashed];
    LINUX_CSWRP -> LINUX_CSPROJ [label="Compile", style=dashed];
    LINUX_LIB -> LINUX_CSPROJ [label="Content", style=dashed];
    LINUX_LIBWRP -> LINUX_CSPROJ [label="Content", style=dashed];
    LINUX_CSPROJ -> LINUX_DLL [label="dotnet build", style=bold];
    LINUX_CSPROJ -> LINUX_REF [label="dotnet build", style=bold];
    LINUX_LIB -> LINUX_NUPKG [label="pack", style=dashed];
    LINUX_LIBWRP -> LINUX_NUPKG [label="pack", style=dashed];
    LINUX_DLL -> LINUX_NUPKG [label="pack", style=dashed];
    LINUX_CSPROJ -> LINUX_NUPKG [label="dotnet pack", style=bold];
  }
  SWIG -> LINUX_CSWRP [label="swig", style=bold];
  SWIG -> LINUX_CPPWRP [label="swig", style=bold];
  CPP -> LINUX_LIB [label="make_cc", style=bold];

  subgraph clusterOsx {
    color=forestgreen;
    label = "macOS Host";
    node [shape=note, style="rounded,filled", color=black, fillcolor=darkviolet];
    OSX_LIB [label="libortools.dylib\nruntimes/osx-x64/native/", shape=component, fillcolor=royalblue];
    OSX_CSWRP [label="ortools.cs"];
    OSX_CPPWRP [label="ortools_csharp_wrap.cc", fillcolor=royalblue];
    OSX_LIBWRP [label="Google.OrTools.runtime.osx-x64.dylib\nruntimes/osx-x64/native", shape=component, fillcolor=royalblue];
    OSX_CSPROJ [label="Google.OrTools.runtime.osx-x64.csproj"];
    OSX_DLL [label="Google.OrTools.dll\nruntimes/osx-x64/lib/netstandard2.0/", shape=component];
    OSX_REF [label="Google.OrTools.dll\nref/netstandard2.0/", shape=component];
    OSX_NUPKG [label="Google.OrTools.runtime.osx-x64.nupkg", shape=folder];

    OSX_CPPWRP -> OSX_LIBWRP [label="clang", style=bold];
    OSX_LIB -> OSX_LIBWRP [label="ld", style=bold];
    OSX_LIBWRP -> OSX_CSWRP [label="PInvoke", style=dashed];
    OSX_CSWRP -> OSX_CSPROJ [label="Compile", style=dashed];
    OSX_LIB -> OSX_CSPROJ [label="Content", style=dashed];
    OSX_LIBWRP -> OSX_CSPROJ [label="Content", style=dashed];
    OSX_CSPROJ -> OSX_DLL [label="dotnet build", style=bold];
    OSX_CSPROJ -> OSX_REF [label="dotnet build", style=bold];
    OSX_LIB -> OSX_NUPKG [label="pack", style=dashed];
    OSX_LIBWRP -> OSX_NUPKG [label="pack", style=dashed];
    OSX_DLL -> OSX_NUPKG [label="pack", style=dashed];
    OSX_CSPROJ -> OSX_NUPKG [label="dotnet pack", style=bold];
  }
  SWIG -> OSX_CSWRP [label="swig", style=bold];
  SWIG -> OSX_CPPWRP [label="swig", style=bold];
  CPP -> OSX_LIB [label="make_cc", style=bold];

  subgraph clusterWin {
    color=dodgerblue;
    label = "Windows Host";
    node [shape=note, style="rounded,filled", color=black, fillcolor=darkviolet];
    WIN_LIB [label="libortools.lib", shape=component, fillcolor=royalblue];
    WIN_CSWRP [label="ortools.cs"];
    WIN_CPPWRP [label="ortools_csharp_wrap.cc", fillcolor=royalblue];
    WIN_LIBWRP [label="Google.OrTools.runtime.win-x64.dll\nruntimes/win-x64/native", shape=component, fillcolor=royalblue];
    WIN_CSPROJ [label="Google.OrTools.runtime.win-x64.csproj"];
    WIN_DLL [label="Google.OrTools.dll\nruntimes/win-x64/lib/netstandard2.0/", shape=component];
    WIN_REF [label="Google.OrTools.dll\nref/netstandard2.0/", shape=component];
    WIN_NUPKG [label="Google.OrTools.runtime.win-x64.nupkg", shape=folder];

    WIN_CPPWRP -> WIN_LIBWRP [label="cl.exe", style=bold];
    WIN_LIB -> WIN_LIBWRP [label="link.exe", style=bold];
    WIN_LIBWRP -> WIN_CSWRP [label="PInvoke", style=dashed];
    WIN_CSWRP -> WIN_CSPROJ [label="Compile", style=dashed];
    WIN_LIBWRP -> WIN_CSPROJ [label="Content", style=dashed];
    WIN_CSPROJ -> WIN_DLL [label="dotnet build", style=bold];
    WIN_CSPROJ -> WIN_REF [label="dotnet build", style=bold];
    WIN_LIBWRP -> WIN_NUPKG [label="pack", style=dashed];
    WIN_DLL -> WIN_NUPKG [label="pack", style=dashed];
    WIN_CSPROJ -> WIN_NUPKG [label="dotnet pack", style=bold];
  }
  SWIG -> WIN_CSWRP [label="swig", style=bold];
  SWIG -> WIN_CPPWRP [label="swig", style=bold];
  CPP -> WIN_LIB [label="make_cc", style=bold];

  subgraph clusterAny {
    color=dimgrey;
    label = "Any Previous Host";
    node [shape=note, style="rounded,filled", color=black, fillcolor=darkviolet];
    OR_REF [label="Google.OrTools.dll\nref/netstandard2.0/", shape=component];
    OR_RT [label="runtime.json"];
    PB_NUPKG [label="Google.Protobuf.nupkg\nnuget.org", shape=folder];
    OR_CSPROJ [label="Google.OrTools.csproj"];
    OR_NUPKG [label="Google.OrTools.nupkg", shape=folder];

    LINUX_REF -> OR_REF [label="copy", style=bold];
    OSX_REF -> OR_REF [label="copy", style=bold];
    WIN_REF -> OR_REF [label="copy", style=bold];
    OR_REF -> OR_CSPROJ [label="Content", style=dashed];
    OR_RT -> OR_CSPROJ [label="Content", style=dashed];
    PB_NUPKG -> OR_CSPROJ [label="PackageReference", style=dashed];
    OR_CSPROJ -> OR_NUPKG [label="dotnet pack", style=bold];
    OR_REF -> OR_NUPKG [label="pack", style=dashed];
    OR_RT -> OR_NUPKG [label="pack", style=dashed];
  }
  LINUX_NUPKG -> OR_CSPROJ [label="PackageReference", style=dashed];
  OSX_NUPKG -> OR_CSPROJ [label="PackageReference", style=dashed];
  WIN_NUPKG -> OR_CSPROJ [label="PackageReference", style=dashed];

 # Hack for layout i.e. add false hidden dependencies
 LINUX_NUPKG -> OR_REF [arrowhead=none, style=invisible];
 OSX_NUPKG -> OR_REF [arrowhead=none, style=invisible];
 WIN_NUPKG -> OR_REF [arrowhead=none, style=invisible];
}
@enddot
# vim: set tw=0 ts=2 sw=2 expandtab: