/*
 * Copyright 2017 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: [
        "packages_modules_NeuralNetworks_license",
    ],
}

// See: http://go/android-license-faq
license {
    name: "packages_modules_NeuralNetworks_license",
    package_name: "Android Neural Networks API",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-BSD",
    ],
    license_text: [
        "LICENSE",
        "LICENSE_BSD",
    ],
}

cc_defaults {
    name: "neuralnetworks_float16",
    // Note: the newlines in the "cflags" sections are intentional to ensure
    // bpfmt -w -s does not change the order of the compiler flags.
    arch: {
        x86: {
            cflags: [
                "-D_Float16=__fp16",

                "-Xclang",
                "-fnative-half-type",

                "-Xclang",
                "-fallow-half-arguments-and-returns",
            ],
        },
        x86_64: {
            cflags: [
                "-D_Float16=__fp16",

                "-Xclang",
                "-fnative-half-type",

                "-Xclang",
                "-fallow-half-arguments-and-returns",
            ],
        },
    },
}

cc_defaults {
    name: "neuralnetworks_defaults",
    defaults: ["neuralnetworks_float16"],
    cflags: [
        "-O3",
        "-Wall",
        "-Werror",
        "-Wextra",
    ],
    arch: {
        x86: {
            avx2: {
                cflags: [
                    "-mavx2",
                    "-mfma",
                ],
            },
        },
        x86_64: {
            avx2: {
                cflags: [
                    "-mavx2",
                    "-mfma",
                ],
            },
        },
    },
    product_variables: {
        debuggable: { // eng and userdebug builds
            cflags: ["-DNN_DEBUGGABLE"],
        },
    },
}
