1*8975f5c5SAndroid Build Coastguard Workerload( 2*8975f5c5SAndroid Build Coastguard Worker ":build_defs.bzl", 3*8975f5c5SAndroid Build Coastguard Worker "CLDEBUGINFO100_GRAMMAR_JSON_FILE", 4*8975f5c5SAndroid Build Coastguard Worker "COMMON_COPTS", 5*8975f5c5SAndroid Build Coastguard Worker "DEBUGINFO_GRAMMAR_JSON_FILE", 6*8975f5c5SAndroid Build Coastguard Worker "SHDEBUGINFO100_GRAMMAR_JSON_FILE", 7*8975f5c5SAndroid Build Coastguard Worker "TEST_COPTS", 8*8975f5c5SAndroid Build Coastguard Worker "generate_core_tables", 9*8975f5c5SAndroid Build Coastguard Worker "generate_enum_string_mapping", 10*8975f5c5SAndroid Build Coastguard Worker "generate_extinst_lang_headers", 11*8975f5c5SAndroid Build Coastguard Worker "generate_glsl_tables", 12*8975f5c5SAndroid Build Coastguard Worker "generate_opencl_tables", 13*8975f5c5SAndroid Build Coastguard Worker "generate_vendor_tables", 14*8975f5c5SAndroid Build Coastguard Worker "incompatible_with", 15*8975f5c5SAndroid Build Coastguard Worker) 16*8975f5c5SAndroid Build Coastguard Worker 17*8975f5c5SAndroid Build Coastguard Workerpackage( 18*8975f5c5SAndroid Build Coastguard Worker default_visibility = ["//visibility:private"], 19*8975f5c5SAndroid Build Coastguard Worker features = [ 20*8975f5c5SAndroid Build Coastguard Worker "layering_check", 21*8975f5c5SAndroid Build Coastguard Worker ], 22*8975f5c5SAndroid Build Coastguard Worker) 23*8975f5c5SAndroid Build Coastguard Worker 24*8975f5c5SAndroid Build Coastguard Workerlicenses(["notice"]) 25*8975f5c5SAndroid Build Coastguard Worker 26*8975f5c5SAndroid Build Coastguard Workerexports_files([ 27*8975f5c5SAndroid Build Coastguard Worker "CHANGES", 28*8975f5c5SAndroid Build Coastguard Worker "LICENSE", 29*8975f5c5SAndroid Build Coastguard Worker]) 30*8975f5c5SAndroid Build Coastguard Worker 31*8975f5c5SAndroid Build Coastguard Workerpy_binary( 32*8975f5c5SAndroid Build Coastguard Worker name = "generate_grammar_tables", 33*8975f5c5SAndroid Build Coastguard Worker srcs = ["utils/generate_grammar_tables.py"], 34*8975f5c5SAndroid Build Coastguard Worker) 35*8975f5c5SAndroid Build Coastguard Worker 36*8975f5c5SAndroid Build Coastguard Workerpy_binary( 37*8975f5c5SAndroid Build Coastguard Worker name = "generate_language_headers", 38*8975f5c5SAndroid Build Coastguard Worker srcs = ["utils/generate_language_headers.py"], 39*8975f5c5SAndroid Build Coastguard Worker) 40*8975f5c5SAndroid Build Coastguard Worker 41*8975f5c5SAndroid Build Coastguard Workergenerate_core_tables(version = "unified1") 42*8975f5c5SAndroid Build Coastguard Worker 43*8975f5c5SAndroid Build Coastguard Workergenerate_enum_string_mapping(version = "unified1") 44*8975f5c5SAndroid Build Coastguard Worker 45*8975f5c5SAndroid Build Coastguard Workergenerate_opencl_tables(version = "unified1") 46*8975f5c5SAndroid Build Coastguard Worker 47*8975f5c5SAndroid Build Coastguard Workergenerate_glsl_tables(version = "unified1") 48*8975f5c5SAndroid Build Coastguard Worker 49*8975f5c5SAndroid Build Coastguard Workergenerate_vendor_tables(extension = "spv-amd-shader-explicit-vertex-parameter") 50*8975f5c5SAndroid Build Coastguard Worker 51*8975f5c5SAndroid Build Coastguard Workergenerate_vendor_tables(extension = "spv-amd-shader-trinary-minmax") 52*8975f5c5SAndroid Build Coastguard Worker 53*8975f5c5SAndroid Build Coastguard Workergenerate_vendor_tables(extension = "spv-amd-gcn-shader") 54*8975f5c5SAndroid Build Coastguard Worker 55*8975f5c5SAndroid Build Coastguard Workergenerate_vendor_tables(extension = "spv-amd-shader-ballot") 56*8975f5c5SAndroid Build Coastguard Worker 57*8975f5c5SAndroid Build Coastguard Workergenerate_vendor_tables(extension = "debuginfo") 58*8975f5c5SAndroid Build Coastguard Worker 59*8975f5c5SAndroid Build Coastguard Workergenerate_vendor_tables(extension = "nonsemantic.clspvreflection") 60*8975f5c5SAndroid Build Coastguard Worker 61*8975f5c5SAndroid Build Coastguard Workergenerate_vendor_tables(extension = "nonsemantic.vkspreflection") 62*8975f5c5SAndroid Build Coastguard Worker 63*8975f5c5SAndroid Build Coastguard Workergenerate_vendor_tables( 64*8975f5c5SAndroid Build Coastguard Worker extension = "opencl.debuginfo.100", 65*8975f5c5SAndroid Build Coastguard Worker operand_kind_prefix = "CLDEBUG100_", 66*8975f5c5SAndroid Build Coastguard Worker) 67*8975f5c5SAndroid Build Coastguard Worker 68*8975f5c5SAndroid Build Coastguard Workergenerate_vendor_tables( 69*8975f5c5SAndroid Build Coastguard Worker extension = "nonsemantic.shader.debuginfo.100", 70*8975f5c5SAndroid Build Coastguard Worker operand_kind_prefix = "SHDEBUG100_", 71*8975f5c5SAndroid Build Coastguard Worker) 72*8975f5c5SAndroid Build Coastguard Worker 73*8975f5c5SAndroid Build Coastguard Workergenerate_extinst_lang_headers( 74*8975f5c5SAndroid Build Coastguard Worker name = "DebugInfo", 75*8975f5c5SAndroid Build Coastguard Worker grammar = DEBUGINFO_GRAMMAR_JSON_FILE, 76*8975f5c5SAndroid Build Coastguard Worker) 77*8975f5c5SAndroid Build Coastguard Worker 78*8975f5c5SAndroid Build Coastguard Workergenerate_extinst_lang_headers( 79*8975f5c5SAndroid Build Coastguard Worker name = "OpenCLDebugInfo100", 80*8975f5c5SAndroid Build Coastguard Worker grammar = CLDEBUGINFO100_GRAMMAR_JSON_FILE, 81*8975f5c5SAndroid Build Coastguard Worker) 82*8975f5c5SAndroid Build Coastguard Worker 83*8975f5c5SAndroid Build Coastguard Workergenerate_extinst_lang_headers( 84*8975f5c5SAndroid Build Coastguard Worker name = "NonSemanticShaderDebugInfo100", 85*8975f5c5SAndroid Build Coastguard Worker grammar = SHDEBUGINFO100_GRAMMAR_JSON_FILE, 86*8975f5c5SAndroid Build Coastguard Worker) 87*8975f5c5SAndroid Build Coastguard Worker 88*8975f5c5SAndroid Build Coastguard Workerpy_binary( 89*8975f5c5SAndroid Build Coastguard Worker name = "generate_registry_tables", 90*8975f5c5SAndroid Build Coastguard Worker srcs = ["utils/generate_registry_tables.py"], 91*8975f5c5SAndroid Build Coastguard Worker) 92*8975f5c5SAndroid Build Coastguard Worker 93*8975f5c5SAndroid Build Coastguard Workergenrule( 94*8975f5c5SAndroid Build Coastguard Worker name = "generators_inc", 95*8975f5c5SAndroid Build Coastguard Worker srcs = ["@spirv_headers//:spirv_xml_registry"], 96*8975f5c5SAndroid Build Coastguard Worker outs = ["generators.inc"], 97*8975f5c5SAndroid Build Coastguard Worker cmd = "$(location :generate_registry_tables) --xml=$(location @spirv_headers//:spirv_xml_registry) --generator-output=$(location generators.inc)", 98*8975f5c5SAndroid Build Coastguard Worker cmd_bat = "$(location :generate_registry_tables) --xml=$(location @spirv_headers//:spirv_xml_registry) --generator-output=$(location generators.inc)", 99*8975f5c5SAndroid Build Coastguard Worker tools = [":generate_registry_tables"], 100*8975f5c5SAndroid Build Coastguard Worker) 101*8975f5c5SAndroid Build Coastguard Worker 102*8975f5c5SAndroid Build Coastguard Workerpy_binary( 103*8975f5c5SAndroid Build Coastguard Worker name = "update_build_version", 104*8975f5c5SAndroid Build Coastguard Worker srcs = ["utils/update_build_version.py"], 105*8975f5c5SAndroid Build Coastguard Worker) 106*8975f5c5SAndroid Build Coastguard Worker 107*8975f5c5SAndroid Build Coastguard Workergenrule( 108*8975f5c5SAndroid Build Coastguard Worker name = "build_version_inc", 109*8975f5c5SAndroid Build Coastguard Worker srcs = ["CHANGES"], 110*8975f5c5SAndroid Build Coastguard Worker outs = ["build-version.inc"], 111*8975f5c5SAndroid Build Coastguard Worker cmd = "SOURCE_DATE_EPOCH=0 $(location :update_build_version) $(location CHANGES) $(location build-version.inc)", 112*8975f5c5SAndroid Build Coastguard Worker cmd_bat = "set SOURCE_DATE_EPOCH=0 && $(location :update_build_version) $(location CHANGES) $(location build-version.inc)", 113*8975f5c5SAndroid Build Coastguard Worker tools = [":update_build_version"], 114*8975f5c5SAndroid Build Coastguard Worker) 115*8975f5c5SAndroid Build Coastguard Worker 116*8975f5c5SAndroid Build Coastguard Worker# Libraries 117*8975f5c5SAndroid Build Coastguard Worker 118*8975f5c5SAndroid Build Coastguard Workercc_library( 119*8975f5c5SAndroid Build Coastguard Worker name = "spirv_tools", 120*8975f5c5SAndroid Build Coastguard Worker hdrs = [ 121*8975f5c5SAndroid Build Coastguard Worker "include/spirv-tools/libspirv.h", 122*8975f5c5SAndroid Build Coastguard Worker "include/spirv-tools/libspirv.hpp", 123*8975f5c5SAndroid Build Coastguard Worker ], 124*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 125*8975f5c5SAndroid Build Coastguard Worker includes = ["include"], 126*8975f5c5SAndroid Build Coastguard Worker linkstatic = 1, 127*8975f5c5SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 128*8975f5c5SAndroid Build Coastguard Worker deps = [ 129*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 130*8975f5c5SAndroid Build Coastguard Worker ], 131*8975f5c5SAndroid Build Coastguard Worker) 132*8975f5c5SAndroid Build Coastguard Worker 133*8975f5c5SAndroid Build Coastguard Workercc_library( 134*8975f5c5SAndroid Build Coastguard Worker name = "spirv_tools_internal", 135*8975f5c5SAndroid Build Coastguard Worker srcs = glob([ 136*8975f5c5SAndroid Build Coastguard Worker "source/*.cpp", 137*8975f5c5SAndroid Build Coastguard Worker "source/util/*.cpp", 138*8975f5c5SAndroid Build Coastguard Worker "source/val/*.cpp", 139*8975f5c5SAndroid Build Coastguard Worker ]) + [ 140*8975f5c5SAndroid Build Coastguard Worker ":build_version_inc", 141*8975f5c5SAndroid Build Coastguard Worker ":gen_core_tables_unified1", 142*8975f5c5SAndroid Build Coastguard Worker ":gen_enum_string_mapping", 143*8975f5c5SAndroid Build Coastguard Worker ":gen_extinst_lang_headers_DebugInfo", 144*8975f5c5SAndroid Build Coastguard Worker ":gen_extinst_lang_headers_NonSemanticShaderDebugInfo100", 145*8975f5c5SAndroid Build Coastguard Worker ":gen_extinst_lang_headers_OpenCLDebugInfo100", 146*8975f5c5SAndroid Build Coastguard Worker ":gen_glsl_tables_unified1", 147*8975f5c5SAndroid Build Coastguard Worker ":gen_opencl_tables_unified1", 148*8975f5c5SAndroid Build Coastguard Worker ":gen_vendor_tables_debuginfo", 149*8975f5c5SAndroid Build Coastguard Worker ":gen_vendor_tables_nonsemantic_clspvreflection", 150*8975f5c5SAndroid Build Coastguard Worker ":gen_vendor_tables_nonsemantic_vkspreflection", 151*8975f5c5SAndroid Build Coastguard Worker ":gen_vendor_tables_nonsemantic_shader_debuginfo_100", 152*8975f5c5SAndroid Build Coastguard Worker ":gen_vendor_tables_opencl_debuginfo_100", 153*8975f5c5SAndroid Build Coastguard Worker ":gen_vendor_tables_spv_amd_gcn_shader", 154*8975f5c5SAndroid Build Coastguard Worker ":gen_vendor_tables_spv_amd_shader_ballot", 155*8975f5c5SAndroid Build Coastguard Worker ":gen_vendor_tables_spv_amd_shader_explicit_vertex_parameter", 156*8975f5c5SAndroid Build Coastguard Worker ":gen_vendor_tables_spv_amd_shader_trinary_minmax", 157*8975f5c5SAndroid Build Coastguard Worker ":generators_inc", 158*8975f5c5SAndroid Build Coastguard Worker ], 159*8975f5c5SAndroid Build Coastguard Worker hdrs = [ 160*8975f5c5SAndroid Build Coastguard Worker "include/spirv-tools/libspirv.h", 161*8975f5c5SAndroid Build Coastguard Worker "include/spirv-tools/libspirv.hpp", 162*8975f5c5SAndroid Build Coastguard Worker ":gen_extinst_lang_headers_DebugInfo", 163*8975f5c5SAndroid Build Coastguard Worker ":gen_extinst_lang_headers_NonSemanticShaderDebugInfo100", 164*8975f5c5SAndroid Build Coastguard Worker ":gen_extinst_lang_headers_OpenCLDebugInfo100", 165*8975f5c5SAndroid Build Coastguard Worker ] + glob([ 166*8975f5c5SAndroid Build Coastguard Worker "source/*.h", 167*8975f5c5SAndroid Build Coastguard Worker "source/util/*.h", 168*8975f5c5SAndroid Build Coastguard Worker "source/val/*.h", 169*8975f5c5SAndroid Build Coastguard Worker ]), 170*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 171*8975f5c5SAndroid Build Coastguard Worker includes = ["include"], 172*8975f5c5SAndroid Build Coastguard Worker deps = [ 173*8975f5c5SAndroid Build Coastguard Worker "@spirv_headers//:spirv_common_headers", 174*8975f5c5SAndroid Build Coastguard Worker "@spirv_headers//:spirv_cpp11_headers", 175*8975f5c5SAndroid Build Coastguard Worker ], 176*8975f5c5SAndroid Build Coastguard Worker) 177*8975f5c5SAndroid Build Coastguard Worker 178*8975f5c5SAndroid Build Coastguard Workercc_library( 179*8975f5c5SAndroid Build Coastguard Worker name = "spirv_tools_opt", 180*8975f5c5SAndroid Build Coastguard Worker hdrs = [ 181*8975f5c5SAndroid Build Coastguard Worker "include/spirv-tools/optimizer.hpp", 182*8975f5c5SAndroid Build Coastguard Worker ], 183*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 184*8975f5c5SAndroid Build Coastguard Worker linkstatic = 1, 185*8975f5c5SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 186*8975f5c5SAndroid Build Coastguard Worker deps = [ 187*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools", 188*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_opt_internal", 189*8975f5c5SAndroid Build Coastguard Worker ], 190*8975f5c5SAndroid Build Coastguard Worker) 191*8975f5c5SAndroid Build Coastguard Worker 192*8975f5c5SAndroid Build Coastguard Workercc_library( 193*8975f5c5SAndroid Build Coastguard Worker name = "spirv_tools_opt_internal", 194*8975f5c5SAndroid Build Coastguard Worker srcs = glob(["source/opt/*.cpp"]) + [ 195*8975f5c5SAndroid Build Coastguard Worker ":gen_vendor_tables_spv_amd_shader_ballot", 196*8975f5c5SAndroid Build Coastguard Worker ], 197*8975f5c5SAndroid Build Coastguard Worker hdrs = glob(["source/opt/*.h"]) + [ 198*8975f5c5SAndroid Build Coastguard Worker "include/spirv-tools/optimizer.hpp", 199*8975f5c5SAndroid Build Coastguard Worker ], 200*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 201*8975f5c5SAndroid Build Coastguard Worker deps = [ 202*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 203*8975f5c5SAndroid Build Coastguard Worker "@spirv_headers//:spirv_common_headers", 204*8975f5c5SAndroid Build Coastguard Worker ], 205*8975f5c5SAndroid Build Coastguard Worker) 206*8975f5c5SAndroid Build Coastguard Worker 207*8975f5c5SAndroid Build Coastguard Workercc_library( 208*8975f5c5SAndroid Build Coastguard Worker name = "spirv_tools_reduce", 209*8975f5c5SAndroid Build Coastguard Worker srcs = glob(["source/reduce/*.cpp"]), 210*8975f5c5SAndroid Build Coastguard Worker hdrs = glob(["source/reduce/*.h"]), 211*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 212*8975f5c5SAndroid Build Coastguard Worker deps = [ 213*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 214*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_opt_internal", 215*8975f5c5SAndroid Build Coastguard Worker ], 216*8975f5c5SAndroid Build Coastguard Worker) 217*8975f5c5SAndroid Build Coastguard Worker 218*8975f5c5SAndroid Build Coastguard Workercc_library( 219*8975f5c5SAndroid Build Coastguard Worker name = "spirv_tools_link", 220*8975f5c5SAndroid Build Coastguard Worker srcs = glob(["source/link/*.cpp"]), 221*8975f5c5SAndroid Build Coastguard Worker hdrs = ["include/spirv-tools/linker.hpp"], 222*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 223*8975f5c5SAndroid Build Coastguard Worker linkstatic = 1, 224*8975f5c5SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 225*8975f5c5SAndroid Build Coastguard Worker deps = [ 226*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 227*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_opt_internal", 228*8975f5c5SAndroid Build Coastguard Worker ], 229*8975f5c5SAndroid Build Coastguard Worker) 230*8975f5c5SAndroid Build Coastguard Worker 231*8975f5c5SAndroid Build Coastguard Workercc_library( 232*8975f5c5SAndroid Build Coastguard Worker name = "spirv_tools_lint_internal", 233*8975f5c5SAndroid Build Coastguard Worker srcs = glob([ 234*8975f5c5SAndroid Build Coastguard Worker "source/lint/*.cpp", 235*8975f5c5SAndroid Build Coastguard Worker "source/lint/*.h", 236*8975f5c5SAndroid Build Coastguard Worker ]), 237*8975f5c5SAndroid Build Coastguard Worker hdrs = ["include/spirv-tools/linter.hpp"] + glob([ 238*8975f5c5SAndroid Build Coastguard Worker "source/lint/*.h", 239*8975f5c5SAndroid Build Coastguard Worker ]), 240*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 241*8975f5c5SAndroid Build Coastguard Worker includes = ["include"], 242*8975f5c5SAndroid Build Coastguard Worker deps = [ 243*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 244*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_opt_internal", 245*8975f5c5SAndroid Build Coastguard Worker ], 246*8975f5c5SAndroid Build Coastguard Worker) 247*8975f5c5SAndroid Build Coastguard Worker 248*8975f5c5SAndroid Build Coastguard Workercc_library( 249*8975f5c5SAndroid Build Coastguard Worker name = "spirv_tools_lint", 250*8975f5c5SAndroid Build Coastguard Worker hdrs = ["include/spirv-tools/linter.hpp"], 251*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 252*8975f5c5SAndroid Build Coastguard Worker includes = ["include"], 253*8975f5c5SAndroid Build Coastguard Worker linkstatic = 1, 254*8975f5c5SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 255*8975f5c5SAndroid Build Coastguard Worker deps = [ 256*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools", 257*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_lint_internal", 258*8975f5c5SAndroid Build Coastguard Worker ], 259*8975f5c5SAndroid Build Coastguard Worker) 260*8975f5c5SAndroid Build Coastguard Worker 261*8975f5c5SAndroid Build Coastguard Workercc_library( 262*8975f5c5SAndroid Build Coastguard Worker name = "tools_util", 263*8975f5c5SAndroid Build Coastguard Worker srcs = glob(["tools/util/*.cpp"]), 264*8975f5c5SAndroid Build Coastguard Worker hdrs = glob(["tools/util/*.h"]), 265*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 266*8975f5c5SAndroid Build Coastguard Worker deps = [":spirv_tools"], 267*8975f5c5SAndroid Build Coastguard Worker) 268*8975f5c5SAndroid Build Coastguard Worker 269*8975f5c5SAndroid Build Coastguard Workercc_library( 270*8975f5c5SAndroid Build Coastguard Worker name = "tools_io", 271*8975f5c5SAndroid Build Coastguard Worker hdrs = ["tools/io.h"], 272*8975f5c5SAndroid Build Coastguard Worker srcs = ["tools/io.cpp"], 273*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 274*8975f5c5SAndroid Build Coastguard Worker) 275*8975f5c5SAndroid Build Coastguard Worker 276*8975f5c5SAndroid Build Coastguard Worker# Tools 277*8975f5c5SAndroid Build Coastguard Worker 278*8975f5c5SAndroid Build Coastguard Workercc_binary( 279*8975f5c5SAndroid Build Coastguard Worker name = "spirv-as", 280*8975f5c5SAndroid Build Coastguard Worker srcs = [ 281*8975f5c5SAndroid Build Coastguard Worker "tools/as/as.cpp", 282*8975f5c5SAndroid Build Coastguard Worker ], 283*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 284*8975f5c5SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 285*8975f5c5SAndroid Build Coastguard Worker deps = [ 286*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 287*8975f5c5SAndroid Build Coastguard Worker ":tools_io", 288*8975f5c5SAndroid Build Coastguard Worker ":tools_util", 289*8975f5c5SAndroid Build Coastguard Worker ], 290*8975f5c5SAndroid Build Coastguard Worker) 291*8975f5c5SAndroid Build Coastguard Worker 292*8975f5c5SAndroid Build Coastguard Workercc_binary( 293*8975f5c5SAndroid Build Coastguard Worker name = "spirv-dis", 294*8975f5c5SAndroid Build Coastguard Worker srcs = [ 295*8975f5c5SAndroid Build Coastguard Worker "tools/dis/dis.cpp", 296*8975f5c5SAndroid Build Coastguard Worker ], 297*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 298*8975f5c5SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 299*8975f5c5SAndroid Build Coastguard Worker deps = [ 300*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools", 301*8975f5c5SAndroid Build Coastguard Worker ":tools_io", 302*8975f5c5SAndroid Build Coastguard Worker ":tools_util", 303*8975f5c5SAndroid Build Coastguard Worker ], 304*8975f5c5SAndroid Build Coastguard Worker) 305*8975f5c5SAndroid Build Coastguard Worker 306*8975f5c5SAndroid Build Coastguard Workercc_binary( 307*8975f5c5SAndroid Build Coastguard Worker name = "spirv-objdump", 308*8975f5c5SAndroid Build Coastguard Worker srcs = [ 309*8975f5c5SAndroid Build Coastguard Worker "tools/objdump/extract_source.cpp", 310*8975f5c5SAndroid Build Coastguard Worker "tools/objdump/extract_source.h", 311*8975f5c5SAndroid Build Coastguard Worker "tools/objdump/objdump.cpp", 312*8975f5c5SAndroid Build Coastguard Worker ], 313*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 314*8975f5c5SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 315*8975f5c5SAndroid Build Coastguard Worker deps = [ 316*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 317*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_opt_internal", 318*8975f5c5SAndroid Build Coastguard Worker ":tools_io", 319*8975f5c5SAndroid Build Coastguard Worker ":tools_util", 320*8975f5c5SAndroid Build Coastguard Worker "@spirv_headers//:spirv_cpp_headers", 321*8975f5c5SAndroid Build Coastguard Worker ], 322*8975f5c5SAndroid Build Coastguard Worker) 323*8975f5c5SAndroid Build Coastguard Worker 324*8975f5c5SAndroid Build Coastguard Workercc_binary( 325*8975f5c5SAndroid Build Coastguard Worker name = "spirv-val", 326*8975f5c5SAndroid Build Coastguard Worker srcs = [ 327*8975f5c5SAndroid Build Coastguard Worker "tools/val/val.cpp", 328*8975f5c5SAndroid Build Coastguard Worker ], 329*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 330*8975f5c5SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 331*8975f5c5SAndroid Build Coastguard Worker deps = [ 332*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 333*8975f5c5SAndroid Build Coastguard Worker ":tools_io", 334*8975f5c5SAndroid Build Coastguard Worker ":tools_util", 335*8975f5c5SAndroid Build Coastguard Worker ], 336*8975f5c5SAndroid Build Coastguard Worker) 337*8975f5c5SAndroid Build Coastguard Worker 338*8975f5c5SAndroid Build Coastguard Workercc_binary( 339*8975f5c5SAndroid Build Coastguard Worker name = "spirv-opt", 340*8975f5c5SAndroid Build Coastguard Worker srcs = [ 341*8975f5c5SAndroid Build Coastguard Worker "tools/opt/opt.cpp", 342*8975f5c5SAndroid Build Coastguard Worker ], 343*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 344*8975f5c5SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 345*8975f5c5SAndroid Build Coastguard Worker deps = [ 346*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 347*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_opt_internal", 348*8975f5c5SAndroid Build Coastguard Worker ":tools_io", 349*8975f5c5SAndroid Build Coastguard Worker ":tools_util", 350*8975f5c5SAndroid Build Coastguard Worker ], 351*8975f5c5SAndroid Build Coastguard Worker) 352*8975f5c5SAndroid Build Coastguard Worker 353*8975f5c5SAndroid Build Coastguard Workercc_binary( 354*8975f5c5SAndroid Build Coastguard Worker name = "spirv-reduce", 355*8975f5c5SAndroid Build Coastguard Worker srcs = [ 356*8975f5c5SAndroid Build Coastguard Worker "tools/reduce/reduce.cpp", 357*8975f5c5SAndroid Build Coastguard Worker ], 358*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 359*8975f5c5SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 360*8975f5c5SAndroid Build Coastguard Worker deps = [ 361*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 362*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_opt_internal", 363*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_reduce", 364*8975f5c5SAndroid Build Coastguard Worker ":tools_io", 365*8975f5c5SAndroid Build Coastguard Worker ":tools_util", 366*8975f5c5SAndroid Build Coastguard Worker ], 367*8975f5c5SAndroid Build Coastguard Worker) 368*8975f5c5SAndroid Build Coastguard Worker 369*8975f5c5SAndroid Build Coastguard Workercc_binary( 370*8975f5c5SAndroid Build Coastguard Worker name = "spirv-link", 371*8975f5c5SAndroid Build Coastguard Worker srcs = [ 372*8975f5c5SAndroid Build Coastguard Worker "tools/link/linker.cpp", 373*8975f5c5SAndroid Build Coastguard Worker ], 374*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 375*8975f5c5SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 376*8975f5c5SAndroid Build Coastguard Worker deps = [ 377*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 378*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_link", 379*8975f5c5SAndroid Build Coastguard Worker ":tools_io", 380*8975f5c5SAndroid Build Coastguard Worker ":tools_util", 381*8975f5c5SAndroid Build Coastguard Worker ], 382*8975f5c5SAndroid Build Coastguard Worker) 383*8975f5c5SAndroid Build Coastguard Worker 384*8975f5c5SAndroid Build Coastguard Workercc_binary( 385*8975f5c5SAndroid Build Coastguard Worker name = "spirv-lint", 386*8975f5c5SAndroid Build Coastguard Worker srcs = [ 387*8975f5c5SAndroid Build Coastguard Worker "tools/lint/lint.cpp", 388*8975f5c5SAndroid Build Coastguard Worker ], 389*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 390*8975f5c5SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 391*8975f5c5SAndroid Build Coastguard Worker deps = [ 392*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_lint", 393*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_opt_internal", 394*8975f5c5SAndroid Build Coastguard Worker ":tools_io", 395*8975f5c5SAndroid Build Coastguard Worker ":tools_util", 396*8975f5c5SAndroid Build Coastguard Worker ], 397*8975f5c5SAndroid Build Coastguard Worker) 398*8975f5c5SAndroid Build Coastguard Worker 399*8975f5c5SAndroid Build Coastguard Workercc_binary( 400*8975f5c5SAndroid Build Coastguard Worker name = "spirv-cfg", 401*8975f5c5SAndroid Build Coastguard Worker srcs = [ 402*8975f5c5SAndroid Build Coastguard Worker "tools/cfg/bin_to_dot.cpp", 403*8975f5c5SAndroid Build Coastguard Worker "tools/cfg/bin_to_dot.h", 404*8975f5c5SAndroid Build Coastguard Worker "tools/cfg/cfg.cpp", 405*8975f5c5SAndroid Build Coastguard Worker ], 406*8975f5c5SAndroid Build Coastguard Worker copts = COMMON_COPTS, 407*8975f5c5SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 408*8975f5c5SAndroid Build Coastguard Worker deps = [ 409*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 410*8975f5c5SAndroid Build Coastguard Worker ":tools_io", 411*8975f5c5SAndroid Build Coastguard Worker ":tools_util", 412*8975f5c5SAndroid Build Coastguard Worker ], 413*8975f5c5SAndroid Build Coastguard Worker) 414*8975f5c5SAndroid Build Coastguard Worker 415*8975f5c5SAndroid Build Coastguard Worker# Unit tests 416*8975f5c5SAndroid Build Coastguard Worker 417*8975f5c5SAndroid Build Coastguard Workercc_library( 418*8975f5c5SAndroid Build Coastguard Worker name = "test_lib", 419*8975f5c5SAndroid Build Coastguard Worker testonly = 1, 420*8975f5c5SAndroid Build Coastguard Worker srcs = [ 421*8975f5c5SAndroid Build Coastguard Worker "test/unit_spirv.cpp", 422*8975f5c5SAndroid Build Coastguard Worker ], 423*8975f5c5SAndroid Build Coastguard Worker hdrs = [ 424*8975f5c5SAndroid Build Coastguard Worker "test/test_fixture.h", 425*8975f5c5SAndroid Build Coastguard Worker "test/unit_spirv.h", 426*8975f5c5SAndroid Build Coastguard Worker ], 427*8975f5c5SAndroid Build Coastguard Worker copts = TEST_COPTS, 428*8975f5c5SAndroid Build Coastguard Worker deps = [ 429*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 430*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest", 431*8975f5c5SAndroid Build Coastguard Worker ], 432*8975f5c5SAndroid Build Coastguard Worker) 433*8975f5c5SAndroid Build Coastguard Worker 434*8975f5c5SAndroid Build Coastguard Worker# PCH (precompiled header) tests only work when using CMake and MSVC on Windows, 435*8975f5c5SAndroid Build Coastguard Worker# so they will be skipped in the Bazel builds. 436*8975f5c5SAndroid Build Coastguard Worker 437*8975f5c5SAndroid Build Coastguard Worker[cc_test( 438*8975f5c5SAndroid Build Coastguard Worker name = "base_{testcase}_test".format(testcase = f[len("test/"):-len("_test.cpp")]), 439*8975f5c5SAndroid Build Coastguard Worker size = "small", 440*8975f5c5SAndroid Build Coastguard Worker srcs = [f], 441*8975f5c5SAndroid Build Coastguard Worker copts = TEST_COPTS + ["-DTESTING"], 442*8975f5c5SAndroid Build Coastguard Worker linkstatic = 1, 443*8975f5c5SAndroid Build Coastguard Worker target_compatible_with = { 444*8975f5c5SAndroid Build Coastguard Worker "test/timer_test.cpp": incompatible_with(["@bazel_tools//src/conditions:windows"]), 445*8975f5c5SAndroid Build Coastguard Worker }.get(f, []), 446*8975f5c5SAndroid Build Coastguard Worker deps = [ 447*8975f5c5SAndroid Build Coastguard Worker "tools_util", 448*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 449*8975f5c5SAndroid Build Coastguard Worker ":test_lib", 450*8975f5c5SAndroid Build Coastguard Worker ":tools_io", 451*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest", 452*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest_main", 453*8975f5c5SAndroid Build Coastguard Worker ], 454*8975f5c5SAndroid Build Coastguard Worker) for f in glob( 455*8975f5c5SAndroid Build Coastguard Worker [ 456*8975f5c5SAndroid Build Coastguard Worker "test/*_test.cpp", 457*8975f5c5SAndroid Build Coastguard Worker "test/tools/*_test.cpp", 458*8975f5c5SAndroid Build Coastguard Worker ], 459*8975f5c5SAndroid Build Coastguard Worker exclude = [ 460*8975f5c5SAndroid Build Coastguard Worker "test/cpp_interface_test.cpp", 461*8975f5c5SAndroid Build Coastguard Worker "test/pch_test.cpp", 462*8975f5c5SAndroid Build Coastguard Worker ], 463*8975f5c5SAndroid Build Coastguard Worker)] 464*8975f5c5SAndroid Build Coastguard Worker 465*8975f5c5SAndroid Build Coastguard Workercc_test( 466*8975f5c5SAndroid Build Coastguard Worker name = "base_cpp_interface_test", 467*8975f5c5SAndroid Build Coastguard Worker size = "small", 468*8975f5c5SAndroid Build Coastguard Worker srcs = ["test/cpp_interface_test.cpp"], 469*8975f5c5SAndroid Build Coastguard Worker linkstatic = 1, 470*8975f5c5SAndroid Build Coastguard Worker deps = [ 471*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_opt_internal", 472*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest", 473*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest_main", 474*8975f5c5SAndroid Build Coastguard Worker "@spirv_headers//:spirv_cpp11_headers", 475*8975f5c5SAndroid Build Coastguard Worker ], 476*8975f5c5SAndroid Build Coastguard Worker) 477*8975f5c5SAndroid Build Coastguard Worker 478*8975f5c5SAndroid Build Coastguard Workercc_test( 479*8975f5c5SAndroid Build Coastguard Worker name = "base_ilist_test", 480*8975f5c5SAndroid Build Coastguard Worker size = "small", 481*8975f5c5SAndroid Build Coastguard Worker srcs = ["test/util/ilist_test.cpp"], 482*8975f5c5SAndroid Build Coastguard Worker copts = TEST_COPTS, 483*8975f5c5SAndroid Build Coastguard Worker linkstatic = 1, 484*8975f5c5SAndroid Build Coastguard Worker deps = [ 485*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 486*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest", 487*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest_main", 488*8975f5c5SAndroid Build Coastguard Worker ], 489*8975f5c5SAndroid Build Coastguard Worker) 490*8975f5c5SAndroid Build Coastguard Worker 491*8975f5c5SAndroid Build Coastguard Workercc_library( 492*8975f5c5SAndroid Build Coastguard Worker name = "link_test_lib", 493*8975f5c5SAndroid Build Coastguard Worker testonly = 1, 494*8975f5c5SAndroid Build Coastguard Worker hdrs = ["test/link/linker_fixture.h"], 495*8975f5c5SAndroid Build Coastguard Worker copts = TEST_COPTS, 496*8975f5c5SAndroid Build Coastguard Worker deps = [ 497*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 498*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_link", 499*8975f5c5SAndroid Build Coastguard Worker ":test_lib", 500*8975f5c5SAndroid Build Coastguard Worker "@effcee//:effcee", 501*8975f5c5SAndroid Build Coastguard Worker "@re2//:re2", 502*8975f5c5SAndroid Build Coastguard Worker ], 503*8975f5c5SAndroid Build Coastguard Worker) 504*8975f5c5SAndroid Build Coastguard Worker 505*8975f5c5SAndroid Build Coastguard Worker[cc_test( 506*8975f5c5SAndroid Build Coastguard Worker name = "link_{testcase}_test".format(testcase = f[len("test/link/"):-len("_test.cpp")]), 507*8975f5c5SAndroid Build Coastguard Worker size = "small", 508*8975f5c5SAndroid Build Coastguard Worker srcs = [f], 509*8975f5c5SAndroid Build Coastguard Worker copts = TEST_COPTS, 510*8975f5c5SAndroid Build Coastguard Worker linkstatic = 1, 511*8975f5c5SAndroid Build Coastguard Worker deps = [ 512*8975f5c5SAndroid Build Coastguard Worker ":link_test_lib", 513*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest", 514*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest_main", 515*8975f5c5SAndroid Build Coastguard Worker ], 516*8975f5c5SAndroid Build Coastguard Worker) for f in glob( 517*8975f5c5SAndroid Build Coastguard Worker ["test/link/*_test.cpp"], 518*8975f5c5SAndroid Build Coastguard Worker)] 519*8975f5c5SAndroid Build Coastguard Worker 520*8975f5c5SAndroid Build Coastguard Worker[cc_test( 521*8975f5c5SAndroid Build Coastguard Worker name = "lint_{testcase}_test".format(testcase = f[len("test/lint/"):-len("_test.cpp")]), 522*8975f5c5SAndroid Build Coastguard Worker size = "small", 523*8975f5c5SAndroid Build Coastguard Worker srcs = [f], 524*8975f5c5SAndroid Build Coastguard Worker copts = TEST_COPTS, 525*8975f5c5SAndroid Build Coastguard Worker linkstatic = 1, 526*8975f5c5SAndroid Build Coastguard Worker deps = [ 527*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools", 528*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_lint_internal", 529*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_opt_internal", 530*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest", 531*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest_main", 532*8975f5c5SAndroid Build Coastguard Worker ], 533*8975f5c5SAndroid Build Coastguard Worker) for f in glob( 534*8975f5c5SAndroid Build Coastguard Worker ["test/lint/*_test.cpp"], 535*8975f5c5SAndroid Build Coastguard Worker)] 536*8975f5c5SAndroid Build Coastguard Worker 537*8975f5c5SAndroid Build Coastguard Workercc_library( 538*8975f5c5SAndroid Build Coastguard Worker name = "opt_test_lib", 539*8975f5c5SAndroid Build Coastguard Worker testonly = 1, 540*8975f5c5SAndroid Build Coastguard Worker srcs = [ 541*8975f5c5SAndroid Build Coastguard Worker "test/opt/pass_utils.cpp", 542*8975f5c5SAndroid Build Coastguard Worker ], 543*8975f5c5SAndroid Build Coastguard Worker hdrs = [ 544*8975f5c5SAndroid Build Coastguard Worker "test/opt/assembly_builder.h", 545*8975f5c5SAndroid Build Coastguard Worker "test/opt/function_utils.h", 546*8975f5c5SAndroid Build Coastguard Worker "test/opt/module_utils.h", 547*8975f5c5SAndroid Build Coastguard Worker "test/opt/pass_fixture.h", 548*8975f5c5SAndroid Build Coastguard Worker "test/opt/pass_utils.h", 549*8975f5c5SAndroid Build Coastguard Worker ], 550*8975f5c5SAndroid Build Coastguard Worker copts = TEST_COPTS, 551*8975f5c5SAndroid Build Coastguard Worker deps = [ 552*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 553*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_opt_internal", 554*8975f5c5SAndroid Build Coastguard Worker "@effcee//:effcee", 555*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest", 556*8975f5c5SAndroid Build Coastguard Worker ], 557*8975f5c5SAndroid Build Coastguard Worker) 558*8975f5c5SAndroid Build Coastguard Worker 559*8975f5c5SAndroid Build Coastguard Worker[cc_test( 560*8975f5c5SAndroid Build Coastguard Worker name = "opt_{testcase}_test".format(testcase = f[len("test/opt/"):-len("_test.cpp")]), 561*8975f5c5SAndroid Build Coastguard Worker size = "small", 562*8975f5c5SAndroid Build Coastguard Worker srcs = [f], 563*8975f5c5SAndroid Build Coastguard Worker copts = TEST_COPTS, 564*8975f5c5SAndroid Build Coastguard Worker linkstatic = 1, 565*8975f5c5SAndroid Build Coastguard Worker deps = [ 566*8975f5c5SAndroid Build Coastguard Worker ":opt_test_lib", 567*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 568*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_opt_internal", 569*8975f5c5SAndroid Build Coastguard Worker ":test_lib", 570*8975f5c5SAndroid Build Coastguard Worker "@effcee//:effcee", 571*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest", 572*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest_main", 573*8975f5c5SAndroid Build Coastguard Worker ], 574*8975f5c5SAndroid Build Coastguard Worker) for f in glob(["test/opt/*_test.cpp"])] 575*8975f5c5SAndroid Build Coastguard Worker 576*8975f5c5SAndroid Build Coastguard Worker[cc_test( 577*8975f5c5SAndroid Build Coastguard Worker name = "opt_dom_tree_{testcase}_test".format(testcase = f[len("test/opt/dominator_tree/"):-len(".cpp")]), 578*8975f5c5SAndroid Build Coastguard Worker size = "small", 579*8975f5c5SAndroid Build Coastguard Worker srcs = [f], 580*8975f5c5SAndroid Build Coastguard Worker copts = TEST_COPTS, 581*8975f5c5SAndroid Build Coastguard Worker linkstatic = 1, 582*8975f5c5SAndroid Build Coastguard Worker deps = [ 583*8975f5c5SAndroid Build Coastguard Worker ":opt_test_lib", 584*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_opt_internal", 585*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest", 586*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest_main", 587*8975f5c5SAndroid Build Coastguard Worker ], 588*8975f5c5SAndroid Build Coastguard Worker) for f in glob( 589*8975f5c5SAndroid Build Coastguard Worker ["test/opt/dominator_tree/*.cpp"], 590*8975f5c5SAndroid Build Coastguard Worker exclude = ["test/opt/dominator_tree/pch_test_opt_dom.cpp"], 591*8975f5c5SAndroid Build Coastguard Worker)] 592*8975f5c5SAndroid Build Coastguard Worker 593*8975f5c5SAndroid Build Coastguard Worker[cc_test( 594*8975f5c5SAndroid Build Coastguard Worker name = "opt_loop_{testcase}_test".format(testcase = f[len("test/opt/loop_optimizations/"):-len(".cpp")]), 595*8975f5c5SAndroid Build Coastguard Worker size = "small", 596*8975f5c5SAndroid Build Coastguard Worker srcs = [f], 597*8975f5c5SAndroid Build Coastguard Worker copts = TEST_COPTS, 598*8975f5c5SAndroid Build Coastguard Worker linkstatic = 1, 599*8975f5c5SAndroid Build Coastguard Worker deps = [ 600*8975f5c5SAndroid Build Coastguard Worker ":opt_test_lib", 601*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools", 602*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_opt_internal", 603*8975f5c5SAndroid Build Coastguard Worker "@effcee//:effcee", 604*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest", 605*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest_main", 606*8975f5c5SAndroid Build Coastguard Worker ], 607*8975f5c5SAndroid Build Coastguard Worker) for f in glob( 608*8975f5c5SAndroid Build Coastguard Worker ["test/opt/loop_optimizations/*.cpp"], 609*8975f5c5SAndroid Build Coastguard Worker exclude = ["test/opt/loop_optimizations/pch_test_opt_loop.cpp"], 610*8975f5c5SAndroid Build Coastguard Worker)] 611*8975f5c5SAndroid Build Coastguard Worker 612*8975f5c5SAndroid Build Coastguard Workercc_library( 613*8975f5c5SAndroid Build Coastguard Worker name = "reduce_test_lib", 614*8975f5c5SAndroid Build Coastguard Worker testonly = 1, 615*8975f5c5SAndroid Build Coastguard Worker srcs = [ 616*8975f5c5SAndroid Build Coastguard Worker "test/reduce/reduce_test_util.cpp", 617*8975f5c5SAndroid Build Coastguard Worker ], 618*8975f5c5SAndroid Build Coastguard Worker hdrs = ["test/reduce/reduce_test_util.h"], 619*8975f5c5SAndroid Build Coastguard Worker copts = TEST_COPTS, 620*8975f5c5SAndroid Build Coastguard Worker deps = [ 621*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools", 622*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_opt_internal", 623*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_reduce", 624*8975f5c5SAndroid Build Coastguard Worker ":test_lib", 625*8975f5c5SAndroid Build Coastguard Worker ":tools_io", 626*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest", 627*8975f5c5SAndroid Build Coastguard Worker ], 628*8975f5c5SAndroid Build Coastguard Worker) 629*8975f5c5SAndroid Build Coastguard Worker 630*8975f5c5SAndroid Build Coastguard Worker[cc_test( 631*8975f5c5SAndroid Build Coastguard Worker name = "reduce_{testcase}_test".format(testcase = f[len("test/reduce/"):-len("_test.cpp")]), 632*8975f5c5SAndroid Build Coastguard Worker size = "small", 633*8975f5c5SAndroid Build Coastguard Worker srcs = [f], 634*8975f5c5SAndroid Build Coastguard Worker copts = TEST_COPTS, 635*8975f5c5SAndroid Build Coastguard Worker linkstatic = 1, 636*8975f5c5SAndroid Build Coastguard Worker deps = [ 637*8975f5c5SAndroid Build Coastguard Worker ":reduce_test_lib", 638*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 639*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_opt_internal", 640*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_reduce", 641*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest_main", 642*8975f5c5SAndroid Build Coastguard Worker ], 643*8975f5c5SAndroid Build Coastguard Worker) for f in glob(["test/reduce/*_test.cpp"])] 644*8975f5c5SAndroid Build Coastguard Worker 645*8975f5c5SAndroid Build Coastguard Worker[cc_test( 646*8975f5c5SAndroid Build Coastguard Worker name = "util_{testcase}_test".format(testcase = f[len("test/util/"):-len("_test.cpp")]), 647*8975f5c5SAndroid Build Coastguard Worker size = "small", 648*8975f5c5SAndroid Build Coastguard Worker srcs = [f], 649*8975f5c5SAndroid Build Coastguard Worker copts = TEST_COPTS, 650*8975f5c5SAndroid Build Coastguard Worker linkstatic = 1, 651*8975f5c5SAndroid Build Coastguard Worker deps = [ 652*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 653*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest", 654*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest_main", 655*8975f5c5SAndroid Build Coastguard Worker ], 656*8975f5c5SAndroid Build Coastguard Worker) for f in glob(["test/util/*_test.cpp"])] 657*8975f5c5SAndroid Build Coastguard Worker 658*8975f5c5SAndroid Build Coastguard Workercc_library( 659*8975f5c5SAndroid Build Coastguard Worker name = "val_test_lib", 660*8975f5c5SAndroid Build Coastguard Worker testonly = 1, 661*8975f5c5SAndroid Build Coastguard Worker srcs = [ 662*8975f5c5SAndroid Build Coastguard Worker "test/val/val_code_generator.cpp", 663*8975f5c5SAndroid Build Coastguard Worker ], 664*8975f5c5SAndroid Build Coastguard Worker hdrs = [ 665*8975f5c5SAndroid Build Coastguard Worker "test/val/val_code_generator.h", 666*8975f5c5SAndroid Build Coastguard Worker "test/val/val_fixtures.h", 667*8975f5c5SAndroid Build Coastguard Worker ], 668*8975f5c5SAndroid Build Coastguard Worker copts = TEST_COPTS, 669*8975f5c5SAndroid Build Coastguard Worker deps = [ 670*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 671*8975f5c5SAndroid Build Coastguard Worker ":test_lib", 672*8975f5c5SAndroid Build Coastguard Worker ], 673*8975f5c5SAndroid Build Coastguard Worker) 674*8975f5c5SAndroid Build Coastguard Worker 675*8975f5c5SAndroid Build Coastguard Worker[cc_test( 676*8975f5c5SAndroid Build Coastguard Worker name = "val_{testcase}_test".format(testcase = f[len("test/val/val_"):-len("_test.cpp")]), 677*8975f5c5SAndroid Build Coastguard Worker size = "small", 678*8975f5c5SAndroid Build Coastguard Worker srcs = [f], 679*8975f5c5SAndroid Build Coastguard Worker copts = TEST_COPTS, 680*8975f5c5SAndroid Build Coastguard Worker linkstatic = 1, 681*8975f5c5SAndroid Build Coastguard Worker deps = [ 682*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 683*8975f5c5SAndroid Build Coastguard Worker ":test_lib", 684*8975f5c5SAndroid Build Coastguard Worker ":val_test_lib", 685*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest", 686*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest_main", 687*8975f5c5SAndroid Build Coastguard Worker ], 688*8975f5c5SAndroid Build Coastguard Worker) for f in glob( 689*8975f5c5SAndroid Build Coastguard Worker ["test/val/val_*_test.cpp"], 690*8975f5c5SAndroid Build Coastguard Worker exclude = [ 691*8975f5c5SAndroid Build Coastguard Worker "test/val/val_capability_test.cpp", 692*8975f5c5SAndroid Build Coastguard Worker "test/val/val_limits_test.cpp", 693*8975f5c5SAndroid Build Coastguard Worker ], 694*8975f5c5SAndroid Build Coastguard Worker)] 695*8975f5c5SAndroid Build Coastguard Worker 696*8975f5c5SAndroid Build Coastguard Workercc_test( 697*8975f5c5SAndroid Build Coastguard Worker name = "val_capability_test", 698*8975f5c5SAndroid Build Coastguard Worker size = "large", 699*8975f5c5SAndroid Build Coastguard Worker timeout = "long", 700*8975f5c5SAndroid Build Coastguard Worker srcs = ["test/val/val_capability_test.cpp"], 701*8975f5c5SAndroid Build Coastguard Worker copts = TEST_COPTS + ["-O3"], 702*8975f5c5SAndroid Build Coastguard Worker linkstatic = 1, 703*8975f5c5SAndroid Build Coastguard Worker deps = [ 704*8975f5c5SAndroid Build Coastguard Worker ":spirv_tools_internal", 705*8975f5c5SAndroid Build Coastguard Worker ":test_lib", 706*8975f5c5SAndroid Build Coastguard Worker ":val_test_lib", 707*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest", 708*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest_main", 709*8975f5c5SAndroid Build Coastguard Worker ], 710*8975f5c5SAndroid Build Coastguard Worker) 711*8975f5c5SAndroid Build Coastguard Worker 712*8975f5c5SAndroid Build Coastguard Workercc_test( 713*8975f5c5SAndroid Build Coastguard Worker name = "val_limits_test", 714*8975f5c5SAndroid Build Coastguard Worker size = "large", 715*8975f5c5SAndroid Build Coastguard Worker timeout = "long", 716*8975f5c5SAndroid Build Coastguard Worker srcs = ["test/val/val_limits_test.cpp"], 717*8975f5c5SAndroid Build Coastguard Worker copts = TEST_COPTS + [ 718*8975f5c5SAndroid Build Coastguard Worker "-O3", 719*8975f5c5SAndroid Build Coastguard Worker ], 720*8975f5c5SAndroid Build Coastguard Worker linkstatic = 1, 721*8975f5c5SAndroid Build Coastguard Worker deps = [ 722*8975f5c5SAndroid Build Coastguard Worker ":test_lib", 723*8975f5c5SAndroid Build Coastguard Worker ":val_test_lib", 724*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest", 725*8975f5c5SAndroid Build Coastguard Worker "@googletest//:gtest_main", 726*8975f5c5SAndroid Build Coastguard Worker ], 727*8975f5c5SAndroid Build Coastguard Worker) 728