// Copyright 2018 the original author or authors.
//
// 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.

// dot -Tpng src/docs/userguide/img/swift-sourcesets-compilation.dot > src/docs/userguide/img/swift-sourcesets-compilation.png
digraph swiftSourcesetsCompilation {
  graph [ dpi = 100, fontname="Sans"];
  node [fontname = "Sans"];
  edge [fontname = "Sans"];
  node [shape=rectangle, fixedsize=true, width=2.6, height=0.8];

  subgraph firstLine {
    {rank=same swiftCompileVariant implementation variantImplementation}
    swiftCompileVariant -> modules
    implementation -> modules
    variantImplementation -> modules

    swiftCompileVariant[style=dashed, label=<swiftCompile<i>Variant</i><br/>(configuration)>]
    implementation[style=dashed, label="implementation\n(configuration)"]
    variantImplementation[style=dashed, label=<main<i>Variant</i>Implementation<br/>(configuration)>]
  }

  subgraph secondLine {
    modules[style="rounded,filled", fillcolor="#bfffbf", label="Compilation modules"]
  }

  subgraph thirdLine {
    {rank=same sourceFiles compileVariantSwift outputDirectory}
    modules -> compileVariantSwift
    sourceFiles -> compileVariantSwift
    compileVariantSwift -> outputDirectory

    sourceFiles[style="rounded,filled", fillcolor="#bfffbf", label="Source files"]
    compileVariantSwift[label=<compile<i>Variant</i>Swift>]
    outputDirectory[style="rounded,filled", fillcolor="#bfffbf", label="Output directory"]
  }
}
