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

# GYP: //tools/android/md5sum/md5sum.gyp:md5sum
group("md5sum") {
  datadeps = [
    ":md5sum_bin($host_toolchain)",
    ":md5sum_bin($default_toolchain)",
    ":md5sum_prepare_dist($default_toolchain)",
    ":md5sum_copy_host($host_toolchain)",
  ]

  # TODO(cjhopman): Remove once group datadeps are fixed.
  deps = datadeps
}

# GYP: //tools/android/md5sum/md5sum.gyp:md5sum_bin_device (and md5sum_bin_host)
executable("md5sum_bin") {
  sources = [
    "md5sum.cc",
  ]
  deps = [
    "//base",
  ]

  # TODO(GYP)
  #'conditions': [
  #[ 'order_profiling!=0 and OS=="android"', {
  #'dependencies': [ '../../../tools/cygprofile/cygprofile.gyp:cygprofile', ],
  #}],
  #],
}

if (current_toolchain == default_toolchain) {
  import("//build/config/android/rules.gni")

  # GYP: //tools/android/md5sum/md5sum.gyp:md5sum_stripped_device_bin
  create_native_executable_dist("md5sum_prepare_dist") {
    dist_dir = "$root_build_dir/md5sum_dist"
    binary = "$root_build_dir/exe.stripped/md5sum_bin"
  }
} else {
  # GYP: //tools/android/md5sum/md5sum.gyp:md5sum_bin_host
  copy("md5sum_copy_host") {
    sources = [
      "$root_out_dir/md5sum_bin",
    ]
    outputs = [
      "$root_build_dir/md5sum_bin_host",
    ]
  }
}
