blob: 5763938d3c63e5584eb899ad876ce5f765ab8dff [file] [log] [blame]
# Copyright (c) 2023 Arm Limited.
#
# SPDX-License-Identifier: MIT
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#---------------------------------------------------------------------
# Validation Framework Library
cc_library(
name = "validation_framework",
srcs = glob([
"validation/reference/*.cpp",
"validation/*.cpp",
"*.h",
]),
hdrs = glob([
"validation/reference/*.h",
"validation/**/*.h",
]),
copts = [] + select({
"//:arch_armv8-a": ["-march=armv8-a"],
"//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
"//conditions:default": ["-march=armv8-a"],
}) + select({
"//:debug_flag": [
"-O0",
"-g",
"-gdwarf-2",
],
"//conditions:default": ["-O3"],
}) +
select({
"//:openmp_flag": ["-fopenmp"],
"//conditions:default": [],
}) +
select({
"//:Werror_flag": ["-Werror"],
"//conditions:default": [],
}),
linkstatic = True,
deps = [
"//:arm_compute",
"//:common_defines",
"//tests/framework",
],
)
#---------------------------------------------------------------------
# Validation Binary
cc_binary(
name = "arm_compute_validation",
srcs = glob([
"validation/UNIT/**/*.cpp",
"validation/CPP/**/*.cpp",
"NEON/*.h",
"validation/NEON/**/*.cpp",
"validation/NEON/**/*.h",
"*.cpp",
"datasets/*.h",
"instruments/*.h",
]),
copts = [] + select({
"//:arch_armv8-a": ["-march=armv8-a"],
"//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
"//conditions:default": ["-march=armv8-a"],
}) + select({
"//:debug_flag": [
"-O0",
"-g",
"-gdwarf-2",
],
"//conditions:default": ["-O3"],
}) +
select({
"//:openmp_flag": ["-fopenmp"],
"//conditions:default": [],
}) +
select({
"//:Werror_flag": ["-Werror"],
"//conditions:default": [],
}),
linkstatic = True,
deps = [
":validation_framework",
"//:arm_compute",
"//:arm_compute_graph",
"//:common_defines",
"//tests/framework",
],
local_defines = [] +
select({
"//:bf16_validation_flag": [
"ARM_COMPUTE_ENABLE_BF16",
],
"//conditions:default": [],
}) +
select({
"//:sve_validation_flag": [
"ENABLE_SVE",
"ARM_COMPUTE_ENABLE_SVE",
],
"//conditions:default": [],
})
)
#---------------------------------------------------------------------
# Benchmark Binary
cc_binary(
name = "arm_benchmark",
srcs = glob([
"benchmark/fixtures/*.h",
"benchmark/NEON/*.cpp",
"*.cpp",
]),
copts = [] + select({
"//:arch_armv8-a": ["-march=armv8-a"],
"//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
"//conditions:default": ["-march=armv8-a"],
}) + select({
"//:debug_flag": [
"-O0",
"-g",
"-gdwarf-2",
],
"//conditions:default": ["-O3"],
}) +
select({
"//:openmp_flag": ["-fopenmp"],
"//conditions:default": [],
}) +
select({
"//:Werror_flag": ["-Werror"],
"//conditions:default": [],
}),
linkstatic = True,
deps = [
":arm_compute_validation",
":validation_framework",
"//:arm_compute",
],
)