1# Copyright (c) 2021 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14import("//build/ohos.gni") 15import("//third_party/vk-gl-cts/vk_gl_cts.gni") 16 17config("deqp_spirvtool_val_config") { 18 cflags_cc = deqp_common_cflags_cc 19 cflags_cc += [ "-ftemplate-depth=1024" ] 20 defines = deqp_common_defines 21 defines += [ 22 "SPIRV_CHECK_CONTEXT", 23 "SPIRV_COLOR_TERMINAL", 24 "SPIRV_LINUX", 25 "SPIRV_TIMER_ENABLED", 26 ] 27} 28 29config("spv_headers_public_config") { 30 include_dirs = [ "include" ] 31} 32 33config("spvtools_include_gen_dirs") { 34 include_dirs = [ "$target_gen_dir" ] 35} 36 37config("spvtools_internal_config") { 38 include_dirs = [ 39 ".", 40 "//third_party/spirv-headers/include", 41 ] 42 43 configs = [ 44 ":spv_headers_public_config", 45 ":spvtools_include_gen_dirs", 46 ] 47 48 cflags = [] 49 if (is_clang) { 50 cflags += [ 51 "-Wno-implicit-fallthrough", 52 "-Wno-newline-eof", 53 "-Wno-unreachable-code-break", 54 "-Wno-unreachable-code-return", 55 ] 56 } else if (!is_win) { 57 # Work around a false-positive on a Skia GCC 10 builder. 58 cflags += [ "-Wno-format-truncation" ] 59 } else { 60 # Make MSVC report the correct value for __cplusplus 61 cflags += [ "/Zc:__cplusplus" ] 62 } 63 64 if (!is_win) { 65 cflags += [ "-std=c++17" ] 66 } else { 67 cflags += [ "/std:c++17" ] 68 } 69} 70 71ohos_source_set("deqp_spirvtool_val_source") { 72 sources = [ 73 "//third_party/spirv-tools/include/spirv-tools/instrument.hpp", 74 "//third_party/spirv-tools/include/spirv-tools/libspirv.h", 75 "//third_party/spirv-tools/include/spirv-tools/libspirv.hpp", 76 "//third_party/spirv-tools/include/spirv-tools/linker.hpp", 77 "//third_party/spirv-tools/include/spirv-tools/optimizer.hpp", 78 "//third_party/spirv-tools/source/val/basic_block.cpp", 79 "//third_party/spirv-tools/source/val/basic_block.h", 80 "//third_party/spirv-tools/source/val/construct.cpp", 81 "//third_party/spirv-tools/source/val/construct.h", 82 "//third_party/spirv-tools/source/val/decoration.h", 83 "//third_party/spirv-tools/source/val/function.cpp", 84 "//third_party/spirv-tools/source/val/function.h", 85 "//third_party/spirv-tools/source/val/instruction.cpp", 86 "//third_party/spirv-tools/source/val/validate.cpp", 87 "//third_party/spirv-tools/source/val/validate.h", 88 "//third_party/spirv-tools/source/val/validate_adjacency.cpp", 89 "//third_party/spirv-tools/source/val/validate_annotation.cpp", 90 "//third_party/spirv-tools/source/val/validate_arithmetics.cpp", 91 "//third_party/spirv-tools/source/val/validate_atomics.cpp", 92 "//third_party/spirv-tools/source/val/validate_barriers.cpp", 93 "//third_party/spirv-tools/source/val/validate_bitwise.cpp", 94 "//third_party/spirv-tools/source/val/validate_builtins.cpp", 95 "//third_party/spirv-tools/source/val/validate_capability.cpp", 96 "//third_party/spirv-tools/source/val/validate_cfg.cpp", 97 "//third_party/spirv-tools/source/val/validate_composites.cpp", 98 "//third_party/spirv-tools/source/val/validate_constants.cpp", 99 "//third_party/spirv-tools/source/val/validate_conversion.cpp", 100 "//third_party/spirv-tools/source/val/validate_debug.cpp", 101 "//third_party/spirv-tools/source/val/validate_decorations.cpp", 102 "//third_party/spirv-tools/source/val/validate_derivatives.cpp", 103 "//third_party/spirv-tools/source/val/validate_execution_limitations.cpp", 104 "//third_party/spirv-tools/source/val/validate_extensions.cpp", 105 "//third_party/spirv-tools/source/val/validate_function.cpp", 106 "//third_party/spirv-tools/source/val/validate_id.cpp", 107 "//third_party/spirv-tools/source/val/validate_image.cpp", 108 "//third_party/spirv-tools/source/val/validate_instruction.cpp", 109 "//third_party/spirv-tools/source/val/validate_interfaces.cpp", 110 "//third_party/spirv-tools/source/val/validate_layout.cpp", 111 "//third_party/spirv-tools/source/val/validate_literals.cpp", 112 "//third_party/spirv-tools/source/val/validate_logicals.cpp", 113 "//third_party/spirv-tools/source/val/validate_memory.cpp", 114 "//third_party/spirv-tools/source/val/validate_memory_semantics.cpp", 115 "//third_party/spirv-tools/source/val/validate_memory_semantics.h", 116 "//third_party/spirv-tools/source/val/validate_mesh_shading.cpp", 117 "//third_party/spirv-tools/source/val/validate_misc.cpp", 118 "//third_party/spirv-tools/source/val/validate_mode_setting.cpp", 119 "//third_party/spirv-tools/source/val/validate_non_uniform.cpp", 120 "//third_party/spirv-tools/source/val/validate_primitives.cpp", 121 "//third_party/spirv-tools/source/val/validate_ray_query.cpp", 122 "//third_party/spirv-tools/source/val/validate_ray_tracing.cpp", 123 "//third_party/spirv-tools/source/val/validate_ray_tracing_reorder.cpp", 124 "//third_party/spirv-tools/source/val/validate_scopes.cpp", 125 "//third_party/spirv-tools/source/val/validate_scopes.h", 126 "//third_party/spirv-tools/source/val/validate_small_type_uses.cpp", 127 "//third_party/spirv-tools/source/val/validate_type.cpp", 128 "//third_party/spirv-tools/source/val/validation_state.cpp", 129 "//third_party/spirv-tools/source/val/validation_state.h", 130 ] 131 132 include_dirs = deqp_common_include_dirs 133 include_dirs += [ 134 "//third_party/spirv-tools", 135 "//third_party/vk-gl-cts/build/external/spirv-tools/spirv-tools", 136 "//third_party/spirv-headers/include", 137 "//third_party/spirv-tools/include", 138 ] 139 140 if (build_with_chromium) { 141 configs -= [ "//build/config/compiler:chromium_code" ] 142 configs += [ "//build/config/compiler:no_chromium_code" ] 143 } 144 145 configs = [ ":deqp_spirvtool_val_config" ] 146 configs += [ ":spv_headers_public_config" ] 147 configs += [ ":spvtools_internal_config" ] 148} 149 150ohos_static_library("libdeqp_spirvtools-val") { 151 deps = [ 152 ":deqp_spirvtool_val_source", 153 "//third_party/spirv-tools:libdeqp_spirvtools", 154 ] 155 part_name = "acts" 156 subsystem_name = "xts" 157} 158