<%include file="header.mako" />

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

_out_dir = get_label_info(":bogus", "target_out_dir")

<%def name="copy_target(path)">${"copy_%s" % path.replace('/', '_').replace('.', '_')}</%def>

% for path, file in sorted(data.files.iteritems()):
copy("${copy_target(path)}") {
  sources = [
    "${file}",
  ]

  outputs = [
    "$_out_dir/sysroot/${path}",
  ]
}

% endfor

group("sysroot") {
  deps = [
    % for path, file in sorted(data.files.iteritems()):
    ":${copy_target(path)}",
    % endfor
  ]
}

file_base = "arch/$target_cpu/sysroot"

version_content = {
  root = file_base

  include_dir = "$file_base/include"
  headers = []
  % for header in sorted(data.headers):
  headers += [ "$file_base/${header}" ]
  % endfor

  link_libs = []
  % for lib in sorted(data.link_libs):
  link_libs += [ "$file_base/${lib}" ]
  % endfor

  dist_libs = []
  % for lib in sorted(data.dist_libs):
  dist_libs += [ "$file_base/${lib}" ]
  % endfor

  debug_libs = []
  % for lib in sorted(data.debug_libs):
  debug_libs += [ "$file_base/${lib}" ]
  % endfor
}
metadata = {
  type = "sysroot"
  name = "sysroot"
  root = "pkg/sysroot"
  versions = {}
  if (target_cpu == "arm64") {
    versions.arm64 = version_content
  } else if (target_cpu == "x64") {
    versions.x64 = version_content
  } else {
    assert(false, "Unknown CPU type: %target_cpu")
  }
}

sdk_atom("sysroot_sdk") {
  domain = "cpp"
  name = "system"
  id = "sdk://pkg/sysroot"
  category = "partner"

  meta = {
    dest = "pkg/sysroot/meta.json"
    schema = "sysroot"
    value = metadata
  }

  tags = [
    "type:sysroot",
  ]

  files = [
    % for path, file in sorted(data.sdk_files.iteritems()):
    {
      source = "${file}"
      dest = "${path}"
      % if path.startswith("dist/"):
      packaged = true
      % endif
    },
    % endfor
  ]

  new_files = [
    % for path, file in sorted(data.sdk_files.iteritems()):
    {
      source = "${file}"
      dest = "$file_base/${path}"
    },
    % endfor
  ]
}
