# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file

import("//build/sdk/sdk_documentation.gni")

docs = [
  "bootserver",
  "compilation",
  "debugger",
  "device_discovery",
  "devices",
  "logging",
  "packages",
  "ssh",
]

sdk_documentation("docs") {
  name = "low_level"

  category = "partner"

  files = [
    {
      source = "root.md"
      dest = "README.md"
    },
    {
      source = "main.md"
      dest = "docs/README.md"
    },
  ]
  foreach(doc, docs) {
    files += [
      {
        source = "//docs/development/idk/documentation/$doc.md"
        dest = "docs/$doc.md"
      },
    ]
  }
}

sdk_documentation("modular_config_schema") {
  name = "modular_config_schema"

  category = "partner"

  files = [
    {
      source = "modular_config_schema.json"
      dest = "docs/modular/modular_config_schema.json"
    },
  ]
}

sdk_documentation("firmware") {
  name = "firmware"

  category = "experimental"

  files = [
    {
      source = "//src/firmware/README.md"
      dest = "README.md"
    },
  ]
}
