# Copyright (c) 2013 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.

# Modifications Copyright 2017 Google Inc. All Rights Reserved.
#
# 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.

import("//starboard/build/toolchain/gcc_toolchain.gni")

clang_toolchain("clang_arm") {
  toolprefix = "arm-linux-gnueabihf-"
  shlib_extension = ".so"
  toolchain_args = {
    current_cpu = "arm"
    current_os = "linux"
  }
}

clang_toolchain("clang_arm64") {
  toolprefix = "aarch64-linux-gnu-"
  shlib_extension = ".so"
  toolchain_args = {
    current_cpu = "arm64"
    current_os = "linux"
  }
}

gcc_toolchain("arm64") {
  toolprefix = "aarch64-linux-gnu-"
  shlib_extension = ".so"

  cc = "${toolprefix}gcc"
  cxx = "${toolprefix}g++"

  ar = "${toolprefix}ar"
  ld = cxx
  readelf = "${toolprefix}readelf"
  nm = "${toolprefix}nm"

  toolchain_args = {
    current_cpu = "arm64"
    current_os = "linux"
  }
}

gcc_toolchain("arm") {
  toolprefix = "arm-linux-gnueabihf-"
  shlib_extension = ".so"

  cc = "${toolprefix}gcc"
  cxx = "${toolprefix}g++"

  ar = "${toolprefix}ar"
  ld = cxx
  readelf = "${toolprefix}readelf"
  nm = "${toolprefix}nm"

  toolchain_args = {
    current_cpu = "arm"
    current_os = "linux"
  }
}

clang_toolchain("clang_x86") {
  shlib_extension = ".so"

  toolchain_args = {
    current_cpu = "x86"
    current_os = "linux"
  }
}

gcc_toolchain("x86") {
  shlib_extension = ".so"

  cc = "gcc"
  cxx = "g++"

  readelf = "readelf"
  nm = "nm"
  ar = "ar"
  ld = cxx

  toolchain_args = {
    current_cpu = "x86"
    current_os = "linux"
  }
}

clang_toolchain("clang_x64") {
  shlib_extension = ".so"

  toolchain_args = {
    current_cpu = "x64"
    current_os = "linux"
  }
}

gcc_toolchain("x64") {
  shlib_extension = ".so"

  cc = "gcc"
  cxx = "g++"

  readelf = "readelf"
  nm = "nm"
  ar = "ar"
  ld = cxx

  toolchain_args = {
    current_cpu = "x64"
    current_os = "linux"
  }
}

clang_toolchain("clang_mipsel") {
  shlib_extension = ".so"
  toolchain_args = {
    current_cpu = "mipsel"
    current_os = "linux"
  }
}

gcc_toolchain("mipsel") {
  shlib_extension = ".so"

  cc = "mipsel-linux-gnu-gcc"
  cxx = "mipsel-linux-gnu-g++"
  ar = "mipsel-linux-gnu-ar"
  ld = cxx
  readelf = "mipsel-linux-gnu-readelf"
  nm = "mipsel-linux-gnu-nm"

  toolchain_args = {
    current_cpu = "mipsel"
    current_os = "linux"
  }
}

gcc_toolchain("s390x") {
  shlib_extension = ".so"

  cc = "gcc"
  cxx = "g++"

  readelf = "readelf"
  nm = "nm"
  ar = "ar"
  ld = cxx

  toolchain_args = {
    current_cpu = "s390x"
    current_os = "linux"
  }
}

gcc_toolchain("ppc64") {
  shlib_extension = ".so"

  cc = "gcc"
  cxx = "g++"

  readelf = "readelf"
  nm = "nm"
  ar = "ar"
  ld = cxx

  toolchain_args = {
    current_cpu = "ppc64"
    current_os = "linux"
  }
}

gcc_toolchain("mips") {
  shlib_extension = ".so"

  cc = "gcc"
  cxx = "g++"

  readelf = "readelf"
  nm = "nm"
  ar = "ar"
  ld = cxx

  toolchain_args = {
    current_cpu = "mips"
    current_os = "linux"
  }
}

gcc_toolchain("mips64") {
  shlib_extension = ".so"

  cc = "gcc"
  cxx = "g++"

  readelf = "readelf"
  nm = "nm"
  ar = "ar"
  ld = cxx

  toolchain_args = {
    current_cpu = "mips64"
    current_os = "linux"
  }
}
