1*8975f5c5SAndroid Build Coastguard Worker# Copyright (C) 2018 Google, Inc. 2*8975f5c5SAndroid Build Coastguard Worker# 3*8975f5c5SAndroid Build Coastguard Worker# All rights reserved. 4*8975f5c5SAndroid Build Coastguard Worker# 5*8975f5c5SAndroid Build Coastguard Worker# Redistribution and use in source and binary forms, with or without 6*8975f5c5SAndroid Build Coastguard Worker# modification, are permitted provided that the following conditions 7*8975f5c5SAndroid Build Coastguard Worker# are met: 8*8975f5c5SAndroid Build Coastguard Worker# 9*8975f5c5SAndroid Build Coastguard Worker# Redistributions of source code must retain the above copyright 10*8975f5c5SAndroid Build Coastguard Worker# notice, this list of conditions and the following disclaimer. 11*8975f5c5SAndroid Build Coastguard Worker# 12*8975f5c5SAndroid Build Coastguard Worker# Redistributions in binary form must reproduce the above 13*8975f5c5SAndroid Build Coastguard Worker# copyright notice, this list of conditions and the following 14*8975f5c5SAndroid Build Coastguard Worker# disclaimer in the documentation and/or other materials provided 15*8975f5c5SAndroid Build Coastguard Worker# with the distribution. 16*8975f5c5SAndroid Build Coastguard Worker# 17*8975f5c5SAndroid Build Coastguard Worker# Neither the name of Google Inc. nor the names of its 18*8975f5c5SAndroid Build Coastguard Worker# contributors may be used to endorse or promote products derived 19*8975f5c5SAndroid Build Coastguard Worker# from this software without specific prior written permission. 20*8975f5c5SAndroid Build Coastguard Worker# 21*8975f5c5SAndroid Build Coastguard Worker# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22*8975f5c5SAndroid Build Coastguard Worker# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23*8975f5c5SAndroid Build Coastguard Worker# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24*8975f5c5SAndroid Build Coastguard Worker# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25*8975f5c5SAndroid Build Coastguard Worker# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 26*8975f5c5SAndroid Build Coastguard Worker# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 27*8975f5c5SAndroid Build Coastguard Worker# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28*8975f5c5SAndroid Build Coastguard Worker# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29*8975f5c5SAndroid Build Coastguard Worker# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30*8975f5c5SAndroid Build Coastguard Worker# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31*8975f5c5SAndroid Build Coastguard Worker# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32*8975f5c5SAndroid Build Coastguard Worker# POSSIBILITY OF SUCH DAMAGE. 33*8975f5c5SAndroid Build Coastguard Worker 34*8975f5c5SAndroid Build Coastguard Workerimport("//build_overrides/glslang.gni") 35*8975f5c5SAndroid Build Coastguard Worker 36*8975f5c5SAndroid Build Coastguard Worker# Both Chromium and Fuchsia use by default a set of warning errors 37*8975f5c5SAndroid Build Coastguard Worker# that is far too strict to compile this project. These are also 38*8975f5c5SAndroid Build Coastguard Worker# typically appended after |cflags|, overriding target-specific 39*8975f5c5SAndroid Build Coastguard Worker# definitions. To work around this, determine which configs to 40*8975f5c5SAndroid Build Coastguard Worker# add and remove in order to succesfully build the project. 41*8975f5c5SAndroid Build Coastguard Workerif (defined(is_fuchsia_tree) && is_fuchsia_tree) { 42*8975f5c5SAndroid Build Coastguard Worker _configs_to_remove = [ "//build/config:default_warnings" ] 43*8975f5c5SAndroid Build Coastguard Worker _configs_to_add = [] 44*8975f5c5SAndroid Build Coastguard Worker} else { 45*8975f5c5SAndroid Build Coastguard Worker _configs_to_remove = [ "//build/config/compiler:chromium_code" ] 46*8975f5c5SAndroid Build Coastguard Worker _configs_to_add = [ "//build/config/compiler:no_chromium_code" ] 47*8975f5c5SAndroid Build Coastguard Worker} 48*8975f5c5SAndroid Build Coastguard Worker 49*8975f5c5SAndroid Build Coastguard Workeraction("glslang_build_info") { 50*8975f5c5SAndroid Build Coastguard Worker script = "build_info.py" 51*8975f5c5SAndroid Build Coastguard Worker 52*8975f5c5SAndroid Build Coastguard Worker src_dir = "." 53*8975f5c5SAndroid Build Coastguard Worker changes_file = "CHANGES.md" 54*8975f5c5SAndroid Build Coastguard Worker template_file = "build_info.h.tmpl" 55*8975f5c5SAndroid Build Coastguard Worker out_file = "${target_gen_dir}/include/glslang/build_info.h" 56*8975f5c5SAndroid Build Coastguard Worker 57*8975f5c5SAndroid Build Coastguard Worker inputs = [ 58*8975f5c5SAndroid Build Coastguard Worker changes_file, 59*8975f5c5SAndroid Build Coastguard Worker script, 60*8975f5c5SAndroid Build Coastguard Worker template_file, 61*8975f5c5SAndroid Build Coastguard Worker ] 62*8975f5c5SAndroid Build Coastguard Worker outputs = [ out_file ] 63*8975f5c5SAndroid Build Coastguard Worker args = [ 64*8975f5c5SAndroid Build Coastguard Worker rebase_path(src_dir, root_build_dir), 65*8975f5c5SAndroid Build Coastguard Worker "-i", 66*8975f5c5SAndroid Build Coastguard Worker rebase_path(template_file, root_build_dir), 67*8975f5c5SAndroid Build Coastguard Worker "-o", 68*8975f5c5SAndroid Build Coastguard Worker rebase_path(out_file, root_build_dir), 69*8975f5c5SAndroid Build Coastguard Worker ] 70*8975f5c5SAndroid Build Coastguard Worker} 71*8975f5c5SAndroid Build Coastguard Worker 72*8975f5c5SAndroid Build Coastguard Workeraction("glslang_extension_headers") { 73*8975f5c5SAndroid Build Coastguard Worker script = "gen_extension_headers.py" 74*8975f5c5SAndroid Build Coastguard Worker 75*8975f5c5SAndroid Build Coastguard Worker out_file = "${target_gen_dir}/include/glslang/glsl_intrinsic_header.h" 76*8975f5c5SAndroid Build Coastguard Worker 77*8975f5c5SAndroid Build Coastguard Worker # Fuchsia GN build rules require all GN actions to be hermetic and they 78*8975f5c5SAndroid Build Coastguard Worker # should correctly and fully state their inputs and outpus (see 79*8975f5c5SAndroid Build Coastguard Worker # https://fuchsia.dev/fuchsia-src/development/build/hermetic_actions 80*8975f5c5SAndroid Build Coastguard Worker # for details). All input files of the script should be added to the 81*8975f5c5SAndroid Build Coastguard Worker # |sources| list. 82*8975f5c5SAndroid Build Coastguard Worker sources = [ 83*8975f5c5SAndroid Build Coastguard Worker "glslang/ExtensionHeaders/GL_EXT_shader_realtime_clock.glsl", 84*8975f5c5SAndroid Build Coastguard Worker ] 85*8975f5c5SAndroid Build Coastguard Worker 86*8975f5c5SAndroid Build Coastguard Worker inputs = [ 87*8975f5c5SAndroid Build Coastguard Worker script 88*8975f5c5SAndroid Build Coastguard Worker ] 89*8975f5c5SAndroid Build Coastguard Worker outputs = [ out_file ] 90*8975f5c5SAndroid Build Coastguard Worker args = [ 91*8975f5c5SAndroid Build Coastguard Worker "-i", 92*8975f5c5SAndroid Build Coastguard Worker rebase_path("glslang/ExtensionHeaders", root_build_dir), 93*8975f5c5SAndroid Build Coastguard Worker "-o", 94*8975f5c5SAndroid Build Coastguard Worker rebase_path(out_file, root_build_dir), 95*8975f5c5SAndroid Build Coastguard Worker ] 96*8975f5c5SAndroid Build Coastguard Worker} 97*8975f5c5SAndroid Build Coastguard Worker 98*8975f5c5SAndroid Build Coastguard Workerspirv_tools_dir = glslang_spirv_tools_dir 99*8975f5c5SAndroid Build Coastguard Worker 100*8975f5c5SAndroid Build Coastguard Workerconfig("glslang_public") { 101*8975f5c5SAndroid Build Coastguard Worker include_dirs = [ "." ] 102*8975f5c5SAndroid Build Coastguard Worker if (!is_win || is_clang) { 103*8975f5c5SAndroid Build Coastguard Worker cflags = [ "-Wno-conversion" ] 104*8975f5c5SAndroid Build Coastguard Worker } 105*8975f5c5SAndroid Build Coastguard Worker} 106*8975f5c5SAndroid Build Coastguard Worker 107*8975f5c5SAndroid Build Coastguard Workerconfig("glslang_hlsl") { 108*8975f5c5SAndroid Build Coastguard Worker defines = [ "ENABLE_HLSL=1" ] 109*8975f5c5SAndroid Build Coastguard Worker} 110*8975f5c5SAndroid Build Coastguard Worker 111*8975f5c5SAndroid Build Coastguard Workertemplate("glslang_sources_common") { 112*8975f5c5SAndroid Build Coastguard Worker source_set(target_name) { 113*8975f5c5SAndroid Build Coastguard Worker public_configs = [ ":glslang_public" ] 114*8975f5c5SAndroid Build Coastguard Worker 115*8975f5c5SAndroid Build Coastguard Worker if (invoker.enable_hlsl) { 116*8975f5c5SAndroid Build Coastguard Worker public_configs += [ ":glslang_hlsl" ] 117*8975f5c5SAndroid Build Coastguard Worker } 118*8975f5c5SAndroid Build Coastguard Worker 119*8975f5c5SAndroid Build Coastguard Worker sources = [ 120*8975f5c5SAndroid Build Coastguard Worker "SPIRV/GLSL.ext.AMD.h", 121*8975f5c5SAndroid Build Coastguard Worker "SPIRV/GLSL.ext.EXT.h", 122*8975f5c5SAndroid Build Coastguard Worker "SPIRV/GLSL.ext.KHR.h", 123*8975f5c5SAndroid Build Coastguard Worker "SPIRV/GLSL.ext.NV.h", 124*8975f5c5SAndroid Build Coastguard Worker "SPIRV/GLSL.ext.ARM.h", 125*8975f5c5SAndroid Build Coastguard Worker "SPIRV/GLSL.ext.QCOM.h", 126*8975f5c5SAndroid Build Coastguard Worker "SPIRV/GLSL.std.450.h", 127*8975f5c5SAndroid Build Coastguard Worker "SPIRV/GlslangToSpv.cpp", 128*8975f5c5SAndroid Build Coastguard Worker "SPIRV/GlslangToSpv.h", 129*8975f5c5SAndroid Build Coastguard Worker "SPIRV/InReadableOrder.cpp", 130*8975f5c5SAndroid Build Coastguard Worker "SPIRV/Logger.cpp", 131*8975f5c5SAndroid Build Coastguard Worker "SPIRV/Logger.h", 132*8975f5c5SAndroid Build Coastguard Worker "SPIRV/NonSemanticDebugPrintf.h", 133*8975f5c5SAndroid Build Coastguard Worker "SPIRV/NonSemanticShaderDebugInfo100.h", 134*8975f5c5SAndroid Build Coastguard Worker "SPIRV/SPVRemapper.cpp", 135*8975f5c5SAndroid Build Coastguard Worker "SPIRV/SPVRemapper.h", 136*8975f5c5SAndroid Build Coastguard Worker "SPIRV/SpvBuilder.cpp", 137*8975f5c5SAndroid Build Coastguard Worker "SPIRV/SpvBuilder.h", 138*8975f5c5SAndroid Build Coastguard Worker "SPIRV/SpvPostProcess.cpp", 139*8975f5c5SAndroid Build Coastguard Worker "SPIRV/SpvTools.h", 140*8975f5c5SAndroid Build Coastguard Worker "SPIRV/bitutils.h", 141*8975f5c5SAndroid Build Coastguard Worker "SPIRV/disassemble.cpp", 142*8975f5c5SAndroid Build Coastguard Worker "SPIRV/disassemble.h", 143*8975f5c5SAndroid Build Coastguard Worker "SPIRV/doc.cpp", 144*8975f5c5SAndroid Build Coastguard Worker "SPIRV/doc.h", 145*8975f5c5SAndroid Build Coastguard Worker "SPIRV/hex_float.h", 146*8975f5c5SAndroid Build Coastguard Worker "SPIRV/spirv.hpp", 147*8975f5c5SAndroid Build Coastguard Worker "SPIRV/spvIR.h", 148*8975f5c5SAndroid Build Coastguard Worker "glslang/GenericCodeGen/CodeGen.cpp", 149*8975f5c5SAndroid Build Coastguard Worker "glslang/GenericCodeGen/Link.cpp", 150*8975f5c5SAndroid Build Coastguard Worker "glslang/Include/BaseTypes.h", 151*8975f5c5SAndroid Build Coastguard Worker "glslang/Include/Common.h", 152*8975f5c5SAndroid Build Coastguard Worker "glslang/Include/ConstantUnion.h", 153*8975f5c5SAndroid Build Coastguard Worker "glslang/Include/InfoSink.h", 154*8975f5c5SAndroid Build Coastguard Worker "glslang/Include/InitializeGlobals.h", 155*8975f5c5SAndroid Build Coastguard Worker "glslang/Include/PoolAlloc.h", 156*8975f5c5SAndroid Build Coastguard Worker "glslang/Include/ResourceLimits.h", 157*8975f5c5SAndroid Build Coastguard Worker "glslang/Include/ShHandle.h", 158*8975f5c5SAndroid Build Coastguard Worker "glslang/Include/SpirvIntrinsics.h", 159*8975f5c5SAndroid Build Coastguard Worker "glslang/Include/Types.h", 160*8975f5c5SAndroid Build Coastguard Worker "glslang/Include/arrays.h", 161*8975f5c5SAndroid Build Coastguard Worker "glslang/Include/intermediate.h", 162*8975f5c5SAndroid Build Coastguard Worker "glslang/Include/visibility.h", 163*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/Constant.cpp", 164*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/InfoSink.cpp", 165*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/Initialize.cpp", 166*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/Initialize.h", 167*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/IntermTraverse.cpp", 168*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/Intermediate.cpp", 169*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/LiveTraverser.h", 170*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/ParseContextBase.cpp", 171*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/ParseHelper.cpp", 172*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/ParseHelper.h", 173*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/PoolAlloc.cpp", 174*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/RemoveTree.cpp", 175*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/RemoveTree.h", 176*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/Scan.cpp", 177*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/Scan.h", 178*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/ScanContext.h", 179*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/ShaderLang.cpp", 180*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/SpirvIntrinsics.cpp", 181*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/SymbolTable.cpp", 182*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/SymbolTable.h", 183*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/Versions.cpp", 184*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/Versions.h", 185*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/attribute.cpp", 186*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/attribute.h", 187*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/gl_types.h", 188*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/glslang_tab.cpp", 189*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/glslang_tab.cpp.h", 190*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/intermOut.cpp", 191*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/iomapper.cpp", 192*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/iomapper.h", 193*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/limits.cpp", 194*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/linkValidate.cpp", 195*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/localintermediate.h", 196*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/parseConst.cpp", 197*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/parseVersions.h", 198*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/preprocessor/Pp.cpp", 199*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/preprocessor/PpAtom.cpp", 200*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/preprocessor/PpContext.cpp", 201*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/preprocessor/PpContext.h", 202*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/preprocessor/PpScanner.cpp", 203*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/preprocessor/PpTokens.cpp", 204*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/preprocessor/PpTokens.h", 205*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/propagateNoContraction.cpp", 206*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/propagateNoContraction.h", 207*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/reflection.cpp", 208*8975f5c5SAndroid Build Coastguard Worker "glslang/MachineIndependent/reflection.h", 209*8975f5c5SAndroid Build Coastguard Worker "glslang/OSDependent/osinclude.h", 210*8975f5c5SAndroid Build Coastguard Worker "glslang/Public/ShaderLang.h", 211*8975f5c5SAndroid Build Coastguard Worker ] 212*8975f5c5SAndroid Build Coastguard Worker 213*8975f5c5SAndroid Build Coastguard Worker # Workaround gn issue complaining about these not being allowed even though GLSLANG_HLSL is not 214*8975f5c5SAndroid Build Coastguard Worker # defined. 215*8975f5c5SAndroid Build Coastguard Worker sources += [ 216*8975f5c5SAndroid Build Coastguard Worker "glslang/HLSL/hlslParseHelper.h", 217*8975f5c5SAndroid Build Coastguard Worker "glslang/HLSL/hlslParseables.h", 218*8975f5c5SAndroid Build Coastguard Worker "glslang/HLSL/hlslScanContext.h", 219*8975f5c5SAndroid Build Coastguard Worker "glslang/HLSL/hlslTokens.h", 220*8975f5c5SAndroid Build Coastguard Worker ] 221*8975f5c5SAndroid Build Coastguard Worker 222*8975f5c5SAndroid Build Coastguard Worker if (invoker.enable_hlsl) { 223*8975f5c5SAndroid Build Coastguard Worker sources += [ 224*8975f5c5SAndroid Build Coastguard Worker "glslang/HLSL/hlslAttributes.cpp", 225*8975f5c5SAndroid Build Coastguard Worker "glslang/HLSL/hlslAttributes.h", 226*8975f5c5SAndroid Build Coastguard Worker "glslang/HLSL/hlslGrammar.cpp", 227*8975f5c5SAndroid Build Coastguard Worker "glslang/HLSL/hlslGrammar.h", 228*8975f5c5SAndroid Build Coastguard Worker "glslang/HLSL/hlslOpMap.cpp", 229*8975f5c5SAndroid Build Coastguard Worker "glslang/HLSL/hlslOpMap.h", 230*8975f5c5SAndroid Build Coastguard Worker "glslang/HLSL/hlslParseHelper.cpp", 231*8975f5c5SAndroid Build Coastguard Worker "glslang/HLSL/hlslParseables.cpp", 232*8975f5c5SAndroid Build Coastguard Worker "glslang/HLSL/hlslScanContext.cpp", 233*8975f5c5SAndroid Build Coastguard Worker "glslang/HLSL/hlslTokenStream.cpp", 234*8975f5c5SAndroid Build Coastguard Worker "glslang/HLSL/hlslTokenStream.h", 235*8975f5c5SAndroid Build Coastguard Worker ] 236*8975f5c5SAndroid Build Coastguard Worker } 237*8975f5c5SAndroid Build Coastguard Worker 238*8975f5c5SAndroid Build Coastguard Worker defines = [ "ENABLE_SPIRV=1" ] 239*8975f5c5SAndroid Build Coastguard Worker if (invoker.enable_opt) { 240*8975f5c5SAndroid Build Coastguard Worker sources += [ "SPIRV/SpvTools.cpp" ] 241*8975f5c5SAndroid Build Coastguard Worker defines += [ "ENABLE_OPT=1" ] 242*8975f5c5SAndroid Build Coastguard Worker } 243*8975f5c5SAndroid Build Coastguard Worker 244*8975f5c5SAndroid Build Coastguard Worker if (is_win) { 245*8975f5c5SAndroid Build Coastguard Worker sources += [ "glslang/OSDependent/Windows/ossource.cpp" ] 246*8975f5c5SAndroid Build Coastguard Worker defines += [ "GLSLANG_OSINCLUDE_WIN32" ] 247*8975f5c5SAndroid Build Coastguard Worker } else { 248*8975f5c5SAndroid Build Coastguard Worker sources += [ "glslang/OSDependent/Unix/ossource.cpp" ] 249*8975f5c5SAndroid Build Coastguard Worker defines += [ "GLSLANG_OSINCLUDE_UNIX" ] 250*8975f5c5SAndroid Build Coastguard Worker } 251*8975f5c5SAndroid Build Coastguard Worker 252*8975f5c5SAndroid Build Coastguard Worker if (is_clang) { 253*8975f5c5SAndroid Build Coastguard Worker cflags = [ 254*8975f5c5SAndroid Build Coastguard Worker "-Wno-extra-semi", 255*8975f5c5SAndroid Build Coastguard Worker "-Wno-ignored-qualifiers", 256*8975f5c5SAndroid Build Coastguard Worker "-Wno-implicit-fallthrough", 257*8975f5c5SAndroid Build Coastguard Worker "-Wno-inconsistent-missing-override", 258*8975f5c5SAndroid Build Coastguard Worker "-Wno-missing-field-initializers", 259*8975f5c5SAndroid Build Coastguard Worker "-Wno-newline-eof", 260*8975f5c5SAndroid Build Coastguard Worker "-Wno-sign-compare", 261*8975f5c5SAndroid Build Coastguard Worker "-Wno-suggest-destructor-override", 262*8975f5c5SAndroid Build Coastguard Worker "-Wno-suggest-override", 263*8975f5c5SAndroid Build Coastguard Worker "-Wno-unused-variable", 264*8975f5c5SAndroid Build Coastguard Worker ] 265*8975f5c5SAndroid Build Coastguard Worker } 266*8975f5c5SAndroid Build Coastguard Worker if (is_win && !is_clang) { 267*8975f5c5SAndroid Build Coastguard Worker cflags = [ 268*8975f5c5SAndroid Build Coastguard Worker "/wd4018", # signed/unsigned mismatch 269*8975f5c5SAndroid Build Coastguard Worker "/wd4189", # local variable is initialized but not referenced 270*8975f5c5SAndroid Build Coastguard Worker ] 271*8975f5c5SAndroid Build Coastguard Worker } 272*8975f5c5SAndroid Build Coastguard Worker 273*8975f5c5SAndroid Build Coastguard Worker include_dirs = [ "${target_gen_dir}/include" ] 274*8975f5c5SAndroid Build Coastguard Worker 275*8975f5c5SAndroid Build Coastguard Worker deps = [ ":glslang_build_info" ] 276*8975f5c5SAndroid Build Coastguard Worker 277*8975f5c5SAndroid Build Coastguard Worker if (invoker.enable_opt) { 278*8975f5c5SAndroid Build Coastguard Worker deps += [ 279*8975f5c5SAndroid Build Coastguard Worker "${spirv_tools_dir}:spvtools_opt", 280*8975f5c5SAndroid Build Coastguard Worker "${spirv_tools_dir}:spvtools_val", 281*8975f5c5SAndroid Build Coastguard Worker ] 282*8975f5c5SAndroid Build Coastguard Worker include_dirs += [ "${spirv_tools_dir}/include" ] 283*8975f5c5SAndroid Build Coastguard Worker } 284*8975f5c5SAndroid Build Coastguard Worker 285*8975f5c5SAndroid Build Coastguard Worker configs -= _configs_to_remove 286*8975f5c5SAndroid Build Coastguard Worker configs += _configs_to_add 287*8975f5c5SAndroid Build Coastguard Worker } 288*8975f5c5SAndroid Build Coastguard Worker} 289*8975f5c5SAndroid Build Coastguard Worker 290*8975f5c5SAndroid Build Coastguard Workerglslang_sources_common("glslang_lib_sources") { 291*8975f5c5SAndroid Build Coastguard Worker enable_opt = true 292*8975f5c5SAndroid Build Coastguard Worker enable_hlsl = true 293*8975f5c5SAndroid Build Coastguard Worker} 294*8975f5c5SAndroid Build Coastguard Worker 295*8975f5c5SAndroid Build Coastguard Workerglslang_sources_common("glslang_sources") { 296*8975f5c5SAndroid Build Coastguard Worker enable_opt = true 297*8975f5c5SAndroid Build Coastguard Worker enable_hlsl = true 298*8975f5c5SAndroid Build Coastguard Worker} 299*8975f5c5SAndroid Build Coastguard Worker 300*8975f5c5SAndroid Build Coastguard Workersource_set("glslang_default_resource_limits_sources") { 301*8975f5c5SAndroid Build Coastguard Worker sources = [ 302*8975f5c5SAndroid Build Coastguard Worker "glslang/ResourceLimits/ResourceLimits.cpp", 303*8975f5c5SAndroid Build Coastguard Worker "glslang/Public/ResourceLimits.h", 304*8975f5c5SAndroid Build Coastguard Worker "glslang/Include/ResourceLimits.h", 305*8975f5c5SAndroid Build Coastguard Worker "glslang/Include/visibility.h", 306*8975f5c5SAndroid Build Coastguard Worker ] 307*8975f5c5SAndroid Build Coastguard Worker public_configs = [ ":glslang_public" ] 308*8975f5c5SAndroid Build Coastguard Worker 309*8975f5c5SAndroid Build Coastguard Worker configs -= _configs_to_remove 310*8975f5c5SAndroid Build Coastguard Worker configs += _configs_to_add 311*8975f5c5SAndroid Build Coastguard Worker} 312*8975f5c5SAndroid Build Coastguard Worker 313*8975f5c5SAndroid Build Coastguard Workerexecutable("glslang_validator") { 314*8975f5c5SAndroid Build Coastguard Worker sources = [ 315*8975f5c5SAndroid Build Coastguard Worker "StandAlone/DirStackFileIncluder.h", 316*8975f5c5SAndroid Build Coastguard Worker "StandAlone/StandAlone.cpp", 317*8975f5c5SAndroid Build Coastguard Worker ] 318*8975f5c5SAndroid Build Coastguard Worker if (!is_win) { 319*8975f5c5SAndroid Build Coastguard Worker cflags = [ "-Woverflow" ] 320*8975f5c5SAndroid Build Coastguard Worker } 321*8975f5c5SAndroid Build Coastguard Worker defines = [ 322*8975f5c5SAndroid Build Coastguard Worker "ENABLE_OPT=1", 323*8975f5c5SAndroid Build Coastguard Worker "ENABLE_SPIRV=1", 324*8975f5c5SAndroid Build Coastguard Worker ] 325*8975f5c5SAndroid Build Coastguard Worker deps = [ 326*8975f5c5SAndroid Build Coastguard Worker ":glslang_build_info", 327*8975f5c5SAndroid Build Coastguard Worker ":glslang_default_resource_limits_sources", 328*8975f5c5SAndroid Build Coastguard Worker ":glslang_sources", 329*8975f5c5SAndroid Build Coastguard Worker ":glslang_extension_headers", 330*8975f5c5SAndroid Build Coastguard Worker ] 331*8975f5c5SAndroid Build Coastguard Worker public_configs = [ ":glslang_hlsl" ] 332*8975f5c5SAndroid Build Coastguard Worker 333*8975f5c5SAndroid Build Coastguard Worker include_dirs = [ 334*8975f5c5SAndroid Build Coastguard Worker "${target_gen_dir}/include", 335*8975f5c5SAndroid Build Coastguard Worker "${spirv_tools_dir}/include", 336*8975f5c5SAndroid Build Coastguard Worker ] 337*8975f5c5SAndroid Build Coastguard Worker 338*8975f5c5SAndroid Build Coastguard Worker configs -= _configs_to_remove 339*8975f5c5SAndroid Build Coastguard Worker configs += _configs_to_add 340*8975f5c5SAndroid Build Coastguard Worker} 341*8975f5c5SAndroid Build Coastguard Worker 342*8975f5c5SAndroid Build Coastguard Workerexecutable("spirv-remap") { 343*8975f5c5SAndroid Build Coastguard Worker sources = [ "StandAlone/spirv-remap.cpp" ] 344*8975f5c5SAndroid Build Coastguard Worker defines = [ 345*8975f5c5SAndroid Build Coastguard Worker "ENABLE_OPT=1", 346*8975f5c5SAndroid Build Coastguard Worker "ENABLE_SPIRV=1", 347*8975f5c5SAndroid Build Coastguard Worker ] 348*8975f5c5SAndroid Build Coastguard Worker deps = [ ":glslang_sources" ] 349*8975f5c5SAndroid Build Coastguard Worker 350*8975f5c5SAndroid Build Coastguard Worker include_dirs = [ "${spirv_tools_dir}/include" ] 351*8975f5c5SAndroid Build Coastguard Worker 352*8975f5c5SAndroid Build Coastguard Worker configs -= _configs_to_remove 353*8975f5c5SAndroid Build Coastguard Worker configs += _configs_to_add 354*8975f5c5SAndroid Build Coastguard Worker} 355