//
// Copyright (C) 2018 The Android Open Source Project
//
// 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.
//

package {
    default_applicable_licenses: [
        "external_swiftshader_third_party_llvm-subzero_license",
    ],
}

// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'filegroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
// http://go/android-license-faq
license {
    name: "external_swiftshader_third_party_llvm-subzero_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-BSD",
        "SPDX-license-identifier-MIT",
        "SPDX-license-identifier-NCSA",
        "legacy_unencumbered",
    ],
    license_text: [
        "LICENSE.TXT",
    ],
}

cc_library_static {
    name: "libLLVMSupport_subzero",

    defaults: [ "swiftshader_common_release" ],

    device_supported: false,
    host_supported: true,

    cflags: [
        "-D_GNU_SOURCE",
        "-D__STDC_LIMIT_MACROS",
        "-D__STDC_CONSTANT_MACROS",
        "-D__STDC_FORMAT_MACROS",
        "-DLOG_TAG=\"libsubzero\"",
        "-Wno-implicit-fallthrough",
        "-Wno-unused-parameter",
    ],

    cppflags: [
        "-Wno-sign-promo",
    ],

    srcs: [
        "lib/Demangle/ItaniumDemangle.cpp",
        "lib/Support/APInt.cpp",
        "lib/Support/Atomic.cpp",
        "lib/Support/circular_raw_ostream.cpp",
        "lib/Support/CommandLine.cpp",
        "lib/Support/ConvertUTF.cpp",
        "lib/Support/ConvertUTFWrapper.cpp",
        "lib/Support/Debug.cpp",
        "lib/Support/Errno.cpp",
        "lib/Support/ErrorHandling.cpp",
        "lib/Support/Hashing.cpp",
        "lib/Support/ManagedStatic.cpp",
        "lib/Support/MemoryBuffer.cpp",
        "lib/Support/Mutex.cpp",
        "lib/Support/NativeFormatting.cpp",
        "lib/Support/Path.cpp",
        "lib/Support/Process.cpp",
        "lib/Support/Program.cpp",
        "lib/Support/raw_os_ostream.cpp",
        "lib/Support/raw_ostream.cpp",
        "lib/Support/regcomp.c",
        "lib/Support/regerror.c",
        "lib/Support/Regex.cpp",
        "lib/Support/regexec.c",
        "lib/Support/regfree.c",
        "lib/Support/regstrlcpy.c",
        "lib/Support/Signals.cpp",
        "lib/Support/SmallPtrSet.cpp",
        "lib/Support/SmallVector.cpp",
        "lib/Support/StringExtras.cpp",
        "lib/Support/StringMap.cpp",
        "lib/Support/StringRef.cpp",
        "lib/Support/StringSaver.cpp",
        "lib/Support/Threading.cpp",
        "lib/Support/Timer.cpp",
        "lib/Support/Twine.cpp",
    ],

    export_include_dirs: [
        "build/Android/include",
        "include",
    ],
}
