# Copyright (c) 2021 Huawei Device Co., Ltd.
# 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("//build/ohos.gni")
import("//third_party/vk-gl-cts/vk_gl_cts.gni")
config("deqp_spirvtool_reduce_config") {
cflags_cc = deqp_common_cflags_cc
cflags_cc += [ "-ftemplate-depth=1024" ]
defines = deqp_common_defines
defines += [
"SPIRV_CHECK_CONTEXT",
"SPIRV_COLOR_TERMINAL",
"SPIRV_LINUX",
"SPIRV_TIMER_ENABLED",
]
}
config("spv_headers_public_config") {
include_dirs = [ "include" ]
}
config("spvtools_include_gen_dirs") {
include_dirs = [ "$target_gen_dir" ]
}
config("spvtools_internal_config") {
include_dirs = [
".",
"//third_party/spirv-headers/include",
]
configs = [
":spv_headers_public_config",
":spvtools_include_gen_dirs",
]
cflags = []
if (is_clang) {
cflags += [
"-Wno-implicit-fallthrough",
"-Wno-newline-eof",
"-Wno-unreachable-code-break",
"-Wno-unreachable-code-return",
]
} else if (!is_win) {
# Work around a false-positive on a Skia GCC 10 builder.
cflags += [ "-Wno-format-truncation" ]
} else {
# Make MSVC report the correct value for __cplusplus
cflags += [ "/Zc:__cplusplus" ]
}
if (!is_win) {
cflags += [ "-std=c++17" ]
} else {
cflags += [ "/std:c++17" ]
}
}
ohos_source_set("deqp_spirvtool_reduce_source") {
sources = [
"//third_party/spirv-tools/include/spirv-tools/instrument.hpp",
"//third_party/spirv-tools/include/spirv-tools/libspirv.h",
"//third_party/spirv-tools/include/spirv-tools/libspirv.hpp",
"//third_party/spirv-tools/include/spirv-tools/linker.hpp",
"//third_party/spirv-tools/include/spirv-tools/optimizer.hpp",
"//third_party/spirv-tools/source/reduce/change_operand_reduction_opportunity.cpp",
"//third_party/spirv-tools/source/reduce/change_operand_reduction_opportunity.h",
"//third_party/spirv-tools/source/reduce/change_operand_to_undef_reduction_opportunity.cpp",
"//third_party/spirv-tools/source/reduce/change_operand_to_undef_reduction_opportunity.h",
"//third_party/spirv-tools/source/reduce/conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp",
"//third_party/spirv-tools/source/reduce/conditional_branch_to_simple_conditional_branch_opportunity_finder.h",
"//third_party/spirv-tools/source/reduce/conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp",
"//third_party/spirv-tools/source/reduce/conditional_branch_to_simple_conditional_branch_reduction_opportunity.h",
"//third_party/spirv-tools/source/reduce/merge_blocks_reduction_opportunity.cpp",
"//third_party/spirv-tools/source/reduce/merge_blocks_reduction_opportunity.h",
"//third_party/spirv-tools/source/reduce/merge_blocks_reduction_opportunity_finder.cpp",
"//third_party/spirv-tools/source/reduce/merge_blocks_reduction_opportunity_finder.h",
"//third_party/spirv-tools/source/reduce/operand_to_const_reduction_opportunity_finder.cpp",
"//third_party/spirv-tools/source/reduce/operand_to_const_reduction_opportunity_finder.h",
"//third_party/spirv-tools/source/reduce/operand_to_dominating_id_reduction_opportunity_finder.cpp",
"//third_party/spirv-tools/source/reduce/operand_to_dominating_id_reduction_opportunity_finder.h",
"//third_party/spirv-tools/source/reduce/operand_to_undef_reduction_opportunity_finder.cpp",
"//third_party/spirv-tools/source/reduce/operand_to_undef_reduction_opportunity_finder.h",
"//third_party/spirv-tools/source/reduce/reducer.cpp",
"//third_party/spirv-tools/source/reduce/reducer.h",
"//third_party/spirv-tools/source/reduce/reduction_opportunity.cpp",
"//third_party/spirv-tools/source/reduce/reduction_opportunity.h",
"//third_party/spirv-tools/source/reduce/reduction_opportunity_finder.cpp",
"//third_party/spirv-tools/source/reduce/reduction_opportunity_finder.h",
"//third_party/spirv-tools/source/reduce/reduction_pass.cpp",
"//third_party/spirv-tools/source/reduce/reduction_pass.h",
"//third_party/spirv-tools/source/reduce/reduction_util.cpp",
"//third_party/spirv-tools/source/reduce/reduction_util.h",
"//third_party/spirv-tools/source/reduce/remove_block_reduction_opportunity.cpp",
"//third_party/spirv-tools/source/reduce/remove_block_reduction_opportunity.h",
"//third_party/spirv-tools/source/reduce/remove_block_reduction_opportunity_finder.cpp",
"//third_party/spirv-tools/source/reduce/remove_block_reduction_opportunity_finder.h",
"//third_party/spirv-tools/source/reduce/remove_function_reduction_opportunity.cpp",
"//third_party/spirv-tools/source/reduce/remove_function_reduction_opportunity.h",
"//third_party/spirv-tools/source/reduce/remove_function_reduction_opportunity_finder.cpp",
"//third_party/spirv-tools/source/reduce/remove_function_reduction_opportunity_finder.h",
"//third_party/spirv-tools/source/reduce/remove_instruction_reduction_opportunity.cpp",
"//third_party/spirv-tools/source/reduce/remove_instruction_reduction_opportunity.h",
"//third_party/spirv-tools/source/reduce/remove_selection_reduction_opportunity.cpp",
"//third_party/spirv-tools/source/reduce/remove_selection_reduction_opportunity.h",
"//third_party/spirv-tools/source/reduce/remove_selection_reduction_opportunity_finder.cpp",
"//third_party/spirv-tools/source/reduce/remove_selection_reduction_opportunity_finder.h",
"//third_party/spirv-tools/source/reduce/remove_struct_member_reduction_opportunity.cpp",
"//third_party/spirv-tools/source/reduce/remove_struct_member_reduction_opportunity.h",
"//third_party/spirv-tools/source/reduce/remove_unused_instruction_reduction_opportunity_finder.cpp",
"//third_party/spirv-tools/source/reduce/remove_unused_instruction_reduction_opportunity_finder.h",
"//third_party/spirv-tools/source/reduce/remove_unused_struct_member_reduction_opportunity_finder.cpp",
"//third_party/spirv-tools/source/reduce/remove_unused_struct_member_reduction_opportunity_finder.h",
"//third_party/spirv-tools/source/reduce/simple_conditional_branch_to_branch_opportunity_finder.cpp",
"//third_party/spirv-tools/source/reduce/simple_conditional_branch_to_branch_opportunity_finder.h",
"//third_party/spirv-tools/source/reduce/simple_conditional_branch_to_branch_reduction_opportunity.cpp",
"//third_party/spirv-tools/source/reduce/simple_conditional_branch_to_branch_reduction_opportunity.h",
"//third_party/spirv-tools/source/reduce/structured_construct_to_block_reduction_opportunity.cpp",
"//third_party/spirv-tools/source/reduce/structured_construct_to_block_reduction_opportunity.h",
"//third_party/spirv-tools/source/reduce/structured_construct_to_block_reduction_opportunity_finder.cpp",
"//third_party/spirv-tools/source/reduce/structured_construct_to_block_reduction_opportunity_finder.h",
"//third_party/spirv-tools/source/reduce/structured_loop_to_selection_reduction_opportunity.cpp",
"//third_party/spirv-tools/source/reduce/structured_loop_to_selection_reduction_opportunity.h",
"//third_party/spirv-tools/source/reduce/structured_loop_to_selection_reduction_opportunity_finder.cpp",
"//third_party/spirv-tools/source/reduce/structured_loop_to_selection_reduction_opportunity_finder.h",
]
include_dirs = deqp_common_include_dirs
include_dirs += [
"//third_party/spirv-tools",
"//third_party/vk-gl-cts/build/external/spirv-tools/spirv-tools",
"//third_party/spirv-headers/include",
"//third_party/spirv-tools/include",
]
if (build_with_chromium) {
configs -= [ "//build/config/compiler:chromium_code" ]
configs += [ "//build/config/compiler:no_chromium_code" ]
}
configs = [ ":deqp_spirvtool_reduce_config" ]
configs += [ ":spv_headers_public_config" ]
configs += [ ":spvtools_internal_config" ]
}
ohos_static_library("libdeqp_spirvtools-reduce") {
deps = [
":deqp_spirvtool_reduce_source",
"//third_party/spirv-tools:libdeqp_spirvtools",
"//third_party/spirv-tools/source/opt:libdeqp_spirvtools-opt",
]
part_name = "graphic_2d"
subsystem_name = "graphic"
}